https://gcc.gnu.org/bugzilla/show_bug.cgi?id=124501
Bug ID: 124501
Summary: ICE: in write_compact_number, at cp/mangle.cc:1779
Product: gcc
Version: 16.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: suyuchang at whu dot edu.cn
Target Milestone: ---
Code:
struct a {
} a ::operator class : virtual a {
Command:
g++ test.cpp
Output:
test.cpp:2:22: internal compiler error: in write_compact_number, at
cp/mangle.cc:1779
2 | } a ::operator class : virtual a {
| ^
0x2cb8d8e internal_error(char const*, ...)
../../gcc-trunk/gcc/diagnostic-global-context.cc:787
0xc05055 fancy_abort(char const*, int, char const*)
../../gcc-trunk/gcc/diagnostics/context.cc:1813
0x896b58 write_compact_number
../../gcc-trunk/gcc/cp/mangle.cc:1779
0x896b58 write_compact_number
../../gcc-trunk/gcc/cp/mangle.cc:1777
0xd7cc72 write_unnamed_type_name
../../gcc-trunk/gcc/cp/mangle.cc:1829
0xd7cc72 write_unqualified_name
../../gcc-trunk/gcc/cp/mangle.cc:1604
0xd865b6 write_nested_name
../../gcc-trunk/gcc/cp/mangle.cc:1292
0xd8193f write_class_enum_type
../../gcc-trunk/gcc/cp/mangle.cc:3173
0xd8193f write_type
../../gcc-trunk/gcc/cp/mangle.cc:2581
0xd876e9 mangle_special_for_type
../../gcc-trunk/gcc/cp/mangle.cc:4879
0xc4f6ad get_vtable_name
../../gcc-trunk/gcc/cp/class.cc:803
0xc4f6ad get_vtable_decl(tree_node*, int)
../../gcc-trunk/gcc/cp/class.cc:886
0xc66309 modify_all_vtables
../../gcc-trunk/gcc/cp/class.cc:3147
0xc66309 finish_struct_1(tree_node*)
../../gcc-trunk/gcc/cp/class.cc:8034
0xc67ab4 finish_struct(tree_node*, tree_node*)
../../gcc-trunk/gcc/cp/class.cc:8314
0xe38d0d cp_parser_class_specifier
../../gcc-trunk/gcc/cp/parser.cc:29733
0xe3a38f cp_parser_type_specifier
../../gcc-trunk/gcc/cp/parser.cc:22337
0xe3a768 cp_parser_type_specifier_seq
../../gcc-trunk/gcc/cp/parser.cc:27993
0xe4465d cp_parser_conversion_type_id
../../gcc-trunk/gcc/cp/parser.cc:19636
0xe4465d cp_parser_conversion_function_id
../../gcc-trunk/gcc/cp/parser.cc:19597
/home/syc/gcc-16.0/libexec/gcc/x86_64-pc-linux-gnu/16.0.1/cc1plus -quiet
-imultiarch x86_64-linux-gnu -D_GNU_SOURCE test.cpp -quiet -dumpdir a-
-dumpbase test.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -o
/tmp/ccc8Vmva.s
Goes back to a while: https://godbolt.org/z/rEqW9az51
The test case was generated by a fuzzer.