summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarl Worth <cworth@cworth.org>2010-08-23 09:29:49 -0700
committerCarl Worth <cworth@cworth.org>2010-08-23 10:48:10 -0700
commitff10d239af3b48f4ba13a0ef947e97d3302ea818 (patch)
treed9e1e2f9d7ffd7bf4e7be897b5a1792b44a00d44 /src
parent2a9e791fdeb45080a98042d41c153ea19c17caae (diff)
glcpp: Fix source numbers set with "#line LINE_NUMBER SOURCE_NUMBER"
Previously, the YY_USER_ACTION was overwriting the yylloc->source value in every action, (after that value had been carefully set by the handling of the #line directive). Instead, we want to initialize it once in YY_USER_INIT and then not touch it at all in YY_USER_ACTION.
Diffstat (limited to 'src')
-rw-r--r--src/glsl/glcpp/glcpp-lex.l9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/glsl/glcpp/glcpp-lex.l b/src/glsl/glcpp/glcpp-lex.l
index c81bd044a2..a90430f255 100644
--- a/src/glsl/glcpp/glcpp-lex.l
+++ b/src/glsl/glcpp/glcpp-lex.l
@@ -38,12 +38,17 @@ void glcpp_set_column (int column_no , yyscan_t yyscanner);
#define YY_USER_ACTION \
do { \
- yylloc->source = 0; \
yylloc->first_column = yycolumn + 1; \
yylloc->first_line = yylineno; \
yycolumn += yyleng; \
} while(0);
-#define YY_USER_INIT yylineno = 1; yycolumn = 1;
+
+#define YY_USER_INIT \
+ do { \
+ yylineno = 1; \
+ yycolumn = 1; \
+ yylloc->source = 0; \
+ } while(0)
%}
%option bison-bridge bison-locations reentrant noyywrap