summaryrefslogtreecommitdiff
path: root/gcc/c-parser.c
diff options
context:
space:
mode:
authorbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2009-02-05 08:44:42 +0000
committerbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2009-02-05 08:44:42 +0000
commit521c00a042cbcd8ea9772e9c1850fdd76dd77457 (patch)
tree90dcda4efd7650714636b9765bbc578dbffd83ba /gcc/c-parser.c
parenta3237183ed12392595cd42b77db6dd66565c2fd1 (diff)
downloadgcc-521c00a042cbcd8ea9772e9c1850fdd76dd77457.tar.gz
2009-02-05 Basile Starynkevitch <basile@starynkevitch.net>
MELT branch merged with trunk r143951 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@143959 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/c-parser.c')
-rw-r--r--gcc/c-parser.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/gcc/c-parser.c b/gcc/c-parser.c
index 5cb1982a544..199a5a72f3f 100644
--- a/gcc/c-parser.c
+++ b/gcc/c-parser.c
@@ -4949,13 +4949,6 @@ c_parser_sizeof_expression (c_parser *parser)
/* sizeof ( type-name ). */
skip_evaluation--;
in_sizeof--;
- if (type_name->declarator->kind == cdk_array
- && type_name->declarator->u.array.vla_unspec_p)
- {
- /* C99 6.7.5.2p4 */
- error_at (expr_loc,
- "%<[*]%> not allowed in other than a declaration");
- }
return c_expr_sizeof_type (type_name);
}
else
@@ -5089,6 +5082,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: