aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/trans-expr.cc
diff options
context:
space:
mode:
authorHarald Anlauf <anlauf@gmx.de>2025-01-28 21:21:40 +0100
committerHarald Anlauf <anlauf@gmx.de>2025-01-29 08:47:37 +0100
commit5d001fa122bf04cfd0611ff7723969a0421b3094 (patch)
tree374ac5605039d677f9a6ef4207d6ff69eed6fe0d /gcc/fortran/trans-expr.cc
parent2abc555a80be3c983c675a5f8d744917d4fc23d1 (diff)
downloadgcc-5d001fa122bf04cfd0611ff7723969a0421b3094.zip
gcc-5d001fa122bf04cfd0611ff7723969a0421b3094.tar.gz
gcc-5d001fa122bf04cfd0611ff7723969a0421b3094.tar.bz2
Fortran: fix passing of component ref to assumed-rank dummy [PR118683]
While the fix for pr117774 addressed the passing of an inquiry reference to an assumed-rank dummy, it missed the similar case of passing a component reference. The newer testcase gfortran.dg/pr81978.f90 uncovered this latent issue with a UBSAN instrumented compiler. PR fortran/118683 gcc/fortran/ChangeLog: * trans-expr.cc (gfc_conv_procedure_call): The bounds update for passing to assumed-rank dummies shall also handle component references besides inquiry references.
Diffstat (limited to 'gcc/fortran/trans-expr.cc')
-rw-r--r--gcc/fortran/trans-expr.cc3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/fortran/trans-expr.cc b/gcc/fortran/trans-expr.cc
index 78caf1f..24b1d19 100644
--- a/gcc/fortran/trans-expr.cc
+++ b/gcc/fortran/trans-expr.cc
@@ -7495,6 +7495,9 @@ gfc_conv_procedure_call (gfc_se * se, gfc_symbol * sym,
{
if (ref->next->type == REF_INQUIRY)
break;
+ if (ref->type == REF_ARRAY
+ && ref->u.ar.type != AR_ELEMENT)
+ break;
};
if (ref->u.ar.type == AR_FULL
&& ref->u.ar.as->type != AS_ASSUMED_SIZE)