if (state->language_version < 130) {
_mesa_glsl_error(loc, state,
"operator '%%' is reserved in %s",
- state->version_string);
+ state->get_version_string());
return glsl_type::error_type;
}
_mesa_glsl_error(& loc, state,
"`out' qualifier in declaration of `%s' "
"only valid for function parameters in %s.",
- decl->identifier, state->version_string);
+ decl->identifier, state->get_version_string());
}
if (this->type->qualifier.flags.q.in) {
_mesa_glsl_error(& loc, state,
"`in' qualifier in declaration of `%s' "
"only valid for function parameters in %s.",
- decl->identifier, state->version_string);
+ decl->identifier, state->get_version_string());
}
/* FINISHME: Test for other invalid qualifiers. */
}
}
state->language_version = $2;
- state->version_string =
- glsl_compute_version_string(state, state->es_shader,
- state->language_version);
if (!supported) {
_mesa_glsl_error(& @2, state, "%s is not supported. "
"Supported versions are: %s\n",
- state->version_string,
+ state->get_version_string(),
state->supported_version_string);
}
if (state->language_version == 110) {
_mesa_glsl_warning(& @1, state,
"pragma `invariant(all)' not supported in %s",
- state->version_string);
+ state->get_version_string());
} else {
state->all_invariant = true;
}
"precision qualifier forbidden "
"in %s (1.30 or later "
"required)\n",
- state->version_string);
+ state->get_version_string());
$$ = ast_precision_high;
}
"precision qualifier forbidden "
"in %s (1.30 or later "
"required)\n",
- state->version_string);
+ state->get_version_string());
$$ = ast_precision_medium;
}
"precision qualifier forbidden "
"in %s (1.30 or later "
"required)\n",
- state->version_string);
+ state->get_version_string());
$$ = ast_precision_low;
}
ralloc_free(mem);
}
+ /**
+ * Generate a string representing the GLSL version currently being compiled
+ * (useful for error messages).
+ */
+ const char *get_version_string()
+ {
+ return glsl_compute_version_string(this, this->es_shader,
+ this->language_version);
+ }
+
struct gl_context *const ctx;
void *scanner;
exec_list translation_unit;
bool es_shader;
unsigned language_version;
- const char *version_string;
enum _mesa_glsl_parser_targets target;
/**