https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84812
Bug ID: 84812 Summary: [8 Regression] ICE with local function Product: gcc Version: 8.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: reichelt at gcc dot gnu.org CC: nathan at gcc dot gnu.org Target Milestone: --- The following valid code snippet triggers an ICE on trunk: ============================== struct A { void foo(); }; struct B { void foo(); }; struct C : A, B { C() { void foo(); } }; ============================== bug.cc: In constructor 'C::C()': bug.cc:8:14: internal compiler error: tree check: expected tree that contains 'decl common' structure, have 'tree_list' in set_local_extern_decl_linkage, at cp/name-lookup.c:2886 void foo(); ^ 0x78c545 tree_contains_struct_check_failed(tree_node const*, tree_node_structure_enum, char const*, int, char const*) ../../gcc/gcc/tree.c:9507 0x623f07 contains_struct_check(tree_node*, tree_node_structure_enum, char const*, int, char const*) ../../gcc/gcc/tree.h:3246 0x623f07 set_local_extern_decl_linkage ../../gcc/gcc/cp/name-lookup.c:2886 0x623f07 do_pushdecl ../../gcc/gcc/cp/name-lookup.c:3011 0x623f07 pushdecl(tree_node*, bool) ../../gcc/gcc/cp/name-lookup.c:3154 0x8aa093 start_decl(cp_declarator const*, cp_decl_specifier_seq*, int, tree_node*, tree_node*, tree_node**) ../../gcc/gcc/cp/decl.c:5197 0x93ae39 cp_parser_init_declarator ../../gcc/gcc/cp/parser.c:19598 0x942578 cp_parser_simple_declaration ../../gcc/gcc/cp/parser.c:13057 0x943388 cp_parser_block_declaration ../../gcc/gcc/cp/parser.c:12882 0x943db9 cp_parser_declaration_statement ../../gcc/gcc/cp/parser.c:12476 0x922433 cp_parser_statement ../../gcc/gcc/cp/parser.c:10925 0x9233a0 cp_parser_statement_seq_opt ../../gcc/gcc/cp/parser.c:11274 0x923477 cp_parser_compound_statement ../../gcc/gcc/cp/parser.c:11228 0x939f00 cp_parser_function_body ../../gcc/gcc/cp/parser.c:21776 0x939f00 cp_parser_ctor_initializer_opt_and_function_body ../../gcc/gcc/cp/parser.c:21813 0x93a7b0 cp_parser_function_definition_after_declarator ../../gcc/gcc/cp/parser.c:26828 0x93c49c cp_parser_late_parsing_for_member ../../gcc/gcc/cp/parser.c:27708 0x92e6c3 cp_parser_class_specifier_1 ../../gcc/gcc/cp/parser.c:22752 0x92fad9 cp_parser_class_specifier ../../gcc/gcc/cp/parser.c:22778 0x92fad9 cp_parser_type_specifier ../../gcc/gcc/cp/parser.c:16774 Please submit a full bug report, [etc.] The regression was introduced between 2017-05-19 and 2017-05-25. Nathan, this might be caused by your name-lookup changes. Would you mind having a look?