llvm / llvm-project

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

[Flang][OpenMP] llvm-project/flang/lib/Lower/OpenMP/Clauses.cpp:91: static void Fortran::lower::omp::SymbolAndDesignatorExtractor::verify(const Fortran::lower::omp::SymbolWithDesignator &): Assertion `symbol && "Expecting symbol"' failed. #86425

Open k-arrows opened 6 months ago

k-arrows commented 6 months ago

Crash itself is reproducible on Godbolt: https://godbolt.org/z/vsWhM5Wse

Reproducer (reduced and modified from https://github.com/gcc-mirror/gcc/blob/master/gcc/testsuite/gfortran.dg/gomp/ref_inquiry.f90)

$ cat test.f90
implicit none
type t
  integer :: i
end type t

type(t) :: x

!$omp target enter data map(to: x%i%kind)

end

With assertion-enabled flang-new, the compilation (flang-new -fopenmp test.f90) resulted in the following assertion failure:

flang-new: /path_to_llvm_project/llvm-project/flang/lib/Lower/OpenMP/Clauses.cpp:91: static void Fortran::lower::omp::SymbolAndDesignatorExtractor::verify(const Fortran::lower::omp::SymbolWithDesignator &): Assertion `symbol && "Expecting symbol"' failed.

Stack dump:

 #0 0x000055b8d471e027 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) 
 #1 0x000055b8d471e65b SignalHandler(int) Signals.cpp:0:0
 #2 0x00007f0d7d48c520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #3 0x00007f0d7d4e0a7c __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
 #4 0x00007f0d7d4e0a7c __pthread_kill_internal ./nptl/pthread_kill.c:78:10
 #5 0x00007f0d7d4e0a7c pthread_kill ./nptl/pthread_kill.c:89:10
 #6 0x00007f0d7d48c476 gsignal ./signal/../sysdeps/posix/raise.c:27:6
 #7 0x00007f0d7d4727f3 abort ./stdlib/abort.c:81:7
 #8 0x00007f0d7d47271b _nl_load_domain ./intl/loadmsgcat.c:1177:9
 #9 0x00007f0d7d483e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
#10 0x000055b8d4efad44 Fortran::lower::omp::SymbolAndDesignatorExtractor::verify(std::tuple<Fortran::semantics::Symbol*, std::optional<Fortran::evaluate::Expr<Fortran::evaluate::SomeType>>> const&) 
#11 0x000055b8d4efabcb Fortran::lower::omp::makeObject(Fortran::parser::Designator const&, Fortran::semantics::SemanticsContext&) 
#12 0x000055b8d4efaf08 Fortran::lower::omp::makeObject(Fortran::parser::OmpObject const&, Fortran::semantics::SemanticsContext&) 
#13 0x000055b8d4e7f87a std::back_insert_iterator<llvm::SmallVector<tomp::ObjectT<Fortran::semantics::Symbol*, Fortran::evaluate::Expr<Fortran::evaluate::SomeType>>, 0u>> std::transform<std::_List_const_iterator<Fortran::parser::OmpObject>, std::back_insert_iterator<llvm::SmallVector<tomp::ObjectT<Fortran::semantics::Symbol*, Fortran::evaluate::Expr<Fortran::evaluate::SomeType>>, 0u>>, Fortran::lower::omp::makeObjectFn(Fortran::semantics::SemanticsContext&)::'lambda'(auto&&)>(auto, auto, std::back_insert_iterator<llvm::SmallVector<tomp::ObjectT<Fortran::semantics::Symbol*, Fortran::evaluate::Expr<Fortran::evaluate::SomeType>>, 0u>>, Fortran::lower::omp::makeObjectFn(Fortran::semantics::SemanticsContext&)::'lambda'(auto&&)) 
#14 0x000055b8d4efbf96 Fortran::lower::omp::clause::make(Fortran::parser::OmpClause::Map const&, Fortran::semantics::SemanticsContext&) 
#15 0x000055b8d4f04cea std::__detail::__variant::__gen_vtable_impl<std::__detail::__variant::_Multi_array<std::__detail::__variant::__deduce_visit_result<Fortran::lower::omp::Clause> (*)(Fortran::lower::omp::makeClause(Fortran::parser::OmpClause const&, Fortran::semantics::SemanticsContext&)::$_17&&, std::variant<Fortran::parser::OmpClause::AcqRel, Fortran::parser::OmpClause::Acquire, Fortran::parser::OmpClause::AdjustArgs, Fortran::parser::OmpClause::Affinity, Fortran::parser::OmpClause::Align, Fortran::parser::OmpClause::Aligned, Fortran::parser::OmpClause::Allocate, Fortran::parser::OmpClause::Allocator, Fortran::parser::OmpClause::AppendArgs, Fortran::parser::OmpClause::At, Fortran::parser::OmpClause::AtomicDefaultMemOrder, Fortran::parser::OmpClause::Bind, Fortran::parser::OmpClause::CancellationConstructType, Fortran::parser::OmpClause::Capture, Fortran::parser::OmpClause::Collapse, Fortran::parser::OmpClause::Compare, Fortran::parser::OmpClause::Copyprivate, Fortran::parser::OmpClause::Copyin, Fortran::parser::OmpClause::Default, Fortran::parser::OmpClause::Defaultmap, Fortran::parser::OmpClause::Depend, Fortran::parser::OmpClause::Depobj, Fortran::parser::OmpClause::Destroy, Fortran::parser::OmpClause::Detach, Fortran::parser::OmpClause::Device, Fortran::parser::OmpClause::DeviceType, Fortran::parser::OmpClause::DistSchedule, Fortran::parser::OmpClause::Doacross, Fortran::parser::OmpClause::DynamicAllocators, Fortran::parser::OmpClause::Enter, Fortran::parser::OmpClause::Exclusive, Fortran::parser::OmpClause::Fail, Fortran::parser::OmpClause::Filter, Fortran::parser::OmpClause::Final, Fortran::parser::OmpClause::Firstprivate, Fortran::parser::OmpClause::Flush, Fortran::parser::OmpClause::From, Fortran::parser::OmpClause::Full, Fortran::parser::OmpClause::Grainsize, Fortran::parser::OmpClause::HasDeviceAddr, Fortran::parser::OmpClause::Hint, Fortran::parser::OmpClause::If, Fortran::parser::OmpClause::InReduction, Fortran::parser::OmpClause::Inbranch, Fortran::parser::OmpClause::Inclusive, Fortran::parser::OmpClause::Indirect, Fortran::parser::OmpClause::Init, Fortran::parser::OmpClause::IsDevicePtr, Fortran::parser::OmpClause::Lastprivate, Fortran::parser::OmpClause::Linear, Fortran::parser::OmpClause::Link, Fortran::parser::OmpClause::Map, Fortran::parser::OmpClause::Match, Fortran::parser::OmpClause::MemoryOrder, Fortran::parser::OmpClause::Mergeable, Fortran::parser::OmpClause::Message, Fortran::parser::OmpClause::Nogroup, Fortran::parser::OmpClause::Nowait, Fortran::parser::OmpClause::Nocontext, Fortran::parser::OmpClause::Nontemporal, Fortran::parser::OmpClause::Notinbranch, Fortran::parser::OmpClause::Novariants, Fortran::parser::OmpClause::NumTasks, Fortran::parser::OmpClause::NumTeams, Fortran::parser::OmpClause::NumThreads, Fortran::parser::OmpClause::OmpxAttribute, Fortran::parser::OmpClause::OmpxDynCgroupMem, Fortran::parser::OmpClause::OmpxBare, Fortran::parser::OmpClause::Order, Fortran::parser::OmpClause::Ordered, Fortran::parser::OmpClause::Partial, Fortran::parser::OmpClause::Priority, Fortran::parser::OmpClause::Private, Fortran::parser::OmpClause::ProcBind, Fortran::parser::OmpClause::Read, Fortran::parser::OmpClause::Reduction, Fortran::parser::OmpClause::Relaxed, Fortran::parser::OmpClause::Release, Fortran::parser::OmpClause::ReverseOffload, Fortran::parser::OmpClause::Safelen, Fortran::parser::OmpClause::Schedule, Fortran::parser::OmpClause::SeqCst, Fortran::parser::OmpClause::Severity, Fortran::parser::OmpClause::Shared, Fortran::parser::OmpClause::Simd, Fortran::parser::OmpClause::Simdlen, Fortran::parser::OmpClause::Sizes, Fortran::parser::OmpClause::TaskReduction, Fortran::parser::OmpClause::ThreadLimit, Fortran::parser::OmpClause::Threadprivate, Fortran::parser::OmpClause::Threads, Fortran::parser::OmpClause::To, Fortran::parser::OmpClause::UnifiedAddress, Fortran::parser::OmpClause::UnifiedSharedMemory, Fortran::parser::OmpClause::Uniform, Fortran::parser::OmpClause::Unknown, Fortran::parser::OmpClause::Untied, Fortran::parser::OmpClause::Update, Fortran::parser::OmpClause::Use, Fortran::parser::OmpClause::UseDeviceAddr, Fortran::parser::OmpClause::UseDevicePtr, Fortran::parser::OmpClause::UsesAllocators, Fortran::parser::OmpClause::Weak, Fortran::parser::OmpClause::When, Fortran::parser::OmpClause::Write> const&)>, std::integer_sequence<unsigned long, 51ul>>::__visit_invoke(Fortran::lower::omp::makeClause(Fortran::parser::OmpClause const&, Fortran::semantics::SemanticsContext&)::$_17&&, std::variant<Fortran::parser::OmpClause::AcqRel, Fortran::parser::OmpClause::Acquire, Fortran::parser::OmpClause::AdjustArgs, Fortran::parser::OmpClause::Affinity, Fortran::parser::OmpClause::Align, Fortran::parser::OmpClause::Aligned, Fortran::parser::OmpClause::Allocate, Fortran::parser::OmpClause::Allocator, Fortran::parser::OmpClause::AppendArgs, Fortran::parser::OmpClause::At, Fortran::parser::OmpClause::AtomicDefaultMemOrder, Fortran::parser::OmpClause::Bind, Fortran::parser::OmpClause::CancellationConstructType, Fortran::parser::OmpClause::Capture, Fortran::parser::OmpClause::Collapse, Fortran::parser::OmpClause::Compare, Fortran::parser::OmpClause::Copyprivate, Fortran::parser::OmpClause::Copyin, Fortran::parser::OmpClause::Default, Fortran::parser::OmpClause::Defaultmap, Fortran::parser::OmpClause::Depend, Fortran::parser::OmpClause::Depobj, Fortran::parser::OmpClause::Destroy, Fortran::parser::OmpClause::Detach, Fortran::parser::OmpClause::Device, Fortran::parser::OmpClause::DeviceType, Fortran::parser::OmpClause::DistSchedule, Fortran::parser::OmpClause::Doacross, Fortran::parser::OmpClause::DynamicAllocators, Fortran::parser::OmpClause::Enter, Fortran::parser::OmpClause::Exclusive, Fortran::parser::OmpClause::Fail, Fortran::parser::OmpClause::Filter, Fortran::parser::OmpClause::Final, Fortran::parser::OmpClause::Firstprivate, Fortran::parser::OmpClause::Flush, Fortran::parser::OmpClause::From, Fortran::parser::OmpClause::Full, Fortran::parser::OmpClause::Grainsize, Fortran::parser::OmpClause::HasDeviceAddr, Fortran::parser::OmpClause::Hint, Fortran::parser::OmpClause::If, Fortran::parser::OmpClause::InReduction, Fortran::parser::OmpClause::Inbranch, Fortran::parser::OmpClause::Inclusive, Fortran::parser::OmpClause::Indirect, Fortran::parser::OmpClause::Init, Fortran::parser::OmpClause::IsDevicePtr, Fortran::parser::OmpClause::Lastprivate, Fortran::parser::OmpClause::Linear, Fortran::parser::OmpClause::Link, Fortran::parser::OmpClause::Map, Fortran::parser::OmpClause::Match, Fortran::parser::OmpClause::MemoryOrder, Fortran::parser::OmpClause::Mergeable, Fortran::parser::OmpClause::Message, Fortran::parser::OmpClause::Nogroup, Fortran::parser::OmpClause::Nowait, Fortran::parser::OmpClause::Nocontext, Fortran::parser::OmpClause::Nontemporal, Fortran::parser::OmpClause::Notinbranch, Fortran::parser::OmpClause::Novariants, Fortran::parser::OmpClause::NumTasks, Fortran::parser::OmpClause::NumTeams, Fortran::parser::OmpClause::NumThreads, Fortran::parser::OmpClause::OmpxAttribute, Fortran::parser::OmpClause::OmpxDynCgroupMem, Fortran::parser::OmpClause::OmpxBare, Fortran::parser::OmpClause::Order, Fortran::parser::OmpClause::Ordered, Fortran::parser::OmpClause::Partial, Fortran::parser::OmpClause::Priority, Fortran::parser::OmpClause::Private, Fortran::parser::OmpClause::ProcBind, Fortran::parser::OmpClause::Read, Fortran::parser::OmpClause::Reduction, Fortran::parser::OmpClause::Relaxed, Fortran::parser::OmpClause::Release, Fortran::parser::OmpClause::ReverseOffload, Fortran::parser::OmpClause::Safelen, Fortran::parser::OmpClause::Schedule, Fortran::parser::OmpClause::SeqCst, Fortran::parser::OmpClause::Severity, Fortran::parser::OmpClause::Shared, Fortran::parser::OmpClause::Simd, Fortran::parser::OmpClause::Simdlen, Fortran::parser::OmpClause::Sizes, Fortran::parser::OmpClause::TaskReduction, Fortran::parser::OmpClause::ThreadLimit, Fortran::parser::OmpClause::Threadprivate, Fortran::parser::OmpClause::Threads, Fortran::parser::OmpClause::To, Fortran::parser::OmpClause::UnifiedAddress, Fortran::parser::OmpClause::UnifiedSharedMemory, Fortran::parser::OmpClause::Uniform, Fortran::parser::OmpClause::Unknown, Fortran::parser::OmpClause::Untied, Fortran::parser::OmpClause::Update, Fortran::parser::OmpClause::Use, Fortran::parser::OmpClause::UseDeviceAddr, Fortran::parser::OmpClause::UseDevicePtr, Fortran::parser::OmpClause::UsesAllocators, Fortran::parser::OmpClause::Weak, Fortran::parser::OmpClause::When, Fortran::parser::OmpClause::Write> const&) Clauses.cpp:0:0
#16 0x000055b8d4efc4d7 Fortran::lower::omp::makeList(Fortran::parser::OmpClauseList const&, Fortran::semantics::SemanticsContext&) 
#17 0x000055b8d4e69c0a std::__detail::__variant::__gen_vtable_impl<std::__detail::__variant::_Multi_array<std::__detail::__variant::__deduce_visit_result<void> (*)(Fortran::common::visitors<genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPStandaloneConstruct const&)::$_17, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPStandaloneConstruct const&)::$_18, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPStandaloneConstruct const&)::$_19, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPStandaloneConstruct const&)::$_20>&&, std::variant<Fortran::parser::OpenMPSimpleStandaloneConstruct, Fortran::parser::OpenMPFlushConstruct, Fortran::parser::OpenMPCancelConstruct, Fortran::parser::OpenMPCancellationPointConstruct> const&)>, std::integer_sequence<unsigned long, 0ul>>::__visit_invoke(Fortran::common::visitors<genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPStandaloneConstruct const&)::$_17, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPStandaloneConstruct const&)::$_18, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPStandaloneConstruct const&)::$_19, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPStandaloneConstruct const&)::$_20>&&, std::variant<Fortran::parser::OpenMPSimpleStandaloneConstruct, Fortran::parser::OpenMPFlushConstruct, Fortran::parser::OpenMPCancelConstruct, Fortran::parser::OpenMPCancellationPointConstruct> const&) OpenMP.cpp:0:0
#18 0x000055b8d4e657e5 std::__detail::__variant::__gen_vtable_impl<std::__detail::__variant::_Multi_array<std::__detail::__variant::__deduce_visit_result<void> (*)(Fortran::common::visitors<genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPConstruct const&)::$_28, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPConstruct const&)::$_29, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPConstruct const&)::$_30, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPConstruct const&)::$_31, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPConstruct const&)::$_32, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPConstruct const&)::$_33, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPConstruct const&)::$_34, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPConstruct const&)::$_35, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPConstruct const&)::$_36, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPConstruct const&)::$_37>&&, std::variant<Fortran::parser::OpenMPStandaloneConstruct, Fortran::parser::OpenMPSectionsConstruct, Fortran::parser::OpenMPSectionConstruct, Fortran::parser::OpenMPLoopConstruct, Fortran::parser::OpenMPBlockConstruct, Fortran::parser::OpenMPAtomicConstruct, Fortran::parser::OpenMPDeclarativeAllocate, Fortran::parser::OpenMPExecutableAllocate, Fortran::parser::OpenMPAllocatorsConstruct, Fortran::parser::OpenMPCriticalConstruct> const&)>, std::integer_sequence<unsigned long, 0ul>>::__visit_invoke(Fortran::common::visitors<genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPConstruct const&)::$_28, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPConstruct const&)::$_29, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPConstruct const&)::$_30, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPConstruct const&)::$_31, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPConstruct const&)::$_32, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPConstruct const&)::$_33, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPConstruct const&)::$_34, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPConstruct const&)::$_35, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPConstruct const&)::$_36, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPConstruct const&)::$_37>&&, std::variant<Fortran::parser::OpenMPStandaloneConstruct, Fortran::parser::OpenMPSectionsConstruct, Fortran::parser::OpenMPSectionConstruct, Fortran::parser::OpenMPLoopConstruct, Fortran::parser::OpenMPBlockConstruct, Fortran::parser::OpenMPAtomicConstruct, Fortran::parser::OpenMPDeclarativeAllocate, Fortran::parser::OpenMPExecutableAllocate, Fortran::parser::OpenMPAllocatorsConstruct, Fortran::parser::OpenMPCriticalConstruct> const&) OpenMP.cpp:0:0
#19 0x000055b8d4e63f07 Fortran::lower::genOpenMPConstruct(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPConstruct const&) 
#20 0x000055b8d4c11a97 std::__detail::__variant::__gen_vtable_impl<std::__detail::__variant::_Multi_array<std::__detail::__variant::__deduce_visit_result<void> (*)(Fortran::common::visitors<auto Fortran::lower::pft::ReferenceVariantBase<true, Fortran::parser::AllocateStmt, Fortran::parser::AssignmentStmt, Fortran::parser::BackspaceStmt, Fortran::parser::CallStmt, Fortran::parser::CloseStmt, Fortran::parser::ContinueStmt, Fortran::parser::CycleStmt, Fortran::parser::DeallocateStmt, Fortran::parser::EndfileStmt, Fortran::parser::EventPostStmt, Fortran::parser::EventWaitStmt, Fortran::parser::ExitStmt, Fortran::parser::FailImageStmt, Fortran::parser::FlushStmt, Fortran::parser::FormTeamStmt, Fortran::parser::GotoStmt, Fortran::parser::IfStmt, Fortran::parser::InquireStmt, Fortran::parser::LockStmt, Fortran::parser::NotifyWaitStmt, Fortran::parser::NullifyStmt, Fortran::parser::OpenStmt, Fortran::parser::PointerAssignmentStmt, Fortran::parser::PrintStmt, Fortran::parser::ReadStmt, Fortran::parser::ReturnStmt, Fortran::parser::RewindStmt, Fortran::parser::StopStmt, Fortran::parser::SyncAllStmt, Fortran::parser::SyncImagesStmt, Fortran::parser::SyncMemoryStmt, Fortran::parser::SyncTeamStmt, Fortran::parser::UnlockStmt, Fortran::parser::WaitStmt, Fortran::parser::WhereStmt, Fortran::parser::WriteStmt, Fortran::parser::ComputedGotoStmt, Fortran::parser::ForallStmt, Fortran::parser::ArithmeticIfStmt, Fortran::parser::AssignStmt, Fortran::parser::AssignedGotoStmt, Fortran::parser::PauseStmt, Fortran::parser::EntryStmt, Fortran::parser::FormatStmt, Fortran::parser::AssociateStmt, Fortran::parser::EndAssociateStmt, Fortran::parser::BlockStmt, Fortran::parser::EndBlockStmt, Fortran::parser::SelectCaseStmt, Fortran::parser::CaseStmt, Fortran::parser::EndSelectStmt, Fortran::parser::ChangeTeamStmt, Fortran::parser::EndChangeTeamStmt, Fortran::parser::CriticalStmt, Fortran::parser::EndCriticalStmt, Fortran::parser::NonLabelDoStmt, Fortran::parser::EndDoStmt, Fortran::parser::IfThenStmt, Fortran::parser::ElseIfStmt, Fortran::parser::ElseStmt, Fortran::parser::EndIfStmt, Fortran::parser::SelectRankStmt, Fortran::parser::SelectRankCaseStmt, Fortran::parser::SelectTypeStmt, Fortran::parser::TypeGuardStmt, Fortran::parser::WhereConstructStmt, Fortran::parser::MaskedElsewhereStmt, Fortran::parser::ElsewhereStmt, Fortran::parser::EndWhereStmt, Fortran::parser::ForallConstructStmt, Fortran::parser::EndForallStmt, Fortran::parser::EndProgramStmt, Fortran::parser::EndFunctionStmt, Fortran::parser::EndSubroutineStmt, Fortran::parser::EndMpSubprogramStmt, Fortran::parser::AssociateConstruct, Fortran::parser::BlockConstruct, Fortran::parser::CaseConstruct, Fortran::parser::ChangeTeamConstruct, Fortran::parser::CriticalConstruct, Fortran::parser::DoConstruct, Fortran::parser::IfConstruct, Fortran::parser::SelectRankConstruct, Fortran::parser::SelectTypeConstruct, Fortran::parser::WhereConstruct, Fortran::parser::ForallConstruct, Fortran::parser::CompilerDirective, Fortran::parser::OpenACCConstruct, Fortran::parser::OpenACCRoutineConstruct, Fortran::parser::OpenACCDeclarativeConstruct, Fortran::parser::OpenMPConstruct, Fortran::parser::OpenMPDeclarativeConstruct, Fortran::parser::OmpEndLoopDirective, Fortran::parser::CUFKernelDoConstruct>::visit<(anonymous namespace)::FirConverter::genFIR(Fortran::lower::pft::Evaluation&, bool)::'lambda'(auto const&)>(auto&&) const::'lambda'(auto)>&&, std::variant<Fortran::common::Reference<Fortran::parser::AllocateStmt const>, Fortran::common::Reference<Fortran::parser::AssignmentStmt const>, Fortran::common::Reference<Fortran::parser::BackspaceStmt const>, Fortran::common::Reference<Fortran::parser::CallStmt const>, Fortran::common::Reference<Fortran::parser::CloseStmt const>, Fortran::common::Reference<Fortran::parser::ContinueStmt const>, Fortran::common::Reference<Fortran::parser::CycleStmt const>, Fortran::common::Reference<Fortran::parser::DeallocateStmt const>, Fortran::common::Reference<Fortran::parser::EndfileStmt const>, Fortran::common::Reference<Fortran::parser::EventPostStmt const>, Fortran::common::Reference<Fortran::parser::EventWaitStmt const>, Fortran::common::Reference<Fortran::parser::ExitStmt const>, Fortran::common::Reference<Fortran::parser::FailImageStmt const>, Fortran::common::Reference<Fortran::parser::FlushStmt const>, Fortran::common::Reference<Fortran::parser::FormTeamStmt const>, Fortran::common::Reference<Fortran::parser::GotoStmt const>, Fortran::common::Reference<Fortran::parser::IfStmt const>, Fortran::common::Reference<Fortran::parser::InquireStmt const>, Fortran::common::Reference<Fortran::parser::LockStmt const>, Fortran::common::Reference<Fortran::parser::NotifyWaitStmt const>, Fortran::common::Reference<Fortran::parser::NullifyStmt const>, Fortran::common::Reference<Fortran::parser::OpenStmt const>, Fortran::common::Reference<Fortran::parser::PointerAssignmentStmt const>, Fortran::common::Reference<Fortran::parser::PrintStmt const>, Fortran::common::Reference<Fortran::parser::ReadStmt const>, Fortran::common::Reference<Fortran::parser::ReturnStmt const>, Fortran::common::Reference<Fortran::parser::RewindStmt const>, Fortran::common::Reference<Fortran::parser::StopStmt const>, Fortran::common::Reference<Fortran::parser::SyncAllStmt const>, Fortran::common::Reference<Fortran::parser::SyncImagesStmt const>, Fortran::common::Reference<Fortran::parser::SyncMemoryStmt const>, Fortran::common::Reference<Fortran::parser::SyncTeamStmt const>, Fortran::common::Reference<Fortran::parser::UnlockStmt const>, Fortran::common::Reference<Fortran::parser::WaitStmt const>, Fortran::common::Reference<Fortran::parser::WhereStmt const>, Fortran::common::Reference<Fortran::parser::WriteStmt const>, Fortran::common::Reference<Fortran::parser::ComputedGotoStmt const>, Fortran::common::Reference<Fortran::parser::ForallStmt const>, Fortran::common::Reference<Fortran::parser::ArithmeticIfStmt const>, Fortran::common::Reference<Fortran::parser::AssignStmt const>, Fortran::common::Reference<Fortran::parser::AssignedGotoStmt const>, Fortran::common::Reference<Fortran::parser::PauseStmt const>, Fortran::common::Reference<Fortran::parser::EntryStmt const>, Fortran::common::Reference<Fortran::parser::FormatStmt const>, Fortran::common::Reference<Fortran::parser::AssociateStmt const>, Fortran::common::Reference<Fortran::parser::EndAssociateStmt const>, Fortran::common::Reference<Fortran::parser::BlockStmt const>, Fortran::common::Reference<Fortran::parser::EndBlockStmt const>, Fortran::common::Reference<Fortran::parser::SelectCaseStmt const>, Fortran::common::Reference<Fortran::parser::CaseStmt const>, Fortran::common::Reference<Fortran::parser::EndSelectStmt const>, Fortran::common::Reference<Fortran::parser::ChangeTeamStmt const>, Fortran::common::Reference<Fortran::parser::EndChangeTeamStmt const>, Fortran::common::Reference<Fortran::parser::CriticalStmt const>, Fortran::common::Reference<Fortran::parser::EndCriticalStmt const>, Fortran::common::Reference<Fortran::parser::NonLabelDoStmt const>, Fortran::common::Reference<Fortran::parser::EndDoStmt const>, Fortran::common::Reference<Fortran::parser::IfThenStmt const>, Fortran::common::Reference<Fortran::parser::ElseIfStmt const>, Fortran::common::Reference<Fortran::parser::ElseStmt const>, Fortran::common::Reference<Fortran::parser::EndIfStmt const>, Fortran::common::Reference<Fortran::parser::SelectRankStmt const>, Fortran::common::Reference<Fortran::parser::SelectRankCaseStmt const>, Fortran::common::Reference<Fortran::parser::SelectTypeStmt const>, Fortran::common::Reference<Fortran::parser::TypeGuardStmt const>, Fortran::common::Reference<Fortran::parser::WhereConstructStmt const>, Fortran::common::Reference<Fortran::parser::MaskedElsewhereStmt const>, Fortran::common::Reference<Fortran::parser::ElsewhereStmt const>, Fortran::common::Reference<Fortran::parser::EndWhereStmt const>, Fortran::common::Reference<Fortran::parser::ForallConstructStmt const>, Fortran::common::Reference<Fortran::parser::EndForallStmt const>, Fortran::common::Reference<Fortran::parser::EndProgramStmt const>, Fortran::common::Reference<Fortran::parser::EndFunctionStmt const>, Fortran::common::Reference<Fortran::parser::EndSubroutineStmt const>, Fortran::common::Reference<Fortran::parser::EndMpSubprogramStmt const>, Fortran::common::Reference<Fortran::parser::AssociateConstruct const>, Fortran::common::Reference<Fortran::parser::BlockConstruct const>, Fortran::common::Reference<Fortran::parser::CaseConstruct const>, Fortran::common::Reference<Fortran::parser::ChangeTeamConstruct const>, Fortran::common::Reference<Fortran::parser::CriticalConstruct const>, Fortran::common::Reference<Fortran::parser::DoConstruct const>, Fortran::common::Reference<Fortran::parser::IfConstruct const>, Fortran::common::Reference<Fortran::parser::SelectRankConstruct const>, Fortran::common::Reference<Fortran::parser::SelectTypeConstruct const>, Fortran::common::Reference<Fortran::parser::WhereConstruct const>, Fortran::common::Reference<Fortran::parser::ForallConstruct const>, Fortran::common::Reference<Fortran::parser::CompilerDirective const>, Fortran::common::Reference<Fortran::parser::OpenACCConstruct const>, Fortran::common::Reference<Fortran::parser::OpenACCRoutineConstruct const>, Fortran::common::Reference<Fortran::parser::OpenACCDeclarativeConstruct const>, Fortran::common::Reference<Fortran::parser::OpenMPConstruct const>, Fortran::common::Reference<Fortran::parser::OpenMPDeclarativeConstruct const>, Fortran::common::Reference<Fortran::parser::OmpEndLoopDirective const>, Fortran::common::Reference<Fortran::parser::CUFKernelDoConstruct const>> const&)>, std::integer_sequence<unsigned long, 90ul>>::__visit_invoke(Fortran::common::visitors<auto Fortran::lower::pft::ReferenceVariantBase<true, Fortran::parser::AllocateStmt, Fortran::parser::AssignmentStmt, Fortran::parser::BackspaceStmt, Fortran::parser::CallStmt, Fortran::parser::CloseStmt, Fortran::parser::ContinueStmt, Fortran::parser::CycleStmt, Fortran::parser::DeallocateStmt, Fortran::parser::EndfileStmt, Fortran::parser::EventPostStmt, Fortran::parser::EventWaitStmt, Fortran::parser::ExitStmt, Fortran::parser::FailImageStmt, Fortran::parser::FlushStmt, Fortran::parser::FormTeamStmt, Fortran::parser::GotoStmt, Fortran::parser::IfStmt, Fortran::parser::InquireStmt, Fortran::parser::LockStmt, Fortran::parser::NotifyWaitStmt, Fortran::parser::NullifyStmt, Fortran::parser::OpenStmt, Fortran::parser::PointerAssignmentStmt, Fortran::parser::PrintStmt, Fortran::parser::ReadStmt, Fortran::parser::ReturnStmt, Fortran::parser::RewindStmt, Fortran::parser::StopStmt, Fortran::parser::SyncAllStmt, Fortran::parser::SyncImagesStmt, Fortran::parser::SyncMemoryStmt, Fortran::parser::SyncTeamStmt, Fortran::parser::UnlockStmt, Fortran::parser::WaitStmt, Fortran::parser::WhereStmt, Fortran::parser::WriteStmt, Fortran::parser::ComputedGotoStmt, Fortran::parser::ForallStmt, Fortran::parser::ArithmeticIfStmt, Fortran::parser::AssignStmt, Fortran::parser::AssignedGotoStmt, Fortran::parser::PauseStmt, Fortran::parser::EntryStmt, Fortran::parser::FormatStmt, Fortran::parser::AssociateStmt, Fortran::parser::EndAssociateStmt, Fortran::parser::BlockStmt, Fortran::parser::EndBlockStmt, Fortran::parser::SelectCaseStmt, Fortran::parser::CaseStmt, Fortran::parser::EndSelectStmt, Fortran::parser::ChangeTeamStmt, Fortran::parser::EndChangeTeamStmt, Fortran::parser::CriticalStmt, Fortran::parser::EndCriticalStmt, Fortran::parser::NonLabelDoStmt, Fortran::parser::EndDoStmt, Fortran::parser::IfThenStmt, Fortran::parser::ElseIfStmt, Fortran::parser::ElseStmt, Fortran::parser::EndIfStmt, Fortran::parser::SelectRankStmt, Fortran::parser::SelectRankCaseStmt, Fortran::parser::SelectTypeStmt, Fortran::parser::TypeGuardStmt, Fortran::parser::WhereConstructStmt, Fortran::parser::MaskedElsewhereStmt, Fortran::parser::ElsewhereStmt, Fortran::parser::EndWhereStmt, Fortran::parser::ForallConstructStmt, Fortran::parser::EndForallStmt, Fortran::parser::EndProgramStmt, Fortran::parser::EndFunctionStmt, Fortran::parser::EndSubroutineStmt, Fortran::parser::EndMpSubprogramStmt, Fortran::parser::AssociateConstruct, Fortran::parser::BlockConstruct, Fortran::parser::CaseConstruct, Fortran::parser::ChangeTeamConstruct, Fortran::parser::CriticalConstruct, Fortran::parser::DoConstruct, Fortran::parser::IfConstruct, Fortran::parser::SelectRankConstruct, Fortran::parser::SelectTypeConstruct, Fortran::parser::WhereConstruct, Fortran::parser::ForallConstruct, Fortran::parser::CompilerDirective, Fortran::parser::OpenACCConstruct, Fortran::parser::OpenACCRoutineConstruct, Fortran::parser::OpenACCDeclarativeConstruct, Fortran::parser::OpenMPConstruct, Fortran::parser::OpenMPDeclarativeConstruct, Fortran::parser::OmpEndLoopDirective, Fortran::parser::CUFKernelDoConstruct>::visit<(anonymous namespace)::FirConverter::genFIR(Fortran::lower::pft::Evaluation&, bool)::'lambda'(auto const&)>(auto&&) const::'lambda'(auto)>&&, std::variant<Fortran::common::Reference<Fortran::parser::AllocateStmt const>, Fortran::common::Reference<Fortran::parser::AssignmentStmt const>, Fortran::common::Reference<Fortran::parser::BackspaceStmt const>, Fortran::common::Reference<Fortran::parser::CallStmt const>, Fortran::common::Reference<Fortran::parser::CloseStmt const>, Fortran::common::Reference<Fortran::parser::ContinueStmt const>, Fortran::common::Reference<Fortran::parser::CycleStmt const>, Fortran::common::Reference<Fortran::parser::DeallocateStmt const>, Fortran::common::Reference<Fortran::parser::EndfileStmt const>, Fortran::common::Reference<Fortran::parser::EventPostStmt const>, Fortran::common::Reference<Fortran::parser::EventWaitStmt const>, Fortran::common::Reference<Fortran::parser::ExitStmt const>, Fortran::common::Reference<Fortran::parser::FailImageStmt const>, Fortran::common::Reference<Fortran::parser::FlushStmt const>, Fortran::common::Reference<Fortran::parser::FormTeamStmt const>, Fortran::common::Reference<Fortran::parser::GotoStmt const>, Fortran::common::Reference<Fortran::parser::IfStmt const>, Fortran::common::Reference<Fortran::parser::InquireStmt const>, Fortran::common::Reference<Fortran::parser::LockStmt const>, Fortran::common::Reference<Fortran::parser::NotifyWaitStmt const>, Fortran::common::Reference<Fortran::parser::NullifyStmt const>, Fortran::common::Reference<Fortran::parser::OpenStmt const>, Fortran::common::Reference<Fortran::parser::PointerAssignmentStmt const>, Fortran::common::Reference<Fortran::parser::PrintStmt const>, Fortran::common::Reference<Fortran::parser::ReadStmt const>, Fortran::common::Reference<Fortran::parser::ReturnStmt const>, Fortran::common::Reference<Fortran::parser::RewindStmt const>, Fortran::common::Reference<Fortran::parser::StopStmt const>, Fortran::common::Reference<Fortran::parser::SyncAllStmt const>, Fortran::common::Reference<Fortran::parser::SyncImagesStmt const>, Fortran::common::Reference<Fortran::parser::SyncMemoryStmt const>, Fortran::common::Reference<Fortran::parser::SyncTeamStmt const>, Fortran::common::Reference<Fortran::parser::UnlockStmt const>, Fortran::common::Reference<Fortran::parser::WaitStmt const>, Fortran::common::Reference<Fortran::parser::WhereStmt const>, Fortran::common::Reference<Fortran::parser::WriteStmt const>, Fortran::common::Reference<Fortran::parser::ComputedGotoStmt const>, Fortran::common::Reference<Fortran::parser::ForallStmt const>, Fortran::common::Reference<Fortran::parser::ArithmeticIfStmt const>, Fortran::common::Reference<Fortran::parser::AssignStmt const>, Fortran::common::Reference<Fortran::parser::AssignedGotoStmt const>, Fortran::common::Reference<Fortran::parser::PauseStmt const>, Fortran::common::Reference<Fortran::parser::EntryStmt const>, Fortran::common::Reference<Fortran::parser::FormatStmt const>, Fortran::common::Reference<Fortran::parser::AssociateStmt const>, Fortran::common::Reference<Fortran::parser::EndAssociateStmt const>, Fortran::common::Reference<Fortran::parser::BlockStmt const>, Fortran::common::Reference<Fortran::parser::EndBlockStmt const>, Fortran::common::Reference<Fortran::parser::SelectCaseStmt const>, Fortran::common::Reference<Fortran::parser::CaseStmt const>, Fortran::common::Reference<Fortran::parser::EndSelectStmt const>, Fortran::common::Reference<Fortran::parser::ChangeTeamStmt const>, Fortran::common::Reference<Fortran::parser::EndChangeTeamStmt const>, Fortran::common::Reference<Fortran::parser::CriticalStmt const>, Fortran::common::Reference<Fortran::parser::EndCriticalStmt const>, Fortran::common::Reference<Fortran::parser::NonLabelDoStmt const>, Fortran::common::Reference<Fortran::parser::EndDoStmt const>, Fortran::common::Reference<Fortran::parser::IfThenStmt const>, Fortran::common::Reference<Fortran::parser::ElseIfStmt const>, Fortran::common::Reference<Fortran::parser::ElseStmt const>, Fortran::common::Reference<Fortran::parser::EndIfStmt const>, Fortran::common::Reference<Fortran::parser::SelectRankStmt const>, Fortran::common::Reference<Fortran::parser::SelectRankCaseStmt const>, Fortran::common::Reference<Fortran::parser::SelectTypeStmt const>, Fortran::common::Reference<Fortran::parser::TypeGuardStmt const>, Fortran::common::Reference<Fortran::parser::WhereConstructStmt const>, Fortran::common::Reference<Fortran::parser::MaskedElsewhereStmt const>, Fortran::common::Reference<Fortran::parser::ElsewhereStmt const>, Fortran::common::Reference<Fortran::parser::EndWhereStmt const>, Fortran::common::Reference<Fortran::parser::ForallConstructStmt const>, Fortran::common::Reference<Fortran::parser::EndForallStmt const>, Fortran::common::Reference<Fortran::parser::EndProgramStmt const>, Fortran::common::Reference<Fortran::parser::EndFunctionStmt const>, Fortran::common::Reference<Fortran::parser::EndSubroutineStmt const>, Fortran::common::Reference<Fortran::parser::EndMpSubprogramStmt const>, Fortran::common::Reference<Fortran::parser::AssociateConstruct const>, Fortran::common::Reference<Fortran::parser::BlockConstruct const>, Fortran::common::Reference<Fortran::parser::CaseConstruct const>, Fortran::common::Reference<Fortran::parser::ChangeTeamConstruct const>, Fortran::common::Reference<Fortran::parser::CriticalConstruct const>, Fortran::common::Reference<Fortran::parser::DoConstruct const>, Fortran::common::Reference<Fortran::parser::IfConstruct const>, Fortran::common::Reference<Fortran::parser::SelectRankConstruct const>, Fortran::common::Reference<Fortran::parser::SelectTypeConstruct const>, Fortran::common::Reference<Fortran::parser::WhereConstruct const>, Fortran::common::Reference<Fortran::parser::ForallConstruct const>, Fortran::common::Reference<Fortran::parser::CompilerDirective const>, Fortran::common::Reference<Fortran::parser::OpenACCConstruct const>, Fortran::common::Reference<Fortran::parser::OpenACCRoutineConstruct const>, Fortran::common::Reference<Fortran::parser::OpenACCDeclarativeConstruct const>, Fortran::common::Reference<Fortran::parser::OpenMPConstruct const>, Fortran::common::Reference<Fortran::parser::OpenMPDeclarativeConstruct const>, Fortran::common::Reference<Fortran::parser::OmpEndLoopDirective const>, Fortran::common::Reference<Fortran::parser::CUFKernelDoConstruct const>> const&) Bridge.cpp:0:0
#21 0x000055b8d4c0a76c (anonymous namespace)::FirConverter::genFIR(Fortran::lower::pft::Evaluation&, bool) Bridge.cpp:0:0
#22 0x000055b8d4c3edc3 (anonymous namespace)::FirConverter::lowerFunc(Fortran::lower::pft::FunctionLikeUnit&) Bridge.cpp:0:0
#23 0x000055b8d4bec63b Fortran::lower::LoweringBridge::lower(Fortran::parser::Program const&, Fortran::semantics::SemanticsContext const&) 
#24 0x000055b8d4b5135c Fortran::frontend::CodeGenAction::beginSourceFileAction() 
#25 0x000055b8d4742564 Fortran::frontend::FrontendAction::beginSourceFile(Fortran::frontend::CompilerInstance&, Fortran::frontend::FrontendInputFile const&) 
#26 0x000055b8d473731f Fortran::frontend::CompilerInstance::executeAction(Fortran::frontend::FrontendAction&) 
#27 0x000055b8d47457b4 Fortran::frontend::executeCompilerInvocation(Fortran::frontend::CompilerInstance*) 
#28 0x000055b8d43e32ed fc1_main(llvm::ArrayRef<char const*>, char const*) 
#29 0x000055b8d43e22d6 main 
#30 0x00007f0d7d473d90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#31 0x00007f0d7d473e40 call_init ./csu/../csu/libc-start.c:128:20
#32 0x00007f0d7d473e40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#33 0x000055b8d43e1835 _start 
flang-new: error: unable to execute command: Aborted
flang-new: error: flang frontend command failed due to signal (use -v to see invocation)
flang-new version 19.0.0git (https://github.com/llvm/llvm-project.git 84e20cb0cbc64bb2d8299b30da3ce8e6421c203e)
Target: x86_64-unknown-linux-gnu
Thread model: posix
llvmbot commented 6 months ago

@llvm/issue-subscribers-flang-ir

Author: None (k-arrows)

Crash itself is reproducible on Godbolt: https://godbolt.org/z/vsWhM5Wse Reproducer (reduced and modified from https://github.com/gcc-mirror/gcc/blob/master/gcc/testsuite/gfortran.dg/gomp/ref_inquiry.f90) ```console $ cat test.f90 implicit none type t integer :: i end type t type(t) :: x !$omp target enter data map(to: x%i%kind) end ``` With assertion-enabled flang-new, the compilation (`flang-new -fopenmp test.f90`) resulted in the following assertion failure: ```txt flang-new: /path_to_llvm_project/llvm-project/flang/lib/Lower/OpenMP/Clauses.cpp:91: static void Fortran::lower::omp::SymbolAndDesignatorExtractor::verify(const Fortran::lower::omp::SymbolWithDesignator &): Assertion `symbol && "Expecting symbol"' failed. ``` Stack dump: ```console #0 0x000055b8d471e027 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) #1 0x000055b8d471e65b SignalHandler(int) Signals.cpp:0:0 #2 0x00007f0d7d48c520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520) #3 0x00007f0d7d4e0a7c __pthread_kill_implementation ./nptl/pthread_kill.c:44:76 #4 0x00007f0d7d4e0a7c __pthread_kill_internal ./nptl/pthread_kill.c:78:10 #5 0x00007f0d7d4e0a7c pthread_kill ./nptl/pthread_kill.c:89:10 #6 0x00007f0d7d48c476 gsignal ./signal/../sysdeps/posix/raise.c:27:6 #7 0x00007f0d7d4727f3 abort ./stdlib/abort.c:81:7 #8 0x00007f0d7d47271b _nl_load_domain ./intl/loadmsgcat.c:1177:9 #9 0x00007f0d7d483e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96) #10 0x000055b8d4efad44 Fortran::lower::omp::SymbolAndDesignatorExtractor::verify(std::tuple<Fortran::semantics::Symbol*, std::optional<Fortran::evaluate::Expr<Fortran::evaluate::SomeType>>> const&) #11 0x000055b8d4efabcb Fortran::lower::omp::makeObject(Fortran::parser::Designator const&, Fortran::semantics::SemanticsContext&) #12 0x000055b8d4efaf08 Fortran::lower::omp::makeObject(Fortran::parser::OmpObject const&, Fortran::semantics::SemanticsContext&) #13 0x000055b8d4e7f87a std::back_insert_iterator<llvm::SmallVector<tomp::ObjectT<Fortran::semantics::Symbol*, Fortran::evaluate::Expr<Fortran::evaluate::SomeType>>, 0u>> std::transform<std::_List_const_iterator<Fortran::parser::OmpObject>, std::back_insert_iterator<llvm::SmallVector<tomp::ObjectT<Fortran::semantics::Symbol*, Fortran::evaluate::Expr<Fortran::evaluate::SomeType>>, 0u>>, Fortran::lower::omp::makeObjectFn(Fortran::semantics::SemanticsContext&)::'lambda'(auto&&)>(auto, auto, std::back_insert_iterator<llvm::SmallVector<tomp::ObjectT<Fortran::semantics::Symbol*, Fortran::evaluate::Expr<Fortran::evaluate::SomeType>>, 0u>>, Fortran::lower::omp::makeObjectFn(Fortran::semantics::SemanticsContext&)::'lambda'(auto&&)) #14 0x000055b8d4efbf96 Fortran::lower::omp::clause::make(Fortran::parser::OmpClause::Map const&, Fortran::semantics::SemanticsContext&) #15 0x000055b8d4f04cea std::__detail::__variant::__gen_vtable_impl<std::__detail::__variant::_Multi_array<std::__detail::__variant::__deduce_visit_result<Fortran::lower::omp::Clause> (*)(Fortran::lower::omp::makeClause(Fortran::parser::OmpClause const&, Fortran::semantics::SemanticsContext&)::$_17&&, std::variant<Fortran::parser::OmpClause::AcqRel, Fortran::parser::OmpClause::Acquire, Fortran::parser::OmpClause::AdjustArgs, Fortran::parser::OmpClause::Affinity, Fortran::parser::OmpClause::Align, Fortran::parser::OmpClause::Aligned, Fortran::parser::OmpClause::Allocate, Fortran::parser::OmpClause::Allocator, Fortran::parser::OmpClause::AppendArgs, Fortran::parser::OmpClause::At, Fortran::parser::OmpClause::AtomicDefaultMemOrder, Fortran::parser::OmpClause::Bind, Fortran::parser::OmpClause::CancellationConstructType, Fortran::parser::OmpClause::Capture, Fortran::parser::OmpClause::Collapse, Fortran::parser::OmpClause::Compare, Fortran::parser::OmpClause::Copyprivate, Fortran::parser::OmpClause::Copyin, Fortran::parser::OmpClause::Default, Fortran::parser::OmpClause::Defaultmap, Fortran::parser::OmpClause::Depend, Fortran::parser::OmpClause::Depobj, Fortran::parser::OmpClause::Destroy, Fortran::parser::OmpClause::Detach, Fortran::parser::OmpClause::Device, Fortran::parser::OmpClause::DeviceType, Fortran::parser::OmpClause::DistSchedule, Fortran::parser::OmpClause::Doacross, Fortran::parser::OmpClause::DynamicAllocators, Fortran::parser::OmpClause::Enter, Fortran::parser::OmpClause::Exclusive, Fortran::parser::OmpClause::Fail, Fortran::parser::OmpClause::Filter, Fortran::parser::OmpClause::Final, Fortran::parser::OmpClause::Firstprivate, Fortran::parser::OmpClause::Flush, Fortran::parser::OmpClause::From, Fortran::parser::OmpClause::Full, Fortran::parser::OmpClause::Grainsize, Fortran::parser::OmpClause::HasDeviceAddr, Fortran::parser::OmpClause::Hint, Fortran::parser::OmpClause::If, Fortran::parser::OmpClause::InReduction, Fortran::parser::OmpClause::Inbranch, Fortran::parser::OmpClause::Inclusive, Fortran::parser::OmpClause::Indirect, Fortran::parser::OmpClause::Init, Fortran::parser::OmpClause::IsDevicePtr, Fortran::parser::OmpClause::Lastprivate, Fortran::parser::OmpClause::Linear, Fortran::parser::OmpClause::Link, Fortran::parser::OmpClause::Map, Fortran::parser::OmpClause::Match, Fortran::parser::OmpClause::MemoryOrder, Fortran::parser::OmpClause::Mergeable, Fortran::parser::OmpClause::Message, Fortran::parser::OmpClause::Nogroup, Fortran::parser::OmpClause::Nowait, Fortran::parser::OmpClause::Nocontext, Fortran::parser::OmpClause::Nontemporal, Fortran::parser::OmpClause::Notinbranch, Fortran::parser::OmpClause::Novariants, Fortran::parser::OmpClause::NumTasks, Fortran::parser::OmpClause::NumTeams, Fortran::parser::OmpClause::NumThreads, Fortran::parser::OmpClause::OmpxAttribute, Fortran::parser::OmpClause::OmpxDynCgroupMem, Fortran::parser::OmpClause::OmpxBare, Fortran::parser::OmpClause::Order, Fortran::parser::OmpClause::Ordered, Fortran::parser::OmpClause::Partial, Fortran::parser::OmpClause::Priority, Fortran::parser::OmpClause::Private, Fortran::parser::OmpClause::ProcBind, Fortran::parser::OmpClause::Read, Fortran::parser::OmpClause::Reduction, Fortran::parser::OmpClause::Relaxed, Fortran::parser::OmpClause::Release, Fortran::parser::OmpClause::ReverseOffload, Fortran::parser::OmpClause::Safelen, Fortran::parser::OmpClause::Schedule, Fortran::parser::OmpClause::SeqCst, Fortran::parser::OmpClause::Severity, Fortran::parser::OmpClause::Shared, Fortran::parser::OmpClause::Simd, Fortran::parser::OmpClause::Simdlen, Fortran::parser::OmpClause::Sizes, Fortran::parser::OmpClause::TaskReduction, Fortran::parser::OmpClause::ThreadLimit, Fortran::parser::OmpClause::Threadprivate, Fortran::parser::OmpClause::Threads, Fortran::parser::OmpClause::To, Fortran::parser::OmpClause::UnifiedAddress, Fortran::parser::OmpClause::UnifiedSharedMemory, Fortran::parser::OmpClause::Uniform, Fortran::parser::OmpClause::Unknown, Fortran::parser::OmpClause::Untied, Fortran::parser::OmpClause::Update, Fortran::parser::OmpClause::Use, Fortran::parser::OmpClause::UseDeviceAddr, Fortran::parser::OmpClause::UseDevicePtr, Fortran::parser::OmpClause::UsesAllocators, Fortran::parser::OmpClause::Weak, Fortran::parser::OmpClause::When, Fortran::parser::OmpClause::Write> const&)>, std::integer_sequence<unsigned long, 51ul>>::__visit_invoke(Fortran::lower::omp::makeClause(Fortran::parser::OmpClause const&, Fortran::semantics::SemanticsContext&)::$_17&&, std::variant<Fortran::parser::OmpClause::AcqRel, Fortran::parser::OmpClause::Acquire, Fortran::parser::OmpClause::AdjustArgs, Fortran::parser::OmpClause::Affinity, Fortran::parser::OmpClause::Align, Fortran::parser::OmpClause::Aligned, Fortran::parser::OmpClause::Allocate, Fortran::parser::OmpClause::Allocator, Fortran::parser::OmpClause::AppendArgs, Fortran::parser::OmpClause::At, Fortran::parser::OmpClause::AtomicDefaultMemOrder, Fortran::parser::OmpClause::Bind, Fortran::parser::OmpClause::CancellationConstructType, Fortran::parser::OmpClause::Capture, Fortran::parser::OmpClause::Collapse, Fortran::parser::OmpClause::Compare, Fortran::parser::OmpClause::Copyprivate, Fortran::parser::OmpClause::Copyin, Fortran::parser::OmpClause::Default, Fortran::parser::OmpClause::Defaultmap, Fortran::parser::OmpClause::Depend, Fortran::parser::OmpClause::Depobj, Fortran::parser::OmpClause::Destroy, Fortran::parser::OmpClause::Detach, Fortran::parser::OmpClause::Device, Fortran::parser::OmpClause::DeviceType, Fortran::parser::OmpClause::DistSchedule, Fortran::parser::OmpClause::Doacross, Fortran::parser::OmpClause::DynamicAllocators, Fortran::parser::OmpClause::Enter, Fortran::parser::OmpClause::Exclusive, Fortran::parser::OmpClause::Fail, Fortran::parser::OmpClause::Filter, Fortran::parser::OmpClause::Final, Fortran::parser::OmpClause::Firstprivate, Fortran::parser::OmpClause::Flush, Fortran::parser::OmpClause::From, Fortran::parser::OmpClause::Full, Fortran::parser::OmpClause::Grainsize, Fortran::parser::OmpClause::HasDeviceAddr, Fortran::parser::OmpClause::Hint, Fortran::parser::OmpClause::If, Fortran::parser::OmpClause::InReduction, Fortran::parser::OmpClause::Inbranch, Fortran::parser::OmpClause::Inclusive, Fortran::parser::OmpClause::Indirect, Fortran::parser::OmpClause::Init, Fortran::parser::OmpClause::IsDevicePtr, Fortran::parser::OmpClause::Lastprivate, Fortran::parser::OmpClause::Linear, Fortran::parser::OmpClause::Link, Fortran::parser::OmpClause::Map, Fortran::parser::OmpClause::Match, Fortran::parser::OmpClause::MemoryOrder, Fortran::parser::OmpClause::Mergeable, Fortran::parser::OmpClause::Message, Fortran::parser::OmpClause::Nogroup, Fortran::parser::OmpClause::Nowait, Fortran::parser::OmpClause::Nocontext, Fortran::parser::OmpClause::Nontemporal, Fortran::parser::OmpClause::Notinbranch, Fortran::parser::OmpClause::Novariants, Fortran::parser::OmpClause::NumTasks, Fortran::parser::OmpClause::NumTeams, Fortran::parser::OmpClause::NumThreads, Fortran::parser::OmpClause::OmpxAttribute, Fortran::parser::OmpClause::OmpxDynCgroupMem, Fortran::parser::OmpClause::OmpxBare, Fortran::parser::OmpClause::Order, Fortran::parser::OmpClause::Ordered, Fortran::parser::OmpClause::Partial, Fortran::parser::OmpClause::Priority, Fortran::parser::OmpClause::Private, Fortran::parser::OmpClause::ProcBind, Fortran::parser::OmpClause::Read, Fortran::parser::OmpClause::Reduction, Fortran::parser::OmpClause::Relaxed, Fortran::parser::OmpClause::Release, Fortran::parser::OmpClause::ReverseOffload, Fortran::parser::OmpClause::Safelen, Fortran::parser::OmpClause::Schedule, Fortran::parser::OmpClause::SeqCst, Fortran::parser::OmpClause::Severity, Fortran::parser::OmpClause::Shared, Fortran::parser::OmpClause::Simd, Fortran::parser::OmpClause::Simdlen, Fortran::parser::OmpClause::Sizes, Fortran::parser::OmpClause::TaskReduction, Fortran::parser::OmpClause::ThreadLimit, Fortran::parser::OmpClause::Threadprivate, Fortran::parser::OmpClause::Threads, Fortran::parser::OmpClause::To, Fortran::parser::OmpClause::UnifiedAddress, Fortran::parser::OmpClause::UnifiedSharedMemory, Fortran::parser::OmpClause::Uniform, Fortran::parser::OmpClause::Unknown, Fortran::parser::OmpClause::Untied, Fortran::parser::OmpClause::Update, Fortran::parser::OmpClause::Use, Fortran::parser::OmpClause::UseDeviceAddr, Fortran::parser::OmpClause::UseDevicePtr, Fortran::parser::OmpClause::UsesAllocators, Fortran::parser::OmpClause::Weak, Fortran::parser::OmpClause::When, Fortran::parser::OmpClause::Write> const&) Clauses.cpp:0:0 #16 0x000055b8d4efc4d7 Fortran::lower::omp::makeList(Fortran::parser::OmpClauseList const&, Fortran::semantics::SemanticsContext&) #17 0x000055b8d4e69c0a std::__detail::__variant::__gen_vtable_impl<std::__detail::__variant::_Multi_array<std::__detail::__variant::__deduce_visit_result<void> (*)(Fortran::common::visitors<genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPStandaloneConstruct const&)::$_17, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPStandaloneConstruct const&)::$_18, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPStandaloneConstruct const&)::$_19, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPStandaloneConstruct const&)::$_20>&&, std::variant<Fortran::parser::OpenMPSimpleStandaloneConstruct, Fortran::parser::OpenMPFlushConstruct, Fortran::parser::OpenMPCancelConstruct, Fortran::parser::OpenMPCancellationPointConstruct> const&)>, std::integer_sequence<unsigned long, 0ul>>::__visit_invoke(Fortran::common::visitors<genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPStandaloneConstruct const&)::$_17, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPStandaloneConstruct const&)::$_18, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPStandaloneConstruct const&)::$_19, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPStandaloneConstruct const&)::$_20>&&, std::variant<Fortran::parser::OpenMPSimpleStandaloneConstruct, Fortran::parser::OpenMPFlushConstruct, Fortran::parser::OpenMPCancelConstruct, Fortran::parser::OpenMPCancellationPointConstruct> const&) OpenMP.cpp:0:0 #18 0x000055b8d4e657e5 std::__detail::__variant::__gen_vtable_impl<std::__detail::__variant::_Multi_array<std::__detail::__variant::__deduce_visit_result<void> (*)(Fortran::common::visitors<genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPConstruct const&)::$_28, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPConstruct const&)::$_29, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPConstruct const&)::$_30, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPConstruct const&)::$_31, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPConstruct const&)::$_32, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPConstruct const&)::$_33, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPConstruct const&)::$_34, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPConstruct const&)::$_35, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPConstruct const&)::$_36, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPConstruct const&)::$_37>&&, std::variant<Fortran::parser::OpenMPStandaloneConstruct, Fortran::parser::OpenMPSectionsConstruct, Fortran::parser::OpenMPSectionConstruct, Fortran::parser::OpenMPLoopConstruct, Fortran::parser::OpenMPBlockConstruct, Fortran::parser::OpenMPAtomicConstruct, Fortran::parser::OpenMPDeclarativeAllocate, Fortran::parser::OpenMPExecutableAllocate, Fortran::parser::OpenMPAllocatorsConstruct, Fortran::parser::OpenMPCriticalConstruct> const&)>, std::integer_sequence<unsigned long, 0ul>>::__visit_invoke(Fortran::common::visitors<genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPConstruct const&)::$_28, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPConstruct const&)::$_29, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPConstruct const&)::$_30, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPConstruct const&)::$_31, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPConstruct const&)::$_32, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPConstruct const&)::$_33, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPConstruct const&)::$_34, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPConstruct const&)::$_35, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPConstruct const&)::$_36, genOMP(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPConstruct const&)::$_37>&&, std::variant<Fortran::parser::OpenMPStandaloneConstruct, Fortran::parser::OpenMPSectionsConstruct, Fortran::parser::OpenMPSectionConstruct, Fortran::parser::OpenMPLoopConstruct, Fortran::parser::OpenMPBlockConstruct, Fortran::parser::OpenMPAtomicConstruct, Fortran::parser::OpenMPDeclarativeAllocate, Fortran::parser::OpenMPExecutableAllocate, Fortran::parser::OpenMPAllocatorsConstruct, Fortran::parser::OpenMPCriticalConstruct> const&) OpenMP.cpp:0:0 #19 0x000055b8d4e63f07 Fortran::lower::genOpenMPConstruct(Fortran::lower::AbstractConverter&, Fortran::lower::SymMap&, Fortran::semantics::SemanticsContext&, Fortran::lower::pft::Evaluation&, Fortran::parser::OpenMPConstruct const&) #20 0x000055b8d4c11a97 std::__detail::__variant::__gen_vtable_impl<std::__detail::__variant::_Multi_array<std::__detail::__variant::__deduce_visit_result<void> (*)(Fortran::common::visitors<auto Fortran::lower::pft::ReferenceVariantBase<true, Fortran::parser::AllocateStmt, Fortran::parser::AssignmentStmt, Fortran::parser::BackspaceStmt, Fortran::parser::CallStmt, Fortran::parser::CloseStmt, Fortran::parser::ContinueStmt, Fortran::parser::CycleStmt, Fortran::parser::DeallocateStmt, Fortran::parser::EndfileStmt, Fortran::parser::EventPostStmt, Fortran::parser::EventWaitStmt, Fortran::parser::ExitStmt, Fortran::parser::FailImageStmt, Fortran::parser::FlushStmt, Fortran::parser::FormTeamStmt, Fortran::parser::GotoStmt, Fortran::parser::IfStmt, Fortran::parser::InquireStmt, Fortran::parser::LockStmt, Fortran::parser::NotifyWaitStmt, Fortran::parser::NullifyStmt, Fortran::parser::OpenStmt, Fortran::parser::PointerAssignmentStmt, Fortran::parser::PrintStmt, Fortran::parser::ReadStmt, Fortran::parser::ReturnStmt, Fortran::parser::RewindStmt, Fortran::parser::StopStmt, Fortran::parser::SyncAllStmt, Fortran::parser::SyncImagesStmt, Fortran::parser::SyncMemoryStmt, Fortran::parser::SyncTeamStmt, Fortran::parser::UnlockStmt, Fortran::parser::WaitStmt, Fortran::parser::WhereStmt, Fortran::parser::WriteStmt, Fortran::parser::ComputedGotoStmt, Fortran::parser::ForallStmt, Fortran::parser::ArithmeticIfStmt, Fortran::parser::AssignStmt, Fortran::parser::AssignedGotoStmt, Fortran::parser::PauseStmt, Fortran::parser::EntryStmt, Fortran::parser::FormatStmt, Fortran::parser::AssociateStmt, Fortran::parser::EndAssociateStmt, Fortran::parser::BlockStmt, Fortran::parser::EndBlockStmt, Fortran::parser::SelectCaseStmt, Fortran::parser::CaseStmt, Fortran::parser::EndSelectStmt, Fortran::parser::ChangeTeamStmt, Fortran::parser::EndChangeTeamStmt, Fortran::parser::CriticalStmt, Fortran::parser::EndCriticalStmt, Fortran::parser::NonLabelDoStmt, Fortran::parser::EndDoStmt, Fortran::parser::IfThenStmt, Fortran::parser::ElseIfStmt, Fortran::parser::ElseStmt, Fortran::parser::EndIfStmt, Fortran::parser::SelectRankStmt, Fortran::parser::SelectRankCaseStmt, Fortran::parser::SelectTypeStmt, Fortran::parser::TypeGuardStmt, Fortran::parser::WhereConstructStmt, Fortran::parser::MaskedElsewhereStmt, Fortran::parser::ElsewhereStmt, Fortran::parser::EndWhereStmt, Fortran::parser::ForallConstructStmt, Fortran::parser::EndForallStmt, Fortran::parser::EndProgramStmt, Fortran::parser::EndFunctionStmt, Fortran::parser::EndSubroutineStmt, Fortran::parser::EndMpSubprogramStmt, Fortran::parser::AssociateConstruct, Fortran::parser::BlockConstruct, Fortran::parser::CaseConstruct, Fortran::parser::ChangeTeamConstruct, Fortran::parser::CriticalConstruct, Fortran::parser::DoConstruct, Fortran::parser::IfConstruct, Fortran::parser::SelectRankConstruct, Fortran::parser::SelectTypeConstruct, Fortran::parser::WhereConstruct, Fortran::parser::ForallConstruct, Fortran::parser::CompilerDirective, Fortran::parser::OpenACCConstruct, Fortran::parser::OpenACCRoutineConstruct, Fortran::parser::OpenACCDeclarativeConstruct, Fortran::parser::OpenMPConstruct, Fortran::parser::OpenMPDeclarativeConstruct, Fortran::parser::OmpEndLoopDirective, Fortran::parser::CUFKernelDoConstruct>::visit<(anonymous namespace)::FirConverter::genFIR(Fortran::lower::pft::Evaluation&, bool)::'lambda'(auto const&)>(auto&&) const::'lambda'(auto)>&&, std::variant<Fortran::common::Reference<Fortran::parser::AllocateStmt const>, Fortran::common::Reference<Fortran::parser::AssignmentStmt const>, Fortran::common::Reference<Fortran::parser::BackspaceStmt const>, Fortran::common::Reference<Fortran::parser::CallStmt const>, Fortran::common::Reference<Fortran::parser::CloseStmt const>, Fortran::common::Reference<Fortran::parser::ContinueStmt const>, Fortran::common::Reference<Fortran::parser::CycleStmt const>, Fortran::common::Reference<Fortran::parser::DeallocateStmt const>, Fortran::common::Reference<Fortran::parser::EndfileStmt const>, Fortran::common::Reference<Fortran::parser::EventPostStmt const>, Fortran::common::Reference<Fortran::parser::EventWaitStmt const>, Fortran::common::Reference<Fortran::parser::ExitStmt const>, Fortran::common::Reference<Fortran::parser::FailImageStmt const>, Fortran::common::Reference<Fortran::parser::FlushStmt const>, Fortran::common::Reference<Fortran::parser::FormTeamStmt const>, Fortran::common::Reference<Fortran::parser::GotoStmt const>, Fortran::common::Reference<Fortran::parser::IfStmt const>, Fortran::common::Reference<Fortran::parser::InquireStmt const>, Fortran::common::Reference<Fortran::parser::LockStmt const>, Fortran::common::Reference<Fortran::parser::NotifyWaitStmt const>, Fortran::common::Reference<Fortran::parser::NullifyStmt const>, Fortran::common::Reference<Fortran::parser::OpenStmt const>, Fortran::common::Reference<Fortran::parser::PointerAssignmentStmt const>, Fortran::common::Reference<Fortran::parser::PrintStmt const>, Fortran::common::Reference<Fortran::parser::ReadStmt const>, Fortran::common::Reference<Fortran::parser::ReturnStmt const>, Fortran::common::Reference<Fortran::parser::RewindStmt const>, Fortran::common::Reference<Fortran::parser::StopStmt const>, Fortran::common::Reference<Fortran::parser::SyncAllStmt const>, Fortran::common::Reference<Fortran::parser::SyncImagesStmt const>, Fortran::common::Reference<Fortran::parser::SyncMemoryStmt const>, Fortran::common::Reference<Fortran::parser::SyncTeamStmt const>, Fortran::common::Reference<Fortran::parser::UnlockStmt const>, Fortran::common::Reference<Fortran::parser::WaitStmt const>, Fortran::common::Reference<Fortran::parser::WhereStmt const>, Fortran::common::Reference<Fortran::parser::WriteStmt const>, Fortran::common::Reference<Fortran::parser::ComputedGotoStmt const>, Fortran::common::Reference<Fortran::parser::ForallStmt const>, Fortran::common::Reference<Fortran::parser::ArithmeticIfStmt const>, Fortran::common::Reference<Fortran::parser::AssignStmt const>, Fortran::common::Reference<Fortran::parser::AssignedGotoStmt const>, Fortran::common::Reference<Fortran::parser::PauseStmt const>, Fortran::common::Reference<Fortran::parser::EntryStmt const>, Fortran::common::Reference<Fortran::parser::FormatStmt const>, Fortran::common::Reference<Fortran::parser::AssociateStmt const>, Fortran::common::Reference<Fortran::parser::EndAssociateStmt const>, Fortran::common::Reference<Fortran::parser::BlockStmt const>, Fortran::common::Reference<Fortran::parser::EndBlockStmt const>, Fortran::common::Reference<Fortran::parser::SelectCaseStmt const>, Fortran::common::Reference<Fortran::parser::CaseStmt const>, Fortran::common::Reference<Fortran::parser::EndSelectStmt const>, Fortran::common::Reference<Fortran::parser::ChangeTeamStmt const>, Fortran::common::Reference<Fortran::parser::EndChangeTeamStmt const>, Fortran::common::Reference<Fortran::parser::CriticalStmt const>, Fortran::common::Reference<Fortran::parser::EndCriticalStmt const>, Fortran::common::Reference<Fortran::parser::NonLabelDoStmt const>, Fortran::common::Reference<Fortran::parser::EndDoStmt const>, Fortran::common::Reference<Fortran::parser::IfThenStmt const>, Fortran::common::Reference<Fortran::parser::ElseIfStmt const>, Fortran::common::Reference<Fortran::parser::ElseStmt const>, Fortran::common::Reference<Fortran::parser::EndIfStmt const>, Fortran::common::Reference<Fortran::parser::SelectRankStmt const>, Fortran::common::Reference<Fortran::parser::SelectRankCaseStmt const>, Fortran::common::Reference<Fortran::parser::SelectTypeStmt const>, Fortran::common::Reference<Fortran::parser::TypeGuardStmt const>, Fortran::common::Reference<Fortran::parser::WhereConstructStmt const>, Fortran::common::Reference<Fortran::parser::MaskedElsewhereStmt const>, Fortran::common::Reference<Fortran::parser::ElsewhereStmt const>, Fortran::common::Reference<Fortran::parser::EndWhereStmt const>, Fortran::common::Reference<Fortran::parser::ForallConstructStmt const>, Fortran::common::Reference<Fortran::parser::EndForallStmt const>, Fortran::common::Reference<Fortran::parser::EndProgramStmt const>, Fortran::common::Reference<Fortran::parser::EndFunctionStmt const>, Fortran::common::Reference<Fortran::parser::EndSubroutineStmt const>, Fortran::common::Reference<Fortran::parser::EndMpSubprogramStmt const>, Fortran::common::Reference<Fortran::parser::AssociateConstruct const>, Fortran::common::Reference<Fortran::parser::BlockConstruct const>, Fortran::common::Reference<Fortran::parser::CaseConstruct const>, Fortran::common::Reference<Fortran::parser::ChangeTeamConstruct const>, Fortran::common::Reference<Fortran::parser::CriticalConstruct const>, Fortran::common::Reference<Fortran::parser::DoConstruct const>, Fortran::common::Reference<Fortran::parser::IfConstruct const>, Fortran::common::Reference<Fortran::parser::SelectRankConstruct const>, Fortran::common::Reference<Fortran::parser::SelectTypeConstruct const>, Fortran::common::Reference<Fortran::parser::WhereConstruct const>, Fortran::common::Reference<Fortran::parser::ForallConstruct const>, Fortran::common::Reference<Fortran::parser::CompilerDirective const>, Fortran::common::Reference<Fortran::parser::OpenACCConstruct const>, Fortran::common::Reference<Fortran::parser::OpenACCRoutineConstruct const>, Fortran::common::Reference<Fortran::parser::OpenACCDeclarativeConstruct const>, Fortran::common::Reference<Fortran::parser::OpenMPConstruct const>, Fortran::common::Reference<Fortran::parser::OpenMPDeclarativeConstruct const>, Fortran::common::Reference<Fortran::parser::OmpEndLoopDirective const>, Fortran::common::Reference<Fortran::parser::CUFKernelDoConstruct const>> const&)>, std::integer_sequence<unsigned long, 90ul>>::__visit_invoke(Fortran::common::visitors<auto Fortran::lower::pft::ReferenceVariantBase<true, Fortran::parser::AllocateStmt, Fortran::parser::AssignmentStmt, Fortran::parser::BackspaceStmt, Fortran::parser::CallStmt, Fortran::parser::CloseStmt, Fortran::parser::ContinueStmt, Fortran::parser::CycleStmt, Fortran::parser::DeallocateStmt, Fortran::parser::EndfileStmt, Fortran::parser::EventPostStmt, Fortran::parser::EventWaitStmt, Fortran::parser::ExitStmt, Fortran::parser::FailImageStmt, Fortran::parser::FlushStmt, Fortran::parser::FormTeamStmt, Fortran::parser::GotoStmt, Fortran::parser::IfStmt, Fortran::parser::InquireStmt, Fortran::parser::LockStmt, Fortran::parser::NotifyWaitStmt, Fortran::parser::NullifyStmt, Fortran::parser::OpenStmt, Fortran::parser::PointerAssignmentStmt, Fortran::parser::PrintStmt, Fortran::parser::ReadStmt, Fortran::parser::ReturnStmt, Fortran::parser::RewindStmt, Fortran::parser::StopStmt, Fortran::parser::SyncAllStmt, Fortran::parser::SyncImagesStmt, Fortran::parser::SyncMemoryStmt, Fortran::parser::SyncTeamStmt, Fortran::parser::UnlockStmt, Fortran::parser::WaitStmt, Fortran::parser::WhereStmt, Fortran::parser::WriteStmt, Fortran::parser::ComputedGotoStmt, Fortran::parser::ForallStmt, Fortran::parser::ArithmeticIfStmt, Fortran::parser::AssignStmt, Fortran::parser::AssignedGotoStmt, Fortran::parser::PauseStmt, Fortran::parser::EntryStmt, Fortran::parser::FormatStmt, Fortran::parser::AssociateStmt, Fortran::parser::EndAssociateStmt, Fortran::parser::BlockStmt, Fortran::parser::EndBlockStmt, Fortran::parser::SelectCaseStmt, Fortran::parser::CaseStmt, Fortran::parser::EndSelectStmt, Fortran::parser::ChangeTeamStmt, Fortran::parser::EndChangeTeamStmt, Fortran::parser::CriticalStmt, Fortran::parser::EndCriticalStmt, Fortran::parser::NonLabelDoStmt, Fortran::parser::EndDoStmt, Fortran::parser::IfThenStmt, Fortran::parser::ElseIfStmt, Fortran::parser::ElseStmt, Fortran::parser::EndIfStmt, Fortran::parser::SelectRankStmt, Fortran::parser::SelectRankCaseStmt, Fortran::parser::SelectTypeStmt, Fortran::parser::TypeGuardStmt, Fortran::parser::WhereConstructStmt, Fortran::parser::MaskedElsewhereStmt, Fortran::parser::ElsewhereStmt, Fortran::parser::EndWhereStmt, Fortran::parser::ForallConstructStmt, Fortran::parser::EndForallStmt, Fortran::parser::EndProgramStmt, Fortran::parser::EndFunctionStmt, Fortran::parser::EndSubroutineStmt, Fortran::parser::EndMpSubprogramStmt, Fortran::parser::AssociateConstruct, Fortran::parser::BlockConstruct, Fortran::parser::CaseConstruct, Fortran::parser::ChangeTeamConstruct, Fortran::parser::CriticalConstruct, Fortran::parser::DoConstruct, Fortran::parser::IfConstruct, Fortran::parser::SelectRankConstruct, Fortran::parser::SelectTypeConstruct, Fortran::parser::WhereConstruct, Fortran::parser::ForallConstruct, Fortran::parser::CompilerDirective, Fortran::parser::OpenACCConstruct, Fortran::parser::OpenACCRoutineConstruct, Fortran::parser::OpenACCDeclarativeConstruct, Fortran::parser::OpenMPConstruct, Fortran::parser::OpenMPDeclarativeConstruct, Fortran::parser::OmpEndLoopDirective, Fortran::parser::CUFKernelDoConstruct>::visit<(anonymous namespace)::FirConverter::genFIR(Fortran::lower::pft::Evaluation&, bool)::'lambda'(auto const&)>(auto&&) const::'lambda'(auto)>&&, std::variant<Fortran::common::Reference<Fortran::parser::AllocateStmt const>, Fortran::common::Reference<Fortran::parser::AssignmentStmt const>, Fortran::common::Reference<Fortran::parser::BackspaceStmt const>, Fortran::common::Reference<Fortran::parser::CallStmt const>, Fortran::common::Reference<Fortran::parser::CloseStmt const>, Fortran::common::Reference<Fortran::parser::ContinueStmt const>, Fortran::common::Reference<Fortran::parser::CycleStmt const>, Fortran::common::Reference<Fortran::parser::DeallocateStmt const>, Fortran::common::Reference<Fortran::parser::EndfileStmt const>, Fortran::common::Reference<Fortran::parser::EventPostStmt const>, Fortran::common::Reference<Fortran::parser::EventWaitStmt const>, Fortran::common::Reference<Fortran::parser::ExitStmt const>, Fortran::common::Reference<Fortran::parser::FailImageStmt const>, Fortran::common::Reference<Fortran::parser::FlushStmt const>, Fortran::common::Reference<Fortran::parser::FormTeamStmt const>, Fortran::common::Reference<Fortran::parser::GotoStmt const>, Fortran::common::Reference<Fortran::parser::IfStmt const>, Fortran::common::Reference<Fortran::parser::InquireStmt const>, Fortran::common::Reference<Fortran::parser::LockStmt const>, Fortran::common::Reference<Fortran::parser::NotifyWaitStmt const>, Fortran::common::Reference<Fortran::parser::NullifyStmt const>, Fortran::common::Reference<Fortran::parser::OpenStmt const>, Fortran::common::Reference<Fortran::parser::PointerAssignmentStmt const>, Fortran::common::Reference<Fortran::parser::PrintStmt const>, Fortran::common::Reference<Fortran::parser::ReadStmt const>, Fortran::common::Reference<Fortran::parser::ReturnStmt const>, Fortran::common::Reference<Fortran::parser::RewindStmt const>, Fortran::common::Reference<Fortran::parser::StopStmt const>, Fortran::common::Reference<Fortran::parser::SyncAllStmt const>, Fortran::common::Reference<Fortran::parser::SyncImagesStmt const>, Fortran::common::Reference<Fortran::parser::SyncMemoryStmt const>, Fortran::common::Reference<Fortran::parser::SyncTeamStmt const>, Fortran::common::Reference<Fortran::parser::UnlockStmt const>, Fortran::common::Reference<Fortran::parser::WaitStmt const>, Fortran::common::Reference<Fortran::parser::WhereStmt const>, Fortran::common::Reference<Fortran::parser::WriteStmt const>, Fortran::common::Reference<Fortran::parser::ComputedGotoStmt const>, Fortran::common::Reference<Fortran::parser::ForallStmt const>, Fortran::common::Reference<Fortran::parser::ArithmeticIfStmt const>, Fortran::common::Reference<Fortran::parser::AssignStmt const>, Fortran::common::Reference<Fortran::parser::AssignedGotoStmt const>, Fortran::common::Reference<Fortran::parser::PauseStmt const>, Fortran::common::Reference<Fortran::parser::EntryStmt const>, Fortran::common::Reference<Fortran::parser::FormatStmt const>, Fortran::common::Reference<Fortran::parser::AssociateStmt const>, Fortran::common::Reference<Fortran::parser::EndAssociateStmt const>, Fortran::common::Reference<Fortran::parser::BlockStmt const>, Fortran::common::Reference<Fortran::parser::EndBlockStmt const>, Fortran::common::Reference<Fortran::parser::SelectCaseStmt const>, Fortran::common::Reference<Fortran::parser::CaseStmt const>, Fortran::common::Reference<Fortran::parser::EndSelectStmt const>, Fortran::common::Reference<Fortran::parser::ChangeTeamStmt const>, Fortran::common::Reference<Fortran::parser::EndChangeTeamStmt const>, Fortran::common::Reference<Fortran::parser::CriticalStmt const>, Fortran::common::Reference<Fortran::parser::EndCriticalStmt const>, Fortran::common::Reference<Fortran::parser::NonLabelDoStmt const>, Fortran::common::Reference<Fortran::parser::EndDoStmt const>, Fortran::common::Reference<Fortran::parser::IfThenStmt const>, Fortran::common::Reference<Fortran::parser::ElseIfStmt const>, Fortran::common::Reference<Fortran::parser::ElseStmt const>, Fortran::common::Reference<Fortran::parser::EndIfStmt const>, Fortran::common::Reference<Fortran::parser::SelectRankStmt const>, Fortran::common::Reference<Fortran::parser::SelectRankCaseStmt const>, Fortran::common::Reference<Fortran::parser::SelectTypeStmt const>, Fortran::common::Reference<Fortran::parser::TypeGuardStmt const>, Fortran::common::Reference<Fortran::parser::WhereConstructStmt const>, Fortran::common::Reference<Fortran::parser::MaskedElsewhereStmt const>, Fortran::common::Reference<Fortran::parser::ElsewhereStmt const>, Fortran::common::Reference<Fortran::parser::EndWhereStmt const>, Fortran::common::Reference<Fortran::parser::ForallConstructStmt const>, Fortran::common::Reference<Fortran::parser::EndForallStmt const>, Fortran::common::Reference<Fortran::parser::EndProgramStmt const>, Fortran::common::Reference<Fortran::parser::EndFunctionStmt const>, Fortran::common::Reference<Fortran::parser::EndSubroutineStmt const>, Fortran::common::Reference<Fortran::parser::EndMpSubprogramStmt const>, Fortran::common::Reference<Fortran::parser::AssociateConstruct const>, Fortran::common::Reference<Fortran::parser::BlockConstruct const>, Fortran::common::Reference<Fortran::parser::CaseConstruct const>, Fortran::common::Reference<Fortran::parser::ChangeTeamConstruct const>, Fortran::common::Reference<Fortran::parser::CriticalConstruct const>, Fortran::common::Reference<Fortran::parser::DoConstruct const>, Fortran::common::Reference<Fortran::parser::IfConstruct const>, Fortran::common::Reference<Fortran::parser::SelectRankConstruct const>, Fortran::common::Reference<Fortran::parser::SelectTypeConstruct const>, Fortran::common::Reference<Fortran::parser::WhereConstruct const>, Fortran::common::Reference<Fortran::parser::ForallConstruct const>, Fortran::common::Reference<Fortran::parser::CompilerDirective const>, Fortran::common::Reference<Fortran::parser::OpenACCConstruct const>, Fortran::common::Reference<Fortran::parser::OpenACCRoutineConstruct const>, Fortran::common::Reference<Fortran::parser::OpenACCDeclarativeConstruct const>, Fortran::common::Reference<Fortran::parser::OpenMPConstruct const>, Fortran::common::Reference<Fortran::parser::OpenMPDeclarativeConstruct const>, Fortran::common::Reference<Fortran::parser::OmpEndLoopDirective const>, Fortran::common::Reference<Fortran::parser::CUFKernelDoConstruct const>> const&) Bridge.cpp:0:0 #21 0x000055b8d4c0a76c (anonymous namespace)::FirConverter::genFIR(Fortran::lower::pft::Evaluation&, bool) Bridge.cpp:0:0 #22 0x000055b8d4c3edc3 (anonymous namespace)::FirConverter::lowerFunc(Fortran::lower::pft::FunctionLikeUnit&) Bridge.cpp:0:0 #23 0x000055b8d4bec63b Fortran::lower::LoweringBridge::lower(Fortran::parser::Program const&, Fortran::semantics::SemanticsContext const&) #24 0x000055b8d4b5135c Fortran::frontend::CodeGenAction::beginSourceFileAction() #25 0x000055b8d4742564 Fortran::frontend::FrontendAction::beginSourceFile(Fortran::frontend::CompilerInstance&, Fortran::frontend::FrontendInputFile const&) #26 0x000055b8d473731f Fortran::frontend::CompilerInstance::executeAction(Fortran::frontend::FrontendAction&) #27 0x000055b8d47457b4 Fortran::frontend::executeCompilerInvocation(Fortran::frontend::CompilerInstance*) #28 0x000055b8d43e32ed fc1_main(llvm::ArrayRef<char const*>, char const*) #29 0x000055b8d43e22d6 main #30 0x00007f0d7d473d90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16 #31 0x00007f0d7d473e40 call_init ./csu/../csu/libc-start.c:128:20 #32 0x00007f0d7d473e40 __libc_start_main ./csu/../csu/libc-start.c:379:5 #33 0x000055b8d43e1835 _start flang-new: error: unable to execute command: Aborted flang-new: error: flang frontend command failed due to signal (use -v to see invocation) flang-new version 19.0.0git (https://github.com/llvm/llvm-project.git 84e20cb0cbc64bb2d8299b30da3ce8e6421c203e) Target: x86_64-unknown-linux-gnu Thread model: posix ```