llvm / llvm-project

The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
http://llvm.org
Other
27.8k stars 11.45k forks source link

[Flang] flang-new crashes with "could not deduce character lengths in character allocation" #80575

Open k-arrows opened 7 months ago

k-arrows commented 7 months ago

Reproducible on Godbolt: https://godbolt.org/z/oWcc893Ef

Reproducer:

character(:), allocatable  :: char
allocate (character(:)::char)
end

Stack dump:

 #0 0x0000000003525f68 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-llvmflang-trunk-20240203/bin/flang-new+0x3525f68)
 #1 0x00000000035238dc SignalHandler(int) Signals.cpp:0:0
 #2 0x00007fc5e4e42520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #3 0x00007fc5e4e969fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
 #4 0x00007fc5e4e42476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
 #5 0x00007fc5e4e287f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
 #6 0x0000000001c22a5c llvm::RISCVISAInfo::updateCombination() (.cold) RISCVISAInfo.cpp:0:0
 #7 0x00000000034819b8 (/opt/compiler-explorer/clang-llvmflang-trunk-20240203/bin/flang-new+0x34819b8)
 #8 0x00000000038d1f83 (/opt/compiler-explorer/clang-llvmflang-trunk-20240203/bin/flang-new+0x38d1f83)
 #9 0x0000000004b4e21a (/opt/compiler-explorer/clang-llvmflang-trunk-20240203/bin/flang-new+0x4b4e21a)
#10 0x0000000004b5854b fir::factory::genInlinedAllocation(fir::FirOpBuilder&, mlir::Location, fir::MutableBoxValue const&, mlir::ValueRange, mlir::ValueRange, mlir::ValueRange, llvm::StringRef, bool) (/opt/compiler-explorer/clang-llvmflang-trunk-20240203/bin/flang-new+0x4b5854b)
#11 0x0000000003c6f2a5 Fortran::lower::genAllocateStmt(Fortran::lower::AbstractConverter&, Fortran::parser::AllocateStmt const&, mlir::Location) (/opt/compiler-explorer/clang-llvmflang-trunk-20240203/bin/flang-new+0x3c6f2a5)
#12 0x00000000038f8f4a (anonymous namespace)::FirConverter::lowerFunc(Fortran::lower::pft::FunctionLikeUnit&) Bridge.cpp:0:0
#13 0x00000000038ed0c8 Fortran::lower::LoweringBridge::lower(Fortran::parser::Program const&, Fortran::semantics::SemanticsContext const&) (/opt/compiler-explorer/clang-llvmflang-trunk-20240203/bin/flang-new+0x38ed0c8)
#14 0x00000000038805e7 Fortran::frontend::CodeGenAction::beginSourceFileAction() (/opt/compiler-explorer/clang-llvmflang-trunk-20240203/bin/flang-new+0x38805e7)
#15 0x00000000035682c5 Fortran::frontend::FrontendAction::beginSourceFile(Fortran::frontend::CompilerInstance&, Fortran::frontend::FrontendInputFile const&) (/opt/compiler-explorer/clang-llvmflang-trunk-20240203/bin/flang-new+0x35682c5)
#16 0x0000000003558197 Fortran::frontend::CompilerInstance::executeAction(Fortran::frontend::FrontendAction&) (/opt/compiler-explorer/clang-llvmflang-trunk-20240203/bin/flang-new+0x3558197)
#17 0x000000000356e52d Fortran::frontend::executeCompilerInvocation(Fortran::frontend::CompilerInstance*) (/opt/compiler-explorer/clang-llvmflang-trunk-20240203/bin/flang-new+0x356e52d)
#18 0x0000000001d5cc68 fc1_main(llvm::ArrayRef<char const*>, char const*) (/opt/compiler-explorer/clang-llvmflang-trunk-20240203/bin/flang-new+0x1d5cc68)
#19 0x0000000001c63d7d main (/opt/compiler-explorer/clang-llvmflang-trunk-20240203/bin/flang-new+0x1c63d7d)
#20 0x00007fc5e4e29d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#21 0x00007fc5e4e29e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#22 0x0000000001d5bbce _start (/opt/compiler-explorer/clang-llvmflang-trunk-20240203/bin/flang-new+0x1d5bbce)
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 19.0.0git (https://github.com/llvm/llvm-project.git 820f244aa92f11292e59440c9bc5afbdec395b20)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /opt/compiler-explorer/clang-llvmflang-trunk-20240203/bin
flang-new: note: diagnostic msg:

The original program is in the IBM F2003 test suite: https://github.com/rzurob/llvm-test-suite/blob/ibm_fortran_tests/Fortran/IBM/compile/F2003/deferlen/unit_tests/diag/deferlen06.f03

llvmbot commented 7 months ago

@llvm/issue-subscribers-flang-ir

Author: None (k-arrows)

Reproducible on Godbolt: https://godbolt.org/z/oWcc893Ef Reproducer: ``` character(:), allocatable :: char allocate (character(:)::char) end ``` Stack dump: ```console #0 0x0000000003525f68 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-llvmflang-trunk-20240203/bin/flang-new+0x3525f68) #1 0x00000000035238dc SignalHandler(int) Signals.cpp:0:0 #2 0x00007fc5e4e42520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520) #3 0x00007fc5e4e969fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc) #4 0x00007fc5e4e42476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476) #5 0x00007fc5e4e287f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3) #6 0x0000000001c22a5c llvm::RISCVISAInfo::updateCombination() (.cold) RISCVISAInfo.cpp:0:0 #7 0x00000000034819b8 (/opt/compiler-explorer/clang-llvmflang-trunk-20240203/bin/flang-new+0x34819b8) #8 0x00000000038d1f83 (/opt/compiler-explorer/clang-llvmflang-trunk-20240203/bin/flang-new+0x38d1f83) #9 0x0000000004b4e21a (/opt/compiler-explorer/clang-llvmflang-trunk-20240203/bin/flang-new+0x4b4e21a) #10 0x0000000004b5854b fir::factory::genInlinedAllocation(fir::FirOpBuilder&, mlir::Location, fir::MutableBoxValue const&, mlir::ValueRange, mlir::ValueRange, mlir::ValueRange, llvm::StringRef, bool) (/opt/compiler-explorer/clang-llvmflang-trunk-20240203/bin/flang-new+0x4b5854b) #11 0x0000000003c6f2a5 Fortran::lower::genAllocateStmt(Fortran::lower::AbstractConverter&, Fortran::parser::AllocateStmt const&, mlir::Location) (/opt/compiler-explorer/clang-llvmflang-trunk-20240203/bin/flang-new+0x3c6f2a5) #12 0x00000000038f8f4a (anonymous namespace)::FirConverter::lowerFunc(Fortran::lower::pft::FunctionLikeUnit&) Bridge.cpp:0:0 #13 0x00000000038ed0c8 Fortran::lower::LoweringBridge::lower(Fortran::parser::Program const&, Fortran::semantics::SemanticsContext const&) (/opt/compiler-explorer/clang-llvmflang-trunk-20240203/bin/flang-new+0x38ed0c8) #14 0x00000000038805e7 Fortran::frontend::CodeGenAction::beginSourceFileAction() (/opt/compiler-explorer/clang-llvmflang-trunk-20240203/bin/flang-new+0x38805e7) #15 0x00000000035682c5 Fortran::frontend::FrontendAction::beginSourceFile(Fortran::frontend::CompilerInstance&, Fortran::frontend::FrontendInputFile const&) (/opt/compiler-explorer/clang-llvmflang-trunk-20240203/bin/flang-new+0x35682c5) #16 0x0000000003558197 Fortran::frontend::CompilerInstance::executeAction(Fortran::frontend::FrontendAction&) (/opt/compiler-explorer/clang-llvmflang-trunk-20240203/bin/flang-new+0x3558197) #17 0x000000000356e52d Fortran::frontend::executeCompilerInvocation(Fortran::frontend::CompilerInstance*) (/opt/compiler-explorer/clang-llvmflang-trunk-20240203/bin/flang-new+0x356e52d) #18 0x0000000001d5cc68 fc1_main(llvm::ArrayRef<char const*>, char const*) (/opt/compiler-explorer/clang-llvmflang-trunk-20240203/bin/flang-new+0x1d5cc68) #19 0x0000000001c63d7d main (/opt/compiler-explorer/clang-llvmflang-trunk-20240203/bin/flang-new+0x1c63d7d) #20 0x00007fc5e4e29d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90) #21 0x00007fc5e4e29e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40) #22 0x0000000001d5bbce _start (/opt/compiler-explorer/clang-llvmflang-trunk-20240203/bin/flang-new+0x1d5bbce) 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 19.0.0git (https://github.com/llvm/llvm-project.git 820f244aa92f11292e59440c9bc5afbdec395b20) Target: x86_64-unknown-linux-gnu Thread model: posix InstalledDir: /opt/compiler-explorer/clang-llvmflang-trunk-20240203/bin flang-new: note: diagnostic msg: ``` The original program is in the IBM F2003 test suite: https://github.com/rzurob/llvm-test-suite/blob/ibm_fortran_tests/Fortran/IBM/compile/F2003/deferlen/unit_tests/diag/deferlen06.f03
llvmbot commented 7 months ago

@llvm/issue-subscribers-bug

Author: None (k-arrows)

Reproducible on Godbolt: https://godbolt.org/z/oWcc893Ef Reproducer: ``` character(:), allocatable :: char allocate (character(:)::char) end ``` Stack dump: ```console #0 0x0000000003525f68 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-llvmflang-trunk-20240203/bin/flang-new+0x3525f68) #1 0x00000000035238dc SignalHandler(int) Signals.cpp:0:0 #2 0x00007fc5e4e42520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520) #3 0x00007fc5e4e969fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc) #4 0x00007fc5e4e42476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476) #5 0x00007fc5e4e287f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3) #6 0x0000000001c22a5c llvm::RISCVISAInfo::updateCombination() (.cold) RISCVISAInfo.cpp:0:0 #7 0x00000000034819b8 (/opt/compiler-explorer/clang-llvmflang-trunk-20240203/bin/flang-new+0x34819b8) #8 0x00000000038d1f83 (/opt/compiler-explorer/clang-llvmflang-trunk-20240203/bin/flang-new+0x38d1f83) #9 0x0000000004b4e21a (/opt/compiler-explorer/clang-llvmflang-trunk-20240203/bin/flang-new+0x4b4e21a) #10 0x0000000004b5854b fir::factory::genInlinedAllocation(fir::FirOpBuilder&, mlir::Location, fir::MutableBoxValue const&, mlir::ValueRange, mlir::ValueRange, mlir::ValueRange, llvm::StringRef, bool) (/opt/compiler-explorer/clang-llvmflang-trunk-20240203/bin/flang-new+0x4b5854b) #11 0x0000000003c6f2a5 Fortran::lower::genAllocateStmt(Fortran::lower::AbstractConverter&, Fortran::parser::AllocateStmt const&, mlir::Location) (/opt/compiler-explorer/clang-llvmflang-trunk-20240203/bin/flang-new+0x3c6f2a5) #12 0x00000000038f8f4a (anonymous namespace)::FirConverter::lowerFunc(Fortran::lower::pft::FunctionLikeUnit&) Bridge.cpp:0:0 #13 0x00000000038ed0c8 Fortran::lower::LoweringBridge::lower(Fortran::parser::Program const&, Fortran::semantics::SemanticsContext const&) (/opt/compiler-explorer/clang-llvmflang-trunk-20240203/bin/flang-new+0x38ed0c8) #14 0x00000000038805e7 Fortran::frontend::CodeGenAction::beginSourceFileAction() (/opt/compiler-explorer/clang-llvmflang-trunk-20240203/bin/flang-new+0x38805e7) #15 0x00000000035682c5 Fortran::frontend::FrontendAction::beginSourceFile(Fortran::frontend::CompilerInstance&, Fortran::frontend::FrontendInputFile const&) (/opt/compiler-explorer/clang-llvmflang-trunk-20240203/bin/flang-new+0x35682c5) #16 0x0000000003558197 Fortran::frontend::CompilerInstance::executeAction(Fortran::frontend::FrontendAction&) (/opt/compiler-explorer/clang-llvmflang-trunk-20240203/bin/flang-new+0x3558197) #17 0x000000000356e52d Fortran::frontend::executeCompilerInvocation(Fortran::frontend::CompilerInstance*) (/opt/compiler-explorer/clang-llvmflang-trunk-20240203/bin/flang-new+0x356e52d) #18 0x0000000001d5cc68 fc1_main(llvm::ArrayRef<char const*>, char const*) (/opt/compiler-explorer/clang-llvmflang-trunk-20240203/bin/flang-new+0x1d5cc68) #19 0x0000000001c63d7d main (/opt/compiler-explorer/clang-llvmflang-trunk-20240203/bin/flang-new+0x1c63d7d) #20 0x00007fc5e4e29d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90) #21 0x00007fc5e4e29e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40) #22 0x0000000001d5bbce _start (/opt/compiler-explorer/clang-llvmflang-trunk-20240203/bin/flang-new+0x1d5bbce) 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 19.0.0git (https://github.com/llvm/llvm-project.git 820f244aa92f11292e59440c9bc5afbdec395b20) Target: x86_64-unknown-linux-gnu Thread model: posix InstalledDir: /opt/compiler-explorer/clang-llvmflang-trunk-20240203/bin flang-new: note: diagnostic msg: ``` The original program is in the IBM F2003 test suite: https://github.com/rzurob/llvm-test-suite/blob/ibm_fortran_tests/Fortran/IBM/compile/F2003/deferlen/unit_tests/diag/deferlen06.f03