https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101334

            Bug ID: 101334
           Summary: gfortran fails to enforce C838 on disallowed uses of
                    assumed-rank variable names + bogus errors
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: sandra at gcc dot gnu.org
  Target Milestone: ---

C838 in the 2018 Fortran standard (originally C535b in TS29113) says:

An assumed-rank variable name shall not appear in a designator or expression
except as an actual argument that corresponds to a dummy argument that is
assumed-rank, the argument of the function C_LOC or C_SIZEOF from the intrinsic
module ISO_C_BINDING (18.2), the first dummy argument of an intrinsic inquiry
function, or the selector of a SELECT RANK statement.

The WIP TS29113 testsuite

https://gcc.gnu.org/pipermail/gcc-patches/2021-July/574115.html

has tests types/c535b-*.f90 for this.  c535b-2 and c535b-3 are failing with
several cases of missing diagnostics, or bogus errors.  E.g. the latter test
case focuses on the 2-argument form of the ASSOCIATED intrinsic and produces
errors like

Error: 'pointer' argument of 'associated' intrinsic at (1) must be of rank -1

in a context where I think assumed-rank should be allowed (first argument to an
intrinsic inquiry function).

Reply via email to