Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Flang] fatal internal error: CHECK(optN) failed: "Overflow in TotalElementCount" at /root/llvm-project/flang/lib/Evaluate/constant.cpp(163) #101188

Open
k-arrows opened this issue Jul 30, 2024 · 2 comments
Labels
bug Indicates an unexpected problem or unintended behavior crash Prefer [crash-on-valid] or [crash-on-invalid] flang:frontend

Comments

@k-arrows
Copy link

Reproducible on Godbolt:
https://godbolt.org/z/9PsMbz68K

Reproducer:

real :: x(55555,55555,55555,55555,55555) = 0.0
end

Stack dump:

fatal internal error: CHECK(optN) failed: "Overflow in TotalElementCount" at /root/llvm-project/flang/lib/Evaluate/constant.cpp(163)
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.	Program arguments: /opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new -fc1 -triple x86_64-unknown-linux-gnu -S -mrelocation-model pic -pic-level 2 -pic-is-pie -target-cpu x86-64 -mllvm -x86-asm-syntax=intel -resource-dir /opt/compiler-explorer/clang-llvmflang-trunk-20240730/lib/clang/20 -mframe-pointer=all -o /app/output.s -x f95-cpp-input /app/example.f90
 #0 0x0000000003520068 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x3520068)
 #1 0x000000000351da0c SignalHandler(int) Signals.cpp:0:0
 #2 0x00007121df842520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #3 0x00007121df8969fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
 #4 0x00007121df842476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
 #5 0x00007121df8287f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
 #6 0x0000000004b52299 (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x4b52299)
 #7 0x00000000042333a9 Fortran::evaluate::ConstantBase<Fortran::evaluate::Type<(Fortran::common::TypeCategory)1, 4>, Fortran::evaluate::value::Real<Fortran::evaluate::value::Integer<32, true, 32, unsigned int, unsigned long, 32>, 24>>::Reshape(std::vector<long, std::allocator<long>> const&) const (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x42333a9)
 #8 0x000000000423729a Fortran::evaluate::Constant<Fortran::evaluate::Type<(Fortran::common::TypeCategory)1, 4>>::Reshape(std::vector<long, std::allocator<long>>&&) const (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x423729a)
 #9 0x00000000041c2c45 Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)1>> Fortran::common::log2visit::Log2VisitHelper<0ul, 5ul, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)1>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)1>> Fortran::evaluate::ScalarConstantExpander::Expand<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)1>>(Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)1>>&&)::'lambda'(Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)1>&&), std::variant<Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)1, 2>>, Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)1, 3>>, Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)1, 4>>, Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)1, 8>>, Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)1, 10>>, Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)1, 16>>>>(Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)1>> Fortran::evaluate::ScalarConstantExpander::Expand<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)1>>(Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)1>>&&)::'lambda'(Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)1>&&)&&, unsigned long, std::variant<Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)1, 2>>, Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)1, 3>>, Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)1, 4>>, Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)1, 8>>, Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)1, 10>>, Fortran::evaluate::Expr<Fortran::evaluate::Type<(Fortran::common::TypeCategory)1, 16>>>&&) (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x41c2c45)
#10 0x00000000041c4522 Fortran::evaluate::Expr<Fortran::evaluate::SomeType> Fortran::common::log2visit::Log2VisitHelper<0ul, 9ul, Fortran::evaluate::Expr<Fortran::evaluate::SomeType>, Fortran::evaluate::Expr<Fortran::evaluate::SomeType> Fortran::evaluate::ScalarConstantExpander::Expand<Fortran::evaluate::SomeType>(Fortran::evaluate::Expr<Fortran::evaluate::SomeType>&&)::'lambda'(Fortran::evaluate::SomeType&&), std::variant<Fortran::evaluate::value::Integer<128, true, 32, unsigned int, unsigned long, 128>, Fortran::evaluate::NullPointer, Fortran::evaluate::ProcedureDesignator, Fortran::evaluate::ProcedureRef, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)0>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)1>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)2>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)3>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)4>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>>>>(Fortran::evaluate::Expr<Fortran::evaluate::SomeType> Fortran::evaluate::ScalarConstantExpander::Expand<Fortran::evaluate::SomeType>(Fortran::evaluate::Expr<Fortran::evaluate::SomeType>&&)::'lambda'(Fortran::evaluate::SomeType&&)&&, unsigned long, std::variant<Fortran::evaluate::value::Integer<128, true, 32, unsigned int, unsigned long, 128>, Fortran::evaluate::NullPointer, Fortran::evaluate::ProcedureDesignator, Fortran::evaluate::ProcedureRef, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)0>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)1>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)2>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)3>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)4>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>>>&&) (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x41c4522)
#11 0x00000000042205e6 Fortran::evaluate::NonPointerInitializationExpr(Fortran::semantics::Symbol const&, Fortran::evaluate::Expr<Fortran::evaluate::SomeType>&&, Fortran::evaluate::FoldingContext&, Fortran::semantics::Scope const*) (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x42205e6)
#12 0x0000000003e9054b Fortran::semantics::DeclarationVisitor::NonPointerInitialization(Fortran::parser::Name const&, Fortran::parser::Constant<Fortran::common::Indirection<Fortran::parser::Expr, false>> const&) (.part.0) resolve-names.cpp:0:0
#13 0x0000000003ecc5bd void Fortran::common::log2visit::Log2VisitHelper<7ul, 12ul, void, void Fortran::parser::Walk<Fortran::semantics::DeferredCheckVisitor, Fortran::common::Indirection<Fortran::parser::DerivedTypeDef, false>, Fortran::common::Indirection<Fortran::parser::EnumDef, false>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::GenericStmt, false>>, Fortran::common::Indirection<Fortran::parser::InterfaceBlock, false>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::ParameterStmt, false>>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::OldParameterStmt, false>>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::ProcedureDeclarationStmt, false>>, Fortran::parser::Statement<Fortran::parser::OtherSpecificationStmt>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::TypeDeclarationStmt, false>>, Fortran::common::Indirection<Fortran::parser::StructureDef, false>, Fortran::common::Indirection<Fortran::parser::OpenACCDeclarativeConstruct, false>, Fortran::common::Indirection<Fortran::parser::OpenMPDeclarativeConstruct, false>, Fortran::common::Indirection<Fortran::parser::CompilerDirective, false>>(std::variant<Fortran::common::Indirection<Fortran::parser::DerivedTypeDef, false>, Fortran::common::Indirection<Fortran::parser::EnumDef, false>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::GenericStmt, false>>, Fortran::common::Indirection<Fortran::parser::InterfaceBlock, false>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::ParameterStmt, false>>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::OldParameterStmt, false>>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::ProcedureDeclarationStmt, false>>, Fortran::parser::Statement<Fortran::parser::OtherSpecificationStmt>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::TypeDeclarationStmt, false>>, Fortran::common::Indirection<Fortran::parser::StructureDef, false>, Fortran::common::Indirection<Fortran::parser::OpenACCDeclarativeConstruct, false>, Fortran::common::Indirection<Fortran::parser::OpenMPDeclarativeConstruct, false>, Fortran::common::Indirection<Fortran::parser::CompilerDirective, false>> const&, Fortran::semantics::DeferredCheckVisitor&)::'lambda'(Fortran::semantics::DeferredCheckVisitor const&), std::variant<Fortran::common::Indirection<Fortran::parser::DerivedTypeDef, false>, Fortran::common::Indirection<Fortran::parser::EnumDef, false>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::GenericStmt, false>>, Fortran::common::Indirection<Fortran::parser::InterfaceBlock, false>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::ParameterStmt, false>>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::OldParameterStmt, false>>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::ProcedureDeclarationStmt, false>>, Fortran::parser::Statement<Fortran::parser::OtherSpecificationStmt>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::TypeDeclarationStmt, false>>, Fortran::common::Indirection<Fortran::parser::StructureDef, false>, Fortran::common::Indirection<Fortran::parser::OpenACCDeclarativeConstruct, false>, Fortran::common::Indirection<Fortran::parser::OpenMPDeclarativeConstruct, false>, Fortran::common::Indirection<Fortran::parser::CompilerDirective, false>> const&>(void Fortran::parser::Walk<Fortran::semantics::DeferredCheckVisitor, Fortran::common::Indirection<Fortran::parser::DerivedTypeDef, false>, Fortran::common::Indirection<Fortran::parser::EnumDef, false>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::GenericStmt, false>>, Fortran::common::Indirection<Fortran::parser::InterfaceBlock, false>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::ParameterStmt, false>>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::OldParameterStmt, false>>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::ProcedureDeclarationStmt, false>>, Fortran::parser::Statement<Fortran::parser::OtherSpecificationStmt>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::TypeDeclarationStmt, false>>, Fortran::common::Indirection<Fortran::parser::StructureDef, false>, Fortran::common::Indirection<Fortran::parser::OpenACCDeclarativeConstruct, false>, Fortran::common::Indirection<Fortran::parser::OpenMPDeclarativeConstruct, false>, Fortran::common::Indirection<Fortran::parser::CompilerDirective, false>>(std::variant<Fortran::common::Indirection<Fortran::parser::DerivedTypeDef, false>, Fortran::common::Indirection<Fortran::parser::EnumDef, false>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::GenericStmt, false>>, Fortran::common::Indirection<Fortran::parser::InterfaceBlock, false>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::ParameterStmt, false>>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::OldParameterStmt, false>>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::ProcedureDeclarationStmt, false>>, Fortran::parser::Statement<Fortran::parser::OtherSpecificationStmt>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::TypeDeclarationStmt, false>>, Fortran::common::Indirection<Fortran::parser::StructureDef, false>, Fortran::common::Indirection<Fortran::parser::OpenACCDeclarativeConstruct, false>, Fortran::common::Indirection<Fortran::parser::OpenMPDeclarativeConstruct, false>, Fortran::common::Indirection<Fortran::parser::CompilerDirective, false>> const&, Fortran::semantics::DeferredCheckVisitor&)::'lambda'(Fortran::semantics::DeferredCheckVisitor const&)&&, unsigned long, std::variant<Fortran::common::Indirection<Fortran::parser::DerivedTypeDef, false>, Fortran::common::Indirection<Fortran::parser::EnumDef, false>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::GenericStmt, false>>, Fortran::common::Indirection<Fortran::parser::InterfaceBlock, false>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::ParameterStmt, false>>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::OldParameterStmt, false>>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::ProcedureDeclarationStmt, false>>, Fortran::parser::Statement<Fortran::parser::OtherSpecificationStmt>, Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::TypeDeclarationStmt, false>>, Fortran::common::Indirection<Fortran::parser::StructureDef, false>, Fortran::common::Indirection<Fortran::parser::OpenACCDeclarativeConstruct, false>, Fortran::common::Indirection<Fortran::parser::OpenMPDeclarativeConstruct, false>, Fortran::common::Indirection<Fortran::parser::CompilerDirective, false>> const&) (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x3ecc5bd)
#14 0x0000000003ecd979 void Fortran::parser::ForEachInTuple<0ul, void Fortran::parser::Walk<Fortran::semantics::DeferredCheckVisitor, 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::DeferredCheckVisitor&)::'lambda'(Fortran::semantics::DeferredCheckVisitor 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::DeferredCheckVisitor, 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::DeferredCheckVisitor&)::'lambda'(Fortran::semantics::DeferredCheckVisitor const&)) (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x3ecd979)
#15 0x0000000003ecdda6 Fortran::semantics::ResolveNamesVisitor::FinishSpecificationParts(Fortran::semantics::ProgramTree const&) (.part.0) resolve-names.cpp:0:0
#16 0x0000000003edd1fb Fortran::semantics::ResolveNamesVisitor::Pre(Fortran::parser::ProgramUnit const&) (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x3edd1fb)
#17 0x0000000003ede804 Fortran::semantics::ResolveNames(Fortran::semantics::SemanticsContext&, Fortran::parser::Program const&, Fortran::semantics::Scope&) (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x3ede804)
#18 0x0000000003f37b8e Fortran::semantics::Semantics::Perform() (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x3f37b8e)
#19 0x000000000357770d Fortran::frontend::FrontendAction::runSemanticChecks() (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x357770d)
#20 0x00000000038a701a Fortran::frontend::CodeGenAction::beginSourceFileAction() (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x38a701a)
#21 0x0000000003576b15 Fortran::frontend::FrontendAction::beginSourceFile(Fortran::frontend::CompilerInstance&, Fortran::frontend::FrontendInputFile const&) (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x3576b15)
#22 0x0000000003566417 Fortran::frontend::CompilerInstance::executeAction(Fortran::frontend::FrontendAction&) (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x3566417)
#23 0x000000000357cb4d Fortran::frontend::executeCompilerInvocation(Fortran::frontend::CompilerInstance*) (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x357cb4d)
#24 0x0000000001c57408 fc1_main(llvm::ArrayRef<char const*>, char const*) (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x1c57408)
#25 0x0000000001b39c9c main (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x1b39c9c)
#26 0x00007121df829d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#27 0x00007121df829e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#28 0x0000000001c5636e _start (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x1c5636e)
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 20.0.0git (https://github.com/llvm/llvm-project.git 3de76e4f57bdba612ddca7ac53b2f5787929391a)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin

Error message of ifx looks reasonable to me:

ifx: remark #10440: Note that use of a debug option without any optimization-level option will turnoff most compiler optimizations similar to use of '-O0'
/app/example.f90(1): error #6930: The size of the array dimension is too large, and overflow occurred when computing the array size.   [X]
real :: x(55555,55555,55555,55555,55555) = 0.0
--------^
/app/example.f90(1): error #6349: Integer overflow occurred when evaluating the offset from zero.   [X]
real :: x(55555,55555,55555,55555,55555) = 0.0
--------^
compilation aborted for /app/example.f90 (code 1)
Compiler returned: 1
@github-actions github-actions bot added the flang Flang issues not falling into any other category label Jul 30, 2024
@k-arrows k-arrows added flang:frontend crash Prefer [crash-on-valid] or [crash-on-invalid] and removed flang Flang issues not falling into any other category labels Jul 30, 2024
@llvmbot
Copy link
Collaborator

llvmbot commented Jul 30, 2024

@llvm/issue-subscribers-flang-frontend

Author: None (k-arrows)

Reproducible on Godbolt: https://godbolt.org/z/9PsMbz68K

Reproducer:

real :: x(55555,55555,55555,55555,55555) = 0.0
end

Stack dump:

fatal internal error: CHECK(optN) failed: "Overflow in TotalElementCount" at /root/llvm-project/flang/lib/Evaluate/constant.cpp(163)
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.	Program arguments: /opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new -fc1 -triple x86_64-unknown-linux-gnu -S -mrelocation-model pic -pic-level 2 -pic-is-pie -target-cpu x86-64 -mllvm -x86-asm-syntax=intel -resource-dir /opt/compiler-explorer/clang-llvmflang-trunk-20240730/lib/clang/20 -mframe-pointer=all -o /app/output.s -x f95-cpp-input /app/example.f90
 #<!-- -->0 0x0000000003520068 llvm::sys::PrintStackTrace(llvm::raw_ostream&amp;, int) (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x3520068)
 #<!-- -->1 0x000000000351da0c SignalHandler(int) Signals.cpp:0:0
 #<!-- -->2 0x00007121df842520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #<!-- -->3 0x00007121df8969fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
 #<!-- -->4 0x00007121df842476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
 #<!-- -->5 0x00007121df8287f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
 #<!-- -->6 0x0000000004b52299 (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x4b52299)
 #<!-- -->7 0x00000000042333a9 Fortran::evaluate::ConstantBase&lt;Fortran::evaluate::Type&lt;(Fortran::common::TypeCategory)1, 4&gt;, Fortran::evaluate::value::Real&lt;Fortran::evaluate::value::Integer&lt;32, true, 32, unsigned int, unsigned long, 32&gt;, 24&gt;&gt;::Reshape(std::vector&lt;long, std::allocator&lt;long&gt;&gt; const&amp;) const (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x42333a9)
 #<!-- -->8 0x000000000423729a Fortran::evaluate::Constant&lt;Fortran::evaluate::Type&lt;(Fortran::common::TypeCategory)1, 4&gt;&gt;::Reshape(std::vector&lt;long, std::allocator&lt;long&gt;&gt;&amp;&amp;) const (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x423729a)
 #<!-- -->9 0x00000000041c2c45 Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeKind&lt;(Fortran::common::TypeCategory)1&gt;&gt; Fortran::common::log2visit::Log2VisitHelper&lt;0ul, 5ul, Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeKind&lt;(Fortran::common::TypeCategory)1&gt;&gt;, Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeKind&lt;(Fortran::common::TypeCategory)1&gt;&gt; Fortran::evaluate::ScalarConstantExpander::Expand&lt;Fortran::evaluate::SomeKind&lt;(Fortran::common::TypeCategory)1&gt;&gt;(Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeKind&lt;(Fortran::common::TypeCategory)1&gt;&gt;&amp;&amp;)::'lambda'(Fortran::evaluate::SomeKind&lt;(Fortran::common::TypeCategory)1&gt;&amp;&amp;), std::variant&lt;Fortran::evaluate::Expr&lt;Fortran::evaluate::Type&lt;(Fortran::common::TypeCategory)1, 2&gt;&gt;, Fortran::evaluate::Expr&lt;Fortran::evaluate::Type&lt;(Fortran::common::TypeCategory)1, 3&gt;&gt;, Fortran::evaluate::Expr&lt;Fortran::evaluate::Type&lt;(Fortran::common::TypeCategory)1, 4&gt;&gt;, Fortran::evaluate::Expr&lt;Fortran::evaluate::Type&lt;(Fortran::common::TypeCategory)1, 8&gt;&gt;, Fortran::evaluate::Expr&lt;Fortran::evaluate::Type&lt;(Fortran::common::TypeCategory)1, 10&gt;&gt;, Fortran::evaluate::Expr&lt;Fortran::evaluate::Type&lt;(Fortran::common::TypeCategory)1, 16&gt;&gt;&gt;&gt;(Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeKind&lt;(Fortran::common::TypeCategory)1&gt;&gt; Fortran::evaluate::ScalarConstantExpander::Expand&lt;Fortran::evaluate::SomeKind&lt;(Fortran::common::TypeCategory)1&gt;&gt;(Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeKind&lt;(Fortran::common::TypeCategory)1&gt;&gt;&amp;&amp;)::'lambda'(Fortran::evaluate::SomeKind&lt;(Fortran::common::TypeCategory)1&gt;&amp;&amp;)&amp;&amp;, unsigned long, std::variant&lt;Fortran::evaluate::Expr&lt;Fortran::evaluate::Type&lt;(Fortran::common::TypeCategory)1, 2&gt;&gt;, Fortran::evaluate::Expr&lt;Fortran::evaluate::Type&lt;(Fortran::common::TypeCategory)1, 3&gt;&gt;, Fortran::evaluate::Expr&lt;Fortran::evaluate::Type&lt;(Fortran::common::TypeCategory)1, 4&gt;&gt;, Fortran::evaluate::Expr&lt;Fortran::evaluate::Type&lt;(Fortran::common::TypeCategory)1, 8&gt;&gt;, Fortran::evaluate::Expr&lt;Fortran::evaluate::Type&lt;(Fortran::common::TypeCategory)1, 10&gt;&gt;, Fortran::evaluate::Expr&lt;Fortran::evaluate::Type&lt;(Fortran::common::TypeCategory)1, 16&gt;&gt;&gt;&amp;&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x41c2c45)
#<!-- -->10 0x00000000041c4522 Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeType&gt; Fortran::common::log2visit::Log2VisitHelper&lt;0ul, 9ul, Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeType&gt;, Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeType&gt; Fortran::evaluate::ScalarConstantExpander::Expand&lt;Fortran::evaluate::SomeType&gt;(Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeType&gt;&amp;&amp;)::'lambda'(Fortran::evaluate::SomeType&amp;&amp;), std::variant&lt;Fortran::evaluate::value::Integer&lt;128, true, 32, unsigned int, unsigned long, 128&gt;, Fortran::evaluate::NullPointer, Fortran::evaluate::ProcedureDesignator, Fortran::evaluate::ProcedureRef, Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeKind&lt;(Fortran::common::TypeCategory)0&gt;&gt;, Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeKind&lt;(Fortran::common::TypeCategory)1&gt;&gt;, Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeKind&lt;(Fortran::common::TypeCategory)2&gt;&gt;, Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeKind&lt;(Fortran::common::TypeCategory)3&gt;&gt;, Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeKind&lt;(Fortran::common::TypeCategory)4&gt;&gt;, Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeKind&lt;(Fortran::common::TypeCategory)5&gt;&gt;&gt;&gt;(Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeType&gt; Fortran::evaluate::ScalarConstantExpander::Expand&lt;Fortran::evaluate::SomeType&gt;(Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeType&gt;&amp;&amp;)::'lambda'(Fortran::evaluate::SomeType&amp;&amp;)&amp;&amp;, unsigned long, std::variant&lt;Fortran::evaluate::value::Integer&lt;128, true, 32, unsigned int, unsigned long, 128&gt;, Fortran::evaluate::NullPointer, Fortran::evaluate::ProcedureDesignator, Fortran::evaluate::ProcedureRef, Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeKind&lt;(Fortran::common::TypeCategory)0&gt;&gt;, Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeKind&lt;(Fortran::common::TypeCategory)1&gt;&gt;, Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeKind&lt;(Fortran::common::TypeCategory)2&gt;&gt;, Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeKind&lt;(Fortran::common::TypeCategory)3&gt;&gt;, Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeKind&lt;(Fortran::common::TypeCategory)4&gt;&gt;, Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeKind&lt;(Fortran::common::TypeCategory)5&gt;&gt;&gt;&amp;&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x41c4522)
#<!-- -->11 0x00000000042205e6 Fortran::evaluate::NonPointerInitializationExpr(Fortran::semantics::Symbol const&amp;, Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeType&gt;&amp;&amp;, Fortran::evaluate::FoldingContext&amp;, Fortran::semantics::Scope const*) (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x42205e6)
#<!-- -->12 0x0000000003e9054b Fortran::semantics::DeclarationVisitor::NonPointerInitialization(Fortran::parser::Name const&amp;, Fortran::parser::Constant&lt;Fortran::common::Indirection&lt;Fortran::parser::Expr, false&gt;&gt; const&amp;) (.part.0) resolve-names.cpp:0:0
#<!-- -->13 0x0000000003ecc5bd void Fortran::common::log2visit::Log2VisitHelper&lt;7ul, 12ul, void, void Fortran::parser::Walk&lt;Fortran::semantics::DeferredCheckVisitor, Fortran::common::Indirection&lt;Fortran::parser::DerivedTypeDef, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::EnumDef, false&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::GenericStmt, false&gt;&gt;, Fortran::common::Indirection&lt;Fortran::parser::InterfaceBlock, false&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ParameterStmt, false&gt;&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::OldParameterStmt, false&gt;&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ProcedureDeclarationStmt, false&gt;&gt;, Fortran::parser::Statement&lt;Fortran::parser::OtherSpecificationStmt&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::TypeDeclarationStmt, false&gt;&gt;, Fortran::common::Indirection&lt;Fortran::parser::StructureDef, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::OpenACCDeclarativeConstruct, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::OpenMPDeclarativeConstruct, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::CompilerDirective, false&gt;&gt;(std::variant&lt;Fortran::common::Indirection&lt;Fortran::parser::DerivedTypeDef, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::EnumDef, false&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::GenericStmt, false&gt;&gt;, Fortran::common::Indirection&lt;Fortran::parser::InterfaceBlock, false&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ParameterStmt, false&gt;&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::OldParameterStmt, false&gt;&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ProcedureDeclarationStmt, false&gt;&gt;, Fortran::parser::Statement&lt;Fortran::parser::OtherSpecificationStmt&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::TypeDeclarationStmt, false&gt;&gt;, Fortran::common::Indirection&lt;Fortran::parser::StructureDef, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::OpenACCDeclarativeConstruct, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::OpenMPDeclarativeConstruct, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::CompilerDirective, false&gt;&gt; const&amp;, Fortran::semantics::DeferredCheckVisitor&amp;)::'lambda'(Fortran::semantics::DeferredCheckVisitor const&amp;), std::variant&lt;Fortran::common::Indirection&lt;Fortran::parser::DerivedTypeDef, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::EnumDef, false&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::GenericStmt, false&gt;&gt;, Fortran::common::Indirection&lt;Fortran::parser::InterfaceBlock, false&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ParameterStmt, false&gt;&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::OldParameterStmt, false&gt;&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ProcedureDeclarationStmt, false&gt;&gt;, Fortran::parser::Statement&lt;Fortran::parser::OtherSpecificationStmt&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::TypeDeclarationStmt, false&gt;&gt;, Fortran::common::Indirection&lt;Fortran::parser::StructureDef, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::OpenACCDeclarativeConstruct, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::OpenMPDeclarativeConstruct, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::CompilerDirective, false&gt;&gt; const&amp;&gt;(void Fortran::parser::Walk&lt;Fortran::semantics::DeferredCheckVisitor, Fortran::common::Indirection&lt;Fortran::parser::DerivedTypeDef, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::EnumDef, false&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::GenericStmt, false&gt;&gt;, Fortran::common::Indirection&lt;Fortran::parser::InterfaceBlock, false&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ParameterStmt, false&gt;&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::OldParameterStmt, false&gt;&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ProcedureDeclarationStmt, false&gt;&gt;, Fortran::parser::Statement&lt;Fortran::parser::OtherSpecificationStmt&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::TypeDeclarationStmt, false&gt;&gt;, Fortran::common::Indirection&lt;Fortran::parser::StructureDef, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::OpenACCDeclarativeConstruct, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::OpenMPDeclarativeConstruct, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::CompilerDirective, false&gt;&gt;(std::variant&lt;Fortran::common::Indirection&lt;Fortran::parser::DerivedTypeDef, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::EnumDef, false&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::GenericStmt, false&gt;&gt;, Fortran::common::Indirection&lt;Fortran::parser::InterfaceBlock, false&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ParameterStmt, false&gt;&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::OldParameterStmt, false&gt;&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ProcedureDeclarationStmt, false&gt;&gt;, Fortran::parser::Statement&lt;Fortran::parser::OtherSpecificationStmt&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::TypeDeclarationStmt, false&gt;&gt;, Fortran::common::Indirection&lt;Fortran::parser::StructureDef, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::OpenACCDeclarativeConstruct, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::OpenMPDeclarativeConstruct, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::CompilerDirective, false&gt;&gt; const&amp;, Fortran::semantics::DeferredCheckVisitor&amp;)::'lambda'(Fortran::semantics::DeferredCheckVisitor const&amp;)&amp;&amp;, unsigned long, std::variant&lt;Fortran::common::Indirection&lt;Fortran::parser::DerivedTypeDef, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::EnumDef, false&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::GenericStmt, false&gt;&gt;, Fortran::common::Indirection&lt;Fortran::parser::InterfaceBlock, false&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ParameterStmt, false&gt;&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::OldParameterStmt, false&gt;&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ProcedureDeclarationStmt, false&gt;&gt;, Fortran::parser::Statement&lt;Fortran::parser::OtherSpecificationStmt&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::TypeDeclarationStmt, false&gt;&gt;, Fortran::common::Indirection&lt;Fortran::parser::StructureDef, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::OpenACCDeclarativeConstruct, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::OpenMPDeclarativeConstruct, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::CompilerDirective, false&gt;&gt; const&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x3ecc5bd)
#<!-- -->14 0x0000000003ecd979 void Fortran::parser::ForEachInTuple&lt;0ul, void Fortran::parser::Walk&lt;Fortran::semantics::DeferredCheckVisitor, std::__cxx11::list&lt;Fortran::parser::OpenACCDeclarativeConstruct, std::allocator&lt;Fortran::parser::OpenACCDeclarativeConstruct&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::OpenMPDeclarativeConstruct, std::allocator&lt;Fortran::parser::OpenMPDeclarativeConstruct&gt;&gt;, std::__cxx11::list&lt;Fortran::common::Indirection&lt;Fortran::parser::CompilerDirective, false&gt;, std::allocator&lt;Fortran::common::Indirection&lt;Fortran::parser::CompilerDirective, false&gt;&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::UseStmt, false&gt;&gt;, std::allocator&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::UseStmt, false&gt;&gt;&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ImportStmt, false&gt;&gt;, std::allocator&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ImportStmt, false&gt;&gt;&gt;&gt;, Fortran::parser::ImplicitPart, std::__cxx11::list&lt;Fortran::parser::DeclarationConstruct, std::allocator&lt;Fortran::parser::DeclarationConstruct&gt;&gt;&gt;(std::tuple&lt;std::__cxx11::list&lt;Fortran::parser::OpenACCDeclarativeConstruct, std::allocator&lt;Fortran::parser::OpenACCDeclarativeConstruct&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::OpenMPDeclarativeConstruct, std::allocator&lt;Fortran::parser::OpenMPDeclarativeConstruct&gt;&gt;, std::__cxx11::list&lt;Fortran::common::Indirection&lt;Fortran::parser::CompilerDirective, false&gt;, std::allocator&lt;Fortran::common::Indirection&lt;Fortran::parser::CompilerDirective, false&gt;&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::UseStmt, false&gt;&gt;, std::allocator&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::UseStmt, false&gt;&gt;&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ImportStmt, false&gt;&gt;, std::allocator&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ImportStmt, false&gt;&gt;&gt;&gt;, Fortran::parser::ImplicitPart, std::__cxx11::list&lt;Fortran::parser::DeclarationConstruct, std::allocator&lt;Fortran::parser::DeclarationConstruct&gt;&gt;&gt; const&amp;, Fortran::semantics::DeferredCheckVisitor&amp;)::'lambda'(Fortran::semantics::DeferredCheckVisitor const&amp;), std::tuple&lt;std::__cxx11::list&lt;Fortran::parser::OpenACCDeclarativeConstruct, std::allocator&lt;Fortran::parser::OpenACCDeclarativeConstruct&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::OpenMPDeclarativeConstruct, std::allocator&lt;Fortran::parser::OpenMPDeclarativeConstruct&gt;&gt;, std::__cxx11::list&lt;Fortran::common::Indirection&lt;Fortran::parser::CompilerDirective, false&gt;, std::allocator&lt;Fortran::common::Indirection&lt;Fortran::parser::CompilerDirective, false&gt;&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::UseStmt, false&gt;&gt;, std::allocator&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::UseStmt, false&gt;&gt;&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ImportStmt, false&gt;&gt;, std::allocator&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ImportStmt, false&gt;&gt;&gt;&gt;, Fortran::parser::ImplicitPart, std::__cxx11::list&lt;Fortran::parser::DeclarationConstruct, std::allocator&lt;Fortran::parser::DeclarationConstruct&gt;&gt;&gt;&gt;(std::tuple&lt;std::__cxx11::list&lt;Fortran::parser::OpenACCDeclarativeConstruct, std::allocator&lt;Fortran::parser::OpenACCDeclarativeConstruct&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::OpenMPDeclarativeConstruct, std::allocator&lt;Fortran::parser::OpenMPDeclarativeConstruct&gt;&gt;, std::__cxx11::list&lt;Fortran::common::Indirection&lt;Fortran::parser::CompilerDirective, false&gt;, std::allocator&lt;Fortran::common::Indirection&lt;Fortran::parser::CompilerDirective, false&gt;&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::UseStmt, false&gt;&gt;, std::allocator&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::UseStmt, false&gt;&gt;&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ImportStmt, false&gt;&gt;, std::allocator&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ImportStmt, false&gt;&gt;&gt;&gt;, Fortran::parser::ImplicitPart, std::__cxx11::list&lt;Fortran::parser::DeclarationConstruct, std::allocator&lt;Fortran::parser::DeclarationConstruct&gt;&gt;&gt; const&amp;, void Fortran::parser::Walk&lt;Fortran::semantics::DeferredCheckVisitor, std::__cxx11::list&lt;Fortran::parser::OpenACCDeclarativeConstruct, std::allocator&lt;Fortran::parser::OpenACCDeclarativeConstruct&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::OpenMPDeclarativeConstruct, std::allocator&lt;Fortran::parser::OpenMPDeclarativeConstruct&gt;&gt;, std::__cxx11::list&lt;Fortran::common::Indirection&lt;Fortran::parser::CompilerDirective, false&gt;, std::allocator&lt;Fortran::common::Indirection&lt;Fortran::parser::CompilerDirective, false&gt;&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::UseStmt, false&gt;&gt;, std::allocator&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::UseStmt, false&gt;&gt;&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ImportStmt, false&gt;&gt;, std::allocator&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ImportStmt, false&gt;&gt;&gt;&gt;, Fortran::parser::ImplicitPart, std::__cxx11::list&lt;Fortran::parser::DeclarationConstruct, std::allocator&lt;Fortran::parser::DeclarationConstruct&gt;&gt;&gt;(std::tuple&lt;std::__cxx11::list&lt;Fortran::parser::OpenACCDeclarativeConstruct, std::allocator&lt;Fortran::parser::OpenACCDeclarativeConstruct&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::OpenMPDeclarativeConstruct, std::allocator&lt;Fortran::parser::OpenMPDeclarativeConstruct&gt;&gt;, std::__cxx11::list&lt;Fortran::common::Indirection&lt;Fortran::parser::CompilerDirective, false&gt;, std::allocator&lt;Fortran::common::Indirection&lt;Fortran::parser::CompilerDirective, false&gt;&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::UseStmt, false&gt;&gt;, std::allocator&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::UseStmt, false&gt;&gt;&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ImportStmt, false&gt;&gt;, std::allocator&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ImportStmt, false&gt;&gt;&gt;&gt;, Fortran::parser::ImplicitPart, std::__cxx11::list&lt;Fortran::parser::DeclarationConstruct, std::allocator&lt;Fortran::parser::DeclarationConstruct&gt;&gt;&gt; const&amp;, Fortran::semantics::DeferredCheckVisitor&amp;)::'lambda'(Fortran::semantics::DeferredCheckVisitor const&amp;)) (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x3ecd979)
#<!-- -->15 0x0000000003ecdda6 Fortran::semantics::ResolveNamesVisitor::FinishSpecificationParts(Fortran::semantics::ProgramTree const&amp;) (.part.0) resolve-names.cpp:0:0
#<!-- -->16 0x0000000003edd1fb Fortran::semantics::ResolveNamesVisitor::Pre(Fortran::parser::ProgramUnit const&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x3edd1fb)
#<!-- -->17 0x0000000003ede804 Fortran::semantics::ResolveNames(Fortran::semantics::SemanticsContext&amp;, Fortran::parser::Program const&amp;, Fortran::semantics::Scope&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x3ede804)
#<!-- -->18 0x0000000003f37b8e Fortran::semantics::Semantics::Perform() (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x3f37b8e)
#<!-- -->19 0x000000000357770d Fortran::frontend::FrontendAction::runSemanticChecks() (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x357770d)
#<!-- -->20 0x00000000038a701a Fortran::frontend::CodeGenAction::beginSourceFileAction() (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x38a701a)
#<!-- -->21 0x0000000003576b15 Fortran::frontend::FrontendAction::beginSourceFile(Fortran::frontend::CompilerInstance&amp;, Fortran::frontend::FrontendInputFile const&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x3576b15)
#<!-- -->22 0x0000000003566417 Fortran::frontend::CompilerInstance::executeAction(Fortran::frontend::FrontendAction&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x3566417)
#<!-- -->23 0x000000000357cb4d Fortran::frontend::executeCompilerInvocation(Fortran::frontend::CompilerInstance*) (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x357cb4d)
#<!-- -->24 0x0000000001c57408 fc1_main(llvm::ArrayRef&lt;char const*&gt;, char const*) (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x1c57408)
#<!-- -->25 0x0000000001b39c9c main (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x1b39c9c)
#<!-- -->26 0x00007121df829d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#<!-- -->27 0x00007121df829e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#<!-- -->28 0x0000000001c5636e _start (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x1c5636e)
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 20.0.0git (https://github.com/llvm/llvm-project.git 3de76e4f57bdba612ddca7ac53b2f5787929391a)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin

Error message of ifx looks reasonable to me:

ifx: remark #<!-- -->10440: Note that use of a debug option without any optimization-level option will turnoff most compiler optimizations similar to use of '-O0'
/app/example.f90(1): error #<!-- -->6930: The size of the array dimension is too large, and overflow occurred when computing the array size.   [X]
real :: x(55555,55555,55555,55555,55555) = 0.0
--------^
/app/example.f90(1): error #<!-- -->6349: Integer overflow occurred when evaluating the offset from zero.   [X]
real :: x(55555,55555,55555,55555,55555) = 0.0
--------^
compilation aborted for /app/example.f90 (code 1)
Compiler returned: 1

@psteinfeld psteinfeld added the bug Indicates an unexpected problem or unintended behavior label Jul 30, 2024
@llvmbot
Copy link
Collaborator

llvmbot commented Jul 30, 2024

@llvm/issue-subscribers-bug

Author: None (k-arrows)

Reproducible on Godbolt: https://godbolt.org/z/9PsMbz68K

Reproducer:

real :: x(55555,55555,55555,55555,55555) = 0.0
end

Stack dump:

fatal internal error: CHECK(optN) failed: "Overflow in TotalElementCount" at /root/llvm-project/flang/lib/Evaluate/constant.cpp(163)
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.	Program arguments: /opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new -fc1 -triple x86_64-unknown-linux-gnu -S -mrelocation-model pic -pic-level 2 -pic-is-pie -target-cpu x86-64 -mllvm -x86-asm-syntax=intel -resource-dir /opt/compiler-explorer/clang-llvmflang-trunk-20240730/lib/clang/20 -mframe-pointer=all -o /app/output.s -x f95-cpp-input /app/example.f90
 #<!-- -->0 0x0000000003520068 llvm::sys::PrintStackTrace(llvm::raw_ostream&amp;, int) (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x3520068)
 #<!-- -->1 0x000000000351da0c SignalHandler(int) Signals.cpp:0:0
 #<!-- -->2 0x00007121df842520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #<!-- -->3 0x00007121df8969fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
 #<!-- -->4 0x00007121df842476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
 #<!-- -->5 0x00007121df8287f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
 #<!-- -->6 0x0000000004b52299 (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x4b52299)
 #<!-- -->7 0x00000000042333a9 Fortran::evaluate::ConstantBase&lt;Fortran::evaluate::Type&lt;(Fortran::common::TypeCategory)1, 4&gt;, Fortran::evaluate::value::Real&lt;Fortran::evaluate::value::Integer&lt;32, true, 32, unsigned int, unsigned long, 32&gt;, 24&gt;&gt;::Reshape(std::vector&lt;long, std::allocator&lt;long&gt;&gt; const&amp;) const (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x42333a9)
 #<!-- -->8 0x000000000423729a Fortran::evaluate::Constant&lt;Fortran::evaluate::Type&lt;(Fortran::common::TypeCategory)1, 4&gt;&gt;::Reshape(std::vector&lt;long, std::allocator&lt;long&gt;&gt;&amp;&amp;) const (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x423729a)
 #<!-- -->9 0x00000000041c2c45 Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeKind&lt;(Fortran::common::TypeCategory)1&gt;&gt; Fortran::common::log2visit::Log2VisitHelper&lt;0ul, 5ul, Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeKind&lt;(Fortran::common::TypeCategory)1&gt;&gt;, Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeKind&lt;(Fortran::common::TypeCategory)1&gt;&gt; Fortran::evaluate::ScalarConstantExpander::Expand&lt;Fortran::evaluate::SomeKind&lt;(Fortran::common::TypeCategory)1&gt;&gt;(Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeKind&lt;(Fortran::common::TypeCategory)1&gt;&gt;&amp;&amp;)::'lambda'(Fortran::evaluate::SomeKind&lt;(Fortran::common::TypeCategory)1&gt;&amp;&amp;), std::variant&lt;Fortran::evaluate::Expr&lt;Fortran::evaluate::Type&lt;(Fortran::common::TypeCategory)1, 2&gt;&gt;, Fortran::evaluate::Expr&lt;Fortran::evaluate::Type&lt;(Fortran::common::TypeCategory)1, 3&gt;&gt;, Fortran::evaluate::Expr&lt;Fortran::evaluate::Type&lt;(Fortran::common::TypeCategory)1, 4&gt;&gt;, Fortran::evaluate::Expr&lt;Fortran::evaluate::Type&lt;(Fortran::common::TypeCategory)1, 8&gt;&gt;, Fortran::evaluate::Expr&lt;Fortran::evaluate::Type&lt;(Fortran::common::TypeCategory)1, 10&gt;&gt;, Fortran::evaluate::Expr&lt;Fortran::evaluate::Type&lt;(Fortran::common::TypeCategory)1, 16&gt;&gt;&gt;&gt;(Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeKind&lt;(Fortran::common::TypeCategory)1&gt;&gt; Fortran::evaluate::ScalarConstantExpander::Expand&lt;Fortran::evaluate::SomeKind&lt;(Fortran::common::TypeCategory)1&gt;&gt;(Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeKind&lt;(Fortran::common::TypeCategory)1&gt;&gt;&amp;&amp;)::'lambda'(Fortran::evaluate::SomeKind&lt;(Fortran::common::TypeCategory)1&gt;&amp;&amp;)&amp;&amp;, unsigned long, std::variant&lt;Fortran::evaluate::Expr&lt;Fortran::evaluate::Type&lt;(Fortran::common::TypeCategory)1, 2&gt;&gt;, Fortran::evaluate::Expr&lt;Fortran::evaluate::Type&lt;(Fortran::common::TypeCategory)1, 3&gt;&gt;, Fortran::evaluate::Expr&lt;Fortran::evaluate::Type&lt;(Fortran::common::TypeCategory)1, 4&gt;&gt;, Fortran::evaluate::Expr&lt;Fortran::evaluate::Type&lt;(Fortran::common::TypeCategory)1, 8&gt;&gt;, Fortran::evaluate::Expr&lt;Fortran::evaluate::Type&lt;(Fortran::common::TypeCategory)1, 10&gt;&gt;, Fortran::evaluate::Expr&lt;Fortran::evaluate::Type&lt;(Fortran::common::TypeCategory)1, 16&gt;&gt;&gt;&amp;&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x41c2c45)
#<!-- -->10 0x00000000041c4522 Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeType&gt; Fortran::common::log2visit::Log2VisitHelper&lt;0ul, 9ul, Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeType&gt;, Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeType&gt; Fortran::evaluate::ScalarConstantExpander::Expand&lt;Fortran::evaluate::SomeType&gt;(Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeType&gt;&amp;&amp;)::'lambda'(Fortran::evaluate::SomeType&amp;&amp;), std::variant&lt;Fortran::evaluate::value::Integer&lt;128, true, 32, unsigned int, unsigned long, 128&gt;, Fortran::evaluate::NullPointer, Fortran::evaluate::ProcedureDesignator, Fortran::evaluate::ProcedureRef, Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeKind&lt;(Fortran::common::TypeCategory)0&gt;&gt;, Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeKind&lt;(Fortran::common::TypeCategory)1&gt;&gt;, Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeKind&lt;(Fortran::common::TypeCategory)2&gt;&gt;, Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeKind&lt;(Fortran::common::TypeCategory)3&gt;&gt;, Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeKind&lt;(Fortran::common::TypeCategory)4&gt;&gt;, Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeKind&lt;(Fortran::common::TypeCategory)5&gt;&gt;&gt;&gt;(Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeType&gt; Fortran::evaluate::ScalarConstantExpander::Expand&lt;Fortran::evaluate::SomeType&gt;(Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeType&gt;&amp;&amp;)::'lambda'(Fortran::evaluate::SomeType&amp;&amp;)&amp;&amp;, unsigned long, std::variant&lt;Fortran::evaluate::value::Integer&lt;128, true, 32, unsigned int, unsigned long, 128&gt;, Fortran::evaluate::NullPointer, Fortran::evaluate::ProcedureDesignator, Fortran::evaluate::ProcedureRef, Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeKind&lt;(Fortran::common::TypeCategory)0&gt;&gt;, Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeKind&lt;(Fortran::common::TypeCategory)1&gt;&gt;, Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeKind&lt;(Fortran::common::TypeCategory)2&gt;&gt;, Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeKind&lt;(Fortran::common::TypeCategory)3&gt;&gt;, Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeKind&lt;(Fortran::common::TypeCategory)4&gt;&gt;, Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeKind&lt;(Fortran::common::TypeCategory)5&gt;&gt;&gt;&amp;&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x41c4522)
#<!-- -->11 0x00000000042205e6 Fortran::evaluate::NonPointerInitializationExpr(Fortran::semantics::Symbol const&amp;, Fortran::evaluate::Expr&lt;Fortran::evaluate::SomeType&gt;&amp;&amp;, Fortran::evaluate::FoldingContext&amp;, Fortran::semantics::Scope const*) (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x42205e6)
#<!-- -->12 0x0000000003e9054b Fortran::semantics::DeclarationVisitor::NonPointerInitialization(Fortran::parser::Name const&amp;, Fortran::parser::Constant&lt;Fortran::common::Indirection&lt;Fortran::parser::Expr, false&gt;&gt; const&amp;) (.part.0) resolve-names.cpp:0:0
#<!-- -->13 0x0000000003ecc5bd void Fortran::common::log2visit::Log2VisitHelper&lt;7ul, 12ul, void, void Fortran::parser::Walk&lt;Fortran::semantics::DeferredCheckVisitor, Fortran::common::Indirection&lt;Fortran::parser::DerivedTypeDef, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::EnumDef, false&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::GenericStmt, false&gt;&gt;, Fortran::common::Indirection&lt;Fortran::parser::InterfaceBlock, false&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ParameterStmt, false&gt;&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::OldParameterStmt, false&gt;&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ProcedureDeclarationStmt, false&gt;&gt;, Fortran::parser::Statement&lt;Fortran::parser::OtherSpecificationStmt&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::TypeDeclarationStmt, false&gt;&gt;, Fortran::common::Indirection&lt;Fortran::parser::StructureDef, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::OpenACCDeclarativeConstruct, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::OpenMPDeclarativeConstruct, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::CompilerDirective, false&gt;&gt;(std::variant&lt;Fortran::common::Indirection&lt;Fortran::parser::DerivedTypeDef, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::EnumDef, false&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::GenericStmt, false&gt;&gt;, Fortran::common::Indirection&lt;Fortran::parser::InterfaceBlock, false&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ParameterStmt, false&gt;&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::OldParameterStmt, false&gt;&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ProcedureDeclarationStmt, false&gt;&gt;, Fortran::parser::Statement&lt;Fortran::parser::OtherSpecificationStmt&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::TypeDeclarationStmt, false&gt;&gt;, Fortran::common::Indirection&lt;Fortran::parser::StructureDef, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::OpenACCDeclarativeConstruct, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::OpenMPDeclarativeConstruct, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::CompilerDirective, false&gt;&gt; const&amp;, Fortran::semantics::DeferredCheckVisitor&amp;)::'lambda'(Fortran::semantics::DeferredCheckVisitor const&amp;), std::variant&lt;Fortran::common::Indirection&lt;Fortran::parser::DerivedTypeDef, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::EnumDef, false&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::GenericStmt, false&gt;&gt;, Fortran::common::Indirection&lt;Fortran::parser::InterfaceBlock, false&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ParameterStmt, false&gt;&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::OldParameterStmt, false&gt;&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ProcedureDeclarationStmt, false&gt;&gt;, Fortran::parser::Statement&lt;Fortran::parser::OtherSpecificationStmt&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::TypeDeclarationStmt, false&gt;&gt;, Fortran::common::Indirection&lt;Fortran::parser::StructureDef, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::OpenACCDeclarativeConstruct, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::OpenMPDeclarativeConstruct, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::CompilerDirective, false&gt;&gt; const&amp;&gt;(void Fortran::parser::Walk&lt;Fortran::semantics::DeferredCheckVisitor, Fortran::common::Indirection&lt;Fortran::parser::DerivedTypeDef, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::EnumDef, false&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::GenericStmt, false&gt;&gt;, Fortran::common::Indirection&lt;Fortran::parser::InterfaceBlock, false&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ParameterStmt, false&gt;&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::OldParameterStmt, false&gt;&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ProcedureDeclarationStmt, false&gt;&gt;, Fortran::parser::Statement&lt;Fortran::parser::OtherSpecificationStmt&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::TypeDeclarationStmt, false&gt;&gt;, Fortran::common::Indirection&lt;Fortran::parser::StructureDef, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::OpenACCDeclarativeConstruct, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::OpenMPDeclarativeConstruct, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::CompilerDirective, false&gt;&gt;(std::variant&lt;Fortran::common::Indirection&lt;Fortran::parser::DerivedTypeDef, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::EnumDef, false&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::GenericStmt, false&gt;&gt;, Fortran::common::Indirection&lt;Fortran::parser::InterfaceBlock, false&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ParameterStmt, false&gt;&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::OldParameterStmt, false&gt;&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ProcedureDeclarationStmt, false&gt;&gt;, Fortran::parser::Statement&lt;Fortran::parser::OtherSpecificationStmt&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::TypeDeclarationStmt, false&gt;&gt;, Fortran::common::Indirection&lt;Fortran::parser::StructureDef, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::OpenACCDeclarativeConstruct, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::OpenMPDeclarativeConstruct, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::CompilerDirective, false&gt;&gt; const&amp;, Fortran::semantics::DeferredCheckVisitor&amp;)::'lambda'(Fortran::semantics::DeferredCheckVisitor const&amp;)&amp;&amp;, unsigned long, std::variant&lt;Fortran::common::Indirection&lt;Fortran::parser::DerivedTypeDef, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::EnumDef, false&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::GenericStmt, false&gt;&gt;, Fortran::common::Indirection&lt;Fortran::parser::InterfaceBlock, false&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ParameterStmt, false&gt;&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::OldParameterStmt, false&gt;&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ProcedureDeclarationStmt, false&gt;&gt;, Fortran::parser::Statement&lt;Fortran::parser::OtherSpecificationStmt&gt;, Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::TypeDeclarationStmt, false&gt;&gt;, Fortran::common::Indirection&lt;Fortran::parser::StructureDef, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::OpenACCDeclarativeConstruct, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::OpenMPDeclarativeConstruct, false&gt;, Fortran::common::Indirection&lt;Fortran::parser::CompilerDirective, false&gt;&gt; const&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x3ecc5bd)
#<!-- -->14 0x0000000003ecd979 void Fortran::parser::ForEachInTuple&lt;0ul, void Fortran::parser::Walk&lt;Fortran::semantics::DeferredCheckVisitor, std::__cxx11::list&lt;Fortran::parser::OpenACCDeclarativeConstruct, std::allocator&lt;Fortran::parser::OpenACCDeclarativeConstruct&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::OpenMPDeclarativeConstruct, std::allocator&lt;Fortran::parser::OpenMPDeclarativeConstruct&gt;&gt;, std::__cxx11::list&lt;Fortran::common::Indirection&lt;Fortran::parser::CompilerDirective, false&gt;, std::allocator&lt;Fortran::common::Indirection&lt;Fortran::parser::CompilerDirective, false&gt;&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::UseStmt, false&gt;&gt;, std::allocator&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::UseStmt, false&gt;&gt;&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ImportStmt, false&gt;&gt;, std::allocator&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ImportStmt, false&gt;&gt;&gt;&gt;, Fortran::parser::ImplicitPart, std::__cxx11::list&lt;Fortran::parser::DeclarationConstruct, std::allocator&lt;Fortran::parser::DeclarationConstruct&gt;&gt;&gt;(std::tuple&lt;std::__cxx11::list&lt;Fortran::parser::OpenACCDeclarativeConstruct, std::allocator&lt;Fortran::parser::OpenACCDeclarativeConstruct&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::OpenMPDeclarativeConstruct, std::allocator&lt;Fortran::parser::OpenMPDeclarativeConstruct&gt;&gt;, std::__cxx11::list&lt;Fortran::common::Indirection&lt;Fortran::parser::CompilerDirective, false&gt;, std::allocator&lt;Fortran::common::Indirection&lt;Fortran::parser::CompilerDirective, false&gt;&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::UseStmt, false&gt;&gt;, std::allocator&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::UseStmt, false&gt;&gt;&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ImportStmt, false&gt;&gt;, std::allocator&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ImportStmt, false&gt;&gt;&gt;&gt;, Fortran::parser::ImplicitPart, std::__cxx11::list&lt;Fortran::parser::DeclarationConstruct, std::allocator&lt;Fortran::parser::DeclarationConstruct&gt;&gt;&gt; const&amp;, Fortran::semantics::DeferredCheckVisitor&amp;)::'lambda'(Fortran::semantics::DeferredCheckVisitor const&amp;), std::tuple&lt;std::__cxx11::list&lt;Fortran::parser::OpenACCDeclarativeConstruct, std::allocator&lt;Fortran::parser::OpenACCDeclarativeConstruct&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::OpenMPDeclarativeConstruct, std::allocator&lt;Fortran::parser::OpenMPDeclarativeConstruct&gt;&gt;, std::__cxx11::list&lt;Fortran::common::Indirection&lt;Fortran::parser::CompilerDirective, false&gt;, std::allocator&lt;Fortran::common::Indirection&lt;Fortran::parser::CompilerDirective, false&gt;&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::UseStmt, false&gt;&gt;, std::allocator&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::UseStmt, false&gt;&gt;&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ImportStmt, false&gt;&gt;, std::allocator&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ImportStmt, false&gt;&gt;&gt;&gt;, Fortran::parser::ImplicitPart, std::__cxx11::list&lt;Fortran::parser::DeclarationConstruct, std::allocator&lt;Fortran::parser::DeclarationConstruct&gt;&gt;&gt;&gt;(std::tuple&lt;std::__cxx11::list&lt;Fortran::parser::OpenACCDeclarativeConstruct, std::allocator&lt;Fortran::parser::OpenACCDeclarativeConstruct&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::OpenMPDeclarativeConstruct, std::allocator&lt;Fortran::parser::OpenMPDeclarativeConstruct&gt;&gt;, std::__cxx11::list&lt;Fortran::common::Indirection&lt;Fortran::parser::CompilerDirective, false&gt;, std::allocator&lt;Fortran::common::Indirection&lt;Fortran::parser::CompilerDirective, false&gt;&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::UseStmt, false&gt;&gt;, std::allocator&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::UseStmt, false&gt;&gt;&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ImportStmt, false&gt;&gt;, std::allocator&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ImportStmt, false&gt;&gt;&gt;&gt;, Fortran::parser::ImplicitPart, std::__cxx11::list&lt;Fortran::parser::DeclarationConstruct, std::allocator&lt;Fortran::parser::DeclarationConstruct&gt;&gt;&gt; const&amp;, void Fortran::parser::Walk&lt;Fortran::semantics::DeferredCheckVisitor, std::__cxx11::list&lt;Fortran::parser::OpenACCDeclarativeConstruct, std::allocator&lt;Fortran::parser::OpenACCDeclarativeConstruct&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::OpenMPDeclarativeConstruct, std::allocator&lt;Fortran::parser::OpenMPDeclarativeConstruct&gt;&gt;, std::__cxx11::list&lt;Fortran::common::Indirection&lt;Fortran::parser::CompilerDirective, false&gt;, std::allocator&lt;Fortran::common::Indirection&lt;Fortran::parser::CompilerDirective, false&gt;&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::UseStmt, false&gt;&gt;, std::allocator&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::UseStmt, false&gt;&gt;&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ImportStmt, false&gt;&gt;, std::allocator&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ImportStmt, false&gt;&gt;&gt;&gt;, Fortran::parser::ImplicitPart, std::__cxx11::list&lt;Fortran::parser::DeclarationConstruct, std::allocator&lt;Fortran::parser::DeclarationConstruct&gt;&gt;&gt;(std::tuple&lt;std::__cxx11::list&lt;Fortran::parser::OpenACCDeclarativeConstruct, std::allocator&lt;Fortran::parser::OpenACCDeclarativeConstruct&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::OpenMPDeclarativeConstruct, std::allocator&lt;Fortran::parser::OpenMPDeclarativeConstruct&gt;&gt;, std::__cxx11::list&lt;Fortran::common::Indirection&lt;Fortran::parser::CompilerDirective, false&gt;, std::allocator&lt;Fortran::common::Indirection&lt;Fortran::parser::CompilerDirective, false&gt;&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::UseStmt, false&gt;&gt;, std::allocator&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::UseStmt, false&gt;&gt;&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ImportStmt, false&gt;&gt;, std::allocator&lt;Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::ImportStmt, false&gt;&gt;&gt;&gt;, Fortran::parser::ImplicitPart, std::__cxx11::list&lt;Fortran::parser::DeclarationConstruct, std::allocator&lt;Fortran::parser::DeclarationConstruct&gt;&gt;&gt; const&amp;, Fortran::semantics::DeferredCheckVisitor&amp;)::'lambda'(Fortran::semantics::DeferredCheckVisitor const&amp;)) (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x3ecd979)
#<!-- -->15 0x0000000003ecdda6 Fortran::semantics::ResolveNamesVisitor::FinishSpecificationParts(Fortran::semantics::ProgramTree const&amp;) (.part.0) resolve-names.cpp:0:0
#<!-- -->16 0x0000000003edd1fb Fortran::semantics::ResolveNamesVisitor::Pre(Fortran::parser::ProgramUnit const&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x3edd1fb)
#<!-- -->17 0x0000000003ede804 Fortran::semantics::ResolveNames(Fortran::semantics::SemanticsContext&amp;, Fortran::parser::Program const&amp;, Fortran::semantics::Scope&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x3ede804)
#<!-- -->18 0x0000000003f37b8e Fortran::semantics::Semantics::Perform() (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x3f37b8e)
#<!-- -->19 0x000000000357770d Fortran::frontend::FrontendAction::runSemanticChecks() (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x357770d)
#<!-- -->20 0x00000000038a701a Fortran::frontend::CodeGenAction::beginSourceFileAction() (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x38a701a)
#<!-- -->21 0x0000000003576b15 Fortran::frontend::FrontendAction::beginSourceFile(Fortran::frontend::CompilerInstance&amp;, Fortran::frontend::FrontendInputFile const&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x3576b15)
#<!-- -->22 0x0000000003566417 Fortran::frontend::CompilerInstance::executeAction(Fortran::frontend::FrontendAction&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x3566417)
#<!-- -->23 0x000000000357cb4d Fortran::frontend::executeCompilerInvocation(Fortran::frontend::CompilerInstance*) (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x357cb4d)
#<!-- -->24 0x0000000001c57408 fc1_main(llvm::ArrayRef&lt;char const*&gt;, char const*) (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x1c57408)
#<!-- -->25 0x0000000001b39c9c main (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x1b39c9c)
#<!-- -->26 0x00007121df829d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#<!-- -->27 0x00007121df829e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#<!-- -->28 0x0000000001c5636e _start (/opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin/flang-new+0x1c5636e)
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 20.0.0git (https://github.com/llvm/llvm-project.git 3de76e4f57bdba612ddca7ac53b2f5787929391a)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /opt/compiler-explorer/clang-llvmflang-trunk-20240730/bin

Error message of ifx looks reasonable to me:

ifx: remark #<!-- -->10440: Note that use of a debug option without any optimization-level option will turnoff most compiler optimizations similar to use of '-O0'
/app/example.f90(1): error #<!-- -->6930: The size of the array dimension is too large, and overflow occurred when computing the array size.   [X]
real :: x(55555,55555,55555,55555,55555) = 0.0
--------^
/app/example.f90(1): error #<!-- -->6349: Integer overflow occurred when evaluating the offset from zero.   [X]
real :: x(55555,55555,55555,55555,55555) = 0.0
--------^
compilation aborted for /app/example.f90 (code 1)
Compiler returned: 1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Indicates an unexpected problem or unintended behavior crash Prefer [crash-on-valid] or [crash-on-invalid] flang:frontend
Projects
None yet
Development

No branches or pull requests

3 participants