https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102642
Bug ID: 102642
Summary: [12 Regression] ICE in get, at cgraph.h:2776
Product: gcc
Version: 12.0
Status: UNCONFIRMED
Keywords: ice-on-invalid-code
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: asolokha at gmx dot com
Target Milestone: ---
g++-12.0.0-alpha20211003 snapshot (g:d91056851c5c60f226e3192fb955d018b53eb66f)
ICEs when compiling the following testcase, reduced from
test/SemaCXX/cxx11-thread-local.cpp from the clang 12.0.0 test suite:
thread_local int *z;
void f() {
extern thread_local int z;
}
% g++-12.0.0 -c ynw1mjy5.cpp
ynw1mjy5.cpp:4:27: error: conflicting declaration 'int z'
4 | extern thread_local int z;
| ^
ynw1mjy5.cpp:1:19: note: previous declaration as 'int* z'
1 | thread_local int *z;
| ^
ynw1mjy5.cpp: In function 'void f()':
ynw1mjy5.cpp:4:27: internal compiler error: in get, at cgraph.h:2776
4 | extern thread_local int z;
| ^
0x8774d6 varpool_node::get(tree_node const*)
/var/tmp/portage/sys-devel/gcc-12.0.0_alpha20211003/work/gcc-12-20211003/gcc/cgraph.h:2776
0x877571 varpool_node::get(tree_node const*)
/var/tmp/portage/sys-devel/gcc-12.0.0_alpha20211003/work/gcc-12-20211003/gcc/cgraph.h:463
0x877571 varpool_node::get_create(tree_node*)
/var/tmp/portage/sys-devel/gcc-12.0.0_alpha20211003/work/gcc-12-20211003/gcc/varpool.c:145
0x144cd3c set_decl_tls_model(tree_node*, tls_model)
/var/tmp/portage/sys-devel/gcc-12.0.0_alpha20211003/work/gcc-12-20211003/gcc/tree.c:939
0xa89ddf push_local_extern_decl_alias(tree_node*)
/var/tmp/portage/sys-devel/gcc-12.0.0_alpha20211003/work/gcc-12-20211003/gcc/cp/name-lookup.c:3478
0xa8ab34 do_pushdecl
/var/tmp/portage/sys-devel/gcc-12.0.0_alpha20211003/work/gcc-12-20211003/gcc/cp/name-lookup.c:3831
0xa8cdbb do_pushdecl
/var/tmp/portage/sys-devel/gcc-12.0.0_alpha20211003/work/gcc-12-20211003/gcc/cp/name-lookup.c:3631
0xa8cdbb pushdecl(tree_node*, bool)
/var/tmp/portage/sys-devel/gcc-12.0.0_alpha20211003/work/gcc-12-20211003/gcc/cp/name-lookup.c:3854
0xa8cdbb maybe_push_decl(tree_node*)
/var/tmp/portage/sys-devel/gcc-12.0.0_alpha20211003/work/gcc-12-20211003/gcc/cp/name-lookup.c:4160
0x9de1eb start_decl(cp_declarator const*, cp_decl_specifier_seq*, int,
tree_node*, tree_node*, tree_node**)
/var/tmp/portage/sys-devel/gcc-12.0.0_alpha20211003/work/gcc-12-20211003/gcc/cp/decl.c:5690
0xad8767 cp_parser_init_declarator
/var/tmp/portage/sys-devel/gcc-12.0.0_alpha20211003/work/gcc-12-20211003/gcc/cp/parser.c:22532
0xab2bc4 cp_parser_simple_declaration
/var/tmp/portage/sys-devel/gcc-12.0.0_alpha20211003/work/gcc-12-20211003/gcc/cp/parser.c:15142
0xab4ccd cp_parser_declaration_statement
/var/tmp/portage/sys-devel/gcc-12.0.0_alpha20211003/work/gcc-12-20211003/gcc/cp/parser.c:14223
0xab5484 cp_parser_statement
/var/tmp/portage/sys-devel/gcc-12.0.0_alpha20211003/work/gcc-12-20211003/gcc/cp/parser.c:12315
0xab635d cp_parser_statement_seq_opt
/var/tmp/portage/sys-devel/gcc-12.0.0_alpha20211003/work/gcc-12-20211003/gcc/cp/parser.c:12722
0xab6438 cp_parser_compound_statement
/var/tmp/portage/sys-devel/gcc-12.0.0_alpha20211003/work/gcc-12-20211003/gcc/cp/parser.c:12671
0xad7188 cp_parser_function_body
/var/tmp/portage/sys-devel/gcc-12.0.0_alpha20211003/work/gcc-12-20211003/gcc/cp/parser.c:24902
0xad7188 cp_parser_ctor_initializer_opt_and_function_body
/var/tmp/portage/sys-devel/gcc-12.0.0_alpha20211003/work/gcc-12-20211003/gcc/cp/parser.c:24953
0xad7f0a cp_parser_function_definition_after_declarator
/var/tmp/portage/sys-devel/gcc-12.0.0_alpha20211003/work/gcc-12-20211003/gcc/cp/parser.c:31083
0xad928b cp_parser_function_definition_from_specifiers_and_declarator
/var/tmp/portage/sys-devel/gcc-12.0.0_alpha20211003/work/gcc-12-20211003/gcc/cp/parser.c:30999