-
Notifications
You must be signed in to change notification settings - Fork 11.8k
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
Labels
bug
Indicates an unexpected problem or unintended behavior
crash
Prefer [crash-on-valid] or [crash-on-invalid]
flang:frontend
Comments
github-actions
bot
added
the
flang
Flang issues not falling into any other category
label
Jul 30, 2024
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
@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&, 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 |
@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&, 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 |
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
Reproducible on Godbolt:
https://godbolt.org/z/9PsMbz68K
Reproducer:
Stack dump:
Error message of ifx looks reasonable to me:
The text was updated successfully, but these errors were encountered: