]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Fortran: fix passing of component ref to assumed-rank dummy [PR118683]
authorHarald Anlauf <anlauf@gmx.de>
Tue, 28 Jan 2025 20:21:40 +0000 (21:21 +0100)
committerHarald Anlauf <anlauf@gmx.de>
Wed, 29 Jan 2025 18:15:07 +0000 (19:15 +0100)
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.

(cherry picked from commit 5d001fa122bf04cfd0611ff7723969a0421b3094)

gcc/fortran/trans-expr.cc

index 1efe435f397f699d51ee9a736fd5fcf4427817b2..601cc546d438473fb43891d47c71664b97ca106c 100644 (file)
@@ -7254,6 +7254,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)