glcpp: Make undefined macros illegal in #if and #elif for GLES3
Simply emitting a nicely-formatted error message if any undefined macro is encountered in a parser context expecting an expression. With this commit, the following piglit test now passes: spec/glsl-es-3.00/compiler/undefined-macro.vert Reviewed-by: Matt Turner <mattst88@gmail.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
This commit is contained in:
@@ -363,6 +363,8 @@ integer_constant:
|
|||||||
expression:
|
expression:
|
||||||
integer_constant
|
integer_constant
|
||||||
| IDENTIFIER {
|
| IDENTIFIER {
|
||||||
|
if (parser->is_gles)
|
||||||
|
glcpp_error(& @1, parser, "undefined macro %s in expression (illegal in GLES)", $1);
|
||||||
$$ = 0;
|
$$ = 0;
|
||||||
}
|
}
|
||||||
| expression OR expression {
|
| expression OR expression {
|
||||||
|
Reference in New Issue
Block a user