Commit 9bd98b5a by Jason Merrill Committed by Jason Merrill

re PR c++/51586 (ICE with invalid union)

	PR c++/51586
	* parser.c (cp_parser_check_class_key): Handle error_mark_node.

From-SVN: r182442
parent c0425f32
2011-12-17 Jason Merrill <jason@redhat.com>
PR c++/51586
* parser.c (cp_parser_check_class_key): Handle error_mark_node.
PR c++/51587
* decl.c (start_enum): Avoid using ENUM_UNDERLYING_TYPE on a
non-enum.
......
......@@ -22624,6 +22624,8 @@ cp_parser_token_is_class_key (cp_token* token)
static void
cp_parser_check_class_key (enum tag_types class_key, tree type)
{
if (type == error_mark_node)
return;
if ((TREE_CODE (type) == UNION_TYPE) != (class_key == union_type))
{
permerror (input_location, "%qs tag used in naming %q#T",
......
2011-12-17 Jason Merrill <jason@redhat.com>
PR c++/51586
* g++.dg/lookup/nested2.C: New.
PR c++/51587
* g++.dg/parse/enum6.C: New.
......
// PR c++/51586
union U
{
union U { int i; }; // { dg-error "same name" }
};
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment