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 <mattst88@gmail.com> Reviewed-by: Carl Worth <cworth@cworth.org> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
060e696799
commit
9ad71c44fa
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in New Issue