Issue 174976
Summary Segmentation fault during lowering in flang
Labels flang
Assignees
Reporter ogmundur
    I experiance a segmentation fault when building my fortran project with the following stack trace. The preprocessed source is attached.

`PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.	Program arguments: /data/tools/llvm/21.1.6/bin/flang -fc1 -triple x86_64-unknown-linux-gnu -emit-obj -D WITH_MKL -D _FILE_OFFSET_BITS=64 -D _GNU_SOURCE -D _LARGEFILE_SOURCE -D _POSIX_C_SOURCE=200809L -I /data/jenkins/workspace/Lagrange/Trunk_debug_rhel8_llvm/build/src/cm -I /data/jenkins/workspace/Lagrange/Trunk_debug_rhel8_llvm/build/src/db -I /data/jenkins/workspace/Lagrange/Trunk_debug_rhel8_llvm/build/src/util -I /data/jenkins/workspace/Lagrange/Trunk_debug_rhel8_llvm/build/src/sysm -I /data/jenkins/workspace/Lagrange/Trunk_debug_rhel8_llvm/build/src/parser -I /data/intel/mkl/2025.3/include -I /caegrp/lagrange/lag_ext/lib64_llvm/hdf5/include -I /caegrp/lagrange/lag_ext/lib64_llvm/hdf5/mod/static -cpp -mrelocation-model pic -pic-level 2 -target-cpu x86-64 -module-dir cm -std=f2018 -debug-info-kind=standalone -fopenmp -resource-dir /data/tools/llvm/21.1.6/lib/clang/21 -mframe-pointer=all -O0 -o CMakeFiles/cm.dir/core/cm/scm_scase_sets.f90.o -x f95 /data/jenkins/workspace/Lagrange/Trunk_debug_rhel8_llvm/src/core/cm/scm_scase_sets.f90
 #0 0x000000000720d238 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/data/tools/llvm/21.1.6/bin/flang+0x720d238)
 #1 0x000000000720a31c SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
 #2 0x00007f01beaa3990 __restore_rt (/lib64/libpthread.so.0+0x12990)
 #3 0x000000000762c38c Fortran::lower::PreparedActualArgument::getActual(mlir::Location, fir::FirOpBuilder&) const (/data/tools/llvm/21.1.6/bin/flang+0x762c38c)
 #4 0x000000000762c6a0 preparePresentUserCallActualArgument(mlir::Location, fir::FirOpBuilder&, Fortran::lower::PreparedActualArgument const&, mlir::Type, Fortran::lower::CallInterface<Fortran::lower::CallerInterface>::PassedEntity const&, (anonymous namespace)::CallContext&) ConvertCall.cpp:0:0
 #5 0x00000000076303ee prepareUserCallArguments(llvm::SmallVector<std::optional<Fortran::lower::PreparedActualArgument>, 1u>&, Fortran::lower::CallerInterface&, mlir::FunctionType, (anonymous namespace)::CallContext&, llvm::SmallVector<(anonymous namespace)::CallCleanUp, 1u>&) ConvertCall.cpp:0:0
 #6 0x0000000007634704 genProcedureRef((anonymous namespace)::CallContext&) ConvertCall.cpp:0:0
 #7 0x0000000007634cca Fortran::lower::convertCallToHLFIR(mlir::Location, Fortran::lower::AbstractConverter&, Fortran::evaluate::ProcedureRef const&, std::optional<mlir::Type>, Fortran::lower::SymMap&, Fortran::lower::StatementContext&) (/data/tools/llvm/21.1.6/bin/flang+0x7634cca)
 #8 0x00000000077c86b7 std::__detail::__variant::__gen_vtable_impl<std::__detail::__variant::_Multi_array<hlfir::EntityWithAttributes (*)(hlfir::EntityWithAttributes (anonymous namespace)::HlfirBuilder::gen<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>>(Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>> const&)::'lambda'(Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1> const&)&&, std::variant<Fortran::evaluate::Constant<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>>, Fortran::evaluate::ArrayConstructor<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>>, Fortran::evaluate::Designator<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>>, Fortran::evaluate::FunctionRef<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>>, Fortran::evaluate::Parentheses<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>>, Fortran::evaluate::Convert<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>, (Fortran::common::TypeCategory)4>, Fortran::evaluate::Concat<1>, Fortran::evaluate::Extremum<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>>, Fortran::evaluate::SetLength<1>> const&)>, std::tuple<std::variant<Fortran::evaluate::Constant<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>>, Fortran::evaluate::ArrayConstructor<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>>, Fortran::evaluate::Designator<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>>, Fortran::evaluate::FunctionRef<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>>, Fortran::evaluate::Parentheses<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>>, Fortran::evaluate::Convert<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>, (Fortran::common::TypeCategory)4>, Fortran::evaluate::Concat<1>, Fortran::evaluate::Extremum<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>>, Fortran::evaluate::SetLength<1>> const&>, std::integer_sequence<unsigned long, 3ul>>::__visit_invoke(hlfir::EntityWithAttributes (anonymous namespace)::HlfirBuilder::gen<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>>(Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>> const&)::'lambda'(Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1> const&)&&, std::variant<Fortran::evaluate::Constant<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>>, Fortran::evaluate::ArrayConstructor<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>>, Fortran::evaluate::Designator<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>>, Fortran::evaluate::FunctionRef<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>>, Fortran::evaluate::Parentheses<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>>, Fortran::evaluate::Convert<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>, (Fortran::common::TypeCategory)4>, Fortran::evaluate::Concat<1>, Fortran::evaluate::Extremum<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>>, Fortran::evaluate::SetLength<1>> const&) ConvertExprToHLFIR.cpp:0:0
 #9 0x00000000077f3179 hlfir::EntityWithAttributes (anonymous namespace)::HlfirBuilder::gen<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>>(Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>> const&) ConvertExprToHLFIR.cpp:0:0
#10 0x00000000077f320c std::__detail::__variant::__gen_vtable_impl<std::__detail::__variant::_Multi_array<hlfir::EntityWithAttributes (*)(hlfir::EntityWithAttributes (anonymous namespace)::HlfirBuilder::gen<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)4>>(Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)4>> const&)::'lambda'(Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)4> const&)&&, std::variant<Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>>, Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 2>>, Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 4>>> const&)>, std::tuple<std::variant<Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>>, Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 2>>, Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 4>>> const&>, std::integer_sequence<unsigned long, 0ul>>::__visit_invoke(hlfir::EntityWithAttributes (anonymous namespace)::HlfirBuilder::gen<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)4>>(Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)4>> const&)::'lambda'(Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)4> const&)&&, std::variant<Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>>, Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 2>>, Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 4>>> const&) ConvertExprToHLFIR.cpp:0:0
#11 0x00000000077eec46 hlfir::EntityWithAttributes (anonymous namespace)::HlfirBuilder::gen<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)4>>(Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)4>> const&) ConvertExprToHLFIR.cpp:0:0
#12 0x00000000077eec6c std::__detail::__variant::__gen_vtable_impl<std::__detail::__variant::_Multi_array<hlfir::EntityWithAttributes (*)(hlfir::EntityWithAttributes (anonymous namespace)::HlfirBuilder::gen<Fortran::evaluate::SomeType>(Fortran::evaluate::Expr<Fortran::evaluate::SomeType> const&)::'lambda'(Fortran::evaluate::SomeType const&)&&, std::variant<Fortran::evaluate::value::Integer<128, true, 32, unsigned int, unsigned long, 128>, Fortran::evaluate::NullPointer, Fortran::evaluate::ProcedureDesignator, Fortran::evaluate::ProcedureRef, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)0>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)2>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)3>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)4>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)1>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)6>>> const&)>, std::tuple<std::variant<Fortran::evaluate::value::Integer<128, true, 32, unsigned int, unsigned long, 128>, Fortran::evaluate::NullPointer, Fortran::evaluate::ProcedureDesignator, Fortran::evaluate::ProcedureRef, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)0>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)2>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)3>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)4>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)1>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)6>>> const&>, std::integer_sequence<unsigned long, 7ul>>::__visit_invoke(hlfir::EntityWithAttributes (anonymous namespace)::HlfirBuilder::gen<Fortran::evaluate::SomeType>(Fortran::evaluate::Expr<Fortran::evaluate::SomeType> const&)::'lambda'(Fortran::evaluate::SomeType const&)&&, std::variant<Fortran::evaluate::value::Integer<128, true, 32, unsigned int, unsigned long, 128>, Fortran::evaluate::NullPointer, Fortran::evaluate::ProcedureDesignator, Fortran::evaluate::ProcedureRef, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)0>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)2>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)3>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)4>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)1>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)6>>> const&) ConvertExprToHLFIR.cpp:0:0
#13 0x0000000007805593 Fortran::lower::convertExprToHLFIR(mlir::Location, Fortran::lower::AbstractConverter&, Fortran::evaluate::Expr<Fortran::evaluate::SomeType> const&, Fortran::lower::SymMap&, Fortran::lower::StatementContext&) (/data/tools/llvm/21.1.6/bin/flang+0x7805593)
#14 0x0000000007633ae3 genProcedureRef((anonymous namespace)::CallContext&) ConvertCall.cpp:0:0
#15 0x0000000007634cca Fortran::lower::convertCallToHLFIR(mlir::Location, Fortran::lower::AbstractConverter&, Fortran::evaluate::ProcedureRef const&, std::optional<mlir::Type>, Fortran::lower::SymMap&, Fortran::lower::StatementContext&) (/data/tools/llvm/21.1.6/bin/flang+0x7634cca)
#16 0x00000000077c86b7 std::__detail::__variant::__gen_vtable_impl<std::__detail::__variant::_Multi_array<hlfir::EntityWithAttributes (*)(hlfir::EntityWithAttributes (anonymous namespace)::HlfirBuilder::gen<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>>(Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>> const&)::'lambda'(Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1> const&)&&, std::variant<Fortran::evaluate::Constant<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>>, Fortran::evaluate::ArrayConstructor<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>>, Fortran::evaluate::Designator<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>>, Fortran::evaluate::FunctionRef<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>>, Fortran::evaluate::Parentheses<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>>, Fortran::evaluate::Convert<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>, (Fortran::common::TypeCategory)4>, Fortran::evaluate::Concat<1>, Fortran::evaluate::Extremum<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>>, Fortran::evaluate::SetLength<1>> const&)>, std::tuple<std::variant<Fortran::evaluate::Constant<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>>, Fortran::evaluate::ArrayConstructor<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>>, Fortran::evaluate::Designator<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>>, Fortran::evaluate::FunctionRef<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>>, Fortran::evaluate::Parentheses<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>>, Fortran::evaluate::Convert<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>, (Fortran::common::TypeCategory)4>, Fortran::evaluate::Concat<1>, Fortran::evaluate::Extremum<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>>, Fortran::evaluate::SetLength<1>> const&>, std::integer_sequence<unsigned long, 3ul>>::__visit_invoke(hlfir::EntityWithAttributes (anonymous namespace)::HlfirBuilder::gen<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>>(Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>> const&)::'lambda'(Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1> const&)&&, std::variant<Fortran::evaluate::Constant<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>>, Fortran::evaluate::ArrayConstructor<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>>, Fortran::evaluate::Designator<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>>, Fortran::evaluate::FunctionRef<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>>, Fortran::evaluate::Parentheses<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>>, Fortran::evaluate::Convert<Fortran::evaluate::Type<(Fortran::common::TypeCategory)4, 1>, (Fortran::common::TypeCategory)4>, Fortran::evaluate::Concat<1>, Fortran::evaluate::Extremum<Fortran::evaluate::Type<(Fortran::common::TypeCat<truncated>Please see the issue for the entire body.
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to