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.
