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

            Bug ID: 98890
           Summary: ICE on reference to module function
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: jakub at gcc dot gnu.org
  Target Milestone: ---

gfortran ICEs on the following testcase:

module foo
contains
  real function bar(x)
    real :: x(2,2)
    bar=baz*x(1,1)
  end function bar      
  real function baz(x)
    real :: x(2,2)
    baz=x(1,1)
  end function baz      
end module foo

Doesn't say anything even with implicit none, so maybe it is ok that baz lookup
gives the module function rather than a local variable, but shouldn't something
complain that it refers to the module function in an invalid way (rather than
say calling it)?  Originally this was reported due to a typo (the baz* should
have been bar* ).
If baz returns some incompatible type such as integer, then an error is
diagnosed.

Reply via email to