<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/107783>107783</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[Flang] Compilation error when type is defined in module by using derived type with the same name from another module
</td>
</tr>
<tr>
<th>Labels</th>
<td>
flang:frontend
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
ohno-fj
</td>
</tr>
</table>
<pre>
```
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:
```fortran
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
```
```
$ flang-new sngtbind_11_3.f90
flang-new: /work/groups/ssoft/compiler/llvm/src/llvm-main/flang/lib/Optimizer/Builder/FIRBuilder.cpp:473: mlir::Value fir::factory::createConvert(mlir::OpBuilder&, mlir::Location, mlir::Type, mlir::Value): Assertion `!fir::isa_derived(toTy)' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /work/groups/ssoft/compiler/llvm/aarch64/main-20240902-357bd61744bb/bin/flang-new -fc1 -triple aarch64-unknown-linux-gnu -emit-obj -mrelocation-model pic -pic-level 2 -pic-is-pie -target-cpu generic -target-feature +outline-atomics -target-feature +v8a -target-feature +fp-armv8 -target-fea
ture +neon -resource-dir /work/groups/ssoft/compiler/llvm/aarch64/main-20240902-357bd61744bb/lib/clang/20 -mframe-pointer=non-leaf -o /tmp/sngtbind_11_3-ffcae6.o -x f95-cpp-input sngtbind_11_3.f90
#0 0x000040001dd30e28 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/work/groups/ssoft/compiler/llvm/aarch64/main-latest/lib/libLLVM.so.20.0git+0x54e0e28)
#1 0x000040001dd2eea8 llvm::sys::RunSignalHandlers() (/work/groups/ssoft/compiler/llvm/aarch64/main-latest/lib/libLLVM.so.20.0git+0x54deea8)
#2 0x000040001dd2f000 SignalHandler(int) Signals.cpp:0:0
#3 0x00004000135b07a0 (linux-vdso.so.1+0x7a0)
#4 0x0000400022906274 raise (/lib64/libc.so.6+0x36274)
#5 0x00004000228f0a2c abort (/lib64/libc.so.6+0x20a2c)
#6 0x00004000228ffba0 __assert_fail_base (/lib64/libc.so.6+0x2fba0)
#7 0x00004000228ffc18 __assert_perror_fail (/lib64/libc.so.6+0x2fc18)
#8 0x0000000005ab4558 fir::factory::createConvert(mlir::OpBuilder&, mlir::Location, mlir::Type, mlir::Value) (/work/groups/ssoft/compiler/llvm/aarch64/main-20240902-357bd61744bb/bin/flang-new+0x5ab4558)
#9 0x0000000004cfaef4 defineGlobal(Fortran::lower::AbstractConverter&, Fortran::lower::pft::Variable const&, llvm::StringRef, mlir::StringAttr, cuf::DataAttributeAttr)::'lambda1'(fir::FirOpBuilder&)::operator()(fir::FirOpBuilder&) const ConvertVariable.cpp:0:0
#10 0x0000000004cf18a8 Fortran::lower::createGlobalInitialization(fir::FirOpBuilder&, fir::GlobalOp, std::function<void (fir::FirOpBuilder&)>) (/work/groups/ssoft/compiler/llvm/aarch64/main-20240902-357bd61744bb/bin/flang-new+0x4cf18a8)
#11 0x0000000004cf1fc4 defineGlobal(Fortran::lower::AbstractConverter&, Fortran::lower::pft::Variable const&, llvm::StringRef, mlir::StringAttr, cuf::DataAttributeAttr) ConvertVariable.cpp:0:0
#12 0x0000000004cf2790 Fortran::lower::defineModuleVariable(Fortran::lower::AbstractConverter&, Fortran::lower::pft::Variable const&) (/work/groups/ssoft/compiler/llvm/aarch64/main-20240902-357bd61744bb/bin/flang-new+0x4cf2790)
#13 0x0000000004a78cbc std::_Function_handler<void (), (anonymous namespace)::FirConverter::lowerModuleDeclScope(Fortran::lower::pft::ModuleLikeUnit&)::'lambda'()>::_M_invoke(std::_Any_data const&) Bridge.cpp:0:0
#14 0x0000000004a8aacc (anonymous namespace)::FirConverter::createGlobalOutsideOfFunctionLowering(std::function<void ()> const&) Bridge.cpp:0:0
#15 0x0000000004a8ae34 std::__detail::__variant::__gen_vtable_impl<std::__detail::__variant::_Multi_array<void (*)(Fortran::common::visitors<(anonymous namespace)::FirConverter::run(Fortran::lower::pft::Program&)::'lambda'(Fortran::lower::pft::FunctionLikeUnit&), (anonymous namespace)::FirConverter::run(Fortran::low
er::pft::Program&)::'lambda0'(Fortran::lower::pft::ModuleLikeUnit&), (anonymous namespace)::FirConverter::run(Fortran::lower::pft::Program&)::'lambda1'(Fortran::lower::pft::BlockDataUnit&), (anonymous namespace)::FirConverter::run(Fortran::lower::pft::Program&)::'lambda2'(Fortran::lower::pft::CompilerDirectiveUnit&)
, (anonymous namespace)::FirConverter::run(Fortran::lower::pft::Program&)::'lambda3'(Fortran::lower::pft::OpenACCDirectiveUnit&)>&&, std::variant<Fortran::lower::pft::FunctionLikeUnit, Fortran::lower::pft::ModuleLikeUnit, Fortran::lower::pft::BlockDataUnit, Fortran::lower::pft::CompilerDirectiveUnit, Fortran::lower:
:pft::OpenACCDirectiveUnit>&)>, std::tuple<std::variant<Fortran::lower::pft::FunctionLikeUnit, Fortran::lower::pft::ModuleLikeUnit, Fortran::lower::pft::BlockDataUnit, Fortran::lower::pft::CompilerDirectiveUnit, Fortran::lower::pft::OpenACCDirectiveUnit>&>, std::integer_sequence<unsigned long, 1ul>>::__visit_invoke(
Fortran::common::visitors<(anonymous namespace)::FirConverter::run(Fortran::lower::pft::Program&)::'lambda'(Fortran::lower::pft::FunctionLikeUnit&), (anonymous namespace)::FirConverter::run(Fortran::lower::pft::Program&)::'lambda0'(Fortran::lower::pft::ModuleLikeUnit&), (anonymous namespace)::FirConverter::run(Fortr
an::lower::pft::Program&)::'lambda1'(Fortran::lower::pft::BlockDataUnit&), (anonymous namespace)::FirConverter::run(Fortran::lower::pft::Program&)::'lambda2'(Fortran::lower::pft::CompilerDirectiveUnit&), (anonymous namespace)::FirConverter::run(Fortran::lower::pft::Program&)::'lambda3'(Fortran::lower::pft::OpenACCDi
rectiveUnit&)>&&, std::variant<Fortran::lower::pft::FunctionLikeUnit, Fortran::lower::pft::ModuleLikeUnit, Fortran::lower::pft::BlockDataUnit, Fortran::lower::pft::CompilerDirectiveUnit, Fortran::lower::pft::OpenACCDirectiveUnit>&) Bridge.cpp:0:0
#16 0x0000000004a92c64 Fortran::lower::LoweringBridge::lower(Fortran::parser::Program const&, Fortran::semantics::SemanticsContext const&) (/work/groups/ssoft/compiler/llvm/aarch64/main-20240902-357bd61744bb/bin/flang-new+0x4a92c64)
#17 0x0000000004a34774 Fortran::frontend::CodeGenAction::beginSourceFileAction() (/work/groups/ssoft/compiler/llvm/aarch64/main-20240902-357bd61744bb/bin/flang-new+0x4a34774)
#18 0x0000000004970548 Fortran::frontend::FrontendAction::beginSourceFile(Fortran::frontend::CompilerInstance&, Fortran::frontend::FrontendInputFile const&) (/work/groups/ssoft/compiler/llvm/aarch64/main-20240902-357bd61744bb/bin/flang-new+0x4970548)
#19 0x0000000004962ab8 Fortran::frontend::CompilerInstance::executeAction(Fortran::frontend::FrontendAction&) (/work/groups/ssoft/compiler/llvm/aarch64/main-20240902-357bd61744bb/bin/flang-new+0x4962ab8)
#20 0x0000000004974608 Fortran::frontend::executeCompilerInvocation(Fortran::frontend::CompilerInstance*) (/work/groups/ssoft/compiler/llvm/aarch64/main-20240902-357bd61744bb/bin/flang-new+0x4974608)
#21 0x000000000495bdf8 fc1_main(llvm::ArrayRef<char const*>, char const*) (/work/groups/ssoft/compiler/llvm/aarch64/main-20240902-357bd61744bb/bin/flang-new+0x495bdf8)
#22 0x000000000495b200 main (/work/groups/ssoft/compiler/llvm/aarch64/main-20240902-357bd61744bb/bin/flang-new+0x495b200)
#23 0x00004000228f4384 __libc_start_main (/lib64/libc.so.6+0x24384)
#24 0x0000000004959e84 _start (/work/groups/ssoft/compiler/llvm/aarch64/main-20240902-357bd61744bb/bin/flang-new+0x4959e84)
flang-new: error: unable to execute command: Aborted (core dumped)
flang-new: error: flang frontend command failed due to signal (use -v to see invocation)
flang-new version 20.0.0git (https://github.com/llvm/llvm-project.git 357bd61744bb8cc2b9b07447294fa977e5758550)
Target: aarch64-unknown-linux-gnu
Thread model: posix
InstalledDir: /work/groups/ssoft/compiler/llvm/aarch64/main-20240902-357bd61744bb/bin
Build config: +assertions
flang-new: note: diagnostic msg:
********************
PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
flang-new: note: diagnostic msg: /tmp/sngtbind_11_3-0a9234
flang-new: note: diagnostic msg: /tmp/sngtbind_11_3-0a9234.sh
flang-new: note: diagnostic msg:
********************
$
```
```
$ 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
$
```
```
$ cat /tmp/sngtbind_11_3-0a9234.sh
# Crash reproducer for clang version 20.0.0git (https://github.com/llvm/llvm-project.git 357bd61744bb8cc2b9b07447294fa977e5758550)
# Driver args: "sngtbind_11_3.f90"
# Original command: "/work/groups/ssoft/compiler/llvm/aarch64/main-20240902-357bd61744bb/bin/flang-new" "-fc1" "-triple" "aarch64-unknown-linux-gnu" "-emit-obj" "-mrelocation-model" "pic" "-pic-level" "2" "-pic-is-pie" "-target-cpu" "generic" "-target-feature" "+outline-atomics" "-target-feature" "+v8a" "-target-fe
ature" "+fp-armv8" "-target-feature" "+neon" "-resource-dir" "/work/groups/ssoft/compiler/llvm/aarch64/main-20240902-357bd61744bb/lib/clang/20" "-mframe-pointer=non-leaf" "-o" "/tmp/sngtbind_11_3-ffcae6.o" "-x" "f95-cpp-input" "sngtbind_11_3.f90"
"/work/groups/ssoft/compiler/llvm/aarch64/main-20240902-357bd61744bb/bin/flang-new" "-fc1" "-triple" "aarch64-unknown-linux-gnu" "-emit-obj" "-mrelocation-model" "pic" "-pic-level" "2" "-pic-is-pie" "-target-cpu" "generic" "-target-feature" "+outline-atomics" "-target-feature" "+v8a" "-target-feature" "+fp-armv8" "
-target-feature" "+neon" "-mframe-pointer=non-leaf" "-x" "f95-cpp-input" "sngtbind_11_3-0a9234"
$
```
```
$ gfortran sngtbind_11_3.f90; ./a.out
OK
$
```
```
$ ifort -diag-disable=10448 sngtbind_11_3.f90; ./a.out
OK
$
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsW11zoziz_jXkRoVLFtjGF7lwnHg29WYmU5Ps7qVLCGFrBySOJJxkf_0pfYDBsR1nJpvsOe-kdqeMaLW6H7W6hXjASrEVp_Q8GF0Eo8szXOu1kOdizUWY_3WWiuzpPBhD_x-8DODsDyoVExyIHOQF5quQ0wcQRDOA4AAOYICSaDRJs_FwEsdpmhCC0mkKJ3E8QdM4x9PJhI4mo2Q0ggFazGaSrMex07wzkPv3zzXlIBhD_VTRYAwBUyCjOeM0A4yDUmR1QUH6BGrF-MoIZlSyDc1A0-GB6TXQawoULing5p9cihJgLvSaSq8iQHOAARFlxQqsmeChZiUFVEohgSCklmrQNet-TUEuikI8mGGxpHYITZUGlRQriUujcdEAZC4-5UJqiTnAPAPMXHTHC9CCPlJSm99AUlUXujeg4iudMp4th8NlNMinMIhmO7B5_a7VI1OKbOgaAKiVdZNxLRlXjJhZMxN3fXe7nC8vrr9cXn_51Ahb-NAcmDEDlMwDNG3kKylIIwaA0UdXVBqh5fWX-wBNTb-qTovtEKSkZV7glQJBdAlg05tyN089lbYhQIlta0c1jiyVlk7KdHzm4bYB_ZDLtXLaQIDmghdPQTRTSgXRZRBd7Rr4b4IGKC1tZ2MtSoZmmD0ooW44-SAFJWZ81_-d6xbMSjKuQYBmAZoHaHL7nwBNtgM917h3Pe82oriTRp4HuRVqBYyzAVo8CPk9QIuVFHWlArRQSuQ6QAu3nAzei6LYlOaOJP4itHahhdVl2lgaoMVtpVnJ_rZdLmpWZPbX4vqbvxiQqgqiWTyJzNBlwaSD_A9c1BTkzWWOiRbyyV0QSbGmc8E3VOoAJdtet1U7xtgEwvbOjSA-C3Rb732g7Yxr5jeagZlSVNp0YdBEw9YapvDSZ8EAJVrcP9nAm4Acs4JmPq18vbma3V0BVacl0wCDtF4BSSuTlrQAa60rZdShhUGa6XWdDogot9BaUCsp_qLEYM-UqqmZDJfeOCnqzCVFIrFagxST71piQv3wdxqT7yCry6pNZHBgFw346iMJy1VdUq7Vq6cdY1dW0MLMeoggiuEUorBbmQK0SLcRYcMvzMkQhFqyqqDA6whr_p2LBx4WjNeP4YrXIKQl06FI_wJhKWnhpy4sRUYLUDECwoqRsKAbWgDkLpgKK0ZBqLFcUR2SqgYryqk0wr4tp1jX0izvC1HrgnEaYi1KRtQ-kU2C9zXnVYhluUm69xy4jQSngoNQUiVqSWiYMfmPQOuWF_GLDUEQlrnEJQ0rYZKiDKJLLnhYUJyDUBgTdFmZgbsZIMxzgul4IED4CPLpKCRVFTJe1fpQpgABiiCAjxBCGEMIh1kWQYoSYK23q0M9Kffjq0lnNgzvTVwGKNkKSfywFEpLaur42JcQm3FR8jNwFdhsEVp8Cpbe3PzxeaDEwOyeVkwH6AI-jmJqjG7zuPFq2PcKUYr3evWt5ndsxXHxG-ZZQaWyFr-b4Zmxq2c42jE8hxCCnokBSjy6rln5rAvt_62iqKsoGqVwgqFxyy3MTaaEMWdoDZlg2DMi7vRFaArHaBIDiZmiHpiCpdbZgqXEqBlbNZGR6yka9RQlOcSIAJyarHlMETJyPUXjHUV5iiFYLrFN6kuTqZcpfsE8ZDr1tE52tZJhstVa2e2sVf6CXjLsT2Li9dq_EU7j0Sj5wPL3s9F8YkFwMe287cEx7cIRkxzTPPaPJZ8KkeIiQMnC78at4YV4oN6HWapMHdQeoRaNQ_JVrhvnJcNpQQER3CxF22ubAe7MFnf1jeZ9yFzzTGtp2kmdu-ZLrLFpZGmtqbs7dXcCNClwmWZ4aLZ3KGlnecFkfwZ9B1FRibWQLtEc7-FsB973xqPn690kPLgD8jDByUGUXNQ58K850wwX7G8fU0cMmm-D2PW9rUyj0pmP7JoTqySabwTLwEt4XL1zcHpY2uA0uA13ccvJ_4PgPC1m0I7vaDKFB413mHy2D0iN2nfC5r2DxODQC5KoBxSeJCQl27BfLnzcL9e-RG_j3z_EBijBXPCnUtTKnqqoym6ipu3i2OK0RcaBfUlJcUdEdQztFj3X5YZ9p79zpruJp81ULlH5Begc-LxkfCO-mxG2Xs340zLDGvcm4kKybHUgnOI-SgnGhLze825uuq21Yhm9zRuEb4zLzOySk2NZxzl3suGjXcNpFHemd5lRjVnRXG1MgHLdXK4oX260idglK6siiOYn9vxcF5otsZT4qWf6zNWF3lQTUZbC_94wxbSQKojmrwZX1vyUKPraHModDJ8XVbQz1g_FH1kL-432ZymvMR2eaPveRfR2lr_K5uGJNl8Ugnw3peDjTUYnmjz3afuSSUo023TR9mvzYxyITnTgtqJ8Np_vs9_sbca-5LX5oF3_8x9YPieUzt24PaHLTtic0OPArB3q6SbyJdA8XA63DmK6rgraTan_jRCeBt4Ocv4wfano_9SUEwNize3rqwwUwlTQORjWhd0DXLUFypSW7V7ATd6vQvSGRn9kCXLT-asQvaoQ_V8pQW5yfxWin8yiLzwpjPtPClNExvHB8ZqHFaewe3tnYissVdOpeZ3TPRnoCStaYq4Z8SfYd83lXHBNH_WHPTY7MHqPzZM-WlE8meyglUtjNc-aGc3oJ8pn_nHONKV0xfidffuyYAX1t97kkP513lnje971Tnnj6QSO4uSYdwt_dcS93cDYhcd5dM2Vxqak74mO_UNe86rWZoAPiw4HTw-__rHwdIxwehS_Z-7bVkcD2QbG6RPwASBYH7sgILgTRPEYHgXBu7vFYtO-DHhd6MzePwKMbz3n-2ev01Ga5QnIyXDp2AedN4wzKfHTN5oH0ZyssWzCeOZ3vf2293bM2t1zDO06hiC0VI_3NgzB3kEminbeeMVREoPlsmApWSqNpV52rDzwusv06SmNd7ydUqPUqntnf83IrWk9Hox9l2d-1NweLmsB_FIC5pEG24UCZqmQmtpzOCIktYQLmr2g0baCZr016jx9BGS1HUzZd7VGca0oCDe2jVLAOgt4dxSw8eRBxxVcMQvn67gmA9PrdIqhN-He0iGMcwd5HQ2xT1JsaVO0sIwuodiju2VTTVHQ7NK-v_jHKCl2MPtiyWSAnK3cYBe4IfyoPZPHhTb1A2QMr7hQmhFQqtX2vAL9xH8d-pZnDc3u72fz38D9b1dgcXtzc_vn9ZdPYHF9c3UH7m9t88Xvn8C3q6-33-5bG75KWklBqFI0A45_EqBEmexmwgsrJQjDJlplzYEiklW6FZAUWKYNzQDWrcrTIDhEL4F4iqL47TQN1PoHZuat5gcdo9Huod0RrE8BJkBRwTgFAUKDXUFLvEEIDDucx-e8TNf8Kiqm-TudZvkzPEvzt5druTXhKBN1q-GA33tYqT8Ex6ns1H8zdAeZqvtQ7PFVncA-1moXmz1tqN__EIN1a8AeHuubr6w2UQQoAnPLj7S5MasJlSAXEljm3MeVS2PXpWQbKgGWK0_ARPvW_lb-VrIVM1uCzvbDCLzHZgmZkcKcDJufjsTprw6XfC_dEDqb62e0Tn-jYqQRaSmevgF1bzi6Z2tLS_r0LZ76uXPf0zh963Ma6EvimwQ_E_EHpH3BhiT6kkJOzR7OyXQJo63EP08bbSfkEHm0ERBbo44RSRvxR_-jRyr1bYej_Fc4f3A4Hw9kN0knhfOL8XRygDR7pW0mPFosjheOVfOJ0J6vfS6A2X7hgai1j8bb__xgfXIfH4VmQxpmTFneU3Q5hHGcvM3IZ9l5lE2jKT6j58MJGiXRKB5GZ-tzOI4SMoxjmmGUTWOSjxDMcEzSYZzAMURn7NwvkgShOIqiQTydkOkkQhkejxHEWRBDWmJWDMwSGwi5OrNfHpwP4WSSRGcFTmmh7OdsCLlvPTonRwgFo8szeW4LZFqvVBDDgimttto004X9HM5-uxWMLsF8-5GW_x7sYU252_Uc_xqt-ynaid-hndWyOP_xjy88Cptz9L8BAAD___jZtVw">