summaryrefslogtreecommitdiffstats
path: root/src/compiler
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2016-03-08 19:03:11 -0800
committerKenneth Graunke <[email protected]>2016-03-10 11:23:26 -0800
commite032e4ad5a3f73dffb1a8babcfd333954a574ffa (patch)
treee8bfcb081c2857e59826cf9206248129741a1971 /src/compiler
parent84f857bef79d66d229a001554719e9299ebe0881 (diff)
glcpp: Fix locations when encounting "#<NEWLINE>".
We were failing to reset our location tracking when encountering a NEWLINE in the <HASH> state. Rip the code from the <*>{NEWLINE} rule, which handles this properly. Also, update 146-version-first-hash.c to have proper expectations. When I introduced the test, I didn't verify that the line/column numbers were correct, and it turns out they varied based on the type of newline ending. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94447 Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Iago Toral Quiroga <[email protected]>
Diffstat (limited to 'src/compiler')
-rw-r--r--src/compiler/glsl/glcpp/glcpp-lex.l3
-rw-r--r--src/compiler/glsl/glcpp/tests/146-version-first-hash.c.expected2
2 files changed, 4 insertions, 1 deletions
diff --git a/src/compiler/glsl/glcpp/glcpp-lex.l b/src/compiler/glsl/glcpp/glcpp-lex.l
index 071918e5692..d09441aac88 100644
--- a/src/compiler/glsl/glcpp/glcpp-lex.l
+++ b/src/compiler/glsl/glcpp/glcpp-lex.l
@@ -320,6 +320,9 @@ HEXADECIMAL_INTEGER 0[xX][0-9a-fA-F]+[uU]?
<HASH>{NEWLINE} {
BEGIN INITIAL;
+ yyextra->space_tokens = 0;
+ yylineno++;
+ yycolumn = 0;
RETURN_TOKEN_NEVER_SKIP (NEWLINE);
}
diff --git a/src/compiler/glsl/glcpp/tests/146-version-first-hash.c.expected b/src/compiler/glsl/glcpp/tests/146-version-first-hash.c.expected
index 2872090333d..e8e449793fd 100644
--- a/src/compiler/glsl/glcpp/tests/146-version-first-hash.c.expected
+++ b/src/compiler/glsl/glcpp/tests/146-version-first-hash.c.expected
@@ -1,3 +1,3 @@
-0:1(3): preprocessor error: #version must appear on the first line
+0:2(1): preprocessor error: #version must appear on the first line