https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104409
Martin Liška <marxin at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |marxin at gcc dot gnu.org, | |wirkus at gcc dot gnu.org --- Comment #6 from Martin Liška <marxin at gcc dot gnu.org> --- So the root cause is quite simple: #0 pushclass (type=<record_type 0x7ffff749bdc8 __arm_data512_t>) at /home/marxin/Programming/gcc/gcc/cp/class.cc:8069 #1 0x0000000000f869ea in begin_class_definition (t=<record_type 0x7ffff749bdc8 __arm_data512_t>) at /home/marxin/Programming/gcc/gcc/cp/semantics.cc:3466 #2 0x0000000000d284da in cxx_simulate_record_decl (loc=1, name=0x2edeca1 "__arm_data512_t", fields=...) at /home/marxin/Programming/gcc/gcc/cp/decl.cc:16689 #3 0x0000000001e51927 in aarch64_init_ls64_builtins_types () at /home/marxin/Programming/gcc/gcc/config/aarch64/aarch64-builtins.cc:1610 #4 0x0000000001e51ac4 in aarch64_init_ls64_builtins () at /home/marxin/Programming/gcc/gcc/config/aarch64/aarch64-builtins.cc:1622 #5 0x0000000001e51f17 in aarch64_general_init_builtins () at /home/marxin/Programming/gcc/gcc/config/aarch64/aarch64-builtins.cc:1735 #6 0x0000000001d57551 in aarch64_init_builtins () at /home/marxin/Programming/gcc/gcc/config/aarch64/aarch64.cc:14489 #7 0x000000000105c566 in c_define_builtins (va_list_ref_type_node=<reference_type 0x7ffff76347e0>, va_list_arg_type_node=<record_type 0x7ffff76329d8 __va_list>) at /home/marxin/Programming/gcc/gcc/c-family/c-common.cc:4225 #8 0x000000000105e204 in c_common_nodes_and_builtins () at /home/marxin/Programming/gcc/gcc/c-family/c-common.cc:4712 #9 0x0000000000cf6279 in cxx_init_decl_processing () at /home/marxin/Programming/gcc/gcc/cp/decl.cc:4452 #10 0x0000000000d9bb5e in cxx_init () at /home/marxin/Programming/gcc/gcc/cp/lex.cc:328 #11 0x000000000186796c in lang_dependent_init (name=0x3982f00 "/home/marxin/Programming/testcases/pr104409.c") at /home/marxin/Programming/gcc/gcc/toplev.cc:1858 #12 0x00000000018681a7 in do_compile (no_backend=false) at /home/marxin/Programming/gcc/gcc/toplev.cc:2153 #13 0x00000000018685d2 in toplev::main (this=0x7fffffffdb5a, argc=20, argv=0x7fffffffdc88) at /home/marxin/Programming/gcc/gcc/toplev.cc:2320 #14 0x0000000002bdc260 in main (argc=20, argv=0x7fffffffdc88) at /home/marxin/Programming/gcc/gcc/main.cc:39 It's called at the time when current_class_stack_size == 0 which explain the ICE. The variable is initialized in init_class_processing (), which is also called from cxx_init_decl_processing (void), but later. CCint Przemyslaw