And add a test case to ensure that this works. See 17f9beb6 for #if change. --- src/glsl/glcpp/glcpp-lex.l | 2 +- .../glcpp/tests/110-no-space-after-hash-elif.c | 3 +++ .../tests/110-no-space-after-hash-elif.c.expected | 4 ++++ 3 files changed, 8 insertions(+), 1 deletions(-) create mode 100644 src/glsl/glcpp/tests/110-no-space-after-hash-elif.c create mode 100644 src/glsl/glcpp/tests/110-no-space-after-hash-elif.c.expected
diff --git a/src/glsl/glcpp/glcpp-lex.l b/src/glsl/glcpp/glcpp-lex.l index 4f0dd34..fd28711 100644 --- a/src/glsl/glcpp/glcpp-lex.l +++ b/src/glsl/glcpp/glcpp-lex.l @@ -158,7 +158,7 @@ HEXADECIMAL_INTEGER 0[xX][0-9a-fA-F]+[uU]? return HASH_IF; } -{HASH}elif { +{HASH}elif/[^_a-zA-Z0-9] { yyextra->lexing_if = 1; yyextra->space_tokens = 0; return HASH_ELIF; diff --git a/src/glsl/glcpp/tests/110-no-space-after-hash-elif.c b/src/glsl/glcpp/tests/110-no-space-after-hash-elif.c new file mode 100644 index 0000000..6d7d0f3 --- /dev/null +++ b/src/glsl/glcpp/tests/110-no-space-after-hash-elif.c @@ -0,0 +1,3 @@ +#if 1 +#elif110 +#endif diff --git a/src/glsl/glcpp/tests/110-no-space-after-hash-elif.c.expected b/src/glsl/glcpp/tests/110-no-space-after-hash-elif.c.expected new file mode 100644 index 0000000..6d5e9d1 --- /dev/null +++ b/src/glsl/glcpp/tests/110-no-space-after-hash-elif.c.expected @@ -0,0 +1,4 @@ +0:2(2): preprocessor error: Invalid tokens after # + + + -- 1.7.8.6 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev