https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105310
--- Comment #6 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The releases/gcc-9 branch has been updated by Fritz Reese <fore...@gcc.gnu.org>: https://gcc.gnu.org/g:30e6e43f0bbd84ac01cfcbfbd4b60f4495365b7d commit r9-10022-g30e6e43f0bbd84ac01cfcbfbd4b60f4495365b7d Author: Fritz Reese <fore...@gcc.gnu.org> Date: Tue Apr 19 16:45:46 2022 -0400 fortran: Fix conv of UNION constructors [PR105310] This fixes an ICE when a UNION is the (1+8*2^n)-th field in a DEC STRUCTURE when compiled with -finit-derived -finit-local-zero. The problem was CONSTRUCTOR_APPEND_ELT from within gfc_conv_union_initializer modified the vector pointer, but the pointer was passed by-value, so the old pointer from the caller (gfc_conv_structure) pointed to freed memory. PR fortran/105310 gcc/fortran/ChangeLog: * trans-expr.c (gfc_conv_union_initializer): Pass vec* by reference. gcc/testsuite/ChangeLog: * gfortran.dg/dec_union_12.f90: New test. (cherry picked from commit c049f638da4f7b32b11e4d895184e0960bae5291)