mirror of git://gcc.gnu.org/git/gcc.git
PR c++/51541 - ICE with invalid identifier in alias-declaration
gcc/cp/ PR c++/51541 * parser.c (cp_parser_alias_declaration): Get out early upon errors in the identifier or the attributes. gcc/testsuite/ PR c++/51541 * g++.dg/cpp0x/alias-decl-18.C: New test. From-SVN: r182935
This commit is contained in:
parent
c3e686a350
commit
45a29025db
|
|
@ -1,3 +1,9 @@
|
||||||
|
2012-01-05 Dodji Seketeli <dodji@redhat.com>
|
||||||
|
|
||||||
|
PR c++/51541
|
||||||
|
* parser.c (cp_parser_alias_declaration): Get out early upon
|
||||||
|
errors in the identifier or the attributes.
|
||||||
|
|
||||||
2012-01-04 Paolo Carlini <paolo.carlini@oracle.com>
|
2012-01-04 Paolo Carlini <paolo.carlini@oracle.com>
|
||||||
|
|
||||||
PR c++/51064
|
PR c++/51064
|
||||||
|
|
|
||||||
|
|
@ -15046,7 +15046,13 @@ cp_parser_alias_declaration (cp_parser* parser)
|
||||||
cp_parser_require_keyword (parser, RID_USING, RT_USING);
|
cp_parser_require_keyword (parser, RID_USING, RT_USING);
|
||||||
id_location = cp_lexer_peek_token (parser->lexer)->location;
|
id_location = cp_lexer_peek_token (parser->lexer)->location;
|
||||||
id = cp_parser_identifier (parser);
|
id = cp_parser_identifier (parser);
|
||||||
|
if (id == error_mark_node)
|
||||||
|
return error_mark_node;
|
||||||
|
|
||||||
attributes = cp_parser_attributes_opt (parser);
|
attributes = cp_parser_attributes_opt (parser);
|
||||||
|
if (attributes == error_mark_node)
|
||||||
|
return error_mark_node;
|
||||||
|
|
||||||
cp_parser_require (parser, CPP_EQ, RT_EQ);
|
cp_parser_require (parser, CPP_EQ, RT_EQ);
|
||||||
|
|
||||||
/* Now we are going to parse the type-id of the declaration. */
|
/* Now we are going to parse the type-id of the declaration. */
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,8 @@
|
||||||
|
2012-01-05 Dodji Seketeli <dodji@redhat.com>
|
||||||
|
|
||||||
|
PR c++/51541
|
||||||
|
* g++.dg/cpp0x/alias-decl-18.C: New test.
|
||||||
|
|
||||||
|
|
||||||
2012-01-05 Eric Botcazou <ebotcazou@adacore.com>
|
2012-01-05 Eric Botcazou <ebotcazou@adacore.com>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
// Origin: PR c++/51541
|
||||||
|
// { dg-options -std=c++11 }
|
||||||
|
|
||||||
|
template<typename Z> using ::T = void(int n); // { dg-error "" }
|
||||||
|
template<typename Z> using operator int = void(int n); // { dg-error "" }
|
||||||
|
template<typename Z> using typename U = void; // { dg-error "" }
|
||||||
|
template<typename Z> using typename ::V = void(int n); // { dg-error "" }
|
||||||
|
template<typename Z> using typename ::operator bool = void(int n); // { dg-error "" }
|
||||||
|
using foo __attribute__((aligned(4)) = int; // { dg-error "" }
|
||||||
Loading…
Reference in New Issue