https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77903
Bug ID: 77903
Summary: gfortran 6.1.0/7.0.0 accept invalid code with
conflicting module/submodule interfaces
Product: gcc
Version: 6.1.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: damian at sourceryinstitute dot org
Target Milestone: ---
Gfortran accepts invalid code in which an implicitly typed interface body has
the same name as a conflicting, explicitly typed module function implemented in
a submodule. See below.
Damian
$ cat one.f90
module one_module
implicit none
interface
module function one()
end function
end interface
end module
submodule(one_module) one_submodule
implicit none
contains
integer module function one()
one = 1
end function
end submodule
use one_module
print *,one()," is not ",1
end
$ gfortran -std=f2008 -Wall -fcheck=all one.f90
$ ./a.out
9.18340949E-41 is not 1
$ gfortran --version
GNU Fortran (MacPorts gcc6 6.1.0_0) 6.1.0