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(p) failed at /root/llvm-project/flang/include/flang/Semantics/symbol.h(791) #92647

Closed
k-arrows opened this issue May 18, 2024 · 3 comments · Fixed by #92795
Assignees
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/s9f8bMrh8

Reproducer:

$ cat test.f90
interface a1
  subroutine s1
    interface a2
      subroutine s2
        real x(k)
      end subroutine
    end interface

    real y(k)

  end subroutine
end interface
end

Stack dump:

fatal internal error: CHECK(p) failed at /root/llvm-project/flang/include/flang/Semantics/symbol.h(791)
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-20240518/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-20240518/bin/.. -mframe-pointer=all -o /app/output.s -x f95-cpp-input /app/example.f90
 #0 0x0000000003870558 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x3870558)
 #1 0x000000000386decc SignalHandler(int) Signals.cpp:0:0
 #2 0x00007b0924a42520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #3 0x00007b0924a969fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
 #4 0x00007b0924a42476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
 #5 0x00007b0924a287f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
 #6 0x0000000004e468c9 (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x4e468c9)
 #7 0x00000000041d90f2 Fortran::semantics::DeclarationVisitor::CheckForHostAssociatedImplicit(Fortran::parser::Name const&) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x41d90f2)
 #8 0x00000000041d91c9 Fortran::semantics::DeclarationVisitor::ResolveName(Fortran::parser::Name const&) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x41d91c9)
 #9 0x00000000041d9bbd Fortran::semantics::DeclarationVisitor::ResolveDataRef(Fortran::parser::DataRef const&) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x41d9bbd)
#10 0x00000000041da3c0 void Fortran::parser::Walk<Fortran::semantics::ResolveNamesVisitor>(Fortran::parser::Designator const&, Fortran::semantics::ResolveNamesVisitor&) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x41da3c0)
#11 0x00000000041d113e void Fortran::parser::IterativeWalk<Fortran::parser::Expr const, Fortran::semantics::ResolveNamesVisitor, Fortran::parser::Expr::IntrinsicUnary const, Fortran::parser::Expr::IntrinsicBinary const>(Fortran::parser::Expr const&, Fortran::semantics::ResolveNamesVisitor&) resolve-names.cpp:0:0
#12 0x00000000041d2acc std::enable_if<UnionTrait<Fortran::parser::ArraySpec>, void>::type Fortran::parser::Walk<Fortran::parser::ArraySpec, Fortran::semantics::ResolveNamesVisitor>(Fortran::parser::ArraySpec const&, Fortran::semantics::ResolveNamesVisitor&) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x41d2acc)
#13 0x00000000041e32da void Fortran::parser::ForEachInTuple<1ul, void Fortran::parser::Walk<Fortran::semantics::ResolveNamesVisitor, Fortran::parser::DeclarationTypeSpec, std::__cxx11::list<Fortran::parser::AttrSpec, std::allocator<Fortran::parser::AttrSpec>>, std::__cxx11::list<Fortran::parser::EntityDecl, std::allocator<Fortran::parser::EntityDecl>>>(std::tuple<Fortran::parser::DeclarationTypeSpec, std::__cxx11::list<Fortran::parser::AttrSpec, std::allocator<Fortran::parser::AttrSpec>>, std::__cxx11::list<Fortran::parser::EntityDecl, std::allocator<Fortran::parser::EntityDecl>>> const&, Fortran::semantics::ResolveNamesVisitor&)::'lambda'(Fortran::semantics::ResolveNamesVisitor const&), std::tuple<Fortran::parser::DeclarationTypeSpec, std::__cxx11::list<Fortran::parser::AttrSpec, std::allocator<Fortran::parser::AttrSpec>>, std::__cxx11::list<Fortran::parser::EntityDecl, std::allocator<Fortran::parser::EntityDecl>>>>(std::tuple<Fortran::parser::DeclarationTypeSpec, std::__cxx11::list<Fortran::parser::AttrSpec, std::allocator<Fortran::parser::AttrSpec>>, std::__cxx11::list<Fortran::parser::EntityDecl, std::allocator<Fortran::parser::EntityDecl>>> const&, void Fortran::parser::Walk<Fortran::semantics::ResolveNamesVisitor, Fortran::parser::DeclarationTypeSpec, std::__cxx11::list<Fortran::parser::AttrSpec, std::allocator<Fortran::parser::AttrSpec>>, std::__cxx11::list<Fortran::parser::EntityDecl, std::allocator<Fortran::parser::EntityDecl>>>(std::tuple<Fortran::parser::DeclarationTypeSpec, std::__cxx11::list<Fortran::parser::AttrSpec, std::allocator<Fortran::parser::AttrSpec>>, std::__cxx11::list<Fortran::parser::EntityDecl, std::allocator<Fortran::parser::EntityDecl>>> const&, Fortran::semantics::ResolveNamesVisitor&)::'lambda'(Fortran::semantics::ResolveNamesVisitor const&)) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x41e32da)
#14 0x00000000041e3637 void Fortran::parser::Walk<Fortran::common::Indirection<Fortran::parser::TypeDeclarationStmt, false>, Fortran::semantics::ResolveNamesVisitor>(Fortran::parser::Statement<Fortran::common::Indirection<Fortran::parser::TypeDeclarationStmt, false>> const&, Fortran::semantics::ResolveNamesVisitor&) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x41e3637)
#15 0x00000000041ea58c void Fortran::parser::Walk<Fortran::parser::DeclarationConstruct, Fortran::semantics::ResolveNamesVisitor>(std::__cxx11::list<Fortran::parser::DeclarationConstruct, std::allocator<Fortran::parser::DeclarationConstruct>> const&, Fortran::semantics::ResolveNamesVisitor&) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x41ea58c)
#16 0x00000000041eb9ed Fortran::semantics::ResolveNamesVisitor::Pre(Fortran::parser::SpecificationPart const&) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x41eb9ed)
#17 0x00000000041e9a89 std::enable_if<TupleTrait<Fortran::parser::SpecificationPart>, void>::type Fortran::parser::Walk<Fortran::parser::SpecificationPart, Fortran::semantics::ResolveNamesVisitor>(Fortran::parser::SpecificationPart const&, Fortran::semantics::ResolveNamesVisitor&) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x41e9a89)
#18 0x00000000041e9dbe void Fortran::parser::Walk<Fortran::parser::InterfaceSpecification, Fortran::semantics::ResolveNamesVisitor>(std::__cxx11::list<Fortran::parser::InterfaceSpecification, std::allocator<Fortran::parser::InterfaceSpecification>> const&, Fortran::semantics::ResolveNamesVisitor&) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x41e9dbe)
#19 0x00000000041ea066 void Fortran::parser::ForEachInTuple<0ul, void Fortran::parser::Walk<Fortran::semantics::ResolveNamesVisitor, Fortran::parser::Statement<Fortran::parser::InterfaceStmt>, std::__cxx11::list<Fortran::parser::InterfaceSpecification, std::allocator<Fortran::parser::InterfaceSpecification>>, Fortran::parser::Statement<Fortran::parser::EndInterfaceStmt>>(std::tuple<Fortran::parser::Statement<Fortran::parser::InterfaceStmt>, std::__cxx11::list<Fortran::parser::InterfaceSpecification, std::allocator<Fortran::parser::InterfaceSpecification>>, Fortran::parser::Statement<Fortran::parser::EndInterfaceStmt>> const&, Fortran::semantics::ResolveNamesVisitor&)::'lambda'(Fortran::semantics::ResolveNamesVisitor const&), std::tuple<Fortran::parser::Statement<Fortran::parser::InterfaceStmt>, std::__cxx11::list<Fortran::parser::InterfaceSpecification, std::allocator<Fortran::parser::InterfaceSpecification>>, Fortran::parser::Statement<Fortran::parser::EndInterfaceStmt>>>(std::tuple<Fortran::parser::Statement<Fortran::parser::InterfaceStmt>, std::__cxx11::list<Fortran::parser::InterfaceSpecification, std::allocator<Fortran::parser::InterfaceSpecification>>, Fortran::parser::Statement<Fortran::parser::EndInterfaceStmt>> const&, void Fortran::parser::Walk<Fortran::semantics::ResolveNamesVisitor, Fortran::parser::Statement<Fortran::parser::InterfaceStmt>, std::__cxx11::list<Fortran::parser::InterfaceSpecification, std::allocator<Fortran::parser::InterfaceSpecification>>, Fortran::parser::Statement<Fortran::parser::EndInterfaceStmt>>(std::tuple<Fortran::parser::Statement<Fortran::parser::InterfaceStmt>, std::__cxx11::list<Fortran::parser::InterfaceSpecification, std::allocator<Fortran::parser::InterfaceSpecification>>, Fortran::parser::Statement<Fortran::parser::EndInterfaceStmt>> const&, Fortran::semantics::ResolveNamesVisitor&)::'lambda'(Fortran::semantics::ResolveNamesVisitor const&)) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x41ea066)
#20 0x00000000041ea444 void Fortran::parser::Walk<Fortran::parser::DeclarationConstruct, Fortran::semantics::ResolveNamesVisitor>(std::__cxx11::list<Fortran::parser::DeclarationConstruct, std::allocator<Fortran::parser::DeclarationConstruct>> const&, Fortran::semantics::ResolveNamesVisitor&) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x41ea444)
#21 0x00000000041eb9ed Fortran::semantics::ResolveNamesVisitor::Pre(Fortran::parser::SpecificationPart const&) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x41eb9ed)
#22 0x00000000041e9a89 std::enable_if<TupleTrait<Fortran::parser::SpecificationPart>, void>::type Fortran::parser::Walk<Fortran::parser::SpecificationPart, Fortran::semantics::ResolveNamesVisitor>(Fortran::parser::SpecificationPart const&, Fortran::semantics::ResolveNamesVisitor&) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x41e9a89)
#23 0x0000000004210e64 Fortran::semantics::ResolveNamesVisitor::ResolveSpecificationParts(Fortran::semantics::ProgramTree&) (.part.0) resolve-names.cpp:0:0
#24 0x00000000042114f6 Fortran::semantics::ResolveNamesVisitor::Pre(Fortran::parser::ProgramUnit const&) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x42114f6)
#25 0x0000000004212a04 Fortran::semantics::ResolveNames(Fortran::semantics::SemanticsContext&, Fortran::parser::Program const&, Fortran::semantics::Scope&) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x4212a04)
#26 0x000000000426be51 Fortran::semantics::Semantics::Perform() (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x426be51)
#27 0x00000000038c2005 Fortran::frontend::FrontendAction::runSemanticChecks() (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x38c2005)
#28 0x0000000003bef85a Fortran::frontend::CodeGenAction::beginSourceFileAction() (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x3bef85a)
#29 0x00000000038c1415 Fortran::frontend::FrontendAction::beginSourceFile(Fortran::frontend::CompilerInstance&, Fortran::frontend::FrontendInputFile const&) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x38c1415)
#30 0x00000000038b0d17 Fortran::frontend::CompilerInstance::executeAction(Fortran::frontend::FrontendAction&) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x38b0d17)
#31 0x00000000038c745d Fortran::frontend::executeCompilerInvocation(Fortran::frontend::CompilerInstance*) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x38c745d)
#32 0x0000000002020c08 fc1_main(llvm::ArrayRef<char const*>, char const*) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x2020c08)
#33 0x0000000001f0ede4 main (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x1f0ede4)
#34 0x00007b0924a29d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#35 0x00007b0924a29e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#36 0x000000000201fb6e _start (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x201fb6e)
flang-new: error: unable to execute command: Aborted (core dumped)
flang-new: error: flang frontend command failed due to signal (use -v to see invocation)
flang-new version 19.0.0git (https://github.com/llvm/llvm-project.git 881f20e958e80bd30463fc57d2d3e891bcb8a571)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin
@github-actions github-actions bot added the flang Flang issues not falling into any other category label May 18, 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 May 18, 2024
@llvmbot
Copy link
Collaborator

llvmbot commented May 18, 2024

@llvm/issue-subscribers-flang-frontend

Author: None (k-arrows)

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

Reproducer:

$ cat test.f90
interface a1
  subroutine s1
    interface a2
      subroutine s2
        real x(k)
      end subroutine
    end interface

    real y(k)

  end subroutine
end interface
end

Stack dump:

fatal internal error: CHECK(p) failed at /root/llvm-project/flang/include/flang/Semantics/symbol.h(791)
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-20240518/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-20240518/bin/.. -mframe-pointer=all -o /app/output.s -x f95-cpp-input /app/example.f90
 #<!-- -->0 0x0000000003870558 llvm::sys::PrintStackTrace(llvm::raw_ostream&amp;, int) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x3870558)
 #<!-- -->1 0x000000000386decc SignalHandler(int) Signals.cpp:0:0
 #<!-- -->2 0x00007b0924a42520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #<!-- -->3 0x00007b0924a969fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
 #<!-- -->4 0x00007b0924a42476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
 #<!-- -->5 0x00007b0924a287f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
 #<!-- -->6 0x0000000004e468c9 (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x4e468c9)
 #<!-- -->7 0x00000000041d90f2 Fortran::semantics::DeclarationVisitor::CheckForHostAssociatedImplicit(Fortran::parser::Name const&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x41d90f2)
 #<!-- -->8 0x00000000041d91c9 Fortran::semantics::DeclarationVisitor::ResolveName(Fortran::parser::Name const&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x41d91c9)
 #<!-- -->9 0x00000000041d9bbd Fortran::semantics::DeclarationVisitor::ResolveDataRef(Fortran::parser::DataRef const&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x41d9bbd)
#<!-- -->10 0x00000000041da3c0 void Fortran::parser::Walk&lt;Fortran::semantics::ResolveNamesVisitor&gt;(Fortran::parser::Designator const&amp;, Fortran::semantics::ResolveNamesVisitor&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x41da3c0)
#<!-- -->11 0x00000000041d113e void Fortran::parser::IterativeWalk&lt;Fortran::parser::Expr const, Fortran::semantics::ResolveNamesVisitor, Fortran::parser::Expr::IntrinsicUnary const, Fortran::parser::Expr::IntrinsicBinary const&gt;(Fortran::parser::Expr const&amp;, Fortran::semantics::ResolveNamesVisitor&amp;) resolve-names.cpp:0:0
#<!-- -->12 0x00000000041d2acc std::enable_if&lt;UnionTrait&lt;Fortran::parser::ArraySpec&gt;, void&gt;::type Fortran::parser::Walk&lt;Fortran::parser::ArraySpec, Fortran::semantics::ResolveNamesVisitor&gt;(Fortran::parser::ArraySpec const&amp;, Fortran::semantics::ResolveNamesVisitor&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x41d2acc)
#<!-- -->13 0x00000000041e32da void Fortran::parser::ForEachInTuple&lt;1ul, void Fortran::parser::Walk&lt;Fortran::semantics::ResolveNamesVisitor, Fortran::parser::DeclarationTypeSpec, std::__cxx11::list&lt;Fortran::parser::AttrSpec, std::allocator&lt;Fortran::parser::AttrSpec&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::EntityDecl, std::allocator&lt;Fortran::parser::EntityDecl&gt;&gt;&gt;(std::tuple&lt;Fortran::parser::DeclarationTypeSpec, std::__cxx11::list&lt;Fortran::parser::AttrSpec, std::allocator&lt;Fortran::parser::AttrSpec&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::EntityDecl, std::allocator&lt;Fortran::parser::EntityDecl&gt;&gt;&gt; const&amp;, Fortran::semantics::ResolveNamesVisitor&amp;)::'lambda'(Fortran::semantics::ResolveNamesVisitor const&amp;), std::tuple&lt;Fortran::parser::DeclarationTypeSpec, std::__cxx11::list&lt;Fortran::parser::AttrSpec, std::allocator&lt;Fortran::parser::AttrSpec&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::EntityDecl, std::allocator&lt;Fortran::parser::EntityDecl&gt;&gt;&gt;&gt;(std::tuple&lt;Fortran::parser::DeclarationTypeSpec, std::__cxx11::list&lt;Fortran::parser::AttrSpec, std::allocator&lt;Fortran::parser::AttrSpec&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::EntityDecl, std::allocator&lt;Fortran::parser::EntityDecl&gt;&gt;&gt; const&amp;, void Fortran::parser::Walk&lt;Fortran::semantics::ResolveNamesVisitor, Fortran::parser::DeclarationTypeSpec, std::__cxx11::list&lt;Fortran::parser::AttrSpec, std::allocator&lt;Fortran::parser::AttrSpec&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::EntityDecl, std::allocator&lt;Fortran::parser::EntityDecl&gt;&gt;&gt;(std::tuple&lt;Fortran::parser::DeclarationTypeSpec, std::__cxx11::list&lt;Fortran::parser::AttrSpec, std::allocator&lt;Fortran::parser::AttrSpec&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::EntityDecl, std::allocator&lt;Fortran::parser::EntityDecl&gt;&gt;&gt; const&amp;, Fortran::semantics::ResolveNamesVisitor&amp;)::'lambda'(Fortran::semantics::ResolveNamesVisitor const&amp;)) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x41e32da)
#<!-- -->14 0x00000000041e3637 void Fortran::parser::Walk&lt;Fortran::common::Indirection&lt;Fortran::parser::TypeDeclarationStmt, false&gt;, Fortran::semantics::ResolveNamesVisitor&gt;(Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::TypeDeclarationStmt, false&gt;&gt; const&amp;, Fortran::semantics::ResolveNamesVisitor&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x41e3637)
#<!-- -->15 0x00000000041ea58c void Fortran::parser::Walk&lt;Fortran::parser::DeclarationConstruct, Fortran::semantics::ResolveNamesVisitor&gt;(std::__cxx11::list&lt;Fortran::parser::DeclarationConstruct, std::allocator&lt;Fortran::parser::DeclarationConstruct&gt;&gt; const&amp;, Fortran::semantics::ResolveNamesVisitor&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x41ea58c)
#<!-- -->16 0x00000000041eb9ed Fortran::semantics::ResolveNamesVisitor::Pre(Fortran::parser::SpecificationPart const&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x41eb9ed)
#<!-- -->17 0x00000000041e9a89 std::enable_if&lt;TupleTrait&lt;Fortran::parser::SpecificationPart&gt;, void&gt;::type Fortran::parser::Walk&lt;Fortran::parser::SpecificationPart, Fortran::semantics::ResolveNamesVisitor&gt;(Fortran::parser::SpecificationPart const&amp;, Fortran::semantics::ResolveNamesVisitor&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x41e9a89)
#<!-- -->18 0x00000000041e9dbe void Fortran::parser::Walk&lt;Fortran::parser::InterfaceSpecification, Fortran::semantics::ResolveNamesVisitor&gt;(std::__cxx11::list&lt;Fortran::parser::InterfaceSpecification, std::allocator&lt;Fortran::parser::InterfaceSpecification&gt;&gt; const&amp;, Fortran::semantics::ResolveNamesVisitor&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x41e9dbe)
#<!-- -->19 0x00000000041ea066 void Fortran::parser::ForEachInTuple&lt;0ul, void Fortran::parser::Walk&lt;Fortran::semantics::ResolveNamesVisitor, Fortran::parser::Statement&lt;Fortran::parser::InterfaceStmt&gt;, std::__cxx11::list&lt;Fortran::parser::InterfaceSpecification, std::allocator&lt;Fortran::parser::InterfaceSpecification&gt;&gt;, Fortran::parser::Statement&lt;Fortran::parser::EndInterfaceStmt&gt;&gt;(std::tuple&lt;Fortran::parser::Statement&lt;Fortran::parser::InterfaceStmt&gt;, std::__cxx11::list&lt;Fortran::parser::InterfaceSpecification, std::allocator&lt;Fortran::parser::InterfaceSpecification&gt;&gt;, Fortran::parser::Statement&lt;Fortran::parser::EndInterfaceStmt&gt;&gt; const&amp;, Fortran::semantics::ResolveNamesVisitor&amp;)::'lambda'(Fortran::semantics::ResolveNamesVisitor const&amp;), std::tuple&lt;Fortran::parser::Statement&lt;Fortran::parser::InterfaceStmt&gt;, std::__cxx11::list&lt;Fortran::parser::InterfaceSpecification, std::allocator&lt;Fortran::parser::InterfaceSpecification&gt;&gt;, Fortran::parser::Statement&lt;Fortran::parser::EndInterfaceStmt&gt;&gt;&gt;(std::tuple&lt;Fortran::parser::Statement&lt;Fortran::parser::InterfaceStmt&gt;, std::__cxx11::list&lt;Fortran::parser::InterfaceSpecification, std::allocator&lt;Fortran::parser::InterfaceSpecification&gt;&gt;, Fortran::parser::Statement&lt;Fortran::parser::EndInterfaceStmt&gt;&gt; const&amp;, void Fortran::parser::Walk&lt;Fortran::semantics::ResolveNamesVisitor, Fortran::parser::Statement&lt;Fortran::parser::InterfaceStmt&gt;, std::__cxx11::list&lt;Fortran::parser::InterfaceSpecification, std::allocator&lt;Fortran::parser::InterfaceSpecification&gt;&gt;, Fortran::parser::Statement&lt;Fortran::parser::EndInterfaceStmt&gt;&gt;(std::tuple&lt;Fortran::parser::Statement&lt;Fortran::parser::InterfaceStmt&gt;, std::__cxx11::list&lt;Fortran::parser::InterfaceSpecification, std::allocator&lt;Fortran::parser::InterfaceSpecification&gt;&gt;, Fortran::parser::Statement&lt;Fortran::parser::EndInterfaceStmt&gt;&gt; const&amp;, Fortran::semantics::ResolveNamesVisitor&amp;)::'lambda'(Fortran::semantics::ResolveNamesVisitor const&amp;)) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x41ea066)
#<!-- -->20 0x00000000041ea444 void Fortran::parser::Walk&lt;Fortran::parser::DeclarationConstruct, Fortran::semantics::ResolveNamesVisitor&gt;(std::__cxx11::list&lt;Fortran::parser::DeclarationConstruct, std::allocator&lt;Fortran::parser::DeclarationConstruct&gt;&gt; const&amp;, Fortran::semantics::ResolveNamesVisitor&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x41ea444)
#<!-- -->21 0x00000000041eb9ed Fortran::semantics::ResolveNamesVisitor::Pre(Fortran::parser::SpecificationPart const&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x41eb9ed)
#<!-- -->22 0x00000000041e9a89 std::enable_if&lt;TupleTrait&lt;Fortran::parser::SpecificationPart&gt;, void&gt;::type Fortran::parser::Walk&lt;Fortran::parser::SpecificationPart, Fortran::semantics::ResolveNamesVisitor&gt;(Fortran::parser::SpecificationPart const&amp;, Fortran::semantics::ResolveNamesVisitor&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x41e9a89)
#<!-- -->23 0x0000000004210e64 Fortran::semantics::ResolveNamesVisitor::ResolveSpecificationParts(Fortran::semantics::ProgramTree&amp;) (.part.0) resolve-names.cpp:0:0
#<!-- -->24 0x00000000042114f6 Fortran::semantics::ResolveNamesVisitor::Pre(Fortran::parser::ProgramUnit const&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x42114f6)
#<!-- -->25 0x0000000004212a04 Fortran::semantics::ResolveNames(Fortran::semantics::SemanticsContext&amp;, Fortran::parser::Program const&amp;, Fortran::semantics::Scope&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x4212a04)
#<!-- -->26 0x000000000426be51 Fortran::semantics::Semantics::Perform() (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x426be51)
#<!-- -->27 0x00000000038c2005 Fortran::frontend::FrontendAction::runSemanticChecks() (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x38c2005)
#<!-- -->28 0x0000000003bef85a Fortran::frontend::CodeGenAction::beginSourceFileAction() (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x3bef85a)
#<!-- -->29 0x00000000038c1415 Fortran::frontend::FrontendAction::beginSourceFile(Fortran::frontend::CompilerInstance&amp;, Fortran::frontend::FrontendInputFile const&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x38c1415)
#<!-- -->30 0x00000000038b0d17 Fortran::frontend::CompilerInstance::executeAction(Fortran::frontend::FrontendAction&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x38b0d17)
#<!-- -->31 0x00000000038c745d Fortran::frontend::executeCompilerInvocation(Fortran::frontend::CompilerInstance*) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x38c745d)
#<!-- -->32 0x0000000002020c08 fc1_main(llvm::ArrayRef&lt;char const*&gt;, char const*) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x2020c08)
#<!-- -->33 0x0000000001f0ede4 main (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x1f0ede4)
#<!-- -->34 0x00007b0924a29d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#<!-- -->35 0x00007b0924a29e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#<!-- -->36 0x000000000201fb6e _start (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x201fb6e)
flang-new: error: unable to execute command: Aborted (core dumped)
flang-new: error: flang frontend command failed due to signal (use -v to see invocation)
flang-new version 19.0.0git (https://github.com/llvm/llvm-project.git 881f20e958e80bd30463fc57d2d3e891bcb8a571)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin

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

llvmbot commented May 19, 2024

@llvm/issue-subscribers-bug

Author: None (k-arrows)

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

Reproducer:

$ cat test.f90
interface a1
  subroutine s1
    interface a2
      subroutine s2
        real x(k)
      end subroutine
    end interface

    real y(k)

  end subroutine
end interface
end

Stack dump:

fatal internal error: CHECK(p) failed at /root/llvm-project/flang/include/flang/Semantics/symbol.h(791)
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-20240518/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-20240518/bin/.. -mframe-pointer=all -o /app/output.s -x f95-cpp-input /app/example.f90
 #<!-- -->0 0x0000000003870558 llvm::sys::PrintStackTrace(llvm::raw_ostream&amp;, int) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x3870558)
 #<!-- -->1 0x000000000386decc SignalHandler(int) Signals.cpp:0:0
 #<!-- -->2 0x00007b0924a42520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #<!-- -->3 0x00007b0924a969fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
 #<!-- -->4 0x00007b0924a42476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
 #<!-- -->5 0x00007b0924a287f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
 #<!-- -->6 0x0000000004e468c9 (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x4e468c9)
 #<!-- -->7 0x00000000041d90f2 Fortran::semantics::DeclarationVisitor::CheckForHostAssociatedImplicit(Fortran::parser::Name const&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x41d90f2)
 #<!-- -->8 0x00000000041d91c9 Fortran::semantics::DeclarationVisitor::ResolveName(Fortran::parser::Name const&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x41d91c9)
 #<!-- -->9 0x00000000041d9bbd Fortran::semantics::DeclarationVisitor::ResolveDataRef(Fortran::parser::DataRef const&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x41d9bbd)
#<!-- -->10 0x00000000041da3c0 void Fortran::parser::Walk&lt;Fortran::semantics::ResolveNamesVisitor&gt;(Fortran::parser::Designator const&amp;, Fortran::semantics::ResolveNamesVisitor&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x41da3c0)
#<!-- -->11 0x00000000041d113e void Fortran::parser::IterativeWalk&lt;Fortran::parser::Expr const, Fortran::semantics::ResolveNamesVisitor, Fortran::parser::Expr::IntrinsicUnary const, Fortran::parser::Expr::IntrinsicBinary const&gt;(Fortran::parser::Expr const&amp;, Fortran::semantics::ResolveNamesVisitor&amp;) resolve-names.cpp:0:0
#<!-- -->12 0x00000000041d2acc std::enable_if&lt;UnionTrait&lt;Fortran::parser::ArraySpec&gt;, void&gt;::type Fortran::parser::Walk&lt;Fortran::parser::ArraySpec, Fortran::semantics::ResolveNamesVisitor&gt;(Fortran::parser::ArraySpec const&amp;, Fortran::semantics::ResolveNamesVisitor&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x41d2acc)
#<!-- -->13 0x00000000041e32da void Fortran::parser::ForEachInTuple&lt;1ul, void Fortran::parser::Walk&lt;Fortran::semantics::ResolveNamesVisitor, Fortran::parser::DeclarationTypeSpec, std::__cxx11::list&lt;Fortran::parser::AttrSpec, std::allocator&lt;Fortran::parser::AttrSpec&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::EntityDecl, std::allocator&lt;Fortran::parser::EntityDecl&gt;&gt;&gt;(std::tuple&lt;Fortran::parser::DeclarationTypeSpec, std::__cxx11::list&lt;Fortran::parser::AttrSpec, std::allocator&lt;Fortran::parser::AttrSpec&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::EntityDecl, std::allocator&lt;Fortran::parser::EntityDecl&gt;&gt;&gt; const&amp;, Fortran::semantics::ResolveNamesVisitor&amp;)::'lambda'(Fortran::semantics::ResolveNamesVisitor const&amp;), std::tuple&lt;Fortran::parser::DeclarationTypeSpec, std::__cxx11::list&lt;Fortran::parser::AttrSpec, std::allocator&lt;Fortran::parser::AttrSpec&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::EntityDecl, std::allocator&lt;Fortran::parser::EntityDecl&gt;&gt;&gt;&gt;(std::tuple&lt;Fortran::parser::DeclarationTypeSpec, std::__cxx11::list&lt;Fortran::parser::AttrSpec, std::allocator&lt;Fortran::parser::AttrSpec&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::EntityDecl, std::allocator&lt;Fortran::parser::EntityDecl&gt;&gt;&gt; const&amp;, void Fortran::parser::Walk&lt;Fortran::semantics::ResolveNamesVisitor, Fortran::parser::DeclarationTypeSpec, std::__cxx11::list&lt;Fortran::parser::AttrSpec, std::allocator&lt;Fortran::parser::AttrSpec&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::EntityDecl, std::allocator&lt;Fortran::parser::EntityDecl&gt;&gt;&gt;(std::tuple&lt;Fortran::parser::DeclarationTypeSpec, std::__cxx11::list&lt;Fortran::parser::AttrSpec, std::allocator&lt;Fortran::parser::AttrSpec&gt;&gt;, std::__cxx11::list&lt;Fortran::parser::EntityDecl, std::allocator&lt;Fortran::parser::EntityDecl&gt;&gt;&gt; const&amp;, Fortran::semantics::ResolveNamesVisitor&amp;)::'lambda'(Fortran::semantics::ResolveNamesVisitor const&amp;)) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x41e32da)
#<!-- -->14 0x00000000041e3637 void Fortran::parser::Walk&lt;Fortran::common::Indirection&lt;Fortran::parser::TypeDeclarationStmt, false&gt;, Fortran::semantics::ResolveNamesVisitor&gt;(Fortran::parser::Statement&lt;Fortran::common::Indirection&lt;Fortran::parser::TypeDeclarationStmt, false&gt;&gt; const&amp;, Fortran::semantics::ResolveNamesVisitor&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x41e3637)
#<!-- -->15 0x00000000041ea58c void Fortran::parser::Walk&lt;Fortran::parser::DeclarationConstruct, Fortran::semantics::ResolveNamesVisitor&gt;(std::__cxx11::list&lt;Fortran::parser::DeclarationConstruct, std::allocator&lt;Fortran::parser::DeclarationConstruct&gt;&gt; const&amp;, Fortran::semantics::ResolveNamesVisitor&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x41ea58c)
#<!-- -->16 0x00000000041eb9ed Fortran::semantics::ResolveNamesVisitor::Pre(Fortran::parser::SpecificationPart const&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x41eb9ed)
#<!-- -->17 0x00000000041e9a89 std::enable_if&lt;TupleTrait&lt;Fortran::parser::SpecificationPart&gt;, void&gt;::type Fortran::parser::Walk&lt;Fortran::parser::SpecificationPart, Fortran::semantics::ResolveNamesVisitor&gt;(Fortran::parser::SpecificationPart const&amp;, Fortran::semantics::ResolveNamesVisitor&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x41e9a89)
#<!-- -->18 0x00000000041e9dbe void Fortran::parser::Walk&lt;Fortran::parser::InterfaceSpecification, Fortran::semantics::ResolveNamesVisitor&gt;(std::__cxx11::list&lt;Fortran::parser::InterfaceSpecification, std::allocator&lt;Fortran::parser::InterfaceSpecification&gt;&gt; const&amp;, Fortran::semantics::ResolveNamesVisitor&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x41e9dbe)
#<!-- -->19 0x00000000041ea066 void Fortran::parser::ForEachInTuple&lt;0ul, void Fortran::parser::Walk&lt;Fortran::semantics::ResolveNamesVisitor, Fortran::parser::Statement&lt;Fortran::parser::InterfaceStmt&gt;, std::__cxx11::list&lt;Fortran::parser::InterfaceSpecification, std::allocator&lt;Fortran::parser::InterfaceSpecification&gt;&gt;, Fortran::parser::Statement&lt;Fortran::parser::EndInterfaceStmt&gt;&gt;(std::tuple&lt;Fortran::parser::Statement&lt;Fortran::parser::InterfaceStmt&gt;, std::__cxx11::list&lt;Fortran::parser::InterfaceSpecification, std::allocator&lt;Fortran::parser::InterfaceSpecification&gt;&gt;, Fortran::parser::Statement&lt;Fortran::parser::EndInterfaceStmt&gt;&gt; const&amp;, Fortran::semantics::ResolveNamesVisitor&amp;)::'lambda'(Fortran::semantics::ResolveNamesVisitor const&amp;), std::tuple&lt;Fortran::parser::Statement&lt;Fortran::parser::InterfaceStmt&gt;, std::__cxx11::list&lt;Fortran::parser::InterfaceSpecification, std::allocator&lt;Fortran::parser::InterfaceSpecification&gt;&gt;, Fortran::parser::Statement&lt;Fortran::parser::EndInterfaceStmt&gt;&gt;&gt;(std::tuple&lt;Fortran::parser::Statement&lt;Fortran::parser::InterfaceStmt&gt;, std::__cxx11::list&lt;Fortran::parser::InterfaceSpecification, std::allocator&lt;Fortran::parser::InterfaceSpecification&gt;&gt;, Fortran::parser::Statement&lt;Fortran::parser::EndInterfaceStmt&gt;&gt; const&amp;, void Fortran::parser::Walk&lt;Fortran::semantics::ResolveNamesVisitor, Fortran::parser::Statement&lt;Fortran::parser::InterfaceStmt&gt;, std::__cxx11::list&lt;Fortran::parser::InterfaceSpecification, std::allocator&lt;Fortran::parser::InterfaceSpecification&gt;&gt;, Fortran::parser::Statement&lt;Fortran::parser::EndInterfaceStmt&gt;&gt;(std::tuple&lt;Fortran::parser::Statement&lt;Fortran::parser::InterfaceStmt&gt;, std::__cxx11::list&lt;Fortran::parser::InterfaceSpecification, std::allocator&lt;Fortran::parser::InterfaceSpecification&gt;&gt;, Fortran::parser::Statement&lt;Fortran::parser::EndInterfaceStmt&gt;&gt; const&amp;, Fortran::semantics::ResolveNamesVisitor&amp;)::'lambda'(Fortran::semantics::ResolveNamesVisitor const&amp;)) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x41ea066)
#<!-- -->20 0x00000000041ea444 void Fortran::parser::Walk&lt;Fortran::parser::DeclarationConstruct, Fortran::semantics::ResolveNamesVisitor&gt;(std::__cxx11::list&lt;Fortran::parser::DeclarationConstruct, std::allocator&lt;Fortran::parser::DeclarationConstruct&gt;&gt; const&amp;, Fortran::semantics::ResolveNamesVisitor&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x41ea444)
#<!-- -->21 0x00000000041eb9ed Fortran::semantics::ResolveNamesVisitor::Pre(Fortran::parser::SpecificationPart const&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x41eb9ed)
#<!-- -->22 0x00000000041e9a89 std::enable_if&lt;TupleTrait&lt;Fortran::parser::SpecificationPart&gt;, void&gt;::type Fortran::parser::Walk&lt;Fortran::parser::SpecificationPart, Fortran::semantics::ResolveNamesVisitor&gt;(Fortran::parser::SpecificationPart const&amp;, Fortran::semantics::ResolveNamesVisitor&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x41e9a89)
#<!-- -->23 0x0000000004210e64 Fortran::semantics::ResolveNamesVisitor::ResolveSpecificationParts(Fortran::semantics::ProgramTree&amp;) (.part.0) resolve-names.cpp:0:0
#<!-- -->24 0x00000000042114f6 Fortran::semantics::ResolveNamesVisitor::Pre(Fortran::parser::ProgramUnit const&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x42114f6)
#<!-- -->25 0x0000000004212a04 Fortran::semantics::ResolveNames(Fortran::semantics::SemanticsContext&amp;, Fortran::parser::Program const&amp;, Fortran::semantics::Scope&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x4212a04)
#<!-- -->26 0x000000000426be51 Fortran::semantics::Semantics::Perform() (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x426be51)
#<!-- -->27 0x00000000038c2005 Fortran::frontend::FrontendAction::runSemanticChecks() (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x38c2005)
#<!-- -->28 0x0000000003bef85a Fortran::frontend::CodeGenAction::beginSourceFileAction() (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x3bef85a)
#<!-- -->29 0x00000000038c1415 Fortran::frontend::FrontendAction::beginSourceFile(Fortran::frontend::CompilerInstance&amp;, Fortran::frontend::FrontendInputFile const&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x38c1415)
#<!-- -->30 0x00000000038b0d17 Fortran::frontend::CompilerInstance::executeAction(Fortran::frontend::FrontendAction&amp;) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x38b0d17)
#<!-- -->31 0x00000000038c745d Fortran::frontend::executeCompilerInvocation(Fortran::frontend::CompilerInstance*) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x38c745d)
#<!-- -->32 0x0000000002020c08 fc1_main(llvm::ArrayRef&lt;char const*&gt;, char const*) (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x2020c08)
#<!-- -->33 0x0000000001f0ede4 main (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x1f0ede4)
#<!-- -->34 0x00007b0924a29d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#<!-- -->35 0x00007b0924a29e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#<!-- -->36 0x000000000201fb6e _start (/opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin/flang-new+0x201fb6e)
flang-new: error: unable to execute command: Aborted (core dumped)
flang-new: error: flang frontend command failed due to signal (use -v to see invocation)
flang-new version 19.0.0git (https://github.com/llvm/llvm-project.git 881f20e958e80bd30463fc57d2d3e891bcb8a571)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /opt/compiler-explorer/clang-llvmflang-trunk-20240518/bin

klausler added a commit to klausler/llvm-project that referenced this issue May 20, 2024
When a symbol appears in a specification expression in a subprogram
contained in a host program unit, semantics may have to create a
symbol in the host and use host association to it.  This shouldn't
happen for nested subprograms that can't import such a symbol, such
as interface blocks by default.  Further, when host association
fails, semantics shouldn't crash.

Fixes llvm#92647.
@klausler
Copy link
Contributor

#92795

@klausler klausler self-assigned this May 20, 2024
klausler added a commit that referenced this issue May 23, 2024
When a symbol appears in a specification expression in a subprogram
contained in a host program unit, semantics may have to create a symbol
in the host and use host association to it. This shouldn't happen for
nested subprograms that can't import such a symbol, such as interface
blocks by default. Further, when host association fails, semantics
shouldn't crash.

Fixes #92647.
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

Successfully merging a pull request may close this issue.

4 participants