https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107595
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |13.0 --- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> --- It ICEs because 'cfun' is NULL and x86 has #define ACCUMULATE_OUTGOING_ARGS \ ((TARGET_ACCUMULATE_OUTGOING_ARGS \ && optimize_function_for_speed_p (cfun)) \ || (cfun->machine->func_type != TYPE_NORMAL \ && crtl->stack_realign_needed) \ || TARGET_STACK_PROBE \ || TARGET_64BIT_MS_ABI \ || (TARGET_MACHO && crtl->profile)) we are assembling a static variable with an initializer containing a call (that's not a valid initializer). <var_decl 0x7ffff6523c60 x type <record_type 0x7ffff6711b28 t TI size <integer_cst 0x7ffff6517c90 constant 128> unit-size <integer_cst 0x7ffff6517ca8 constant 16> align:64 warn_if_not_align:0 symtab:0 alias-set 9 canonical-type 0x7ffff6711b28 fields <field_decl 0x7ffff67131c8 a type <integer_type 0x7ffff65325e8 integer(kind=4)> SI t.f90:3:18 size <integer_cst 0x7ffff6517e88 constant 32> unit-size <integer_cst 0x7ffff6517ea0 constant 4> align:32 warn_if_not_align:0 offset_align 128 decl_not_flexarray: 0 offset <integer_cst 0x7ffff6517c78 constant 0> bit-offset <integer_cst 0x7ffff6517cc0 constant 0> context <record_type 0x7ffff6711b28 t> chain <field_decl 0x7ffff6713260 b>> chain <type_decl 0x7ffff67132f8 D.4263>> asm_written used static TI t.f90:6:12 size <integer_cst 0x7ffff6517c90 128> unit-size <integer_cst 0x7ffff6517ca8 16> align:128 warn_if_not_align:0 context <function_decl 0x7ffff6712d00 p> initial <constructor 0x7ffff6700a20> (mem/c:TI (symbol_ref:DI ("x.1") [flags 0x2] <var_decl 0x7ffff6523c60 x>) [9 x+0 S16 A128])> The initializer is {.a=4, .b=null ()} the frontend would need to lower such initializers to runtime initialization (or not use static storage).