Skip to content

[Flang] fatal internal error: No error was reported but setting error on: z: ObjectEntity type: COMPLEX #158412

@k-arrows

Description

@k-arrows

Reproducer:
https://godbolt.org/z/rhdTKr7oW

enum, bind(c)
  enumerator :: o
end enum

complex, parameter :: z=(o, o)
integer :: i

type :: t(l,k)
  integer, kind :: k
  integer, len  :: l
  complex(k)   :: z(o)=(/((aimag(z),aimag(z)), i=1,2)/)
end type

type(t(5,4)) :: a(o:int(aimag(z)))
parameter  (  a=(/(t(5,4)(z=(/z,z/)), i=1,2)/) )

end

Backtrace:

fatal internal error: No error was reported but setting error on: z: ObjectEntity type: COMPLEX(int(int(k,kind=4),kind=8)) shape: 1_8:0_8 (has unanalyzedPDTComponentInit)
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: /cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang -fc1 -triple x86_64-unknown-linux-gnu -S -mrelocation-model pic -pic-level 2 -pic-is-pie -target-cpu x86-64 -mllvm -x86-asm-syntax=intel -resource-dir /cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/lib/clang/22 -mframe-pointer=all -o /app/output.s -x f95 /app/example.f90
 #0 0x000000000421f6f8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang+0x421f6f8)
 #1 0x000000000421c8c4 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
 #2 0x00007fa076442520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #3 0x00007fa0764969fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
 #4 0x00007fa076442476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
 #5 0x00007fa0764287f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
 #6 0x0000000006375aa9 (/cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang+0x6375aa9)
 #7 0x0000000004d4ddc4 (/cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang+0x4d4ddc4)
 #8 0x0000000004d4f3db (/cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang+0x4d4f3db)
 #9 0x0000000004ba6273 Fortran::evaluate::ExpressionAnalyzer::Designate(Fortran::evaluate::DataRef&&) (/cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang+0x4ba6273)
#10 0x0000000004bc0d56 Fortran::evaluate::ExpressionAnalyzer::Analyze(Fortran::parser::Name const&) (/cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang+0x4bc0d56)
#11 0x0000000004c0a4da std::optional<Fortran::evaluate::Expr<Fortran::evaluate::SomeType>> Fortran::common::log2visit::Log2VisitHelper<0ul, 3ul, std::optional<Fortran::evaluate::Expr<Fortran::evaluate::SomeType>>, std::optional<Fortran::evaluate::Expr<Fortran::evaluate::SomeType>> Fortran::evaluate::ExpressionAnalyzer::Analyze<Fortran::parser::Name, Fortran::common::Indirection<Fortran::parser::StructureComponent, false>, Fortran::common::Indirection<Fortran::parser::ArrayElement, false>, Fortran::common::Indirection<Fortran::parser::CoindexedNamedObject, false>>(std::variant<Fortran::parser::Name, Fortran::common::Indirection<Fortran::parser::StructureComponent, false>, Fortran::common::Indirection<Fortran::parser::ArrayElement, false>, Fortran::common::Indirection<Fortran::parser::CoindexedNamedObject, false>> const&)::'lambda'(auto const&), std::variant<Fortran::parser::Name, Fortran::common::Indirection<Fortran::parser::StructureComponent, false>, Fortran::common::Indirection<Fortran::parser::ArrayElement, false>, Fortran::common::Indirection<Fortran::parser::CoindexedNamedObject, false>> const&>(std::optional<Fortran::evaluate::Expr<Fortran::evaluate::SomeType>> Fortran::evaluate::ExpressionAnalyzer::Analyze<Fortran::parser::Name, Fortran::common::Indirection<Fortran::parser::StructureComponent, false>, Fortran::common::Indirection<Fortran::parser::ArrayElement, false>, Fortran::common::Indirection<Fortran::parser::CoindexedNamedObject, false>>(std::variant<Fortran::parser::Name, Fortran::common::Indirection<Fortran::parser::StructureComponent, false>, Fortran::common::Indirection<Fortran::parser::ArrayElement, false>, Fortran::common::Indirection<Fortran::parser::CoindexedNamedObject, false>> const&)::'lambda'(auto const&)&&, unsigned long, std::variant<Fortran::parser::Name, Fortran::common::Indirection<Fortran::parser::StructureComponent, false>, Fortran::common::Indirection<Fortran::parser::ArrayElement, false>, Fortran::common::Indirection<Fortran::parser::CoindexedNamedObject, false>> const&) (/cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang+0x4c0a4da)
#12 0x0000000004c0eead Fortran::evaluate::ExpressionAnalyzer::Analyze(Fortran::parser::Designator const&) (/cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang+0x4c0eead)
#13 0x0000000004c010b8 std::optional<Fortran::evaluate::Expr<Fortran::evaluate::SomeType>> Fortran::common::log2visit::Log2VisitHelper<0ul, 7ul, std::optional<Fortran::evaluate::Expr<Fortran::evaluate::SomeType>>, std::optional<Fortran::evaluate::Expr<Fortran::evaluate::SomeType>> Fortran::evaluate::ExpressionAnalyzer::Analyze<Fortran::common::Indirection<Fortran::parser::CharLiteralConstantSubstring, false>, Fortran::parser::LiteralConstant, Fortran::common::Indirection<Fortran::parser::Designator, false>, Fortran::parser::ArrayConstructor, Fortran::parser::StructureConstructor, Fortran::common::Indirection<Fortran::parser::FunctionReference, false>, Fortran::parser::Expr::Parentheses, Fortran::parser::Expr::UnaryPlus, Fortran::parser::Expr::Negate, Fortran::parser::Expr::NOT, Fortran::parser::Expr::PercentLoc, Fortran::parser::Expr::DefinedUnary, Fortran::parser::Expr::Power, Fortran::parser::Expr::Multiply, Fortran::parser::Expr::Divide, Fortran::parser::Expr::Add, Fortran::parser::Expr::Subtract, Fortran::parser::Expr::Concat, Fortran::parser::Expr::LT, Fortran::parser::Expr::LE, Fortran::parser::Expr::EQ, Fortran::parser::Expr::NE, Fortran::parser::Expr::GE, Fortran::parser::Expr::GT, Fortran::parser::Expr::AND, Fortran::parser::Expr::OR, Fortran::parser::Expr::EQV, Fortran::parser::Expr::NEQV, Fortran::parser::Expr::DefinedBinary, Fortran::parser::Expr::ComplexConstructor, Fortran::common::Indirection<Fortran::parser::SubstringInquiry, false>>(std::variant<Fortran::common::Indirection<Fortran::parser::CharLiteralConstantSubstring, false>, Fortran::parser::LiteralConstant, Fortran::common::Indirection<Fortran::parser::Designator, false>, Fortran::parser::ArrayConstructor, Fortran::parser::StructureConstructor, Fortran::common::Indirection<Fortran::parser::FunctionReference, false>, Fortran::parser::Expr::Parentheses, Fortran::parser::Expr::UnaryPlus, Fortran::parser::Expr::Negate, Fortran::parser::Expr::NOT, Fortran::parser::Expr::PercentLoc, Fortran::parser::Expr::DefinedUnary, Fortran::parser::Expr::Power, Fortran::parser::Expr::Multiply, Fortran::parser::Expr::Divide, Fortran::parser::Expr::Add, Fortran::parser::Expr::Subtract, Fortran::parser::Expr::Concat, Fortran::parser::Expr::LT, Fortran::parser::Expr::LE, Fortran::parser::Expr::EQ, Fortran::parser::Expr::NE, Fortran::parser::Expr::GE, Fortran::parser::Expr::GT, Fortran::parser::Expr::AND, Fortran::parser::Expr::OR, Fortran::parser::Expr::EQV, Fortran::parser::Expr::NEQV, Fortran::parser::Expr::DefinedBinary, Fortran::parser::Expr::ComplexConstructor, Fortran::common::Indirection<Fortran::parser::SubstringInquiry, false>> const&)::'lambda'(auto const&), std::variant<Fortran::common::Indirection<Fortran::parser::CharLiteralConstantSubstring, false>, Fortran::parser::LiteralConstant, Fortran::common::Indirection<Fortran::parser::Designator, false>, Fortran::parser::ArrayConstructor, Fortran::parser::StructureConstructor, Fortran::common::Indirection<Fortran::parser::FunctionReference, false>, Fortran::parser::Expr::Parentheses, Fortran::parser::Expr::UnaryPlus, Fortran::parser::Expr::Negate, Fortran::parser::Expr::NOT, Fortran::parser::Expr::PercentLoc, Fortran::parser::Expr::DefinedUnary, Fortran::parser::Expr::Power, Fortran::parser::Expr::Multiply, Fortran::parser::Expr::Divide, Fortran::parser::Expr::Add, Fortran::parser::Expr::Subtract, Fortran::parser::Expr::Concat, Fortran::parser::Expr::LT, Fortran::parser::Expr::LE, Fortran::parser::Expr::EQ, Fortran::parser::Expr::NE, Fortran::parser::Expr::GE, Fortran::parser::Expr::GT, Fortran::parser::Expr::AND, Fortran::parser::Expr::OR, Fortran::parser::Expr::EQV, Fortran::parser::Expr::NEQV, Fortran::parser::Expr::DefinedBinary, Fortran::parser::Expr::ComplexConstructor, Fortran::common::Indirection<Fortran::parser::SubstringInquiry, false>> const&>(std::optional<Fortran::evaluate::Expr<Fortran::evaluate::SomeType>> Fortran::evaluate::ExpressionAnalyzer::Analyze<Fortran::common::Indirection<Fortran::parser::CharLiteralConstantSubstring, false>, Fortran::parser::LiteralConstant, Fortran::common::Indirection<Fortran::parser::Designator, false>, Fortran::parser::ArrayConstructor, Fortran::parser::StructureConstructor, Fortran::common::Indirection<Fortran::parser::FunctionReference, false>, Fortran::parser::Expr::Parentheses, Fortran::parser::Expr::UnaryPlus, Fortran::parser::Expr::Negate, Fortran::parser::Expr::NOT, Fortran::parser::Expr::PercentLoc, Fortran::parser::Expr::DefinedUnary, Fortran::parser::Expr::Power, Fortran::parser::Expr::Multiply, Fortran::parser::Expr::Divide, Fortran::parser::Expr::Add, Fortran::parser::Expr::Subtract, Fortran::parser::Expr::Concat, Fortran::parser::Expr::LT, Fortran::parser::Expr::LE, Fortran::parser::Expr::EQ, Fortran::parser::Expr::NE, Fortran::parser::Expr::GE, Fortran::parser::Expr::GT, Fortran::parser::Expr::AND, Fortran::parser::Expr::OR, Fortran::parser::Expr::EQV, Fortran::parser::Expr::NEQV, Fortran::parser::Expr::DefinedBinary, Fortran::parser::Expr::ComplexConstructor, Fortran::common::Indirection<Fortran::parser::SubstringInquiry, false>>(std::variant<Fortran::common::Indirection<Fortran::parser::CharLiteralConstantSubstring, false>, Fortran::parser::LiteralConstant, Fortran::common::Indirection<Fortran::parser::Designator, false>, Fortran::parser::ArrayConstructor, Fortran::parser::StructureConstructor, Fortran::common::Indirection<Fortran::parser::FunctionReference, false>, Fortran::parser::Expr::Parentheses, Fortran::parser::Expr::UnaryPlus, Fortran::parser::Expr::Negate, Fortran::parser::Expr::NOT, Fortran::parser::Expr::PercentLoc, Fortran::parser::Expr::DefinedUnary, Fortran::parser::Expr::Power, Fortran::parser::Expr::Multiply, Fortran::parser::Expr::Divide, Fortran::parser::Expr::Add, Fortran::parser::Expr::Subtract, Fortran::parser::Expr::Concat, Fortran::parser::Expr::LT, Fortran::parser::Expr::LE, Fortran::parser::Expr::EQ, Fortran::parser::Expr::NE, Fortran::parser::Expr::GE, Fortran::parser::Expr::GT, Fortran::parser::Expr::AND, Fortran::parser::Expr::OR, Fortran::parser::Expr::EQV, Fortran::parser::Expr::NEQV, Fortran::parser::Expr::DefinedBinary, Fortran::parser::Expr::ComplexConstructor, Fortran::common::Indirection<Fortran::parser::SubstringInquiry, false>> const&)::'lambda'(auto const&)&&, unsigned long, std::variant<Fortran::common::Indirection<Fortran::parser::CharLiteralConstantSubstring, false>, Fortran::parser::LiteralConstant, Fortran::common::Indirection<Fortran::parser::Designator, false>, Fortran::parser::ArrayConstructor, Fortran::parser::StructureConstructor, Fortran::common::Indirection<Fortran::parser::FunctionReference, false>, Fortran::parser::Expr::Parentheses, Fortran::parser::Expr::UnaryPlus, Fortran::parser::Expr::Negate, Fortran::parser::Expr::NOT, Fortran::parser::Expr::PercentLoc, Fortran::parser::Expr::DefinedUnary, Fortran::parser::Expr::Power, Fortran::parser::Expr::Multiply, Fortran::parser::Expr::Divide, Fortran::parser::Expr::Add, Fortran::parser::Expr::Subtract, Fortran::parser::Expr::Concat, Fortran::parser::Expr::LT, Fortran::parser::Expr::LE, Fortran::parser::Expr::EQ, Fortran::parser::Expr::NE, Fortran::parser::Expr::GE, Fortran::parser::Expr::GT, Fortran::parser::Expr::AND, Fortran::parser::Expr::OR, Fortran::parser::Expr::EQV, Fortran::parser::Expr::NEQV, Fortran::parser::Expr::DefinedBinary, Fortran::parser::Expr::ComplexConstructor, Fortran::common::Indirection<Fortran::parser::SubstringInquiry, false>> const&) (/cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang+0x4c010b8)
#14 0x0000000004c01266 std::optional<Fortran::evaluate::Expr<Fortran::evaluate::SomeType>> Fortran::evaluate::ExpressionAnalyzer::ExprOrVariable<Fortran::parser::Expr>(Fortran::parser::Expr const&, Fortran::parser::CharBlock) (/cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang+0x4c01266)
#15 0x0000000004c021d1 Fortran::evaluate::ExpressionAnalyzer::Analyze(Fortran::parser::Expr const&) (/cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang+0x4c021d1)
#16 0x0000000004c023b0 Fortran::evaluate::ArgumentAnalyzer::AnalyzeExprOrWholeAssumedSizeArray(Fortran::parser::Expr const&) (/cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang+0x4c023b0)
#17 0x0000000004c0258a Fortran::evaluate::ArgumentAnalyzer::AnalyzeExpr(Fortran::parser::Expr const&) (/cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang+0x4c0258a)
#18 0x0000000004c02b40 Fortran::evaluate::ArgumentAnalyzer::Analyze(Fortran::parser::ActualArgSpec const&, bool) (/cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang+0x4c02b40)
#19 0x0000000004c0d57e Fortran::evaluate::ExpressionAnalyzer::Analyze(Fortran::parser::FunctionReference const&, std::optional<Fortran::parser::StructureConstructor>*) (/cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang+0x4c0d57e)
#20 0x0000000004c01395 std::optional<Fortran::evaluate::Expr<Fortran::evaluate::SomeType>> Fortran::evaluate::ExpressionAnalyzer::ExprOrVariable<Fortran::parser::Expr>(Fortran::parser::Expr const&, Fortran::parser::CharBlock) (/cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang+0x4c01395)
#21 0x0000000004c021d1 Fortran::evaluate::ExpressionAnalyzer::Analyze(Fortran::parser::Expr const&) (/cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang+0x4c021d1)
#22 0x0000000004c0485c Fortran::evaluate::ExpressionAnalyzer::Analyze(Fortran::parser::Expr::ComplexConstructor const&) (/cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang+0x4c0485c)
#23 0x0000000004c0edd4 std::optional<Fortran::evaluate::Expr<Fortran::evaluate::SomeType>> Fortran::common::log2visit::Log2VisitHelper<24ul, 30ul, std::optional<Fortran::evaluate::Expr<Fortran::evaluate::SomeType>>, std::optional<Fortran::evaluate::Expr<Fortran::evaluate::SomeType>> Fortran::evaluate::ExpressionAnalyzer::Analyze<Fortran::common::Indirection<Fortran::parser::CharLiteralConstantSubstring, false>, Fortran::parser::LiteralConstant, Fortran::common::Indirection<Fortran::parser::Designator, false>, Fortran::parser::ArrayConstructor, Fortran::parser::StructureConstructor, Fortran::common::Indirection<Fortran::parser::FunctionReference, false>, Fortran::parser::Expr::Parentheses, Fortran::parser::Expr::UnaryPlus, Fortran::parser::Expr::Negate, Fortran::parser::Expr::NOT, Fortran::parser::Expr::PercentLoc, Fortran::parser::Expr::DefinedUnary, Fortran::parser::Expr::Power, Fortran::parser::Expr::Multiply, Fortran::parser::Expr::Divide, Fortran::parser::Expr::Add, Fortran::parser::Expr::Subtract, Fortran::parser::Expr::Concat, Fortran::parser::Expr::LT, Fortran::parser::Expr::LE, Fortran::parser::Expr::EQ, Fortran::parser::Expr::NE, Fortran::parser::Expr::GE, Fortran::parser::Expr::GT, Fortran::parser::Expr::AND, Fortran::parser::Expr::OR, Fortran::parser::Expr::EQV, Fortran::parser::Expr::NEQV, Fortran::parser::Expr::DefinedBinary, Fortran::parser::Expr::ComplexConstructor, Fortran::common::Indirection<Fortran::parser::SubstringInquiry, false>>(std::variant<Fortran::common::Indirection<Fortran::parser::CharLiteralConstantSubstring, false>, Fortran::parser::LiteralConstant, Fortran::common::Indirection<Fortran::parser::Designator, false>, Fortran::parser::ArrayConstructor, Fortran::parser::StructureConstructor, Fortran::common::Indirection<Fortran::parser::FunctionReference, false>, Fortran::parser::Expr::Parentheses, Fortran::parser::Expr::UnaryPlus, Fortran::parser::Expr::Negate, Fortran::parser::Expr::NOT, Fortran::parser::Expr::PercentLoc, Fortran::parser::Expr::DefinedUnary, Fortran::parser::Expr::Power, Fortran::parser::Expr::Multiply, Fortran::parser::Expr::Divide, Fortran::parser::Expr::Add, Fortran::parser::Expr::Subtract, Fortran::parser::Expr::Concat, Fortran::parser::Expr::LT, Fortran::parser::Expr::LE, Fortran::parser::Expr::EQ, Fortran::parser::Expr::NE, Fortran::parser::Expr::GE, Fortran::parser::Expr::GT, Fortran::parser::Expr::AND, Fortran::parser::Expr::OR, Fortran::parser::Expr::EQV, Fortran::parser::Expr::NEQV, Fortran::parser::Expr::DefinedBinary, Fortran::parser::Expr::ComplexConstructor, Fortran::common::Indirection<Fortran::parser::SubstringInquiry, false>> const&)::'lambda'(auto const&), std::variant<Fortran::common::Indirection<Fortran::parser::CharLiteralConstantSubstring, false>, Fortran::parser::LiteralConstant, Fortran::common::Indirection<Fortran::parser::Designator, false>, Fortran::parser::ArrayConstructor, Fortran::parser::StructureConstructor, Fortran::common::Indirection<Fortran::parser::FunctionReference, false>, Fortran::parser::Expr::Parentheses, Fortran::parser::Expr::UnaryPlus, Fortran::parser::Expr::Negate, Fortran::parser::Expr::NOT, Fortran::parser::Expr::PercentLoc, Fortran::parser::Expr::DefinedUnary, Fortran::parser::Expr::Power, Fortran::parser::Expr::Multiply, Fortran::parser::Expr::Divide, Fortran::parser::Expr::Add, Fortran::parser::Expr::Subtract, Fortran::parser::Expr::Concat, Fortran::parser::Expr::LT, Fortran::parser::Expr::LE, Fortran::parser::Expr::EQ, Fortran::parser::Expr::NE, Fortran::parser::Expr::GE, Fortran::parser::Expr::GT, Fortran::parser::Expr::AND, Fortran::parser::Expr::OR, Fortran::parser::Expr::EQV, Fortran::parser::Expr::NEQV, Fortran::parser::Expr::DefinedBinary, Fortran::parser::Expr::ComplexConstructor, Fortran::common::Indirection<Fortran::parser::SubstringInquiry, false>> const&>(std::optional<Fortran::evaluate::Expr<Fortran::evaluate::SomeType>> Fortran::evaluate::ExpressionAnalyzer::Analyze<Fortran::common::Indirection<Fortran::parser::CharLiteralConstantSubstring, false>, Fortran::parser::LiteralConstant, Fortran::common::Indirection<Fortran::parser::Designator, false>, Fortran::parser::ArrayConstructor, Fortran::parser::StructureConstructor, Fortran::common::Indirection<Fortran::parser::FunctionReference, false>, Fortran::parser::Expr::Parentheses, Fortran::parser::Expr::UnaryPlus, Fortran::parser::Expr::Negate, Fortran::parser::Expr::NOT, Fortran::parser::Expr::PercentLoc, Fortran::parser::Expr::DefinedUnary, Fortran::parser::Expr::Power, Fortran::parser::Expr::Multiply, Fortran::parser::Expr::Divide, Fortran::parser::Expr::Add, Fortran::parser::Expr::Subtract, Fortran::parser::Expr::Concat, Fortran::parser::Expr::LT, Fortran::parser::Expr::LE, Fortran::parser::Expr::EQ, Fortran::parser::Expr::NE, Fortran::parser::Expr::GE, Fortran::parser::Expr::GT, Fortran::parser::Expr::AND, Fortran::parser::Expr::OR, Fortran::parser::Expr::EQV, Fortran::parser::Expr::NEQV, Fortran::parser::Expr::DefinedBinary, Fortran::parser::Expr::ComplexConstructor, Fortran::common::Indirection<Fortran::parser::SubstringInquiry, false>>(std::variant<Fortran::common::Indirection<Fortran::parser::CharLiteralConstantSubstring, false>, Fortran::parser::LiteralConstant, Fortran::common::Indirection<Fortran::parser::Designator, false>, Fortran::parser::ArrayConstructor, Fortran::parser::StructureConstructor, Fortran::common::Indirection<Fortran::parser::FunctionReference, false>, Fortran::parser::Expr::Parentheses, Fortran::parser::Expr::UnaryPlus, Fortran::parser::Expr::Negate, Fortran::parser::Expr::NOT, Fortran::parser::Expr::PercentLoc, Fortran::parser::Expr::DefinedUnary, Fortran::parser::Expr::Power, Fortran::parser::Expr::Multiply, Fortran::parser::Expr::Divide, Fortran::parser::Expr::Add, Fortran::parser::Expr::Subtract, Fortran::parser::Expr::Concat, Fortran::parser::Expr::LT, Fortran::parser::Expr::LE, Fortran::parser::Expr::EQ, Fortran::parser::Expr::NE, Fortran::parser::Expr::GE, Fortran::parser::Expr::GT, Fortran::parser::Expr::AND, Fortran::parser::Expr::OR, Fortran::parser::Expr::EQV, Fortran::parser::Expr::NEQV, Fortran::parser::Expr::DefinedBinary, Fortran::parser::Expr::ComplexConstructor, Fortran::common::Indirection<Fortran::parser::SubstringInquiry, false>> const&)::'lambda'(auto const&)&&, unsigned long, std::variant<Fortran::common::Indirection<Fortran::parser::CharLiteralConstantSubstring, false>, Fortran::parser::LiteralConstant, Fortran::common::Indirection<Fortran::parser::Designator, false>, Fortran::parser::ArrayConstructor, Fortran::parser::StructureConstructor, Fortran::common::Indirection<Fortran::parser::FunctionReference, false>, Fortran::parser::Expr::Parentheses, Fortran::parser::Expr::UnaryPlus, Fortran::parser::Expr::Negate, Fortran::parser::Expr::NOT, Fortran::parser::Expr::PercentLoc, Fortran::parser::Expr::DefinedUnary, Fortran::parser::Expr::Power, Fortran::parser::Expr::Multiply, Fortran::parser::Expr::Divide, Fortran::parser::Expr::Add, Fortran::parser::Expr::Subtract, Fortran::parser::Expr::Concat, Fortran::parser::Expr::LT, Fortran::parser::Expr::LE, Fortran::parser::Expr::EQ, Fortran::parser::Expr::NE, Fortran::parser::Expr::GE, Fortran::parser::Expr::GT, Fortran::parser::Expr::AND, Fortran::parser::Expr::OR, Fortran::parser::Expr::EQV, Fortran::parser::Expr::NEQV, Fortran::parser::Expr::DefinedBinary, Fortran::parser::Expr::ComplexConstructor, Fortran::common::Indirection<Fortran::parser::SubstringInquiry, false>> const&) (/cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang+0x4c0edd4)
#24 0x0000000004c0162f std::optional<Fortran::evaluate::Expr<Fortran::evaluate::SomeType>> Fortran::evaluate::ExpressionAnalyzer::ExprOrVariable<Fortran::parser::Expr>(Fortran::parser::Expr const&, Fortran::parser::CharBlock) (/cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang+0x4c0162f)
#25 0x0000000004c021d1 Fortran::evaluate::ExpressionAnalyzer::Analyze(Fortran::parser::Expr const&) (/cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang+0x4c021d1)
#26 0x0000000004c0507b Fortran::evaluate::ArrayConstructorContext::Add(Fortran::parser::Expr const&) (/cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang+0x4c0507b)
#27 0x0000000004c08e50 Fortran::evaluate::ArrayConstructorContext::Add(Fortran::parser::AcImpliedDo const&) (/cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang+0x4c08e50)
#28 0x0000000004c008ae Fortran::evaluate::ExpressionAnalyzer::Analyze(Fortran::parser::ArrayConstructor const&) (/cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang+0x4c008ae)
#29 0x0000000004c010dd std::optional<Fortran::evaluate::Expr<Fortran::evaluate::SomeType>> Fortran::common::log2visit::Log2VisitHelper<0ul, 7ul, std::optional<Fortran::evaluate::Expr<Fortran::evaluate::SomeType>>, std::optional<Fortran::evaluate::Expr<Fortran::evaluate::SomeType>> Fortran::evaluate::ExpressionAnalyzer::Analyze<Fortran::common::Indirection<Fortran::parser::CharLiteralConstantSubstring, false>, Fortran::parser::LiteralConstant, Fortran::common::Indirection<Fortran::parser::Designator, false>, Fortran::parser::ArrayConstructor, Fortran::parser::StructureConstructor, Fortran::common::Indirection<Fortran::parser::FunctionReference, false>, Fortran::parser::Expr::Parentheses, Fortran::parser::Expr::UnaryPlus, Fortran::parser::Expr::Negate, Fortran::parser::Expr::NOT, Fortran::parser::Expr::PercentLoc, Fortran::parser::Expr::DefinedUnary, Fortran::parser::Expr::Power, Fortran::parser::Expr::Multiply, Fortran::parser::Expr::Divide, Fortran::parser::Expr::Add, Fortran::parser::Expr::Subtract, Fortran::parser::Expr::Concat, Fortran::parser::Expr::LT, Fortran::parser::Expr::LE, Fortran::parser::Expr::EQ, Fortran::parser::Expr::NE, Fortran::parser::Expr::GE, Fortran::parser::Expr::GT, Fortran::parser::Expr::AND, Fortran::parser::Expr::OR, Fortran::parser::Expr::EQV, Fortran::parser::Expr::NEQV, Fortran::parser::Expr::DefinedBinary, Fortran::parser::Expr::ComplexConstructor, Fortran::common::Indirection<Fortran::parser::SubstringInquiry, false>>(std::variant<Fortran::common::Indirection<Fortran::parser::CharLiteralConstantSubstring, false>, Fortran::parser::LiteralConstant, Fortran::common::Indirection<Fortran::parser::Designator, false>, Fortran::parser::ArrayConstructor, Fortran::parser::StructureConstructor, Fortran::common::Indirection<Fortran::parser::FunctionReference, false>, Fortran::parser::Expr::Parentheses, Fortran::parser::Expr::UnaryPlus, Fortran::parser::Expr::Negate, Fortran::parser::Expr::NOT, Fortran::parser::Expr::PercentLoc, Fortran::parser::Expr::DefinedUnary, Fortran::parser::Expr::Power, Fortran::parser::Expr::Multiply, Fortran::parser::Expr::Divide, Fortran::parser::Expr::Add, Fortran::parser::Expr::Subtract, Fortran::parser::Expr::Concat, Fortran::parser::Expr::LT, Fortran::parser::Expr::LE, Fortran::parser::Expr::EQ, Fortran::parser::Expr::NE, Fortran::parser::Expr::GE, Fortran::parser::Expr::GT, Fortran::parser::Expr::AND, Fortran::parser::Expr::OR, Fortran::parser::Expr::EQV, Fortran::parser::Expr::NEQV, Fortran::parser::Expr::DefinedBinary, Fortran::parser::Expr::ComplexConstructor, Fortran::common::Indirection<Fortran::parser::SubstringInquiry, false>> const&)::'lambda'(auto const&), std::variant<Fortran::common::Indirection<Fortran::parser::CharLiteralConstantSubstring, false>, Fortran::parser::LiteralConstant, Fortran::common::Indirection<Fortran::parser::Designator, false>, Fortran::parser::ArrayConstructor, Fortran::parser::StructureConstructor, Fortran::common::Indirection<Fortran::parser::FunctionReference, false>, Fortran::parser::Expr::Parentheses, Fortran::parser::Expr::UnaryPlus, Fortran::parser::Expr::Negate, Fortran::parser::Expr::NOT, Fortran::parser::Expr::PercentLoc, Fortran::parser::Expr::DefinedUnary, Fortran::parser::Expr::Power, Fortran::parser::Expr::Multiply, Fortran::parser::Expr::Divide, Fortran::parser::Expr::Add, Fortran::parser::Expr::Subtract, Fortran::parser::Expr::Concat, Fortran::parser::Expr::LT, Fortran::parser::Expr::LE, Fortran::parser::Expr::EQ, Fortran::parser::Expr::NE, Fortran::parser::Expr::GE, Fortran::parser::Expr::GT, Fortran::parser::Expr::AND, Fortran::parser::Expr::OR, Fortran::parser::Expr::EQV, Fortran::parser::Expr::NEQV, Fortran::parser::Expr::DefinedBinary, Fortran::parser::Expr::ComplexConstructor, Fortran::common::Indirection<Fortran::parser::SubstringInquiry, false>> const&>(std::optional<Fortran::evaluate::Expr<Fortran::evaluate::SomeType>> Fortran::evaluate::ExpressionAnalyzer::Analyze<Fortran::common::Indirection<Fortran::parser::CharLiteralConstantSubstring, false>, Fortran::parser::LiteralConstant, Fortran::common::Indirection<Fortran::parser::Designator, false>, Fortran::parser::ArrayConstructor, Fortran::parser::StructureConstructor, Fortran::common::Indirection<Fortran::parser::FunctionReference, false>, Fortran::parser::Expr::Parentheses, Fortran::parser::Expr::UnaryPlus, Fortran::parser::Expr::Negate, Fortran::parser::Expr::NOT, Fortran::parser::Expr::PercentLoc, Fortran::parser::Expr::DefinedUnary, Fortran::parser::Expr::Power, Fortran::parser::Expr::Multiply, Fortran::parser::Expr::Divide, Fortran::parser::Expr::Add, Fortran::parser::Expr::Subtract, Fortran::parser::Expr::Concat, Fortran::parser::Expr::LT, Fortran::parser::Expr::LE, Fortran::parser::Expr::EQ, Fortran::parser::Expr::NE, Fortran::parser::Expr::GE, Fortran::parser::Expr::GT, Fortran::parser::Expr::AND, Fortran::parser::Expr::OR, Fortran::parser::Expr::EQV, Fortran::parser::Expr::NEQV, Fortran::parser::Expr::DefinedBinary, Fortran::parser::Expr::ComplexConstructor, Fortran::common::Indirection<Fortran::parser::SubstringInquiry, false>>(std::variant<Fortran::common::Indirection<Fortran::parser::CharLiteralConstantSubstring, false>, Fortran::parser::LiteralConstant, Fortran::common::Indirection<Fortran::parser::Designator, false>, Fortran::parser::ArrayConstructor, Fortran::parser::StructureConstructor, Fortran::common::Indirection<Fortran::parser::FunctionReference, false>, Fortran::parser::Expr::Parentheses, Fortran::parser::Expr::UnaryPlus, Fortran::parser::Expr::Negate, Fortran::parser::Expr::NOT, Fortran::parser::Expr::PercentLoc, Fortran::parser::Expr::DefinedUnary, Fortran::parser::Expr::Power, Fortran::parser::Expr::Multiply, Fortran::parser::Expr::Divide, Fortran::parser::Expr::Add, Fortran::parser::Expr::Subtract, Fortran::parser::Expr::Concat, Fortran::parser::Expr::LT, Fortran::parser::Expr::LE, Fortran::parser::Expr::EQ, Fortran::parser::Expr::NE, Fortran::parser::Expr::GE, Fortran::parser::Expr::GT, Fortran::parser::Expr::AND, Fortran::parser::Expr::OR, Fortran::parser::Expr::EQV, Fortran::parser::Expr::NEQV, Fortran::parser::Expr::DefinedBinary, Fortran::parser::Expr::ComplexConstructor, Fortran::common::Indirection<Fortran::parser::SubstringInquiry, false>> const&)::'lambda'(auto const&)&&, unsigned long, std::variant<Fortran::common::Indirection<Fortran::parser::CharLiteralConstantSubstring, false>, Fortran::parser::LiteralConstant, Fortran::common::Indirection<Fortran::parser::Designator, false>, Fortran::parser::ArrayConstructor, Fortran::parser::StructureConstructor, Fortran::common::Indirection<Fortran::parser::FunctionReference, false>, Fortran::parser::Expr::Parentheses, Fortran::parser::Expr::UnaryPlus, Fortran::parser::Expr::Negate, Fortran::parser::Expr::NOT, Fortran::parser::Expr::PercentLoc, Fortran::parser::Expr::DefinedUnary, Fortran::parser::Expr::Power, Fortran::parser::Expr::Multiply, Fortran::parser::Expr::Divide, Fortran::parser::Expr::Add, Fortran::parser::Expr::Subtract, Fortran::parser::Expr::Concat, Fortran::parser::Expr::LT, Fortran::parser::Expr::LE, Fortran::parser::Expr::EQ, Fortran::parser::Expr::NE, Fortran::parser::Expr::GE, Fortran::parser::Expr::GT, Fortran::parser::Expr::AND, Fortran::parser::Expr::OR, Fortran::parser::Expr::EQV, Fortran::parser::Expr::NEQV, Fortran::parser::Expr::DefinedBinary, Fortran::parser::Expr::ComplexConstructor, Fortran::common::Indirection<Fortran::parser::SubstringInquiry, false>> const&) (/cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang+0x4c010dd)
#30 0x0000000004c01266 std::optional<Fortran::evaluate::Expr<Fortran::evaluate::SomeType>> Fortran::evaluate::ExpressionAnalyzer::ExprOrVariable<Fortran::parser::Expr>(Fortran::parser::Expr const&, Fortran::parser::CharBlock) (/cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang+0x4c01266)
#31 0x0000000004c01edf Fortran::evaluate::ExpressionAnalyzer::IterativelyAnalyzeSubexpressions(Fortran::parser::Expr const&) (/cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang+0x4c01edf)
#32 0x0000000004c02295 Fortran::evaluate::ExpressionAnalyzer::Analyze(Fortran::parser::Expr const&) (/cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang+0x4c02295)
#33 0x0000000004dc3bfe Fortran::semantics::InstantiateHelper::InstantiateComponent(Fortran::semantics::Symbol const&) (/cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang+0x4dc3bfe)
#34 0x0000000004dc41a7 Fortran::semantics::InstantiateHelper::InstantiateComponents(Fortran::semantics::Scope const&) (/cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang+0x4dc41a7)
#35 0x0000000004dc507b Fortran::semantics::DerivedTypeSpec::Instantiate(Fortran::semantics::Scope&) (/cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang+0x4dc507b)
#36 0x0000000004cbac1b Fortran::semantics::DeclarationVisitor::Post(Fortran::parser::DerivedTypeSpec const&) (/cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang+0x4cbac1b)
#37 0x0000000004cbf8a6 void Fortran::common::log2visit::Log2VisitHelper<0ul, 6ul, void, void Fortran::parser::detail::ParseTreeVisitorLookupScope::Walk<Fortran::semantics::ResolveNamesVisitor, Fortran::parser::IntrinsicTypeSpec, Fortran::parser::DeclarationTypeSpec::Type, Fortran::parser::DeclarationTypeSpec::Class, Fortran::parser::DeclarationTypeSpec::ClassStar, Fortran::parser::DeclarationTypeSpec::TypeStar, Fortran::parser::DeclarationTypeSpec::Record, Fortran::parser::VectorTypeSpec>(std::variant<Fortran::parser::IntrinsicTypeSpec, Fortran::parser::DeclarationTypeSpec::Type, Fortran::parser::DeclarationTypeSpec::Class, Fortran::parser::DeclarationTypeSpec::ClassStar, Fortran::parser::DeclarationTypeSpec::TypeStar, Fortran::parser::DeclarationTypeSpec::Record, Fortran::parser::VectorTypeSpec> const&, Fortran::semantics::ResolveNamesVisitor&)::'lambda'(Fortran::semantics::ResolveNamesVisitor const&), std::variant<Fortran::parser::IntrinsicTypeSpec, Fortran::parser::DeclarationTypeSpec::Type, Fortran::parser::DeclarationTypeSpec::Class, Fortran::parser::DeclarationTypeSpec::ClassStar, Fortran::parser::DeclarationTypeSpec::TypeStar, Fortran::parser::DeclarationTypeSpec::Record, Fortran::parser::VectorTypeSpec> const&>(void Fortran::parser::detail::ParseTreeVisitorLookupScope::Walk<Fortran::semantics::ResolveNamesVisitor, Fortran::parser::IntrinsicTypeSpec, Fortran::parser::DeclarationTypeSpec::Type, Fortran::parser::DeclarationTypeSpec::Class, Fortran::parser::DeclarationTypeSpec::ClassStar, Fortran::parser::DeclarationTypeSpec::TypeStar, Fortran::parser::DeclarationTypeSpec::Record, Fortran::parser::VectorTypeSpec>(std::variant<Fortran::parser::IntrinsicTypeSpec, Fortran::parser::DeclarationTypeSpec::Type, Fortran::parser::DeclarationTypeSpec::Class, Fortran::parser::DeclarationTypeSpec::ClassStar, Fortran::parser::DeclarationTypeSpec::TypeStar, Fortran::parser::DeclarationTypeSpec::Record, Fortran::parser::VectorTypeSpec> const&, Fortran::semantics::ResolveNamesVisitor&)::'lambda'(Fortran::semantics::ResolveNamesVisitor const&)&&, unsigned long, std::variant<Fortran::parser::IntrinsicTypeSpec, Fortran::parser::DeclarationTypeSpec::Type, Fortran::parser::DeclarationTypeSpec::Class, Fortran::parser::DeclarationTypeSpec::ClassStar, Fortran::parser::DeclarationTypeSpec::TypeStar, Fortran::parser::DeclarationTypeSpec::Record, Fortran::parser::VectorTypeSpec> const&) (/cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang+0x4cbf8a6)
#38 0x0000000004cf96a2 void Fortran::parser::detail::ParseTreeVisitorLookupScope::Walk<Fortran::parser::DeclarationConstruct, Fortran::semantics::ResolveNamesVisitor>(std::__cxx11::list<Fortran::parser::DeclarationConstruct, std::allocator<Fortran::parser::DeclarationConstruct>> const&, Fortran::semantics::ResolveNamesVisitor&) (/cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang+0x4cf96a2)
#39 0x0000000004cf630a Fortran::semantics::ResolveNamesVisitor::Pre(Fortran::parser::SpecificationPart const&) (/cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang+0x4cf630a)
#40 0x0000000004cf6f02 std::enable_if<TupleTrait<Fortran::parser::SpecificationPart>, void>::type Fortran::parser::detail::ParseTreeVisitorLookupScope::Walk<Fortran::parser::SpecificationPart, Fortran::semantics::ResolveNamesVisitor>(Fortran::parser::SpecificationPart const&, Fortran::semantics::ResolveNamesVisitor&) (/cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang+0x4cf6f02)
#41 0x0000000004d19aa4 Fortran::semantics::ResolveNamesVisitor::ResolveSpecificationParts(Fortran::semantics::ProgramTree&) (.part.0) resolve-names.cpp:0:0
#42 0x0000000004d1a373 Fortran::semantics::ResolveNamesVisitor::Pre(Fortran::parser::ProgramUnit const&) (/cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang+0x4d1a373)
#43 0x0000000004d1b8f9 Fortran::semantics::ResolveNames(Fortran::semantics::SemanticsContext&, Fortran::parser::Program const&, Fortran::semantics::Scope&) (/cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang+0x4d1b8f9)
#44 0x0000000004da1817 Fortran::semantics::Semantics::Perform() (/cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang+0x4da1817)
#45 0x000000000427e3f8 Fortran::frontend::FrontendAction::runSemanticChecks() (/cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang+0x427e3f8)
#46 0x0000000004526ca0 Fortran::frontend::CodeGenAction::beginSourceFileAction() (/cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang+0x4526ca0)
#47 0x000000000427d055 Fortran::frontend::FrontendAction::beginSourceFile(Fortran::frontend::CompilerInstance&, Fortran::frontend::FrontendInputFile const&) (/cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang+0x427d055)
#48 0x000000000426aedf Fortran::frontend::CompilerInstance::executeAction(Fortran::frontend::FrontendAction&) (/cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang+0x426aedf)
#49 0x00000000042869fb Fortran::frontend::executeCompilerInvocation(Fortran::frontend::CompilerInstance*) (/cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang+0x42869fb)
#50 0x000000000258f782 fc1_main(llvm::ArrayRef<char const*>, char const*) (/cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang+0x258f782)
#51 0x0000000002426df1 main (/cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang+0x2426df1)
#52 0x00007fa076429d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#53 0x00007fa076429e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#54 0x000000000258e175 _start (/cefs/61/61e57fe65e9c35f0fc0fb3fe_clang-llvmflang-trunk-20250913/bin/flang+0x258e175)
flang-22: error: unable to execute command: Aborted (core dumped)
flang-22: error: flang frontend command failed due to signal (use -v to see invocation)
flang version 22.0.0git (https://github.com/llvm/llvm-project.git a5bff94ffd1b81a3562f02f05980ee87cc4164df)
Target: x86_64-unknown-linux-gnu
Thread model: posix

Metadata

Metadata

Assignees

Labels

crashPrefer [crash-on-valid] or [crash-on-invalid]flang:frontend

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions