https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103851
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |openmp --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- The SSA_NAME does not have a definition any more but not released: <ssa_name 0x7ffff6e7d240 type <pointer_type 0x7ffff6e81000 type <record_type 0x7ffff6e76000 _Deque_base sizes-gimplified cxx-odr-p type_5 type_6 BLK size <integer_cst 0x7ffff6d02408 constant 192> unit-size <integer_cst 0x7ffff6d023d8 constant 24> align:64 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0x7ffff6e76000 fields <function_decl 0x7ffff6e84300 __dt > context <translation_unit_decl 0x7ffff6cee168 t45.cc> full-name "struct _Deque_base" X() X(constX&) this=(X&) n_parents=0 use_template=0 interface-unknown pointer_to_this <pointer_type 0x7ffff6e81000> reference_to_this <reference_type 0x7ffff6e81540> chain <type_decl 0x7ffff6e751c8 _Deque_base>> unsigned DI size <integer_cst 0x7ffff6ce0f48 constant 64> unit-size <integer_cst 0x7ffff6ce0f60 constant 8> align:64 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0x7ffff6e81000> def_stmt version:1> When openmp outlines the basic-block, it must not have released them: #pragma omp parallel [child fn: _ZN12_GLOBAL__N_121morphologicalFilter1DIiLi0ELi4EEEvv._omp_fn.0 (???)] <bb 3> : vals = .DEFERRED_INIT (96, 1, 0); D.2608 = &vals + 0; _1 = D.2608 + 96; goto <bb 5>; [INV] <bb 4> : D.2608 = D.2608 + 24; <bb 5> : if (D.2608 != _1) goto <bb 4>; [INV] else goto <bb 6>; [INV] <bb 6> : vals = {CLOBBER}; #pragma omp return I don't see anything exactly related to ftrivial-auto-var-init really except it adding the loop around vals.