Patch committed as simple/obvious.

One liner to take care of alignment on 32 bit machines. Testcases adjusted.

Regression tested x86_64 and x386.

The master branch has been updated by Jerry DeLisle <[email protected]>:

https://gcc.gnu.org/g:81092921c6393d4ed39aacb354228c55fc406d52

commit r17-3980-g81092921c6393d4ed39aacb354228c55fc406d52
Author: Jerry DeLisle <[email protected]>
Date:   Mon Sep 7 14:24:57 2026 -0700

    fortran: [PR126964] Fold the element spacing on the field alignment

    A target can align a component less strictly than its type: the i386
    ABI aligns a real(8) component to 4, so the spacing of one is not always a
    multiple of 8.  Compare against min_align_of_type instead.

            PR fortran/126964

    gcc/fortran/ChangeLog:

            * trans-array.cc: Include stor-layout.h.
            (gfc_span_folds_into_stride): Compare the element length against
            the least alignment of its type rather than the alignment.

    gcc/testsuite/ChangeLog:

            * gfortran.dg/target_dummy_span_2.f90: New test.
            * gfortran.dg/c_loc_test_22.f90: Expect the addressing of the
            target.
            * gfortran.dg/gomp/target-span-1.f90: Likewise.
            * gfortran.dg/target_dummy_repack_1.f90: Likewise.
            * gfortran.dg/target_dummy_span_1.f90: Likewise.
            * gfortran.dg/class_to_type_9.f90: Do not assert whether an
            assumed shape dummy is passed the strides or a copy.

Reply via email to