Mesa (master): glcpp: Fix source numbers set with " #line LINE_NUMBER SOURCE_NUMBER"

Carl Worth cworth at kemper.freedesktop.org
Mon Aug 23 17:48:14 UTC 2010


Module: Mesa
Branch: master
Commit: ff10d239af3b48f4ba13a0ef947e97d3302ea818
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ff10d239af3b48f4ba13a0ef947e97d3302ea818

Author: Carl Worth <cworth at cworth.org>
Date:   Mon Aug 23 09:29:49 2010 -0700

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.

---

 src/glsl/glcpp/glcpp-lex.l |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/glsl/glcpp/glcpp-lex.l b/src/glsl/glcpp/glcpp-lex.l
index c81bd04..a90430f 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




More information about the mesa-commit mailing list