The master branch has been updated by Jerry DeLisle <[email protected]>:
https://gcc.gnu.org/g:81a0bec12189136350dbb43969743fab8b87a212 commit r17-1409-g81a0bec12189136350dbb43969743fab8b87a212 Author: Jerry DeLisle <[email protected]> Date: Fri Jun 5 13:19:58 2026 -0700 On 6/7/26 5:59 AM, Paul Richard Thomas wrote:
Hello Jerry, I added this PR to the PDT meta-bug. The patch does what it says on the box and passes regression testing. WIth 'deallocate(a)' at the end of the test, there are no memory leaks. OK for mainline and for backporting. Thanks for the patch. Paul On Sat, 6 Jun 2026 at 02:29, Jerry D <[email protected]> wrote:See attached patch. Regression tested on x86_64. OK for mainline and then backport to 16? Regards, Jerry --- fortran: ALLOCATE of parameterized derived-type array initializes only first element gfc_trans_allocate passed expr->rank to gfc_allocate_pdt_comp and gfc_deallocate_pdt_comp for array allocations of parameterized derived types. For an allocate-shape-spec expression (e.g. "allocate(a(n))"), expr->rank is 0 even though the symbol is an array; the rank is carried on the symbol rather than on the allocate expression. With rank 0 the loop that initialises each element's allocatable components ran zero times, so only element zero was initialised. Subsequent accesses to elements 1..N-1 used garbage pointers and crashed. Fix: when se.expr is a GFC array descriptor, take the rank from the descriptor via GFC_TYPE_ARRAY_RANK instead of from expr->rank. Apply the same correction to the CLASS path and to the matching deallocate calls in gfc_trans_deallocate. PR fortran/125534 Assisted by: Claude Sonnet 4.6 gcc/fortran/ChangeLog: PR fortran/125534 * trans-stmt.cc (gfc_trans_allocate): Use GFC_TYPE_ARRAY_RANK from the GFC descriptor type when se.expr is a descriptor, rather than expr->rank, for the rank passed to gfc_allocate_pdt_comp. Apply the same fix to the CLASS path. (gfc_trans_deallocate): Likewise for gfc_deallocate_pdt_comp. gcc/testsuite/ChangeLog: PR fortran/125534 * gfortran.dg/pdt_array_alloc_1.f90: New test. ---
