glsl: Fix yylloc.source propagation in YYLLOC_DEFAULT

Currently, it's always initialized to 0, but we should take the value from
the grouping passed to the macro. This way parser will have the full
location info, and errors originating from it will show the correct
source file number.

Fixes: a0cfe8c4 ("glsl: Fix missing initialization of yylloc.source")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9229
Signed-off-by: Sviatoslav Peleshko <sviatoslav.peleshko@globallogic.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23966>
(cherry picked from commit 791785c2b4)
This commit is contained in:
Sviatoslav Peleshko 2023-07-03 09:45:29 +03:00 committed by Eric Engestrom
parent a5e9f7633a
commit d5ff432d7d
3 changed files with 6 additions and 4 deletions

View file

@ -3757,7 +3757,7 @@
"description": "glsl: Fix yylloc.source propagation in YYLLOC_DEFAULT",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "a0cfe8c44085032fd982bbbff1f02252ffaa7114"
},

View file

@ -91,6 +91,7 @@ do { \
(Current).first_column = YYRHSLOC(Rhs, 1).first_column; \
(Current).last_line = YYRHSLOC(Rhs, N).last_line; \
(Current).last_column = YYRHSLOC(Rhs, N).last_column; \
(Current).source = YYRHSLOC(Rhs, N).source; \
} \
else \
{ \
@ -98,8 +99,8 @@ do { \
YYRHSLOC(Rhs, 0).last_line; \
(Current).first_column = (Current).last_column = \
YYRHSLOC(Rhs, 0).last_column; \
(Current).source = YYRHSLOC(Rhs, 0).source; \
} \
(Current).source = 0; \
} while (0)
struct token {

View file

@ -998,6 +998,7 @@ do { \
(Current).last_line = YYRHSLOC(Rhs, N).last_line; \
(Current).last_column = YYRHSLOC(Rhs, N).last_column; \
(Current).path = YYRHSLOC(Rhs, N).path; \
(Current).source = YYRHSLOC(Rhs, N).source; \
} \
else \
{ \
@ -1005,9 +1006,9 @@ do { \
YYRHSLOC(Rhs, 0).last_line; \
(Current).first_column = (Current).last_column = \
YYRHSLOC(Rhs, 0).last_column; \
(Current).path = YYRHSLOC(Rhs, 0).path; \
(Current).path = YYRHSLOC(Rhs, 0).path; \
(Current).source = YYRHSLOC(Rhs, 0).source; \
} \
(Current).source = 0; \
} while (0)
/**