From 9ad71c44fa316314551b8540241e81b296d35f44 Mon Sep 17 00:00:00 2001 From: Fabian Bieler Date: Tue, 24 Jul 2012 15:36:46 +0200 Subject: [PATCH] glcpp: don't push #line directives into next line By moving the HASH_LINE rule out of control_line: and into line:, we avoid adding control_line's additional \n (as seen in the first hunk). mattst88: Carl and I determined independently of Fabian that the 091 test needed to be modified identically to this, and our patch to fix the test was more complicated. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=51506 Reviewed-by: Matt Turner Reviewed-by: Carl Worth Reviewed-by: Kenneth Graunke --- src/glsl/glcpp/glcpp-parse.y | 16 ++++++++-------- src/glsl/glcpp/tests/091-hash-line.c.expected | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/glsl/glcpp/glcpp-parse.y b/src/glsl/glcpp/glcpp-parse.y index 16d29650dfe..9628637dafc 100644 --- a/src/glsl/glcpp/glcpp-parse.y +++ b/src/glsl/glcpp/glcpp-parse.y @@ -190,6 +190,14 @@ line: control_line { ralloc_asprintf_rewrite_tail (&parser->output, &parser->output_length, "\n"); } +| HASH_LINE pp_tokens NEWLINE { + if (parser->skip_stack == NULL || + parser->skip_stack->type == SKIP_NO_SKIP) + { + _glcpp_parser_expand_and_lex_from (parser, + LINE_EXPANDED, $2); + } + } | text_line { _glcpp_parser_print_expanded_token_list (parser, $1); ralloc_asprintf_rewrite_tail (&parser->output, &parser->output_length, "\n"); @@ -244,14 +252,6 @@ control_line: } ralloc_free ($2); } -| HASH_LINE pp_tokens NEWLINE { - if (parser->skip_stack == NULL || - parser->skip_stack->type == SKIP_NO_SKIP) - { - _glcpp_parser_expand_and_lex_from (parser, - LINE_EXPANDED, $2); - } - } | HASH_IF conditional_tokens NEWLINE { /* Be careful to only evaluate the 'if' expression if * we are not skipping. When we are skipping, we diff --git a/src/glsl/glcpp/tests/091-hash-line.c.expected b/src/glsl/glcpp/tests/091-hash-line.c.expected index 976d178dfb2..48af0b296e4 100644 --- a/src/glsl/glcpp/tests/091-hash-line.c.expected +++ b/src/glsl/glcpp/tests/091-hash-line.c.expected @@ -2,7 +2,6 @@ 0:25(1): preprocessor error: #error line 25 error 1:0(1): preprocessor error: #error source 1, line 0 error 2:30(1): preprocessor error: #error source 2, line 30 error - #line 0 #line 25 @@ -17,3 +16,4 @@ #line 90 2 #line 180 2 + -- 2.30.2