diff options
Diffstat (limited to 'gcc/c-parser.c')
-rw-r--r-- | gcc/c-parser.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/c-parser.c b/gcc/c-parser.c index 5cb1982..8844769 100644 --- a/gcc/c-parser.c +++ b/gcc/c-parser.c @@ -5089,6 +5089,17 @@ c_parser_postfix_expression (c_parser *parser) switch (c_parser_peek_token (parser)->type) { case CPP_NUMBER: + expr.value = c_parser_peek_token (parser)->value; + expr.original_code = ERROR_MARK; + loc = c_parser_peek_token (parser)->location; + c_parser_consume_token (parser); + if (TREE_CODE (expr.value) == FIXED_CST + && !targetm.fixed_point_supported_p ()) + { + error_at (loc, "fixed-point types not supported for this target"); + expr.value = error_mark_node; + } + break; case CPP_CHAR: case CPP_CHAR16: case CPP_CHAR32: |