Version of flang-new : 20.0.0(357bd61744bb8cc2b9b07447294fa977e5758550/AArch64
When type is defined in module by using derived type with the same name from another module, a compilation-time error occurs.
The following are the test program, Flang-new, Gfortran and ifort compilation/execution result.
sngtbind_11_3.f90:
module mod1
use, intrinsic :: ISO_C_BINDING
type, bind(C) :: proc
integer(C_INT), public :: cmemflags = 0
end type proc
type (proc) ::mod1_str
end module mod1
module mod2
use, intrinsic :: ISO_C_BINDING
use mod1 ,only:sss=>proc
type, bind(C) :: proc
integer(C_INT), public :: cmemflags = 0
end type proc
type (proc) :: str = sss(1)
end module mod2
program main
use mod1
use mod2
print *,'OK'
end program main
$ cat /tmp/sngtbind_11_3-0a9234
#line "./sngtbind_11_3.f90" 1
module mod1
use, intrinsic :: ISO_C_BINDING
type, bind(C) :: proc
integer(C_INT), public :: cmemflags = 0
end type proc
type(proc) ::mod1_str
end module mod1
module mod2
use, intrinsic :: ISO_C_BINDING
use mod1 ,only:sss=>proc
type, bind(C) :: proc
integer(C_INT), public :: cmemflags = 0
end type proc
type(proc) :: str = sss(1)
end module mod2
program main
use mod1
use mod2
print *,'OK'
end program main
$
When
type
is defined in module by usingderived type
with the same name from another module, a compilation-time error occurs.The following are the test program, Flang-new, Gfortran and ifort compilation/execution result.
sngtbind_11_3.f90: