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

Reply via email to