-
Notifications
You must be signed in to change notification settings - Fork 15.2k
Closed
Labels
bugIndicates an unexpected problem or unintended behaviorIndicates an unexpected problem or unintended behaviorcrashPrefer [crash-on-valid] or [crash-on-invalid]Prefer [crash-on-valid] or [crash-on-invalid]flang:frontend
Description
Version of flang-new : 17.0.0(36999318f09122fa41baff838f46c753db078275)
Compilation of a program that satisfies all of the following conditions terminates abnormally.
- There is
RESHAPE
function. - There is a one-dimensional array of 8-byte integers.
- The array in 2. is specified in the second argument of the
RESHAPE
function in 1.. The second argument ofRESHAPE
function is the converted array shape. - The array elements in 2. are initialized to numbers in the range 9223372036854775805 to 9223372036854775807 ("Maximum value of an 8-byte integer type -2" to "Maximum value of an 8-byte integer")
The following are the test program, results of Flang-new, Gfortran and ifort compilation and execution.
eical105_2.f:
integer*8 x(2)
parameter (x=z'7fffffffffffffff')
print *, reshape((/1,1,1,1,1,1,1,1,1,1/), x)
end program
$ flang-new eical105_2.f
fatal internal error: CHECK(j >= lb && j < lb + extent) failed at /work01/ohno/LLVM_20230629/llvm-project/flang/lib/Evaluate/constant.cpp(67)
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /work01/ohno/LLVM_20230629/release/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 +neon -target-feature +v8a -o /tmp/eical105_2-bd67d4.o -x f95-cpp-input eical105_2.f
#0 0x0000000003b37318 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/work01/ohno/LLVM_20230629/release/bin/flang-new+0x3b37318)
#1 0x0000000003b35428 llvm::sys::RunSignalHandlers() (/work01/ohno/LLVM_20230629/release/bin/flang-new+0x3b35428)
#2 0x0000000003b355ac SignalHandler(int) Signals.cpp:0:0
#3 0x0000400039c007a0 (linux-vdso.so.1+0x7a0)
#4 0x000040003a0f2bec raise (/lib64/libc.so.6+0x32bec)
#5 0x000040003a0e096c abort (/lib64/libc.so.6+0x2096c)
#6 0x0000000004e542dc (/work01/ohno/LLVM_20230629/release/bin/flang-new+0x4e542dc)
#7 0x0000000004868d18 Fortran::evaluate::ConstantBounds::SubscriptsToOffset(std::vector<long, std::allocator<long>> const&) const (/work01/ohno/LLVM_20230629/release/bin/flang-new+0x4868d18)
#8 0x0000000004870790 Fortran::evaluate::ConstantBase<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>, Fortran::evaluate::value::Integer<32, true, 32, unsigned int, unsigned long>>::CopyFrom(Fortran::evaluate::ConstantBase<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>, Fortran::evaluate::value::Integer<32, true, 32, unsigned int, unsigned long>> const&, unsigned long, std::vector<long, std::allocator<long>>&, std::vector<int, std::allocator<int>> const*) (/work01/ohno/LLVM_20230629/release/bin/flang-new+0x4870790)
#9 0x000000000497b2e8 Fortran::evaluate::Folder<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>::RESHAPE(Fortran::evaluate::FunctionRef<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>&&) (/work01/ohno/LLVM_20230629/release/bin/flang-new+0x497b2e8)
#10 0x0000000004a0bb9c Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>> Fortran::evaluate::FoldOperation<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>(Fortran::evaluate::FoldingContext&, Fortran::evaluate::FunctionRef<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>&&) (/work01/ohno/LLVM_20230629/release/bin/flang-new+0x4a0bb9c)
#11 0x0000000004a0bd00 std::__detail::__variant::__gen_vtable_impl<std::__detail::__variant::_Multi_array<Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>> (*)(Fortran::evaluate::ExpressionBase<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>::Rewrite(Fortran::evaluate::FoldingContext&, Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>&&)::'lambda'(auto&&)&&, std::variant<Fortran::evaluate::Parentheses<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>, Fortran::evaluate::Negate<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>, Fortran::evaluate::Add<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>, Fortran::evaluate::Subtract<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>, Fortran::evaluate::Multiply<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>, Fortran::evaluate::Divide<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>, Fortran::evaluate::Power<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>, Fortran::evaluate::Extremum<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>, Fortran::evaluate::Convert<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>, (Fortran::common::TypeCategory)0>, Fortran::evaluate::Convert<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>, (Fortran::common::TypeCategory)1>, Fortran::evaluate::Constant<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>, Fortran::evaluate::ArrayConstructor<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>, Fortran::evaluate::Designator<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>, Fortran::evaluate::FunctionRef<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>>&&)>, std::tuple<std::variant<Fortran::evaluate::Parentheses<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>, Fortran::evaluate::Negate<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>, Fortran::evaluate::Add<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>, Fortran::evaluate::Subtract<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>, Fortran::evaluate::Multiply<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>, Fortran::evaluate::Divide<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>, Fortran::evaluate::Power<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>, Fortran::evaluate::Extremum<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>, Fortran::evaluate::Convert<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>, (Fortran::common::TypeCategory)0>, Fortran::evaluate::Convert<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>, (Fortran::common::TypeCategory)1>, Fortran::evaluate::Constant<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>, Fortran::evaluate::ArrayConstructor<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>, Fortran::evaluate::Designator<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>, Fortran::evaluate::FunctionRef<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>>&&>, std::integer_sequence<unsigned long, 13ul>>::__visit_invoke(Fortran::evaluate::ExpressionBase<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>::Rewrite(Fortran::evaluate::FoldingContext&, Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>&&)::'lambda'(auto&&)&&, std::variant<Fortran::evaluate::Parentheses<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>, Fortran::evaluate::Negate<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>, Fortran::evaluate::Add<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>, Fortran::evaluate::Subtract<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>, Fortran::evaluate::Multiply<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>, Fortran::evaluate::Divide<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>, Fortran::evaluate::Power<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>, Fortran::evaluate::Extremum<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>, Fortran::evaluate::Convert<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>, (Fortran::common::TypeCategory)0>, Fortran::evaluate::Convert<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>, (Fortran::common::TypeCategory)1>, Fortran::evaluate::Constant<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>, Fortran::evaluate::ArrayConstructor<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>, Fortran::evaluate::Designator<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>, Fortran::evaluate::FunctionRef<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>>&&) (/work01/ohno/LLVM_20230629/release/bin/flang-new+0x4a0bd00)
#12 0x0000000004952388 Fortran::evaluate::ExpressionBase<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>::Rewrite(Fortran::evaluate::FoldingContext&, Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>&&) (/work01/ohno/LLVM_20230629/release/bin/flang-new+0x4952388)
#13 0x0000000004952450 std::__detail::__variant::__gen_vtable_impl<std::__detail::__variant::_Multi_array<Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)0>> (*)(Fortran::evaluate::ExpressionBase<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)0>>::Rewrite(Fortran::evaluate::FoldingContext&, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)0>>&&)::'lambda'(auto&&)&&, std::variant<Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 1>>, Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 2>>, Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>, Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 8>>, Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 16>>>&&)>, std::tuple<std::variant<Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 1>>, Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 2>>, Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>, Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 8>>, Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 16>>>&&>, std::integer_sequence<unsigned long, 2ul>>::__visit_invoke(Fortran::evaluate::ExpressionBase<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)0>>::Rewrite(Fortran::evaluate::FoldingContext&, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)0>>&&)::'lambda'(auto&&)&&, std::variant<Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 1>>, Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 2>>, Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 4>>, Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 8>>, Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)0, 16>>>&&) (/work01/ohno/LLVM_20230629/release/bin/flang-new+0x4952450)
#14 0x0000000004952808 Fortran::evaluate::ExpressionBase<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)0>>::Rewrite(Fortran::evaluate::FoldingContext&, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)0>>&&) (/work01/ohno/LLVM_20230629/release/bin/flang-new+0x4952808)
#15 0x0000000004889160 std::__detail::__variant::__gen_vtable_impl<std::__detail::__variant::_Multi_array<Fortran::evaluate::Expr<Fortran::evaluate::SomeType> (*)(Fortran::evaluate::ExpressionBase<Fortran::evaluate::SomeType>::Rewrite(Fortran::evaluate::FoldingContext&, Fortran::evaluate::Expr<Fortran::evaluate::SomeType>&&)::'lambda'(auto&&)&&, std::variant<Fortran::evaluate::value::Integer<128, true, 32, unsigned int, unsigned long>, 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)1>>, 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>>>&&)>, std::tuple<std::variant<Fortran::evaluate::value::Integer<128, true, 32, unsigned int, unsigned long>, 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)1>>, 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>>>&&>, std::integer_sequence<unsigned long, 4ul>>::__visit_invoke(Fortran::evaluate::ExpressionBase<Fortran::evaluate::SomeType>::Rewrite(Fortran::evaluate::FoldingContext&, Fortran::evaluate::Expr<Fortran::evaluate::SomeType>&&)::'lambda'(auto&&)&&, std::variant<Fortran::evaluate::value::Integer<128, true, 32, unsigned int, unsigned long>, 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)1>>, 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>>>&&) (/work01/ohno/LLVM_20230629/release/bin/flang-new+0x4889160)
#16 0x000000000488a1d8 Fortran::evaluate::ExpressionBase<Fortran::evaluate::SomeType>::Rewrite(Fortran::evaluate::FoldingContext&, Fortran::evaluate::Expr<Fortran::evaluate::SomeType>&&) (/work01/ohno/LLVM_20230629/release/bin/flang-new+0x488a1d8)
#17 0x00000000044f9b90 std::optional<Fortran::evaluate::Expr<Fortran::evaluate::SomeType>> Fortran::evaluate::ExpressionAnalyzer::ExprOrVariable<Fortran::parser::Expr>(Fortran::parser::Expr const&, Fortran::parser::CharBlock) (/work01/ohno/LLVM_20230629/release/bin/flang-new+0x44f9b90)
#18 0x00000000044fa2ec Fortran::evaluate::ExpressionAnalyzer::Analyze(Fortran::parser::Expr const&) (/work01/ohno/LLVM_20230629/release/bin/flang-new+0x44fa2ec)
#19 0x00000000044fa458 void Fortran::parser::IterativeWalk<Fortran::parser::Expr const, Fortran::semantics::ExprChecker, Fortran::parser::Expr::IntrinsicUnary const, Fortran::parser::Expr::IntrinsicBinary const>(Fortran::parser::Expr const&, Fortran::semantics::ExprChecker&) expression.cpp:0:0
#20 0x00000000044c2e14 std::__detail::__variant::__gen_vtable_impl<std::__detail::__variant::_Multi_array<void (*)(void Fortran::parser::Walk<Fortran::semantics::ExprChecker, Fortran::common::Indirection<Fortran::parser::AllocateStmt, false>, Fortran::common::Indirection<Fortran::parser::AssignmentStmt, false>, Fortran::common::Indirection<Fortran::parser::BackspaceStmt, false>, Fortran::common::Indirection<Fortran::parser::CallStmt, false>, Fortran::common::Indirection<Fortran::parser::CloseStmt, false>, Fortran::parser::ContinueStmt, Fortran::common::Indirection<Fortran::parser::CycleStmt, false>, Fortran::common::Indirection<Fortran::parser::DeallocateStmt, false>, Fortran::common::Indirection<Fortran::parser::EndfileStmt, false>, Fortran::common::Indirection<Fortran::parser::EventPostStmt, false>, Fortran::common::Indirection<Fortran::parser::EventWaitStmt, false>, Fortran::common::Indirection<Fortran::parser::ExitStmt, false>, Fortran::parser::FailImageStmt, Fortran::common::Indirection<Fortran::parser::FlushStmt, false>, Fortran::common::Indirection<Fortran::parser::FormTeamStmt, false>, Fortran::common::Indirection<Fortran::parser::GotoStmt, false>, Fortran::common::Indirection<Fortran::parser::IfStmt, false>, Fortran::common::Indirection<Fortran::parser::InquireStmt, false>, Fortran::common::Indirection<Fortran::parser::LockStmt, false>, Fortran::common::Indirection<Fortran::parser::NullifyStmt, false>, Fortran::common::Indirection<Fortran::parser::OpenStmt, false>, Fortran::common::Indirection<Fortran::parser::PointerAssignmentStmt, false>, Fortran::common::Indirection<Fortran::parser::PrintStmt, false>, Fortran::common::Indirection<Fortran::parser::ReadStmt, false>, Fortran::common::Indirection<Fortran::parser::ReturnStmt, false>, Fortran::common::Indirection<Fortran::parser::RewindStmt, false>, Fortran::common::Indirection<Fortran::parser::StopStmt, false>, Fortran::common::Indirection<Fortran::parser::SyncAllStmt, false>, Fortran::common::Indirection<Fortran::parser::SyncImagesStmt, false>, Fortran::common::Indirection<Fortran::parser::SyncMemoryStmt, false>, Fortran::common::Indirection<Fortran::parser::SyncTeamStmt, false>, Fortran::common::Indirection<Fortran::parser::UnlockStmt, false>, Fortran::common::Indirection<Fortran::parser::WaitStmt, false>, Fortran::common::Indirection<Fortran::parser::WhereStmt, false>, Fortran::common::Indirection<Fortran::parser::WriteStmt, false>, Fortran::common::Indirection<Fortran::parser::ComputedGotoStmt, false>, Fortran::common::Indirection<Fortran::parser::ForallStmt, false>, Fortran::common::Indirection<Fortran::parser::ArithmeticIfStmt, false>, Fortran::common::Indirection<Fortran::parser::AssignStmt, false>, Fortran::common::Indirection<Fortran::parser::AssignedGotoStmt, false>, Fortran::common::Indirection<Fortran::parser::PauseStmt, false>>(std::variant<Fortran::common::Indirection<Fortran::parser::AllocateStmt, false>, Fortran::common::Indirection<Fortran::parser::AssignmentStmt, false>, Fortran::common::Indirection<Fortran::parser::BackspaceStmt, false>, Fortran::common::Indirection<Fortran::parser::CallStmt, false>, Fortran::common::Indirection<Fortran::parser::CloseStmt, false>, Fortran::parser::ContinueStmt, Fortran::common::Indirection<Fortran::parser::CycleStmt, false>, Fortran::common::Indirection<Fortran::parser::DeallocateStmt, false>, Fortran::common::Indirection<Fortran::parser::EndfileStmt, false>, Fortran::common::Indirection<Fortran::parser::EventPostStmt, false>, Fortran::common::Indirection<Fortran::parser::EventWaitStmt, false>, Fortran::common::Indirection<Fortran::parser::ExitStmt, false>, Fortran::parser::FailImageStmt, Fortran::common::Indirection<Fortran::parser::FlushStmt, false>, Fortran::common::Indirection<Fortran::parser::FormTeamStmt, false>, Fortran::common::Indirection<Fortran::parser::GotoStmt, false>, Fortran::common::Indirection<Fortran::parser::IfStmt, false>, Fortran::common::Indirection<Fortran::parser::InquireStmt, false>, Fortran::common::Indirection<Fortran::parser::LockStmt, false>, Fortran::common::Indirection<Fortran::parser::NullifyStmt, false>, Fortran::common::Indirection<Fortran::parser::OpenStmt, false>, Fortran::common::Indirection<Fortran::parser::PointerAssignmentStmt, false>, Fortran::common::Indirection<Fortran::parser::PrintStmt, false>, Fortran::common::Indirection<Fortran::parser::ReadStmt, false>, Fortran::common::Indirection<Fortran::parser::ReturnStmt, false>, Fortran::common::Indirection<Fortran::parser::RewindStmt, false>, Fortran::common::Indirection<Fortran::parser::StopStmt, false>, Fortran::common::Indirection<Fortran::parser::SyncAllStmt, false>, Fortran::common::Indirection<Fortran::parser::SyncImagesStmt, false>, Fortran::common::Indirection<Fortran::parser::SyncMemoryStmt, false>, Fortran::common::Indirection<Fortran::parser::SyncTeamStmt, false>, Fortran::common::Indirection<Fortran::parser::UnlockStmt, false>, Fortran::common::Indirection<Fortran::parser::WaitStmt, false>, Fortran::common::Indirection<Fortran::parser::WhereStmt, false>, Fortran::common::Indirection<Fortran::parser::WriteStmt, false>, Fortran::common::Indirection<Fortran::parser::ComputedGotoStmt, false>, Fortran::common::Indirection<Fortran::parser::ForallStmt, false>, Fortran::common::Indirection<Fortran::parser::ArithmeticIfStmt, false>, Fortran::common::Indirection<Fortran::parser::AssignStmt, false>, Fortran::common::Indirection<Fortran::parser::AssignedGotoStmt, false>, Fortran::common::Indirection<Fortran::parser::PauseStmt, false>> const&, Fortran::semantics::ExprChecker&)::'lambda'(Fortran::semantics::ExprChecker const&)&&, std::variant<Fortran::common::Indirection<Fortran::parser::AllocateStmt, false>, Fortran::common::Indirection<Fortran::parser::AssignmentStmt, false>, Fortran::common::Indirection<Fortran::parser::BackspaceStmt, false>, Fortran::common::Indirection<Fortran::parser::CallStmt, false>, Fortran::common::Indirection<Fortran::parser::CloseStmt, false>, Fortran::parser::ContinueStmt, Fortran::common::Indirection<Fortran::parser::CycleStmt, false>, Fortran::common::Indirection<Fortran::parser::DeallocateStmt, false>, Fortran::common::Indirection<Fortran::parser::EndfileStmt, false>, Fortran::common::Indirection<Fortran::parser::EventPostStmt, false>, Fortran::common::Indirection<Fortran::parser::EventWaitStmt, false>, Fortran::common::Indirection<Fortran::parser::ExitStmt, false>, Fortran::parser::FailImageStmt, Fortran::common::Indirection<Fortran::parser::FlushStmt, false>, Fortran::common::Indirection<Fortran::parser::FormTeamStmt, false>, Fortran::common::Indirection<Fortran::parser::GotoStmt, false>, Fortran::common::Indirection<Fortran::parser::IfStmt, false>, Fortran::common::Indirection<Fortran::parser::InquireStmt, false>, Fortran::common::Indirection<Fortran::parser::LockStmt, false>, Fortran::common::Indirection<Fortran::parser::NullifyStmt, false>, Fortran::common::Indirection<Fortran::parser::OpenStmt, false>, Fortran::common::Indirection<Fortran::parser::PointerAssignmentStmt, false>, Fortran::common::Indirection<Fortran::parser::PrintStmt, false>, Fortran::common::Indirection<Fortran::parser::ReadStmt, false>, Fortran::common::Indirection<Fortran::parser::ReturnStmt, false>, Fortran::common::Indirection<Fortran::parser::RewindStmt, false>, Fortran::common::Indirection<Fortran::parser::StopStmt, false>, Fortran::common::Indirection<Fortran::parser::SyncAllStmt, false>, Fortran::common::Indirection<Fortran::parser::SyncImagesStmt, false>, Fortran::common::Indirection<Fortran::parser::SyncMemoryStmt, false>, Fortran::common::Indirection<Fortran::parser::SyncTeamStmt, false>, Fortran::common::Indirection<Fortran::parser::UnlockStmt, false>, Fortran::common::Indirection<Fortran::parser::WaitStmt, false>, Fortran::common::Indirection<Fortran::parser::WhereStmt, false>, Fortran::common::Indirection<Fortran::parser::WriteStmt, false>, Fortran::common::Indirection<Fortran::parser::ComputedGotoStmt, false>, Fortran::common::Indirection<Fortran::parser::ForallStmt, false>, Fortran::common::Indirection<Fortran::parser::ArithmeticIfStmt, false>, Fortran::common::Indirection<Fortran::parser::AssignStmt, false>, Fortran::common::Indirection<Fortran::parser::AssignedGotoStmt, false>, Fortran::common::Indirection<Fortran::parser::PauseStmt, false>> const&)>, std::tuple<std::variant<Fortran::common::Indirection<Fortran::parser::AllocateStmt, false>, Fortran::common::Indirection<Fortran::parser::AssignmentStmt, false>, Fortran::common::Indirection<Fortran::parser::BackspaceStmt, false>, Fortran::common::Indirection<Fortran::parser::CallStmt, false>, Fortran::common::Indirection<Fortran::parser::CloseStmt, false>, Fortran::parser::ContinueStmt, Fortran::common::Indirection<Fortran::parser::CycleStmt, false>, Fortran::common::Indirection<Fortran::parser::DeallocateStmt, false>, Fortran::common::Indirection<Fortran::parser::EndfileStmt, false>, Fortran::common::Indirection<Fortran::parser::EventPostStmt, false>, Fortran::common::Indirection<Fortran::parser::EventWaitStmt, false>, Fortran::common::Indirection<Fortran::parser::ExitStmt, false>, Fortran::parser::FailImageStmt, Fortran::common::Indirection<Fortran::parser::FlushStmt, false>, Fortran::common::Indirection<Fortran::parser::FormTeamStmt, false>, Fortran::common::Indirection<Fortran::parser::GotoStmt, false>, Fortran::common::Indirection<Fortran::parser::IfStmt, false>, Fortran::common::Indirection<Fortran::parser::InquireStmt, false>, Fortran::common::Indirection<Fortran::parser::LockStmt, false>, Fortran::common::Indirection<Fortran::parser::NullifyStmt, false>, Fortran::common::Indirection<Fortran::parser::OpenStmt, false>, Fortran::common::Indirection<Fortran::parser::PointerAssignmentStmt, false>, Fortran::common::Indirection<Fortran::parser::PrintStmt, false>, Fortran::common::Indirection<Fortran::parser::ReadStmt, false>, Fortran::common::Indirection<Fortran::parser::ReturnStmt, false>, Fortran::common::Indirection<Fortran::parser::RewindStmt, false>, Fortran::common::Indirection<Fortran::parser::StopStmt, false>, Fortran::common::Indirection<Fortran::parser::SyncAllStmt, false>, Fortran::common::Indirection<Fortran::parser::SyncImagesStmt, false>, Fortran::common::Indirection<Fortran::parser::SyncMemoryStmt, false>, Fortran::common::Indirection<Fortran::parser::SyncTeamStmt, false>, Fortran::common::Indirection<Fortran::parser::UnlockStmt, false>, Fortran::common::Indirection<Fortran::parser::WaitStmt, false>, Fortran::common::Indirection<Fortran::parser::WhereStmt, false>, Fortran::common::Indirection<Fortran::parser::WriteStmt, false>, Fortran::common::Indirection<Fortran::parser::ComputedGotoStmt, false>, Fortran::common::Indirection<Fortran::parser::ForallStmt, false>, Fortran::common::Indirection<Fortran::parser::ArithmeticIfStmt, false>, Fortran::common::Indirection<Fortran::parser::AssignStmt, false>, Fortran::common::Indirection<Fortran::parser::AssignedGotoStmt, false>, Fortran::common::Indirection<Fortran::parser::PauseStmt, false>> const&>, std::integer_sequence<unsigned long, 22ul>>::__visit_invoke(void Fortran::parser::Walk<Fortran::semantics::ExprChecker, Fortran::common::Indirection<Fortran::parser::AllocateStmt, false>, Fortran::common::Indirection<Fortran::parser::AssignmentStmt, false>, Fortran::common::Indirection<Fortran::parser::BackspaceStmt, false>, Fortran::common::Indirection<Fortran::parser::CallStmt, false>, Fortran::common::Indirection<Fortran::parser::CloseStmt, false>, Fortran::parser::ContinueStmt, Fortran::common::Indirection<Fortran::parser::CycleStmt, false>, Fortran::common::Indirection<Fortran::parser::DeallocateStmt, false>, Fortran::common::Indirection<Fortran::parser::EndfileStmt, false>, Fortran::common::Indirection<Fortran::parser::EventPostStmt, false>, Fortran::common::Indirection<Fortran::parser::EventWaitStmt, false>, Fortran::common::Indirection<Fortran::parser::ExitStmt, false>, Fortran::parser::FailImageStmt, Fortran::common::Indirection<Fortran::parser::FlushStmt, false>, Fortran::common::Indirection<Fortran::parser::FormTeamStmt, false>, Fortran::common::Indirection<Fortran::parser::GotoStmt, false>, Fortran::common::Indirection<Fortran::parser::IfStmt, false>, Fortran::common::Indirection<Fortran::parser::InquireStmt, false>, Fortran::common::Indirection<Fortran::parser::LockStmt, false>, Fortran::common::Indirection<Fortran::parser::NullifyStmt, false>, Fortran::common::Indirection<Fortran::parser::OpenStmt, false>, Fortran::common::Indirection<Fortran::parser::PointerAssignmentStmt, false>, Fortran::common::Indirection<Fortran::parser::PrintStmt, false>, Fortran::common::Indirection<Fortran::parser::ReadStmt, false>, Fortran::common::Indirection<Fortran::parser::ReturnStmt, false>, Fortran::common::Indirection<Fortran::parser::RewindStmt, false>, Fortran::common::Indirection<Fortran::parser::StopStmt, false>, Fortran::common::Indirection<Fortran::parser::SyncAllStmt, false>, Fortran::common::Indirection<Fortran::parser::SyncImagesStmt, false>, Fortran::common::Indirection<Fortran::parser::SyncMemoryStmt, false>, Fortran::common::Indirection<Fortran::parser::SyncTeamStmt, false>, Fortran::common::Indirection<Fortran::parser::UnlockStmt, false>, Fortran::common::Indirection<Fortran::parser::WaitStmt, false>, Fortran::common::Indirection<Fortran::parser::WhereStmt, false>, Fortran::common::Indirection<Fortran::parser::WriteStmt, false>, Fortran::common::Indirection<Fortran::parser::ComputedGotoStmt, false>, Fortran::common::Indirection<Fortran::parser::ForallStmt, false>, Fortran::common::Indirection<Fortran::parser::ArithmeticIfStmt, false>, Fortran::common::Indirection<Fortran::parser::AssignStmt, false>, Fortran::common::Indirection<Fortran::parser::AssignedGotoStmt, false>, Fortran::common::Indirection<Fortran::parser::PauseStmt, false>>(std::variant<Fortran::common::Indirection<Fortran::parser::AllocateStmt, false>, Fortran::common::Indirection<Fortran::parser::AssignmentStmt, false>, Fortran::common::Indirection<Fortran::parser::BackspaceStmt, false>, Fortran::common::Indirection<Fortran::parser::CallStmt, false>, Fortran::common::Indirection<Fortran::parser::CloseStmt, false>, Fortran::parser::ContinueStmt, Fortran::common::Indirection<Fortran::parser::CycleStmt, false>, Fortran::common::Indirection<Fortran::parser::DeallocateStmt, false>, Fortran::common::Indirection<Fortran::parser::EndfileStmt, false>, Fortran::common::Indirection<Fortran::parser::EventPostStmt, false>, Fortran::common::Indirection<Fortran::parser::EventWaitStmt, false>, Fortran::common::Indirection<Fortran::parser::ExitStmt, false>, Fortran::parser::FailImageStmt, Fortran::common::Indirection<Fortran::parser::FlushStmt, false>, Fortran::common::Indirection<Fortran::parser::FormTeamStmt, false>, Fortran::common::Indirection<Fortran::parser::GotoStmt, false>, Fortran::common::Indirection<Fortran::parser::IfStmt, false>, Fortran::common::Indirection<Fortran::parser::InquireStmt, false>, Fortran::common::Indirection<Fortran::parser::LockStmt, false>, Fortran::common::Indirection<Fortran::parser::NullifyStmt, false>, Fortran::common::Indirection<Fortran::parser::OpenStmt, false>, Fortran::common::Indirection<Fortran::parser::PointerAssignmentStmt, false>, Fortran::common::Indirection<Fortran::parser::PrintStmt, false>, Fortran::common::Indirection<Fortran::parser::ReadStmt, false>, Fortran::common::Indirection<Fortran::parser::ReturnStmt, false>, Fortran::common::Indirection<Fortran::parser::RewindStmt, false>, Fortran::common::Indirection<Fortran::parser::StopStmt, false>, Fortran::common::Indirection<Fortran::parser::SyncAllStmt, false>, Fortran::common::Indirection<Fortran::parser::SyncImagesStmt, false>, Fortran::common::Indirection<Fortran::parser::SyncMemoryStmt, false>, Fortran::common::Indirection<Fortran::parser::SyncTeamStmt, false>, Fortran::common::Indirection<Fortran::parser::UnlockStmt, false>, Fortran::common::Indirection<Fortran::parser::WaitStmt, false>, Fortran::common::Indirection<Fortran::parser::WhereStmt, false>, Fortran::common::Indirection<Fortran::parser::WriteStmt, false>, Fortran::common::Indirection<Fortran::parser::ComputedGotoStmt, false>, Fortran::common::Indirection<Fortran::parser::ForallStmt, false>, Fortran::common::Indirection<Fortran::parser::ArithmeticIfStmt, false>, Fortran::common::Indirection<Fortran::parser::AssignStmt, false>, Fortran::common::Indirection<Fortran::parser::AssignedGotoStmt, false>, Fortran::common::Indirection<Fortran::parser::PauseStmt, false>> const&, Fortran::semantics::ExprChecker&)::'lambda'(Fortran::semantics::ExprChecker const&)&&, std::variant<Fortran::common::Indirection<Fortran::parser::AllocateStmt, false>, Fortran::common::Indirection<Fortran::parser::AssignmentStmt, false>, Fortran::common::Indirection<Fortran::parser::BackspaceStmt, false>, Fortran::common::Indirection<Fortran::parser::CallStmt, false>, Fortran::common::Indirection<Fortran::parser::CloseStmt, false>, Fortran::parser::ContinueStmt, Fortran::common::Indirection<Fortran::parser::CycleStmt, false>, Fortran::common::Indirection<Fortran::parser::DeallocateStmt, false>, Fortran::common::Indirection<Fortran::parser::EndfileStmt, false>, Fortran::common::Indirection<Fortran::parser::EventPostStmt, false>, Fortran::common::Indirection<Fortran::parser::EventWaitStmt, false>, Fortran::common::Indirection<Fortran::parser::ExitStmt, false>, Fortran::parser::FailImageStmt, Fortran::common::Indirection<Fortran::parser::FlushStmt, false>, Fortran::common::Indirection<Fortran::parser::FormTeamStmt, false>, Fortran::common::Indirection<Fortran::parser::GotoStmt, false>, Fortran::common::Indirection<Fortran::parser::IfStmt, false>, Fortran::common::Indirection<Fortran::parser::InquireStmt, false>, Fortran::common::Indirection<Fortran::parser::LockStmt, false>, Fortran::common::Indirection<Fortran::parser::NullifyStmt, false>, Fortran::common::Indirection<Fortran::parser::OpenStmt, false>, Fortran::common::Indirection<Fortran::parser::PointerAssignmentStmt, false>, Fortran::common::Indirection<Fortran::parser::PrintStmt, false>, Fortran::common::Indirection<Fortran::parser::ReadStmt, false>, Fortran::common::Indirection<Fortran::parser::ReturnStmt, false>, Fortran::common::Indirection<Fortran::parser::RewindStmt, false>, Fortran::common::Indirection<Fortran::parser::StopStmt, false>, Fortran::common::Indirection<Fortran::parser::SyncAllStmt, false>, Fortran::common::Indirection<Fortran::parser::SyncImagesStmt, false>, Fortran::common::Indirection<Fortran::parser::SyncMemoryStmt, false>, Fortran::common::Indirection<Fortran::parser::SyncTeamStmt, false>, Fortran::common::Indirection<Fortran::parser::UnlockStmt, false>, Fortran::common::Indirection<Fortran::parser::WaitStmt, false>, Fortran::common::Indirection<Fortran::parser::WhereStmt, false>, Fortran::common::Indirection<Fortran::parser::WriteStmt, false>, Fortran::common::Indirection<Fortran::parser::ComputedGotoStmt, false>, Fortran::common::Indirection<Fortran::parser::ForallStmt, false>, Fortran::common::Indirection<Fortran::parser::ArithmeticIfStmt, false>, Fortran::common::Indirection<Fortran::parser::AssignStmt, false>, Fortran::common::Indirection<Fortran::parser::AssignedGotoStmt, false>, Fortran::common::Indirection<Fortran::parser::PauseStmt, false>> const&) (/work01/ohno/LLVM_20230629/release/bin/flang-new+0x44c2e14)
#21 0x00000000044ba608 std::__detail::__variant::__gen_vtable_impl<std::__detail::__variant::_Multi_array<void (*)(void Fortran::parser::Walk<Fortran::semantics::ExprChecker, Fortran::parser::Statement<Fortran::parser::ActionStmt>, Fortran::common::Indirection<Fortran::parser::AssociateConstruct, false>, Fortran::common::Indirection<Fortran::parser::BlockConstruct, false>, Fortran::common::Indirection<Fortran::parser::CaseConstruct, false>, Fortran::common::Indirection<Fortran::parser::ChangeTeamConstruct, false>, Fortran::common::Indirection<Fortran::parser::CriticalConstruct, false>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::LabelDoStmt, false>>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::EndDoStmt, false>>, Fortran::common::Indirection<Fortran::parser::DoConstruct, false>, Fortran::common::Indirection<Fortran::parser::IfConstruct, false>, Fortran::common::Indirection<Fortran::parser::SelectRankConstruct, false>, Fortran::common::Indirection<Fortran::parser::SelectTypeConstruct, false>, Fortran::common::Indirection<Fortran::parser::WhereConstruct, false>, Fortran::common::Indirection<Fortran::parser::ForallConstruct, false>, Fortran::common::Indirection<Fortran::parser::CompilerDirective, false>, Fortran::common::Indirection<Fortran::parser::OpenACCConstruct, false>, Fortran::common::Indirection<Fortran::parser::AccEndCombinedDirective, false>, Fortran::common::Indirection<Fortran::parser::OpenMPConstruct, false>, Fortran::common::Indirection<Fortran::parser::OmpEndLoopDirective, false>, Fortran::common::Indirection<Fortran::parser::CUFKernelDoConstruct, false>>(std::variant<Fortran::parser::Statement<Fortran::parser::ActionStmt>, Fortran::common::Indirection<Fortran::parser::AssociateConstruct, false>, Fortran::common::Indirection<Fortran::parser::BlockConstruct, false>, Fortran::common::Indirection<Fortran::parser::CaseConstruct, false>, Fortran::common::Indirection<Fortran::parser::ChangeTeamConstruct, false>, Fortran::common::Indirection<Fortran::parser::CriticalConstruct, false>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::LabelDoStmt, false>>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::EndDoStmt, false>>, Fortran::common::Indirection<Fortran::parser::DoConstruct, false>, Fortran::common::Indirection<Fortran::parser::IfConstruct, false>, Fortran::common::Indirection<Fortran::parser::SelectRankConstruct, false>, Fortran::common::Indirection<Fortran::parser::SelectTypeConstruct, false>, Fortran::common::Indirection<Fortran::parser::WhereConstruct, false>, Fortran::common::Indirection<Fortran::parser::ForallConstruct, false>, Fortran::common::Indirection<Fortran::parser::CompilerDirective, false>, Fortran::common::Indirection<Fortran::parser::OpenACCConstruct, false>, Fortran::common::Indirection<Fortran::parser::AccEndCombinedDirective, false>, Fortran::common::Indirection<Fortran::parser::OpenMPConstruct, false>, Fortran::common::Indirection<Fortran::parser::OmpEndLoopDirective, false>, Fortran::common::Indirection<Fortran::parser::CUFKernelDoConstruct, false>> const&, Fortran::semantics::ExprChecker&)::'lambda'(Fortran::semantics::ExprChecker const&)&&, std::variant<Fortran::parser::Statement<Fortran::parser::ActionStmt>, Fortran::common::Indirection<Fortran::parser::AssociateConstruct, false>, Fortran::common::Indirection<Fortran::parser::BlockConstruct, false>, Fortran::common::Indirection<Fortran::parser::CaseConstruct, false>, Fortran::common::Indirection<Fortran::parser::ChangeTeamConstruct, false>, Fortran::common::Indirection<Fortran::parser::CriticalConstruct, false>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::LabelDoStmt, false>>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::EndDoStmt, false>>, Fortran::common::Indirection<Fortran::parser::DoConstruct, false>, Fortran::common::Indirection<Fortran::parser::IfConstruct, false>, Fortran::common::Indirection<Fortran::parser::SelectRankConstruct, false>, Fortran::common::Indirection<Fortran::parser::SelectTypeConstruct, false>, Fortran::common::Indirection<Fortran::parser::WhereConstruct, false>, Fortran::common::Indirection<Fortran::parser::ForallConstruct, false>, Fortran::common::Indirection<Fortran::parser::CompilerDirective, false>, Fortran::common::Indirection<Fortran::parser::OpenACCConstruct, false>, Fortran::common::Indirection<Fortran::parser::AccEndCombinedDirective, false>, Fortran::common::Indirection<Fortran::parser::OpenMPConstruct, false>, Fortran::common::Indirection<Fortran::parser::OmpEndLoopDirective, false>, Fortran::common::Indirection<Fortran::parser::CUFKernelDoConstruct, false>> const&)>, std::tuple<std::variant<Fortran::parser::Statement<Fortran::parser::ActionStmt>, Fortran::common::Indirection<Fortran::parser::AssociateConstruct, false>, Fortran::common::Indirection<Fortran::parser::BlockConstruct, false>, Fortran::common::Indirection<Fortran::parser::CaseConstruct, false>, Fortran::common::Indirection<Fortran::parser::ChangeTeamConstruct, false>, Fortran::common::Indirection<Fortran::parser::CriticalConstruct, false>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::LabelDoStmt, false>>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::EndDoStmt, false>>, Fortran::common::Indirection<Fortran::parser::DoConstruct, false>, Fortran::common::Indirection<Fortran::parser::IfConstruct, false>, Fortran::common::Indirection<Fortran::parser::SelectRankConstruct, false>, Fortran::common::Indirection<Fortran::parser::SelectTypeConstruct, false>, Fortran::common::Indirection<Fortran::parser::WhereConstruct, false>, Fortran::common::Indirection<Fortran::parser::ForallConstruct, false>, Fortran::common::Indirection<Fortran::parser::CompilerDirective, false>, Fortran::common::Indirection<Fortran::parser::OpenACCConstruct, false>, Fortran::common::Indirection<Fortran::parser::AccEndCombinedDirective, false>, Fortran::common::Indirection<Fortran::parser::OpenMPConstruct, false>, Fortran::common::Indirection<Fortran::parser::OmpEndLoopDirective, false>, Fortran::common::Indirection<Fortran::parser::CUFKernelDoConstruct, false>> const&>, std::integer_sequence<unsigned long, 0ul>>::__visit_invoke(void Fortran::parser::Walk<Fortran::semantics::ExprChecker, Fortran::parser::Statement<Fortran::parser::ActionStmt>, Fortran::common::Indirection<Fortran::parser::AssociateConstruct, false>, Fortran::common::Indirection<Fortran::parser::BlockConstruct, false>, Fortran::common::Indirection<Fortran::parser::CaseConstruct, false>, Fortran::common::Indirection<Fortran::parser::ChangeTeamConstruct, false>, Fortran::common::Indirection<Fortran::parser::CriticalConstruct, false>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::LabelDoStmt, false>>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::EndDoStmt, false>>, Fortran::common::Indirection<Fortran::parser::DoConstruct, false>, Fortran::common::Indirection<Fortran::parser::IfConstruct, false>, Fortran::common::Indirection<Fortran::parser::SelectRankConstruct, false>, Fortran::common::Indirection<Fortran::parser::SelectTypeConstruct, false>, Fortran::common::Indirection<Fortran::parser::WhereConstruct, false>, Fortran::common::Indirection<Fortran::parser::ForallConstruct, false>, Fortran::common::Indirection<Fortran::parser::CompilerDirective, false>, Fortran::common::Indirection<Fortran::parser::OpenACCConstruct, false>, Fortran::common::Indirection<Fortran::parser::AccEndCombinedDirective, false>, Fortran::common::Indirection<Fortran::parser::OpenMPConstruct, false>, Fortran::common::Indirection<Fortran::parser::OmpEndLoopDirective, false>, Fortran::common::Indirection<Fortran::parser::CUFKernelDoConstruct, false>>(std::variant<Fortran::parser::Statement<Fortran::parser::ActionStmt>, Fortran::common::Indirection<Fortran::parser::AssociateConstruct, false>, Fortran::common::Indirection<Fortran::parser::BlockConstruct, false>, Fortran::common::Indirection<Fortran::parser::CaseConstruct, false>, Fortran::common::Indirection<Fortran::parser::ChangeTeamConstruct, false>, Fortran::common::Indirection<Fortran::parser::CriticalConstruct, false>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::LabelDoStmt, false>>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::EndDoStmt, false>>, Fortran::common::Indirection<Fortran::parser::DoConstruct, false>, Fortran::common::Indirection<Fortran::parser::IfConstruct, false>, Fortran::common::Indirection<Fortran::parser::SelectRankConstruct, false>, Fortran::common::Indirection<Fortran::parser::SelectTypeConstruct, false>, Fortran::common::Indirection<Fortran::parser::WhereConstruct, false>, Fortran::common::Indirection<Fortran::parser::ForallConstruct, false>, Fortran::common::Indirection<Fortran::parser::CompilerDirective, false>, Fortran::common::Indirection<Fortran::parser::OpenACCConstruct, false>, Fortran::common::Indirection<Fortran::parser::AccEndCombinedDirective, false>, Fortran::common::Indirection<Fortran::parser::OpenMPConstruct, false>, Fortran::common::Indirection<Fortran::parser::OmpEndLoopDirective, false>, Fortran::common::Indirection<Fortran::parser::CUFKernelDoConstruct, false>> const&, Fortran::semantics::ExprChecker&)::'lambda'(Fortran::semantics::ExprChecker const&)&&, std::variant<Fortran::parser::Statement<Fortran::parser::ActionStmt>, Fortran::common::Indirection<Fortran::parser::AssociateConstruct, false>, Fortran::common::Indirection<Fortran::parser::BlockConstruct, false>, Fortran::common::Indirection<Fortran::parser::CaseConstruct, false>, Fortran::common::Indirection<Fortran::parser::ChangeTeamConstruct, false>, Fortran::common::Indirection<Fortran::parser::CriticalConstruct, false>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::LabelDoStmt, false>>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::EndDoStmt, false>>, Fortran::common::Indirection<Fortran::parser::DoConstruct, false>, Fortran::common::Indirection<Fortran::parser::IfConstruct, false>, Fortran::common::Indirection<Fortran::parser::SelectRankConstruct, false>, Fortran::common::Indirection<Fortran::parser::SelectTypeConstruct, false>, Fortran::common::Indirection<Fortran::parser::WhereConstruct, false>, Fortran::common::Indirection<Fortran::parser::ForallConstruct, false>, Fortran::common::Indirection<Fortran::parser::CompilerDirective, false>, Fortran::common::Indirection<Fortran::parser::OpenACCConstruct, false>, Fortran::common::Indirection<Fortran::parser::AccEndCombinedDirective, false>, Fortran::common::Indirection<Fortran::parser::OpenMPConstruct, false>, Fortran::common::Indirection<Fortran::parser::OmpEndLoopDirective, false>, Fortran::common::Indirection<Fortran::parser::CUFKernelDoConstruct, false>> const&) (/work01/ohno/LLVM_20230629/release/bin/flang-new+0x44ba608)
#22 0x00000000044b59cc std::__detail::__variant::__gen_vtable_impl<std::__detail::__variant::_Multi_array<void (*)(void Fortran::parser::Walk<Fortran::semantics::ExprChecker, Fortran::parser::ExecutableConstruct, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::FormatStmt, false>>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::EntryStmt, false>>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::DataStmt, false>>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::NamelistStmt, false>>, Fortran::parser::ErrorRecovery>(std::variant<Fortran::parser::ExecutableConstruct, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::FormatStmt, false>>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::EntryStmt, false>>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::DataStmt, false>>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::NamelistStmt, false>>, Fortran::parser::ErrorRecovery> const&, Fortran::semantics::ExprChecker&)::'lambda'(Fortran::semantics::ExprChecker const&)&&, std::variant<Fortran::parser::ExecutableConstruct, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::FormatStmt, false>>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::EntryStmt, false>>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::DataStmt, false>>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::NamelistStmt, false>>, Fortran::parser::ErrorRecovery> const&)>, std::tuple<std::variant<Fortran::parser::ExecutableConstruct, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::FormatStmt, false>>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::EntryStmt, false>>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::DataStmt, false>>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::NamelistStmt, false>>, Fortran::parser::ErrorRecovery> const&>, std::integer_sequence<unsigned long, 0ul>>::__visit_invoke(void Fortran::parser::Walk<Fortran::semantics::ExprChecker, Fortran::parser::ExecutableConstruct, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::FormatStmt, false>>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::EntryStmt, false>>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::DataStmt, false>>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::NamelistStmt, false>>, Fortran::parser::ErrorRecovery>(std::variant<Fortran::parser::ExecutableConstruct, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::FormatStmt, false>>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::EntryStmt, false>>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::DataStmt, false>>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::NamelistStmt, false>>, Fortran::parser::ErrorRecovery> const&, Fortran::semantics::ExprChecker&)::'lambda'(Fortran::semantics::ExprChecker const&)&&, std::variant<Fortran::parser::ExecutableConstruct, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::FormatStmt, false>>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::EntryStmt, false>>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::DataStmt, false>>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::NamelistStmt, false>>, Fortran::parser::ErrorRecovery> const&) (/work01/ohno/LLVM_20230629/release/bin/flang-new+0x44b59cc)
#23 0x0000000004512948 std::__detail::__variant::__gen_vtable_impl<std::__detail::__variant::_Multi_array<void (*)(void Fortran::parser::Walk<Fortran::semantics::ExprChecker, Fortran::common::Indirection<Fortran::parser::MainProgram, false>, Fortran::common::Indirection<Fortran::parser::FunctionSubprogram, false>, Fortran::common::Indirection<Fortran::parser::SubroutineSubprogram, false>, Fortran::common::Indirection<Fortran::parser::Module, false>, Fortran::common::Indirection<Fortran::parser::Submodule, false>, Fortran::common::Indirection<Fortran::parser::BlockData, false>, Fortran::common::Indirection<Fortran::parser::CompilerDirective, false>>(std::variant<Fortran::common::Indirection<Fortran::parser::MainProgram, false>, Fortran::common::Indirection<Fortran::parser::FunctionSubprogram, false>, Fortran::common::Indirection<Fortran::parser::SubroutineSubprogram, false>, Fortran::common::Indirection<Fortran::parser::Module, false>, Fortran::common::Indirection<Fortran::parser::Submodule, false>, Fortran::common::Indirection<Fortran::parser::BlockData, false>, Fortran::common::Indirection<Fortran::parser::CompilerDirective, false>> const&, Fortran::semantics::ExprChecker&)::'lambda'(Fortran::semantics::ExprChecker const&)&&, std::variant<Fortran::common::Indirection<Fortran::parser::MainProgram, false>, Fortran::common::Indirection<Fortran::parser::FunctionSubprogram, false>, Fortran::common::Indirection<Fortran::parser::SubroutineSubprogram, false>, Fortran::common::Indirection<Fortran::parser::Module, false>, Fortran::common::Indirection<Fortran::parser::Submodule, false>, Fortran::common::Indirection<Fortran::parser::BlockData, false>, Fortran::common::Indirection<Fortran::parser::CompilerDirective, false>> const&)>, std::tuple<std::variant<Fortran::common::Indirection<Fortran::parser::MainProgram, false>, Fortran::common::Indirection<Fortran::parser::FunctionSubprogram, false>, Fortran::common::Indirection<Fortran::parser::SubroutineSubprogram, false>, Fortran::common::Indirection<Fortran::parser::Module, false>, Fortran::common::Indirection<Fortran::parser::Submodule, false>, Fortran::common::Indirection<Fortran::parser::BlockData, false>, Fortran::common::Indirection<Fortran::parser::CompilerDirective, false>> const&>, std::integer_sequence<unsigned long, 0ul>>::__visit_invoke(void Fortran::parser::Walk<Fortran::semantics::ExprChecker, Fortran::common::Indirection<Fortran::parser::MainProgram, false>, Fortran::common::Indirection<Fortran::parser::FunctionSubprogram, false>, Fortran::common::Indirection<Fortran::parser::SubroutineSubprogram, false>, Fortran::common::Indirection<Fortran::parser::Module, false>, Fortran::common::Indirection<Fortran::parser::Submodule, false>, Fortran::common::Indirection<Fortran::parser::BlockData, false>, Fortran::common::Indirection<Fortran::parser::CompilerDirective, false>>(std::variant<Fortran::common::Indirection<Fortran::parser::MainProgram, false>, Fortran::common::Indirection<Fortran::parser::FunctionSubprogram, false>, Fortran::common::Indirection<Fortran::parser::SubroutineSubprogram, false>, Fortran::common::Indirection<Fortran::parser::Module, false>, Fortran::common::Indirection<Fortran::parser::Submodule, false>, Fortran::common::Indirection<Fortran::parser::BlockData, false>, Fortran::common::Indirection<Fortran::parser::CompilerDirective, false>> const&, Fortran::semantics::ExprChecker&)::'lambda'(Fortran::semantics::ExprChecker const&)&&, std::variant<Fortran::common::Indirection<Fortran::parser::MainProgram, false>, Fortran::common::Indirection<Fortran::parser::FunctionSubprogram, false>, Fortran::common::Indirection<Fortran::parser::SubroutineSubprogram, false>, Fortran::common::Indirection<Fortran::parser::Module, false>, Fortran::common::Indirection<Fortran::parser::Submodule, false>, Fortran::common::Indirection<Fortran::parser::BlockData, false>, Fortran::common::Indirection<Fortran::parser::CompilerDirective, false>> const&) (/work01/ohno/LLVM_20230629/release/bin/flang-new+0x4512948)
#24 0x00000000044cebd8 Fortran::semantics::ExprChecker::Walk(Fortran::parser::Program const&) (/work01/ohno/LLVM_20230629/release/bin/flang-new+0x44cebd8)
#25 0x00000000045e3140 Fortran::semantics::Semantics::Perform() (/work01/ohno/LLVM_20230629/release/bin/flang-new+0x45e3140)
#26 0x0000000003b669e4 Fortran::frontend::FrontendAction::runSemanticChecks() (/work01/ohno/LLVM_20230629/release/bin/flang-new+0x3b669e4)
#27 0x00000000041488d0 Fortran::frontend::CodeGenAction::beginSourceFileAction() (/work01/ohno/LLVM_20230629/release/bin/flang-new+0x41488d0)
#28 0x0000000003b66030 Fortran::frontend::FrontendAction::beginSourceFile(Fortran::frontend::CompilerInstance&, Fortran::frontend::FrontendInputFile const&) (/work01/ohno/LLVM_20230629/release/bin/flang-new+0x3b66030)
#29 0x0000000003b5a378 Fortran::frontend::CompilerInstance::executeAction(Fortran::frontend::FrontendAction&) (/work01/ohno/LLVM_20230629/release/bin/flang-new+0x3b5a378)
#30 0x0000000003b6a68c Fortran::frontend::executeCompilerInvocation(Fortran::frontend::CompilerInstance*) (/work01/ohno/LLVM_20230629/release/bin/flang-new+0x3b6a68c)
#31 0x00000000037d4b18 fc1_main(llvm::ArrayRef<char const*>, char const*) (/work01/ohno/LLVM_20230629/release/bin/flang-new+0x37d4b18)
#32 0x00000000037650f8 main (/work01/ohno/LLVM_20230629/release/bin/flang-new+0x37650f8)
#33 0x000040003a0e0de4 __libc_start_main (/lib64/libc.so.6+0x20de4)
#34 0x00000000037d244c _start (/work01/ohno/LLVM_20230629/release/bin/flang-new+0x37d244c)
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 17.0.0 (https://github.com/llvm/llvm-project.git 36999318f09122fa41baff838f46c753db078275)
Target: aarch64-unknown-linux-gnu
Thread model: posix
InstalledDir: /work01/ohno/LLVM_20230629/release/bin
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/eical105_2-4ae34c
flang-new: note: diagnostic msg: /tmp/eical105_2-4ae34c.sh
flang-new: note: diagnostic msg:
********************
$
$ cat /tmp/eical105_2-4ae34c
#line "./eical105_2.f" 1
integer*8 x(2)
parameter (x=z'7fffffffffffffff')
print *, reshape((/1,1,1,1,1,1,1,1,1,1/), x)
end program
$
$ cat /tmp/eical105_2-4ae34c.sh
# Crash reproducer for clang version 17.0.0 (https://github.com/llvm/llvm-project.git 36999318f09122fa41baff838f46c753db078275)
# Driver args: "eical105_2.f"
# Original command: "/work01/ohno/LLVM_20230629/release/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" "+neon" "-target-feature" "+v8a" "-o" "/tmp/eical105_2-bd67d4.o" "-x" "f95-cpp-input" "
eical105_2.f"
"/work01/ohno/LLVM_20230629/release/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" "+neon" "-target-feature" "+v8a" "-x" "f95-cpp-input" "eical105_2-4ae34c"
$
$ gfortran eical105_2.f
$
$ ifort eical105_2.f
$
Metadata
Metadata
Assignees
Labels
bugIndicates an unexpected problem or unintended behaviorIndicates an unexpected problem or unintended behaviorcrashPrefer [crash-on-valid] or [crash-on-invalid]Prefer [crash-on-valid] or [crash-on-invalid]flang:frontend
Type
Projects
Status
Done