re PR c++/58563 ([c++11] ICE calling invalid destructor)

/cp
2013-10-01  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58563
	* parser.c (cp_parser_lookup_name): Check make_typename_type return
	value for error_mark_node.

/testsuite
2013-10-01  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58563
	* g++.dg/cpp0x/pr58563.C: New.

From-SVN: r203079
This commit is contained in:
Paolo Carlini 2013-10-01 18:45:12 +00:00 committed by Paolo Carlini
parent 25c606cb18
commit 4393907184
4 changed files with 21 additions and 1 deletions

View file

@ -1,3 +1,9 @@
2013-10-01 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/58563
* parser.c (cp_parser_lookup_name): Check make_typename_type return
value for error_mark_node.
2013-09-25 Tom Tromey <tromey@redhat.com>
* Make-lang.in (CXX_TREE_H, CXX_PARSER_H, CXX_PRETTY_PRINT_H):

View file

@ -21756,7 +21756,8 @@ cp_parser_lookup_name (cp_parser *parser, tree name,
is dependent. */
type = make_typename_type (parser->scope, name, tag_type,
/*complain=*/tf_error);
decl = TYPE_NAME (type);
if (type != error_mark_node)
decl = TYPE_NAME (type);
}
else if (is_template
&& (cp_parser_next_token_ends_template_argument_p (parser)

View file

@ -1,3 +1,8 @@
2013-10-01 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/58563
* g++.dg/cpp0x/pr58563.C: New.
2013-10-01 Vidya Praveen <vidyapraveen@arm.com>
* gcc.target/aarch64/vect_saddl_1.c: New.

View file

@ -0,0 +1,8 @@
// PR c++/58563
// { dg-do compile { target c++11 } }
template<int> void foo()
{
enum E {};
E().E::~T(); // { dg-error "not a class" }
}