glcpp: Add an explicit diagnostic for #if with no expression.
This is more clear than the previously-generated diagnostic which was something confusing like "enexpected newline". This change makse test 080-if-witout-expression.c now pass.
This commit is contained in:
@@ -241,6 +241,16 @@ control_line:
|
|||||||
parser->skip_stack->type = SKIP_TO_ENDIF;
|
parser->skip_stack->type = SKIP_TO_ENDIF;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
| HASH_IF NEWLINE {
|
||||||
|
/* #if without an expression is only an error if we
|
||||||
|
* are not skipping */
|
||||||
|
if (parser->skip_stack == NULL ||
|
||||||
|
parser->skip_stack->type == SKIP_NO_SKIP)
|
||||||
|
{
|
||||||
|
glcpp_error(& @1, parser, "#if with no expression");
|
||||||
|
}
|
||||||
|
_glcpp_parser_skip_stack_push_if (parser, & @1, 0);
|
||||||
|
}
|
||||||
| HASH_IFDEF IDENTIFIER junk NEWLINE {
|
| HASH_IFDEF IDENTIFIER junk NEWLINE {
|
||||||
macro_t *macro = hash_table_find (parser->defines, $2);
|
macro_t *macro = hash_table_find (parser->defines, $2);
|
||||||
talloc_free ($2);
|
talloc_free ($2);
|
||||||
|
@@ -1,3 +1,6 @@
|
|||||||
0:2(1): preprocessor error: #if with no expression
|
0:2(1): preprocessor error: #if with no expression
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user