Hi Paul, your patch looks fine to me. Ok for trunk.
Thanks for the patch. Regards, Andre On Sat, 29 Aug 2020 12:50:20 +0100 Paul Richard Thomas via Fortran <fort...@gcc.gnu.org> wrote: > This patch detects a scalar function result that has allocatable components > and is being used inside a scalarization loop. Before this patch, the > components would be deallocated and nullified within the scalarization loop > and so would cause a segfault on the second cycle of the loop. > > The stored result has to be found by identifying the expression in the loop > ss chain. This is then used for the deallocation of the allocatable > components in the loop post block, which keeps gimple happy and prevents > the segfault. > > Regtests on FC31/x86_64 - OK for master? > > Paul > > This patch fixes PR96495 - frees result components outside loop. > > 2020-29-08 Paul Thomas <pa...@gcc.gnu.org> > > gcc/fortran > PR fortran/96495 > * trans-expr.c (gfc_conv_procedure_call): Take the deallocation > of allocatable result components of a scalar result outside the > scalarization loop. Find and use the stored result. > > gcc/testsuite/ > PR fortran/96495 > * gfortran.dg/alloc_comp_result_2.f90 : New test. -- Andre Vehreschild * Email: vehre ad gmx dot de