aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/constexpr.cc
diff options
context:
space:
mode:
authorFritz Reese <foreese@gcc.gnu.org>2022-04-19 16:45:46 -0400
committerFritz Reese <foreese@gcc.gnu.org>2022-04-21 10:13:59 -0400
commitc049f638da4f7b32b11e4d895184e0960bae5291 (patch)
tree0378cadec8364709478b2a23de14677615c96b5c /gcc/cp/constexpr.cc
parent1e6c0e69af8da436e1d1d2d23d8c38410d78ecf2 (diff)
downloadgcc-c049f638da4f7b32b11e4d895184e0960bae5291.zip
gcc-c049f638da4f7b32b11e4d895184e0960bae5291.tar.gz
gcc-c049f638da4f7b32b11e4d895184e0960bae5291.tar.bz2
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.cc (gfc_conv_union_initializer): Pass vec* by reference. gcc/testsuite/ChangeLog: * gfortran.dg/dec_union_12.f90: New test.
Diffstat (limited to 'gcc/cp/constexpr.cc')
0 files changed, 0 insertions, 0 deletions