re PR c++/59120 ([c++11] ICE with invalid template alias)

/cp
2014-04-28  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/59120
	* parser.c (cp_parser_alias_declaration): Check return value of
	cp_parser_require.

/testsuite
2014-04-28  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/59120
	* g++.dg/cpp0x/alias-decl-43.C: New.

From-SVN: r209857
This commit is contained in:
Paolo Carlini 2014-04-28 12:32:06 +00:00 committed by Paolo Carlini
parent 2cbf2d9595
commit a3879fa1a8
4 changed files with 17 additions and 9 deletions

View File

@ -1,3 +1,9 @@
2014-04-28 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/59120
* parser.c (cp_parser_alias_declaration): Check return value of
cp_parser_require.
2014-04-24 Jakub Jelinek <jakub@redhat.com>
* parser.c (cp_parser_omp_atomic): Allow seq_cst before

View File

@ -16142,15 +16142,8 @@ cp_parser_alias_declaration (cp_parser* parser)
if (parser->num_template_parameter_lists)
parser->type_definition_forbidden_message = saved_message;
if (type == error_mark_node)
{
cp_parser_skip_to_end_of_block_or_statement (parser);
return error_mark_node;
}
cp_parser_require (parser, CPP_SEMICOLON, RT_SEMICOLON);
if (cp_parser_error_occurred (parser))
if (type == error_mark_node
|| !cp_parser_require (parser, CPP_SEMICOLON, RT_SEMICOLON))
{
cp_parser_skip_to_end_of_block_or_statement (parser);
return error_mark_node;

View File

@ -1,3 +1,8 @@
2014-04-28 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/59120
* g++.dg/cpp0x/alias-decl-43.C: New.
2014-03-27 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/59604

View File

@ -0,0 +1,4 @@
// PR c++/59120
// { dg-do compile { target c++11 } }
template<typename T> using X = int T::T*; // { dg-error "expected" }