+2004-02-19 Giovanni Bajo <giovannibajo@gcc.gnu.org>
+
+ PR c++/14181
+ * parser.c (cp_parser_new_expression): Parse an ill-formed
+ direct-new-declarator after a parenthesized type-id to emit good
+ diagnostic.
+
2004-02-18 Kazu Hirata <kazu@cs.umass.edu>
* cp-tree.def, cvt.c: Update copyright.
type = cp_parser_type_id (parser);
/* Look for the closing `)'. */
cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'");
+ /* There should not be a direct-new-declarator in this production,
+ but GCC used to allowed this, so we check and emit a sensible error
+ message for this case. */
+ if (cp_lexer_next_token_is (parser->lexer, CPP_OPEN_SQUARE))
+ {\r
+ error ("array bound forbidden after parenthesized type-id");\r
+ inform ("try removing the parentheses around the type-id");\r
+ cp_parser_direct_new_declarator (parser);
+ }
}
/* Otherwise, there must be a new-type-id. */
else