https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77680
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |hubicka at gcc dot gnu.org, | |rguenth at gcc dot gnu.org --- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- 415 /* Do not care about automatic variables. Those are never initialized 416 anyway, because gimplifier exapnds the code. */ 417 if (!TREE_STATIC (decl) && !DECL_EXTERNAL (decl)) 418 { 419 gcc_assert (!TREE_PUBLIC (decl)); 420 return error_mark_node; 421 } 422 423 gcc_assert (TREE_CODE (decl) == VAR_DECL); (gdb) p debug_tree (decl) <var_decl 0x7ffff7ff6990 x type <real_type 0x7ffff68a0540 real(kind=4) SF size <integer_cst 0x7ffff6887df8 constant 32> unit size <integer_cst 0x7ffff6887e10 constant 4> align 32 symtab 0 alias set -1 canonical type 0x7ffff68a0540 precision 32 pointer_to_this <pointer_type 0x7ffff68a0a80>> addressable used public common SF file t.f90 line 2 col 0 size <integer_cst 0x7ffff6887df8 32> unit size <integer_cst 0x7ffff6887e10 4> align 32 context <function_decl 0x7ffff6a5de00 p>> $1 = void so we have TREE_PUBLIC && DECL_COMMON, not sure if DECL_COMMON is supposed to have TREE_STATIC set. Honza? Thus looks like a FE issue to me. The bougs flags appear also without -finit-real=zero but we don't ICE (we optimize away the var I guess).