https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101853
Bug ID: 101853 Summary: [12 Regression] g++.dg/modules/xtreme-header-5_b.C ICE 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: hp at gcc dot gnu.org CC: nathan at acm dot org, redi at gcc dot gnu.org Target Milestone: --- Host: x86_64-linux Target: cris-elf With c8b024fa4b76bfd914e96dd3cecfbb6ee8e91316 (r12-2773) the g++.dg/modules/xtreme-header-5_b.C test started to fail with an ICE for cris-elf: Running /X/gcc/testsuite/g++.dg/modules/modules.exp ... ... FAIL: g++.dg/modules/xtreme-header-5_b.C -std=c++2a (internal compiler error) FAIL: g++.dg/modules/xtreme-header-5_b.C -std=c++2a (test for excess errors) ... with the following in g++.log (edited for brevity) spawn -ignore SIGHUP /X/gccobj/gcc/testsuite/g++/../../xg++ -B/X/gccobj/gcc/testsuite/g++/../../ /X/gcc/gcc/testsuite/g++.dg/modules/xtreme-header-5_b.C -fdiagnostics-plain-output -nostdinc++ -I/X/gccobj/cris-elf/libstdc++-v3/include/cris-elf -I/X/gccobj/cris-elf/libstdc++-v3/include -I/X/gcc/libstdc++-v3/libsupc++ -I/X/gcc/libstdc++-v3/include/backward -I/X/gcc/libstdc++-v3/testsuite/util -fmessage-length=0 -std=c++2a -pedantic-errors -Wno-long-long -fmodules-ts -fno-module-lazy -S -isystem /X/gccobj/cris-elf/./newlib/targ-include -isystem /X/gcc/newlib/libc/include -o xtreme-header-5_b.s /X/gcc/gcc/testsuite/g++.dg/modules/xtreme-header-5_b.C:4:30: internal compiler error: in add_mergeable_specialization, at cp/pt.c:30073 0x883218 add_mergeable_specialization(bool, bool, spec_entry*, tree_node*, unsigned int) /X/gcc/gcc/cp/pt.c:30073 0x7dc4f7 trees_in::decl_value() /X/gcc/gcc/cp/module.cc:8081 0x7dd864 trees_in::tree_node(bool) /X/gcc/gcc/cp/module.cc:9161 0x7e5f7b module_state::read_cluster(unsigned int) /X/gcc/gcc/cp/module.cc:14819 0x7e633d module_state::load_section(unsigned int, binding_slot*) /X/gcc/gcc/cp/module.cc:18090 0x7e7646 module_state::read_language(bool) /X/gcc/gcc/cp/module.cc:18019 0x7e7864 direct_import /X/gcc/gcc/cp/module.cc:18885 0x8603b8 cp_parser_translation_unit /X/gcc/gcc/cp/parser.c:4925 0x8603b8 c_parse_file() /X/gcc/gcc/cp/parser.c:46181 0x9da2a1 c_common_parse_file() /X/gcc/gcc/c-family/c-opts.c:1223 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions. compiler exited with status 1 I don't see this for other targets on gcc-testresults@ (unless you count i586-unknown-freebsd11.4 / https://gcc.gnu.org/pipermail/gcc-testresults/2021-August/712406.html where about all modules test fail with ICE). Also, it looks like -save-temps doesn't help here, so please instruct on how to help me help you with the equivalent information. It's unlikely that r12-2773 is the cause rather than exposing the bug, being a libstdc++ commit. Looking at the code cp/pt.c:30073, where there's a gcc_assert on an expected empty hash-slot IIUC, makes me think this something like hashing on uninitialized data or a plain bad hash).