https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117782
Bug ID: 117782 Summary: template ICE in write_unscoped_name while using autofda bootstrap on aarch64 Product: gcc Version: 15.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: kugan at gcc dot gnu.org Target Milestone: --- Created attachment 59704 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=59704&action=edit testcase (gdb) bt #0 fancy_abort (file=0x3dd5b40 "../../gcc/gcc/cp/mangle.cc", line=1196, function=0x3dd5df0 "write_unscoped_name") at ../../gcc/gcc/diagnostic.cc:1502 #1 0x00000000010e425c in write_unscoped_name (decl=0xfffff7f80280) at ../../gcc/gcc/cp/mangle.cc:1196 #2 0x00000000010e42a0 in write_unscoped_template_name (decl=0xfffff7f80280) at ../../gcc/gcc/cp/mangle.cc:1214 #3 0x00000000010e3fcc in write_name (decl=0xfffff60a1400, ignore_local_scope=0) at ../../gcc/gcc/cp/mangle.cc:1121 #4 0x00000000010e2d18 in write_encoding (decl=0xfffff60a1400) at ../../gcc/gcc/cp/mangle.cc:938 #5 0x00000000010e2148 in write_mangled_name (decl=0xfffff60a1400, top_level=true) at ../../gcc/gcc/cp/mangle.cc:820 #6 0x00000000010f7468 in mangle_decl_string (decl=0xfffff60a1400) at ../../gcc/gcc/cp/mangle.cc:4427 #7 0x00000000010f74e4 in get_mangled_id (decl=0xfffff60a1400) at ../../gcc/gcc/cp/mangle.cc:4448 #8 0x00000000010f7894 in mangle_decl (decl=0xfffff60a1400) at ../../gcc/gcc/cp/mangle.cc:4486 #9 0x00000000021c7e30 in decl_assembler_name (decl=0xfffff60a1400) at ../../gcc/gcc/tree.cc:725 #10 0x000000000357ee80 in autofdo::string_table::get_index_by_decl (this=0x4d25e00, decl=0xfffff60a1400) at ../../gcc/gcc/auto-profile.cc:483 #11 0x000000000357efb8 in autofdo::string_table::get_index_by_decl (this=0x4d25e00, decl=0xfffff60a1600) at ../../gcc/gcc/auto-profile.cc:492 #12 0x000000000358061c in autofdo::autofdo_source_profile::get_function_instance_by_inline_stack (this=0x4d8faa0, stack=...) at ../../gcc/gcc/auto-profile.cc:892 #13 0x00000000035803c4 in autofdo::autofdo_source_profile::get_callsite_total_count (this=0x4d8faa0, edge=0xfffff5d212b0) at ../../gcc/gcc/auto-profile.cc:838 #14 0x0000000003583040 in afdo_callsite_hot_enough_for_early_inline (edge=0xfffff5d212b0) at ../../gcc/gcc/auto-profile.cc:1718 #15 0x0000000003753a80 in want_early_inline_function_p (e=0xfffff5d212b0) at ../../gcc/gcc/ipa-inline.cc:789 #16 0x000000000375b214 in early_inline_small_functions (node=0xfffff5d11ed0) at ../../gcc/gcc/ipa-inline.cc:3064 #17 0x000000000375b5ec in early_inliner (fun=0xfffff6070b40) at ../../gcc/gcc/ipa-inline.cc:3157 #18 0x000000000375b820 in (anonymous namespace)::pass_early_inline::execute (this=0x4d361c0, fun=0xfffff6070b40) at ../../gcc/gcc/ipa-inline.cc:3232 #19 0x0000000001be5810 in execute_one_pass (pass=0x4d361c0) at ../../gcc/gcc/passes.cc:2654 #20 0x0000000001be5ca4 in execute_pass_list_1 (pass=0x4d361c0) at ../../gcc/gcc/passes.cc:2763 #21 0x0000000001be5d50 in execute_pass_list (fn=0xfffff6070b40, pass=0x4d360a0) at ../../gcc/gcc/passes.cc:2774 #22 0x0000000001be3040 in do_per_function_toporder (callback=0x1be5d08 <execute_pass_list(function*, opt_pass*)>, data=0x4d360a0) at ../../gcc/gcc/passes.cc:1781 #23 0x0000000001be6bf8 in execute_ipa_pass_list (pass=0x4d36040) at ../../gcc/gcc/passes.cc:3113 #24 0x00000000015eca84 in ipa_passes () at ../../gcc/gcc/cgraphunit.cc:2214 #25 0x00000000015ecf50 in symbol_table::compile (this=0xfffff5c90000) at ../../gcc/gcc/cgraphunit.cc:2337 #26 0x00000000015ed6b4 in symbol_table::finalize_compilation_unit (this=0xfffff5c90000) at ../../gcc/gcc/cgraphunit.cc:2589 #27 0x0000000001d85cd4 in compile_file () at ../../gcc/gcc/toplev.cc:478 #28 0x0000000001d8a144 in do_compile () at ../../gcc/gcc/toplev.cc:2209 #29 0x0000000001d8a6b0 in toplev::main (this=0xfffffffff460, argc=8, argv=0xfffffffff5e8) at ../../gcc/gcc/toplev.cc:2369 #30 0x0000000003970f10 in main (argc=8, argv=0xfffffffff5e8) at ../../gcc/gcc/main.cc:39 #1 0x00000000010e425c in write_unscoped_name (decl=0xfffff7f80280) at ../../gcc/gcc/cp/mangle.cc:1196 1196 gcc_assert (context == global_namespace (gdb) l 1191 else 1192 { 1193 /* If not, it should be either in the global namespace, or directly 1194 in a local function scope. A lambda can also be mangled in the 1195 scope of a default argument. */ 1196 gcc_assert (context == global_namespace 1197 || TREE_CODE (context) == PARM_DECL 1198 || TREE_CODE (context) == FUNCTION_DECL); 1199 1200 write_unqualified_name (decl); (gdb) p context $1 = (tree) 0xfffff60450b8 (gdb) p debug_tree(context) <record_type 0xfffff60450b8 function asm_written cxx-odr-p type_1 type_5 type_6 QI size <integer_cst 0xfffff5c512f0 type <integer_type 0xfffff5d600a8 bitsizetype> constant 8> unit-size <integer_cst 0xfffff5c51308 type <integer_type 0xfffff5d60000 sizetype> constant 1> align:8 warn_if_not_align:0 symtab:-170393040 alias-set -1 canonical-type 0xfffff60450b8 fields <field_decl 0xfffff5d45878 D.4462 type <record_type 0xfffff6044a28 _Function_base asm_written cxx-odr-p type_5 type_6 QI size <integer_cst 0xfffff5c512f0 8> unit-size <integer_cst 0xfffff5c51308 1> align:8 warn_if_not_align:0 symtab:-170393360 alias-set 7 canonical-type 0xfffff6044a28 fields <field_decl 0xfffff5d454e8 _M_manager> context <translation_unit_decl 0xfffff5c800f0 test1.cpp> pointer_to_this <pointer_type 0xfffff6044f68> reference_to_this <reference_type 0xfffff60494f8>> private ignored decl_6 QI test1.cpp:5:7 size <integer_cst 0xfffff5c512f0 8> unit-size <integer_cst 0xfffff5c51308 1> align:8 warn_if_not_align:0 offset_align 128 decl_not_flexarray: 0 offset <integer_cst 0xfffff5c51230 constant 0> bit-offset <integer_cst 0xfffff5c51278 constant 0> context <record_type 0xfffff60450b8 function>> context <translation_unit_decl 0xfffff5c800f0 test1.cpp> pointer_to_this <pointer_type 0xfffff60452b0> reference_to_this <reference_type 0xfffff6049cd8>> $2 = void (gdb) (gdb) p debug_tree(decl) <template_decl 0xfffff7f80280 __ct type <method_type 0xfffff60454a8 type <void_type 0xfffff5d60f18 void asm_written type_6 VOID align:8 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0xfffff5d60f18 pointer_to_this <pointer_type 0xfffff5d60fc0>> type_0 type_6 SI size <integer_cst 0xfffff5c51440 constant 32> unit-size <integer_cst 0xfffff5c51458 constant 4> align:32 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0xfffff60454a8 method basetype <record_type 0xfffff60450b8 function> arg-types <tree_list 0xfffff60387f0 value <pointer_type 0xfffff60452b0> chain <tree_list 0xfffff60387c8 value <template_type_parm 0xfffff6045208 _Functor> chain <tree_list 0xfffff5ce0988 value <void_type 0xfffff5d60f18 void>>>>> ignored abstract decl_1 VOID test1.cpp:7:32 align:1 warn_if_not_align:0 context <record_type 0xfffff60450b8 function> chain <template_decl 0xfffff7f80480 __ct_base >> $3 = void command used: ./prev-gcc/cc1plus -fauto-profile=cc1plus.fda -fno-PIE -c -g -O2 -flto=jobserver test1.cpp