Peter Klausler 7f542662ce
[flang] Fix module file generation when generic shadows derived type (#78618)
Fortran allows the name of a generic interface to be the same as the
name of a derived type or specific procedure. When this happens, it
causes the code in module file generation to miss the symbol of a
derived type when scanning for symbols in initialization expressions
that need to be imported. Fix.
2024-01-25 14:53:52 -08:00

32 lines
634 B
Fortran

! RUN: %python %S/test_modfile.py %s %flang_fc1
module m
use iso_c_binding, only: c_ptr, c_null_ptr
type foo
type(c_ptr) :: p = c_null_ptr
end type
interface foo ! same name as derived type
procedure f
end interface
contains
type(foo) function f()
end
end
!Expect: m.mod
!module m
!use,intrinsic::__fortran_builtins,only:__builtin_c_ptr
!use,intrinsic::iso_c_binding,only:c_ptr
!use,intrinsic::iso_c_binding,only:c_null_ptr
!private::__builtin_c_ptr
!type::foo
!type(c_ptr)::p=__builtin_c_ptr(__address=0_8)
!end type
!interface foo
!procedure::f
!end interface
!contains
!function f()
!type(foo)::f
!end
!end