Skip to content

[Flang] fatal internal error: nullptr dereference at /root/llvm-project/flang/lib/Semantics/data-to-inits.cpp(416) #85615

@k-arrows

Description

@k-arrows

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

Reproducer

$ cat test.f90
type t
    integer,pointer :: i /1/
end type
end

Stack dump:

 #0 0x00000000036e4a78 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-llvmflang-trunk-20240318/bin/flang-new+0x36e4a78)
 #1 0x00000000036e23ec SignalHandler(int) Signals.cpp:0:0
 #2 0x00007fdd02e42520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #3 0x00007fdd02e969fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
 #4 0x00007fdd02e42476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
 #5 0x00007fdd02e287f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
 #6 0x0000000004ba8c09 (/opt/compiler-explorer/clang-llvmflang-trunk-20240318/bin/flang-new+0x4ba8c09)
 #7 0x000000000422a1d0 Fortran::semantics::DataInitializationCompiler<Fortran::common::Indirection<Fortran::parser::DataStmtValue, false>>::InitDesignator(Fortran::evaluate::Expr<Fortran::evaluate::SomeType> const&) (/opt/compiler-explorer/clang-llvmflang-trunk-20240318/bin/flang-new+0x422a1d0)
 #8 0x000000000422a297 Fortran::semantics::DataInitializationCompiler<Fortran::common::Indirection<Fortran::parser::DataStmtValue, false>>::InitDesignator(Fortran::evaluate::Expr<Fortran::evaluate::SomeType> const&) (/opt/compiler-explorer/clang-llvmflang-trunk-20240318/bin/flang-new+0x422a297)
 #9 0x000000000422a952 Fortran::semantics::DataInitializationCompiler<Fortran::common::Indirection<Fortran::parser::DataStmtValue, false>>::Scan(Fortran::semantics::Symbol const&) (/opt/compiler-explorer/clang-llvmflang-trunk-20240318/bin/flang-new+0x422a952)
#10 0x000000000422aa5b Fortran::semantics::AccumulateDataInitializations(std::map<Fortran::semantics::Symbol const*, Fortran::semantics::SymbolDataInitialization, std::less<Fortran::semantics::Symbol const*>, std::allocator<std::pair<Fortran::semantics::Symbol const* const, Fortran::semantics::SymbolDataInitialization>>>&, Fortran::evaluate::ExpressionAnalyzer&, Fortran::semantics::Symbol const&, std::__cxx11::list<Fortran::common::Indirection<Fortran::parser::DataStmtValue, false>, std::allocator<Fortran::common::Indirection<Fortran::parser::DataStmtValue, false>>> const&) (/opt/compiler-explorer/clang-llvmflang-trunk-20240318/bin/flang-new+0x422aa5b)
#11 0x000000000403f9ea void Fortran::parser::ForEachInTuple<1ul, void Fortran::parser::Walk<Fortran::semantics::SemanticsVisitor<Fortran::semantics::AllocateChecker, Fortran::semantics::ArithmeticIfStmtChecker, Fortran::semantics::AssignmentChecker, Fortran::semantics::CaseChecker, Fortran::semantics::CoarrayChecker, Fortran::semantics::DataChecker, Fortran::semantics::DeallocateChecker, Fortran::semantics::DoForallChecker, Fortran::semantics::IfStmtChecker, Fortran::semantics::IoChecker, Fortran::semantics::MiscChecker, Fortran::semantics::NamelistChecker, Fortran::semantics::NullifyChecker, Fortran::semantics::PurityChecker, Fortran::semantics::ReturnStmtChecker, Fortran::semantics::SelectRankConstructChecker, Fortran::semantics::SelectTypeChecker, Fortran::semantics::StopChecker>, Fortran::parser::DeclarationTypeSpec, std::__cxx11::list<Fortran::parser::ComponentAttrSpec, std::allocator<Fortran::parser::ComponentAttrSpec>>, std::__cxx11::list<Fortran::parser::ComponentOrFill, std::allocator<Fortran::parser::ComponentOrFill>>>(std::tuple<Fortran::parser::DeclarationTypeSpec, std::__cxx11::list<Fortran::parser::ComponentAttrSpec, std::allocator<Fortran::parser::ComponentAttrSpec>>, std::__cxx11::list<Fortran::parser::ComponentOrFill, std::allocator<Fortran::parser::ComponentOrFill>>> const&, Fortran::semantics::SemanticsVisitor<Fortran::semantics::AllocateChecker, Fortran::semantics::ArithmeticIfStmtChecker, Fortran::semantics::AssignmentChecker, Fortran::semantics::CaseChecker, Fortran::semantics::CoarrayChecker, Fortran::semantics::DataChecker, Fortran::semantics::DeallocateChecker, Fortran::semantics::DoForallChecker, Fortran::semantics::IfStmtChecker, Fortran::semantics::IoChecker, Fortran::semantics::MiscChecker, Fortran::semantics::NamelistChecker, Fortran::semantics::NullifyChecker, Fortran::semantics::PurityChecker, Fortran::semantics::ReturnStmtChecker, Fortran::semantics::SelectRankConstructChecker, Fortran::semantics::SelectTypeChecker, Fortran::semantics::StopChecker>&)::'lambda'(Fortran::semantics::SemanticsVisitor<Fortran::semantics::AllocateChecker, Fortran::semantics::ArithmeticIfStmtChecker, Fortran::semantics::AssignmentChecker, Fortran::semantics::CaseChecker, Fortran::semantics::CoarrayChecker, Fortran::semantics::DataChecker, Fortran::semantics::DeallocateChecker, Fortran::semantics::DoForallChecker, Fortran::semantics::IfStmtChecker, Fortran::semantics::IoChecker, Fortran::semantics::MiscChecker, Fortran::semantics::NamelistChecker, Fortran::semantics::NullifyChecker, Fortran::semantics::PurityChecker, Fortran::semantics::ReturnStmtChecker, Fortran::semantics::SelectRankConstructChecker, Fortran::semantics::SelectTypeChecker, Fortran::semantics::StopChecker> const&), std::tuple<Fortran::parser::DeclarationTypeSpec, std::__cxx11::list<Fortran::parser::ComponentAttrSpec, std::allocator<Fortran::parser::ComponentAttrSpec>>, std::__cxx11::list<Fortran::parser::ComponentOrFill, std::allocator<Fortran::parser::ComponentOrFill>>>>(std::tuple<Fortran::parser::DeclarationTypeSpec, std::__cxx11::list<Fortran::parser::ComponentAttrSpec, std::allocator<Fortran::parser::ComponentAttrSpec>>, std::__cxx11::list<Fortran::parser::ComponentOrFill, std::allocator<Fortran::parser::ComponentOrFill>>> const&, void Fortran::parser::Walk<Fortran::semantics::SemanticsVisitor<Fortran::semantics::AllocateChecker, Fortran::semantics::ArithmeticIfStmtChecker, Fortran::semantics::AssignmentChecker, Fortran::semantics::CaseChecker, Fortran::semantics::CoarrayChecker, Fortran::semantics::DataChecker, Fortran::semantics::DeallocateChecker, Fortran::semantics::DoForallChecker, Fortran::semantics::IfStmtChecker, Fortran::semantics::IoChecker, Fortran::semantics::MiscChecker, Fortran::semantics::NamelistChecker, Fortran::semantics::NullifyChecker, Fortran::semantics::PurityChecker, Fortran::semantics::ReturnStmtChecker, Fortran::semantics::SelectRankConstructChecker, Fortran::semantics::SelectTypeChecker, Fortran::semantics::StopChecker>, Fortran::parser::DeclarationTypeSpec, std::__cxx11::list<Fortran::parser::ComponentAttrSpec, std::allocator<Fortran::parser::ComponentAttrSpec>>, std::__cxx11::list<Fortran::parser::ComponentOrFill, std::allocator<Fortran::parser::ComponentOrFill>>>(std::tuple<Fortran::parser::DeclarationTypeSpec, std::__cxx11::list<Fortran::parser::ComponentAttrSpec, std::allocator<Fortran::parser::ComponentAttrSpec>>, std::__cxx11::list<Fortran::parser::ComponentOrFill, std::allocator<Fortran::parser::ComponentOrFill>>> const&, Fortran::semantics::SemanticsVisitor<Fortran::semantics::AllocateChecker, Fortran::semantics::ArithmeticIfStmtChecker, Fortran::semantics::AssignmentChecker, Fortran::semantics::CaseChecker, Fortran::semantics::CoarrayChecker, Fortran::semantics::DataChecker, Fortran::semantics::DeallocateChecker, Fortran::semantics::DoForallChecker, Fortran::semantics::IfStmtChecker, Fortran::semantics::IoChecker, Fortran::semantics::MiscChecker, Fortran::semantics::NamelistChecker, Fortran::semantics::NullifyChecker, Fortran::semantics::PurityChecker, Fortran::semantics::ReturnStmtChecker, Fortran::semantics::SelectRankConstructChecker, Fortran::semantics::SelectTypeChecker, Fortran::semantics::StopChecker>&)::'lambda'(Fortran::semantics::SemanticsVisitor<Fortran::semantics::AllocateChecker, Fortran::semantics::ArithmeticIfStmtChecker, Fortran::semantics::AssignmentChecker, Fortran::semantics::CaseChecker, Fortran::semantics::CoarrayChecker, Fortran::semantics::DataChecker, Fortran::semantics::DeallocateChecker, Fortran::semantics::DoForallChecker, Fortran::semantics::IfStmtChecker, Fortran::semantics::IoChecker, Fortran::semantics::MiscChecker, Fortran::semantics::NamelistChecker, Fortran::semantics::NullifyChecker, Fortran::semantics::PurityChecker, Fortran::semantics::ReturnStmtChecker, Fortran::semantics::SelectRankConstructChecker, Fortran::semantics::SelectTypeChecker, Fortran::semantics::StopChecker> const&)) (/opt/compiler-explorer/clang-llvmflang-trunk-20240318/bin/flang-new+0x403f9ea)
#12 0x000000000404307b void Fortran::parser::ForEachInTuple<3ul, void Fortran::parser::Walk<Fortran::semantics::SemanticsVisitor<Fortran::semantics::AllocateChecker, Fortran::semantics::ArithmeticIfStmtChecker, Fortran::semantics::AssignmentChecker, Fortran::semantics::CaseChecker, Fortran::semantics::CoarrayChecker, Fortran::semantics::DataChecker, Fortran::semantics::DeallocateChecker, Fortran::semantics::DoForallChecker, Fortran::semantics::IfStmtChecker, Fortran::semantics::IoChecker, Fortran::semantics::MiscChecker, Fortran::semantics::NamelistChecker, Fortran::semantics::NullifyChecker, Fortran::semantics::PurityChecker, Fortran::semantics::ReturnStmtChecker, Fortran::semantics::SelectRankConstructChecker, Fortran::semantics::SelectTypeChecker, Fortran::semantics::StopChecker>, Fortran::parser::Statement<Fortran::parser::DerivedTypeStmt>, std::__cxx11::list<Fortran::parser::Statement<Fortran::parser::TypeParamDefStmt>, std::allocator<Fortran::parser::Statement<Fortran::parser::TypeParamDefStmt>>>, std::__cxx11::list<Fortran::parser::Statement<Fortran::parser::PrivateOrSequence>, std::allocator<Fortran::parser::Statement<Fortran::parser::PrivateOrSequence>>>, std::__cxx11::list<Fortran::parser::Statement<Fortran::parser::ComponentDefStmt>, std::allocator<Fortran::parser::Statement<Fortran::parser::ComponentDefStmt>>>, std::optional<Fortran::parser::TypeBoundProcedurePart>, Fortran::parser::Statement<Fortran::parser::EndTypeStmt>>(std::tuple<Fortran::parser::Statement<Fortran::parser::DerivedTypeStmt>, std::__cxx11::list<Fortran::parser::Statement<Fortran::parser::TypeParamDefStmt>, std::allocator<Fortran::parser::Statement<Fortran::parser::TypeParamDefStmt>>>, std::__cxx11::list<Fortran::parser::Statement<Fortran::parser::PrivateOrSequence>, std::allocator<Fortran::parser::Statement<Fortran::parser::PrivateOrSequence>>>, std::__cxx11::list<Fortran::parser::Statement<Fortran::parser::ComponentDefStmt>, std::allocator<Fortran::parser::Statement<Fortran::parser::ComponentDefStmt>>>, std::optional<Fortran::parser::TypeBoundProcedurePart>, Fortran::parser::Statement<Fortran::parser::EndTypeStmt>> const&, Fortran::semantics::SemanticsVisitor<Fortran::semantics::AllocateChecker, Fortran::semantics::ArithmeticIfStmtChecker, Fortran::semantics::AssignmentChecker, Fortran::semantics::CaseChecker, Fortran::semantics::CoarrayChecker, Fortran::semantics::DataChecker, Fortran::semantics::DeallocateChecker, Fortran::semantics::DoForallChecker, Fortran::semantics::IfStmtChecker, Fortran::semantics::IoChecker, Fortran::semantics::MiscChecker, Fortran::semantics::NamelistChecker, Fortran::semantics::NullifyChecker, Fortran::semantics::PurityChecker, Fortran::semantics::ReturnStmtChecker, Fortran::semantics::SelectRankConstructChecker, Fortran::semantics::SelectTypeChecker, Fortran::semantics::StopChecker>&)::'lambda'(Fortran::semantics::SemanticsVisitor<Fortran::semantics::AllocateChecker, Fortran::semantics::ArithmeticIfStmtChecker, Fortran::semantics::AssignmentChecker, Fortran::semantics::CaseChecker, Fortran::semantics::CoarrayChecker, Fortran::semantics::DataChecker, Fortran::semantics::DeallocateChecker, Fortran::semantics::DoForallChecker, Fortran::semantics::IfStmtChecker, Fortran::semantics::IoChecker, Fortran::semantics::MiscChecker, Fortran::semantics::NamelistChecker, Fortran::semantics::NullifyChecker, Fortran::semantics::PurityChecker, Fortran::semantics::ReturnStmtChecker, Fortran::semantics::SelectRankConstructChecker, Fortran::semantics::SelectTypeChecker, Fortran::semantics::StopChecker> const&), std::tuple<Fortran::parser::Statement<Fortran::parser::DerivedTypeStmt>, std::__cxx11::list<Fortran::parser::Statement<Fortran::parser::TypeParamDefStmt>, std::allocator<Fortran::parser::Statement<Fortran::parser::TypeParamDefStmt>>>, std::__cxx11::list<Fortran::parser::Statement<Fortran::parser::PrivateOrSequence>, std::allocator<Fortran::parser::Statement<Fortran::parser::PrivateOrSequence>>>, std::__cxx11::list<Fortran::parser::Statement<Fortran::parser::ComponentDefStmt>, std::allocator<Fortran::parser::Statement<Fortran::parser::ComponentDefStmt>>>, std::optional<Fortran::parser::TypeBoundProcedurePart>, Fortran::parser::Statement<Fortran::parser::EndTypeStmt>>>(std::tuple<Fortran::parser::Statement<Fortran::parser::DerivedTypeStmt>, std::__cxx11::list<Fortran::parser::Statement<Fortran::parser::TypeParamDefStmt>, std::allocator<Fortran::parser::Statement<Fortran::parser::TypeParamDefStmt>>>, std::__cxx11::list<Fortran::parser::Statement<Fortran::parser::PrivateOrSequence>, std::allocator<Fortran::parser::Statement<Fortran::parser::PrivateOrSequence>>>, std::__cxx11::list<Fortran::parser::Statement<Fortran::parser::ComponentDefStmt>, std::allocator<Fortran::parser::Statement<Fortran::parser::ComponentDefStmt>>>, std::optional<Fortran::parser::TypeBoundProcedurePart>, Fortran::parser::Statement<Fortran::parser::EndTypeStmt>> const&, void Fortran::parser::Walk<Fortran::semantics::SemanticsVisitor<Fortran::semantics::AllocateChecker, Fortran::semantics::ArithmeticIfStmtChecker, Fortran::semantics::AssignmentChecker, Fortran::semantics::CaseChecker, Fortran::semantics::CoarrayChecker, Fortran::semantics::DataChecker, Fortran::semantics::DeallocateChecker, Fortran::semantics::DoForallChecker, Fortran::semantics::IfStmtChecker, Fortran::semantics::IoChecker, Fortran::semantics::MiscChecker, Fortran::semantics::NamelistChecker, Fortran::semantics::NullifyChecker, Fortran::semantics::PurityChecker, Fortran::semantics::ReturnStmtChecker, Fortran::semantics::SelectRankConstructChecker, Fortran::semantics::SelectTypeChecker, Fortran::semantics::StopChecker>, Fortran::parser::Statement<Fortran::parser::DerivedTypeStmt>, std::__cxx11::list<Fortran::parser::Statement<Fortran::parser::TypeParamDefStmt>, std::allocator<Fortran::parser::Statement<Fortran::parser::TypeParamDefStmt>>>, std::__cxx11::list<Fortran::parser::Statement<Fortran::parser::PrivateOrSequence>, std::allocator<Fortran::parser::Statement<Fortran::parser::PrivateOrSequence>>>, std::__cxx11::list<Fortran::parser::Statement<Fortran::parser::ComponentDefStmt>, std::allocator<Fortran::parser::Statement<Fortran::parser::ComponentDefStmt>>>, std::optional<Fortran::parser::TypeBoundProcedurePart>, Fortran::parser::Statement<Fortran::parser::EndTypeStmt>>(std::tuple<Fortran::parser::Statement<Fortran::parser::DerivedTypeStmt>, std::__cxx11::list<Fortran::parser::Statement<Fortran::parser::TypeParamDefStmt>, std::allocator<Fortran::parser::Statement<Fortran::parser::TypeParamDefStmt>>>, std::__cxx11::list<Fortran::parser::Statement<Fortran::parser::PrivateOrSequence>, std::allocator<Fortran::parser::Statement<Fortran::parser::PrivateOrSequence>>>, std::__cxx11::list<Fortran::parser::Statement<Fortran::parser::ComponentDefStmt>, std::allocator<Fortran::parser::Statement<Fortran::parser::ComponentDefStmt>>>, std::optional<Fortran::parser::TypeBoundProcedurePart>, Fortran::parser::Statement<Fortran::parser::EndTypeStmt>> const&, Fortran::semantics::SemanticsVisitor<Fortran::semantics::AllocateChecker, Fortran::semantics::ArithmeticIfStmtChecker, Fortran::semantics::AssignmentChecker, Fortran::semantics::CaseChecker, Fortran::semantics::CoarrayChecker, Fortran::semantics::DataChecker, Fortran::semantics::DeallocateChecker, Fortran::semantics::DoForallChecker, Fortran::semantics::IfStmtChecker, Fortran::semantics::IoChecker, Fortran::semantics::MiscChecker, Fortran::semantics::NamelistChecker, Fortran::semantics::NullifyChecker, Fortran::semantics::PurityChecker, Fortran::semantics::ReturnStmtChecker, Fortran::semantics::SelectRankConstructChecker, Fortran::semantics::SelectTypeChecker, Fortran::semantics::StopChecker>&)::'lambda'(Fortran::semantics::SemanticsVisitor<Fortran::semantics::AllocateChecker, Fortran::semantics::ArithmeticIfStmtChecker, Fortran::semantics::AssignmentChecker, Fortran::semantics::CaseChecker, Fortran::semantics::CoarrayChecker, Fortran::semantics::DataChecker, Fortran::semantics::DeallocateChecker, Fortran::semantics::DoForallChecker, Fortran::semantics::IfStmtChecker, Fortran::semantics::IoChecker, Fortran::semantics::MiscChecker, Fortran::semantics::NamelistChecker, Fortran::semantics::NullifyChecker, Fortran::semantics::PurityChecker, Fortran::semantics::ReturnStmtChecker, Fortran::semantics::SelectRankConstructChecker, Fortran::semantics::SelectTypeChecker, Fortran::semantics::StopChecker> const&)) (/opt/compiler-explorer/clang-llvmflang-trunk-20240318/bin/flang-new+0x404307b)
#13 0x000000000405e41d void Fortran::parser::Walk<Fortran::parser::DeclarationConstruct, Fortran::semantics::SemanticsVisitor<Fortran::semantics::AllocateChecker, Fortran::semantics::ArithmeticIfStmtChecker, Fortran::semantics::AssignmentChecker, Fortran::semantics::CaseChecker, Fortran::semantics::CoarrayChecker, Fortran::semantics::DataChecker, Fortran::semantics::DeallocateChecker, Fortran::semantics::DoForallChecker, Fortran::semantics::IfStmtChecker, Fortran::semantics::IoChecker, Fortran::semantics::MiscChecker, Fortran::semantics::NamelistChecker, Fortran::semantics::NullifyChecker, Fortran::semantics::PurityChecker, Fortran::semantics::ReturnStmtChecker, Fortran::semantics::SelectRankConstructChecker, Fortran::semantics::SelectTypeChecker, Fortran::semantics::StopChecker>>(std::__cxx11::list<Fortran::parser::DeclarationConstruct, std::allocator<Fortran::parser::DeclarationConstruct>> const&, Fortran::semantics::SemanticsVisitor<Fortran::semantics::AllocateChecker, Fortran::semantics::ArithmeticIfStmtChecker, Fortran::semantics::AssignmentChecker, Fortran::semantics::CaseChecker, Fortran::semantics::CoarrayChecker, Fortran::semantics::DataChecker, Fortran::semantics::DeallocateChecker, Fortran::semantics::DoForallChecker, Fortran::semantics::IfStmtChecker, Fortran::semantics::IoChecker, Fortran::semantics::MiscChecker, Fortran::semantics::NamelistChecker, Fortran::semantics::NullifyChecker, Fortran::semantics::PurityChecker, Fortran::semantics::ReturnStmtChecker, Fortran::semantics::SelectRankConstructChecker, Fortran::semantics::SelectTypeChecker, Fortran::semantics::StopChecker>&) (/opt/compiler-explorer/clang-llvmflang-trunk-20240318/bin/flang-new+0x405e41d)
#14 0x000000000405e930 void Fortran::parser::ForEachInTuple<0ul, void Fortran::parser::Walk<Fortran::semantics::SemanticsVisitor<Fortran::semantics::AllocateChecker, Fortran::semantics::ArithmeticIfStmtChecker, Fortran::semantics::AssignmentChecker, Fortran::semantics::CaseChecker, Fortran::semantics::CoarrayChecker, Fortran::semantics::DataChecker, Fortran::semantics::DeallocateChecker, Fortran::semantics::DoForallChecker, Fortran::semantics::IfStmtChecker, Fortran::semantics::IoChecker, Fortran::semantics::MiscChecker, Fortran::semantics::NamelistChecker, Fortran::semantics::NullifyChecker, Fortran::semantics::PurityChecker, Fortran::semantics::ReturnStmtChecker, Fortran::semantics::SelectRankConstructChecker, Fortran::semantics::SelectTypeChecker, Fortran::semantics::StopChecker>, std::__cxx11::list<Fortran::parser::OpenACCDeclarativeConstruct, std::allocator<Fortran::parser::OpenACCDeclarativeConstruct>>, std::__cxx11::list<Fortran::parser::OpenMPDeclarativeConstruct, std::allocator<Fortran::parser::OpenMPDeclarativeConstruct>>, std::__cxx11::list<Fortran::common::Indirection<Fortran::parser::CompilerDirective, false>, std::allocator<Fortran::common::Indirection<Fortran::parser::CompilerDirective, false>>>, std::__cxx11::list<Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::UseStmt, false>>, std::allocator<Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::UseStmt, false>>>>, std::__cxx11::list<Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::ImportStmt, false>>, std::allocator<Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::ImportStmt, false>>>>, Fortran::parser::ImplicitPart, std::__cxx11::list<Fortran::parser::DeclarationConstruct, std::allocator<Fortran::parser::DeclarationConstruct>>>(std::tuple<std::__cxx11::list<Fortran::parser::OpenACCDeclarativeConstruct, std::allocator<Fortran::parser::OpenACCDeclarativeConstruct>>, std::__cxx11::list<Fortran::parser::OpenMPDeclarativeConstruct, std::allocator<Fortran::parser::OpenMPDeclarativeConstruct>>, std::__cxx11::list<Fortran::common::Indirection<Fortran::parser::CompilerDirective, false>, std::allocator<Fortran::common::Indirection<Fortran::parser::CompilerDirective, false>>>, std::__cxx11::list<Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::UseStmt, false>>, std::allocator<Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::UseStmt, false>>>>, std::__cxx11::list<Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::ImportStmt, false>>, std::allocator<Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::ImportStmt, false>>>>, Fortran::parser::ImplicitPart, std::__cxx11::list<Fortran::parser::DeclarationConstruct, std::allocator<Fortran::parser::DeclarationConstruct>>> const&, Fortran::semantics::SemanticsVisitor<Fortran::semantics::AllocateChecker, Fortran::semantics::ArithmeticIfStmtChecker, Fortran::semantics::AssignmentChecker, Fortran::semantics::CaseChecker, Fortran::semantics::CoarrayChecker, Fortran::semantics::DataChecker, Fortran::semantics::DeallocateChecker, Fortran::semantics::DoForallChecker, Fortran::semantics::IfStmtChecker, Fortran::semantics::IoChecker, Fortran::semantics::MiscChecker, Fortran::semantics::NamelistChecker, Fortran::semantics::NullifyChecker, Fortran::semantics::PurityChecker, Fortran::semantics::ReturnStmtChecker, Fortran::semantics::SelectRankConstructChecker, Fortran::semantics::SelectTypeChecker, Fortran::semantics::StopChecker>&)::'lambda'(Fortran::semantics::SemanticsVisitor<Fortran::semantics::AllocateChecker, Fortran::semantics::ArithmeticIfStmtChecker, Fortran::semantics::AssignmentChecker, Fortran::semantics::CaseChecker, Fortran::semantics::CoarrayChecker, Fortran::semantics::DataChecker, Fortran::semantics::DeallocateChecker, Fortran::semantics::DoForallChecker, Fortran::semantics::IfStmtChecker, Fortran::semantics::IoChecker, Fortran::semantics::MiscChecker, Fortran::semantics::NamelistChecker, Fortran::semantics::NullifyChecker, Fortran::semantics::PurityChecker, Fortran::semantics::ReturnStmtChecker, Fortran::semantics::SelectRankConstructChecker, Fortran::semantics::SelectTypeChecker, Fortran::semantics::StopChecker> const&), std::tuple<std::__cxx11::list<Fortran::parser::OpenACCDeclarativeConstruct, std::allocator<Fortran::parser::OpenACCDeclarativeConstruct>>, std::__cxx11::list<Fortran::parser::OpenMPDeclarativeConstruct, std::allocator<Fortran::parser::OpenMPDeclarativeConstruct>>, std::__cxx11::list<Fortran::common::Indirection<Fortran::parser::CompilerDirective, false>, std::allocator<Fortran::common::Indirection<Fortran::parser::CompilerDirective, false>>>, std::__cxx11::list<Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::UseStmt, false>>, std::allocator<Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::UseStmt, false>>>>, std::__cxx11::list<Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::ImportStmt, false>>, std::allocator<Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::ImportStmt, false>>>>, Fortran::parser::ImplicitPart, std::__cxx11::list<Fortran::parser::DeclarationConstruct, std::allocator<Fortran::parser::DeclarationConstruct>>>>(std::tuple<std::__cxx11::list<Fortran::parser::OpenACCDeclarativeConstruct, std::allocator<Fortran::parser::OpenACCDeclarativeConstruct>>, std::__cxx11::list<Fortran::parser::OpenMPDeclarativeConstruct, std::allocator<Fortran::parser::OpenMPDeclarativeConstruct>>, std::__cxx11::list<Fortran::common::Indirection<Fortran::parser::CompilerDirective, false>, std::allocator<Fortran::common::Indirection<Fortran::parser::CompilerDirective, false>>>, std::__cxx11::list<Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::UseStmt, false>>, std::allocator<Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::UseStmt, false>>>>, std::__cxx11::list<Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::ImportStmt, false>>, std::allocator<Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::ImportStmt, false>>>>, Fortran::parser::ImplicitPart, std::__cxx11::list<Fortran::parser::DeclarationConstruct, std::allocator<Fortran::parser::DeclarationConstruct>>> const&, void Fortran::parser::Walk<Fortran::semantics::SemanticsVisitor<Fortran::semantics::AllocateChecker, Fortran::semantics::ArithmeticIfStmtChecker, Fortran::semantics::AssignmentChecker, Fortran::semantics::CaseChecker, Fortran::semantics::CoarrayChecker, Fortran::semantics::DataChecker, Fortran::semantics::DeallocateChecker, Fortran::semantics::DoForallChecker, Fortran::semantics::IfStmtChecker, Fortran::semantics::IoChecker, Fortran::semantics::MiscChecker, Fortran::semantics::NamelistChecker, Fortran::semantics::NullifyChecker, Fortran::semantics::PurityChecker, Fortran::semantics::ReturnStmtChecker, Fortran::semantics::SelectRankConstructChecker, Fortran::semantics::SelectTypeChecker, Fortran::semantics::StopChecker>, std::__cxx11::list<Fortran::parser::OpenACCDeclarativeConstruct, std::allocator<Fortran::parser::OpenACCDeclarativeConstruct>>, std::__cxx11::list<Fortran::parser::OpenMPDeclarativeConstruct, std::allocator<Fortran::parser::OpenMPDeclarativeConstruct>>, std::__cxx11::list<Fortran::common::Indirection<Fortran::parser::CompilerDirective, false>, std::allocator<Fortran::common::Indirection<Fortran::parser::CompilerDirective, false>>>, std::__cxx11::list<Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::UseStmt, false>>, std::allocator<Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::UseStmt, false>>>>, std::__cxx11::list<Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::ImportStmt, false>>, std::allocator<Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::ImportStmt, false>>>>, Fortran::parser::ImplicitPart, std::__cxx11::list<Fortran::parser::DeclarationConstruct, std::allocator<Fortran::parser::DeclarationConstruct>>>(std::tuple<std::__cxx11::list<Fortran::parser::OpenACCDeclarativeConstruct, std::allocator<Fortran::parser::OpenACCDeclarativeConstruct>>, std::__cxx11::list<Fortran::parser::OpenMPDeclarativeConstruct, std::allocator<Fortran::parser::OpenMPDeclarativeConstruct>>, std::__cxx11::list<Fortran::common::Indirection<Fortran::parser::CompilerDirective, false>, std::allocator<Fortran::common::Indirection<Fortran::parser::CompilerDirective, false>>>, std::__cxx11::list<Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::UseStmt, false>>, std::allocator<Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::UseStmt, false>>>>, std::__cxx11::list<Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::ImportStmt, false>>, std::allocator<Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::ImportStmt, false>>>>, Fortran::parser::ImplicitPart, std::__cxx11::list<Fortran::parser::DeclarationConstruct, std::allocator<Fortran::parser::DeclarationConstruct>>> const&, Fortran::semantics::SemanticsVisitor<Fortran::semantics::AllocateChecker, Fortran::semantics::ArithmeticIfStmtChecker, Fortran::semantics::AssignmentChecker, Fortran::semantics::CaseChecker, Fortran::semantics::CoarrayChecker, Fortran::semantics::DataChecker, Fortran::semantics::DeallocateChecker, Fortran::semantics::DoForallChecker, Fortran::semantics::IfStmtChecker, Fortran::semantics::IoChecker, Fortran::semantics::MiscChecker, Fortran::semantics::NamelistChecker, Fortran::semantics::NullifyChecker, Fortran::semantics::PurityChecker, Fortran::semantics::ReturnStmtChecker, Fortran::semantics::SelectRankConstructChecker, Fortran::semantics::SelectTypeChecker, Fortran::semantics::StopChecker>&)::'lambda'(Fortran::semantics::SemanticsVisitor<Fortran::semantics::AllocateChecker, Fortran::semantics::ArithmeticIfStmtChecker, Fortran::semantics::AssignmentChecker, Fortran::semantics::CaseChecker, Fortran::semantics::CoarrayChecker, Fortran::semantics::DataChecker, Fortran::semantics::DeallocateChecker, Fortran::semantics::DoForallChecker, Fortran::semantics::IfStmtChecker, Fortran::semantics::IoChecker, Fortran::semantics::MiscChecker, Fortran::semantics::NamelistChecker, Fortran::semantics::NullifyChecker, Fortran::semantics::PurityChecker, Fortran::semantics::ReturnStmtChecker, Fortran::semantics::SelectRankConstructChecker, Fortran::semantics::SelectTypeChecker, Fortran::semantics::StopChecker> const&)) (/opt/compiler-explorer/clang-llvmflang-trunk-20240318/bin/flang-new+0x405e930)
#15 0x0000000004061c00 void Fortran::parser::Walk<Fortran::parser::ProgramUnit, Fortran::semantics::SemanticsVisitor<Fortran::semantics::AllocateChecker, Fortran::semantics::ArithmeticIfStmtChecker, Fortran::semantics::AssignmentChecker, Fortran::semantics::CaseChecker, Fortran::semantics::CoarrayChecker, Fortran::semantics::DataChecker, Fortran::semantics::DeallocateChecker, Fortran::semantics::DoForallChecker, Fortran::semantics::IfStmtChecker, Fortran::semantics::IoChecker, Fortran::semantics::MiscChecker, Fortran::semantics::NamelistChecker, Fortran::semantics::NullifyChecker, Fortran::semantics::PurityChecker, Fortran::semantics::ReturnStmtChecker, Fortran::semantics::SelectRankConstructChecker, Fortran::semantics::SelectTypeChecker, Fortran::semantics::StopChecker>>(std::__cxx11::list<Fortran::parser::ProgramUnit, std::allocator<Fortran::parser::ProgramUnit>> const&, Fortran::semantics::SemanticsVisitor<Fortran::semantics::AllocateChecker, Fortran::semantics::ArithmeticIfStmtChecker, Fortran::semantics::AssignmentChecker, Fortran::semantics::CaseChecker, Fortran::semantics::CoarrayChecker, Fortran::semantics::DataChecker, Fortran::semantics::DeallocateChecker, Fortran::semantics::DoForallChecker, Fortran::semantics::IfStmtChecker, Fortran::semantics::IoChecker, Fortran::semantics::MiscChecker, Fortran::semantics::NamelistChecker, Fortran::semantics::NullifyChecker, Fortran::semantics::PurityChecker, Fortran::semantics::ReturnStmtChecker, Fortran::semantics::SelectRankConstructChecker, Fortran::semantics::SelectTypeChecker, Fortran::semantics::StopChecker>&) (/opt/compiler-explorer/clang-llvmflang-trunk-20240318/bin/flang-new+0x4061c00)
#16 0x000000000406e0dd Fortran::semantics::Semantics::Perform() (/opt/compiler-explorer/clang-llvmflang-trunk-20240318/bin/flang-new+0x406e0dd)
#17 0x0000000003728dd7 Fortran::frontend::FrontendAction::runSemanticChecks() (/opt/compiler-explorer/clang-llvmflang-trunk-20240318/bin/flang-new+0x3728dd7)
#18 0x0000000003a4ca30 Fortran::frontend::CodeGenAction::beginSourceFileAction() (/opt/compiler-explorer/clang-llvmflang-trunk-20240318/bin/flang-new+0x3a4ca30)
#19 0x00000000037283b5 Fortran::frontend::FrontendAction::beginSourceFile(Fortran::frontend::CompilerInstance&, Fortran::frontend::FrontendInputFile const&) (/opt/compiler-explorer/clang-llvmflang-trunk-20240318/bin/flang-new+0x37283b5)
#20 0x0000000003718187 Fortran::frontend::CompilerInstance::executeAction(Fortran::frontend::FrontendAction&) (/opt/compiler-explorer/clang-llvmflang-trunk-20240318/bin/flang-new+0x3718187)
#21 0x000000000372e63d Fortran::frontend::executeCompilerInvocation(Fortran::frontend::CompilerInstance*) (/opt/compiler-explorer/clang-llvmflang-trunk-20240318/bin/flang-new+0x372e63d)
#22 0x0000000001ed17b8 fc1_main(llvm::ArrayRef<char const*>, char const*) (/opt/compiler-explorer/clang-llvmflang-trunk-20240318/bin/flang-new+0x1ed17b8)
#23 0x0000000001dd6aad main (/opt/compiler-explorer/clang-llvmflang-trunk-20240318/bin/flang-new+0x1dd6aad)
#24 0x00007fdd02e29d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#25 0x00007fdd02e29e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#26 0x0000000001ed071e _start (/opt/compiler-explorer/clang-llvmflang-trunk-20240318/bin/flang-new+0x1ed071e)
flang-new: error: unable to execute command: Aborted (core dumped)
flang-new: error: flang frontend command failed due to signal (use -v to see invocation)
flang-new version 19.0.0git (https://github.com/llvm/llvm-project.git c0d03d28c58f3016eb25ce8d1160e11183d01735)
Target: x86_64-unknown-linux-gnu
Thread model: posix

Metadata

Metadata

Assignees

Labels

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

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions