| Issue |
181278
|
| Summary |
Internal error when compiling a structure constructor
|
| Labels |
new issue
|
| Assignees |
|
| Reporter |
boo-aboutme
|
``` text
Version of flang: 23.0.0git (https://github.com/llvm/llvm-project.git a563e6bb7ed485e0ab88717bb4a8c5e8522d9792)
Target: aarch64-unknown-linux-gnu
```
Flang causes an internal error while compiling the sample program shown below.
test.f90
``` fortran
program main
type ty0(k)
integer,kind::k
integer::ii
end type
type ty(k,l)
integer,kind::k
integer,len ::l
type(ty0(2))::cmp(1)= [ty0(2)(4)]
end type
type(ty(2,4))::obj
end program
```
No compiler options are needed.
``` text
$ flang test.f90
flang: /work/groups/ssoft/compiler/llvm/src/llvm-main/flang/lib/Lower/ConvertConstant.cpp:535: mlir::Value genInlinedStructureCtorLitImpl(Fortran::lower::AbstractConverter&, mlir::Location, const Fortran::evaluate::StructureConstructor&, mlir::Type): Assertion `componentParentType && "failed to retrieve component parent type"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace and instructions to reproduce the bug.
Stack dump:
0. Program arguments: /work/groups/ssoft/compiler/llvm/aarch64/main-20260209-a563e6bb7ed4/bin/flang -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 -resource-dir /work/groups/ssoft/compiler/llvm/aarch64/main-20260209-a563e6bb7ed4/lib/clang/23 -mframe-pointer=non-leaf-no-reserve -o /work/home/boo/Spack/tmp/test-418bc7.o -x f95 test.f90
#0 0x0000ffff7565d1a0 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/work/groups/ssoft/compiler/llvm/aarch64/main-20260209-a563e6bb7ed4/bin/../lib/libLLVM.so.23.0git+0x638a1a0)
#1 0x0000ffff7565a770 llvm::sys::RunSignalHandlers() (/work/groups/ssoft/compiler/llvm/aarch64/main-20260209-a563e6bb7ed4/bin/../lib/libLLVM.so.23.0git+0x6387770)
#2 0x0000ffff7565a8c8 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
#3 0x0000ffff86c957f0 (linux-vdso.so.1+0x7f0)
#4 0x0000ffff6eea3a78 __pthread_kill_implementation (/lib64/libc.so.6+0x82a78)
#5 0x0000ffff6ee5bcfc gsignal (/lib64/libc.so.6+0x3acfc)
#6 0x0000ffff6ee48274 abort (/lib64/libc.so.6+0x27274)
#7 0x0000ffff6ee55694 __assert_fail_base (/lib64/libc.so.6+0x34694)
#8 0x0000ffff6ee556ec (/lib64/libc.so.6+0x346ec)
#9 0x00000000066f1ea8 genInlinedStructureCtorLitImpl(Fortran::lower::AbstractConverter&, mlir::Location, Fortran::evaluate::StructureConstructor const&, mlir::Type) ConvertConstant.cpp:0:0
#10 0x00000000066f54b4 mlir::Value genInlinedArrayLit<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)6>>(Fortran::lower::AbstractConverter&, mlir::Location, mlir::Type, Fortran::evaluate::Constant<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)6>> const&) ConvertConstant.cpp:0:0
(omitted below)
```
Fujitsu Fortran compiler can compile the program:
``` text
$ frt --version
frt (FRT) 4.12.1 20250711
Copyright FUJITSU LIMITED 2019-2025
$ frt test.f90
Fortran diagnostic messages: program name(main)
jwd2004i-i "test.f90", line 11: 'obj' is set but never used.
```
GNU Fortran doesn't cause any internal errors, but it claims there is an error in the program.
``` text
$ gfortran test.f90
test.f90:9:33:
9 | type(ty0(2))::cmp(1)= [ty0(2)(4)]
| 1
Error: Syntax error in array constructor at (1)
```
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs