aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/trans-expr.cc
diff options
context:
space:
mode:
authorHarald Anlauf <anlauf@gmx.de>2024-11-25 22:55:10 +0100
committerHarald Anlauf <anlauf@gmx.de>2024-11-26 17:06:32 +0100
commiteff7e72815ada5c70c974d42f6a419e29a03eb27 (patch)
tree75053f850bcf2f9968bf84d65b2f4827532f194c /gcc/fortran/trans-expr.cc
parent5134bad11b9a71f869abbb7f3d37b669c6ba138b (diff)
downloadgcc-eff7e72815ada5c70c974d42f6a419e29a03eb27.zip
gcc-eff7e72815ada5c70c974d42f6a419e29a03eb27.tar.gz
gcc-eff7e72815ada5c70c974d42f6a419e29a03eb27.tar.bz2
Fortran: passing inquiry ref of complex array to assumed rank dummy [PR117774]
PR fortran/117774 gcc/fortran/ChangeLog: * trans-expr.cc (gfc_conv_procedure_call): When passing an array to an assumed-rank dummy, terminate search for array reference of actual argument before an inquiry reference (e.g. INQUIRY_RE, INQUIRY_IM) so that bounds update works properly. gcc/testsuite/ChangeLog: * gfortran.dg/assumed_rank_25.f90: New test.
Diffstat (limited to 'gcc/fortran/trans-expr.cc')
-rw-r--r--gcc/fortran/trans-expr.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/fortran/trans-expr.cc b/gcc/fortran/trans-expr.cc
index bc1d5a8..41d06a9 100644
--- a/gcc/fortran/trans-expr.cc
+++ b/gcc/fortran/trans-expr.cc
@@ -7398,7 +7398,10 @@ gfc_conv_procedure_call (gfc_se * se, gfc_symbol * sym,
/* Change AR_FULL to a (:,:,:) ref to force bounds update. */
gfc_ref *ref;
for (ref = e->ref; ref->next; ref = ref->next)
- ;
+ {
+ if (ref->next->type == REF_INQUIRY)
+ break;
+ };
if (ref->u.ar.type == AR_FULL
&& ref->u.ar.as->type != AS_ASSUMED_SIZE)
ref->u.ar.type = AR_SECTION;