<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/141308>141308</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [Flang][OpenACC] fatal internal error: SemanticsContext::FindScope(): invalid source location for 'declare'
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            flang
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          k-arrows
      </td>
    </tr>
</table>

<pre>
    Reproducer:
https://godbolt.org/z/Ej1jY5eaG
```f90
!$acc declare
end
```

Backtrace:
```console
fatal internal error: SemanticsContext::FindScope(): invalid source location for 'declare'
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-20250523/bin/flang -fc1 -triple x86_64-unknown-linux-gnu -S -fopenacc -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-20250523/lib/clang/21 -mframe-pointer=all -o /app/output.s -x f95 /app/example.f90
 #0 0x0000000003e7dcd8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-llvmflang-trunk-20250523/bin/flang+0x3e7dcd8)
 #1 0x0000000003e7b894 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
 #2 0x000076ba09a42520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #3 0x000076ba09a969fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
 #4 0x000076ba09a42476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
 #5 0x000076ba09a287f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
 #6 0x0000000005b71529 (/opt/compiler-explorer/clang-llvmflang-trunk-20250523/bin/flang+0x5b71529)
 #7 0x00000000049a6329 (/opt/compiler-explorer/clang-llvmflang-trunk-20250523/bin/flang+0x49a6329)
 #8 0x0000000004d13c8a void Fortran::parser::detail::ParseTreeVisitorLookupScope::ForEachInTuple<0ul, void Fortran::parser::detail::ParseTreeVisitorLookupScope::Walk<Fortran::semantics::AccAttributeVisitor, 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::AccAttributeVisitor&)::'lambda'(Fortran::semantics::AccAttributeVisitor 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::detail::ParseTreeVisitorLookupScope::Walk<Fortran::semantics::AccAttributeVisitor, 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::AccAttributeVisitor&)::'lambda'(Fortran::semantics::AccAttributeVisitor const&)) (/opt/compiler-explorer/clang-llvmflang-trunk-20250523/bin/flang+0x4d13c8a)
 #9 0x0000000004d19839 Fortran::semantics::ResolveAccParts(Fortran::semantics::SemanticsContext&, Fortran::parser::ProgramUnit const&, Fortran::semantics::Scope*) (/opt/compiler-explorer/clang-llvmflang-trunk-20250523/bin/flang+0x4d19839)
#10 0x000000000498479b Fortran::semantics::ResolveNamesVisitor::Pre(Fortran::parser::ProgramUnit const&) (/opt/compiler-explorer/clang-llvmflang-trunk-20250523/bin/flang+0x498479b)
#11 0x0000000004985cf1 Fortran::semantics::ResolveNames(Fortran::semantics::SemanticsContext&, Fortran::parser::Program const&, Fortran::semantics::Scope&) (/opt/compiler-explorer/clang-llvmflang-trunk-20250523/bin/flang+0x4985cf1)
#12 0x00000000049f3446 Fortran::semantics::Semantics::Perform() (/opt/compiler-explorer/clang-llvmflang-trunk-20250523/bin/flang+0x49f3446)
#13 0x0000000003ed6588 Fortran::frontend::FrontendAction::runSemanticChecks() (/opt/compiler-explorer/clang-llvmflang-trunk-20250523/bin/flang+0x3ed6588)
#14 0x0000000004188250 Fortran::frontend::CodeGenAction::beginSourceFileAction() (/opt/compiler-explorer/clang-llvmflang-trunk-20250523/bin/flang+0x4188250)
#15 0x0000000003ed51c5 Fortran::frontend::FrontendAction::beginSourceFile(Fortran::frontend::CompilerInstance&, Fortran::frontend::FrontendInputFile const&) (/opt/compiler-explorer/clang-llvmflang-trunk-20250523/bin/flang+0x3ed51c5)
#16 0x0000000003ec3cc7 Fortran::frontend::CompilerInstance::executeAction(Fortran::frontend::FrontendAction&) (/opt/compiler-explorer/clang-llvmflang-trunk-20250523/bin/flang+0x3ec3cc7)
#17 0x0000000003edeb33 Fortran::frontend::executeCompilerInvocation(Fortran::frontend::CompilerInstance*) (/opt/compiler-explorer/clang-llvmflang-trunk-20250523/bin/flang+0x3edeb33)
#18 0x00000000021ef16a fc1_main(llvm::ArrayRef<char const*>, char const*) (/opt/compiler-explorer/clang-llvmflang-trunk-20250523/bin/flang+0x21ef16a)
#19 0x00000000020a5fff main (/opt/compiler-explorer/clang-llvmflang-trunk-20250523/bin/flang+0x20a5fff)
#20 0x000076ba09a29d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#21 0x000076ba09a29e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#22 0x00000000021edb35 _start (/opt/compiler-explorer/clang-llvmflang-trunk-20250523/bin/flang+0x21edb35)
flang-21: error: unable to execute command: Aborted (core dumped)
flang-21: error: flang frontend command failed due to signal (use -v to see invocation)
flang version 21.0.0git (https://github.com/llvm/llvm-project.git d6596482ef277269dd35b5ea0c0439173cba7636)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /opt/compiler-explorer/clang-llvmflang-trunk-20250523/bin
flang-21: note: diagnostic msg: 
********************

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
flang-21: note: diagnostic msg: /tmp/example-e268c7
flang-21: note: diagnostic msg: /tmp/example-e268c7.sh
flang-21: note: diagnostic msg: 

********************
Compiler returned: 254
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsW11v27jS_jXMDSFDoj4sXeTCdeJugL7boMm-i3MVUNTIYUORAkml7vn1B6TkyPZps3ET7wmwKlxEH-TMM88MZ2iDQ43hawlwjtIPKL04o529V_r8IaBaq2_mrFTV9_Mv0GpVdQw0ihcoXNxb2xp3SVaIrNaqKpWwM6XXiKz-jcjq8mv09V8p0I8oXKAs7D91EbpbEiGSUMZwBUxQDShcgKx2B7rrcPGBsgerKYNe5dNbpqRRwk2rqaUCc2lBSyowaK0cPnwDDZWWM7NU0sLGOgHxYsVldcNUC4jkiBRuIJePVPAKG9VpBlgoRi1XEtdKY0TmW4BkjsLF9afLxc0lNl3ZcIspLrs11tAqbbFV-IAQbu-7csZUg8hKiMftn6DV6iswi8iKG9OBQWSFqawwl0x0FWB7D5hpau5xubV-hsLFjaXsAVdd0_ZchDMUFtdarTVtMNXrrgFpnXqMyEq1Tj5TTcsF6AA2rVAatHsmqFwHDkjtr6zu5ENAQpKGKYkRWZVcIrLyL3FQswgHVvNWAN7k2V2WBJ18kOqbDASX3SZYyw4HNzioVQvSOTRoNGw5DBpVgcAtZzhoOQsEPILApL_hJmg54MBSvQYbsLZzGoIswUHj4OHA3VLTBOa7tHSD4gvnZYEDDb2vgorrVxoreLkdhsiKRDhoak0bCFrlQwrFF1QIHCinh7at09bZtrMzg4MNrot0fAEb2rQCZn2IY0TiEIebcPsvhnnFqhz7UPDBaL6b_uJac2m9f299rJN8HKTptztlrAbaIJIhsnSxjkiBfQS_kaMR-RBuBoBuWfTwowP4ZV4k-IavJRW_UVkJpyb3aJbY8DWXtbqziCzc_aPilb8shhlmxloXuaH_3ysgg4J5VtKwoAlJSTjY1TtmCLmnUOtfsJlRs8xj9lNGxPG-wCIraoZbe6-BVncPXIjjpPv5o_TkEG4yz_DaePOOhZ3Ms1Fwui-Y5PM6xrR0aeUosX7iKDbb9V9azqP0FGEzCB7VznfVJgXN4lOoHQSPavM9tVUUs5z6MMQrpa2msl9PLdWmr2DxogJLuRjWoHt-qwH-nxtulf6k1EPX9rWiLx1KX1J2fyVvu1YAipdhJ7aR_kYq_qTiAcXLPWFmW8f62wVjC2s1Lzu7FeOXn63693d3bLOJov5GcGMP5e2C-9yCXCyXF77EUcsfYamksbpjdk8oFT6ju8L6a8LiS_d5Fc7_u347mD-R9QsomWoaNVxfyYprYK7wPQdgOUT_RT_4EZzGmgoDh9p_as-ba32lf24steC2H28A9A8DN7axh_CO9vPfgOkdsXbVuE3ouyPu57CewD03V3DG7TXV9tdJflroSr4iafxQymhF_iTNDrVhysdTPp7y8ZSP3xlx_4h8jJl7NHxZPnovnfU_C7kPmQvalBVFZI5IfqSkHRTFnoFTiZhKxFQiphIxlYj_4ZZ92rVPKXlKyVNKnlLye0nJe7v26Tf1qRpM1WCqBlM1-IdWg2l3PuXjKR9P-XjKx-8jH7_H39RPcaioPzY0HioqDg4VFXlcPGv_FzBKPMKCMedT8xc2_tch1R8QvOuj4bjnH5LbF3tkOO66OBVhjpKeMETiKNw__JUn86J8CWG_0wbMNmAGW-GQvb-m4iQHzbwRo4nRgYkpq6MXm3iagDg2GE7GlONiZIrsM1XHSZI9D2__9hp0rXTTn9U-BV6PaMQb7x94rbI0z_fx1tr5RQ55dTXcLYYi4Z7pTm6tWN4DezCnQj_gG9Ene2xHeU7S8Dn0S1XBR5C74EtYc3njD1evuIDh1ano7yGOBqQH9KcRS4-l_8CCw-V2yEBvxpU0lkoGP1pAP1Z5JdvOOgWnzT0DCSNF2T5FLGZs_ryPDyz0T2EDrLOje1_O8cns9JaMds4PQgHKOH7OzsGi0dzHoQXh2AA4TZkcLBjt2zusTCKoo4zimkV3DXVTd87_L7Sm379AjeIlu6dPW6DFsLXcf3YK7AO6EfvenoiENK3rGjvcJ9DdS3_STcKDk_JFVRzZMeCnjAKjQ4GQhPjuzs25M5Zqe7dj2YtVQLKjghz4uirjFPfCT-ItJ7_X3s8h7mvE2BjVSVoKwFbhYdFg96WH-iWBF6XSFiqHiykNvt0Iqmek9X1C21W1FYVrygVUuOq8orFFojOAg0f_DADznWX6pAE_gjZcSUyiWTgL19yzdFxv1czNqrK0yJKcQE3mc5IVVRWnZQo0ZGESF9E8ZiWdZ_FQ_299G5Iz6Wd9Tm6Q7yTBvq3JDW2V4RsULnz-EAKqC67fpgNrn26prEvduOJ0LZWxnOHGrL0mF2Ov-Pguu6GtbXF7u1j-hm9_u8Srz58-ff7z6vePeHX16fIG3372jz_88RF_ubz-_OUW-R60aw2tVgyMgW0DHSK5cXnIRQE1RjFOXUDpTmLDNHesDAP00GwHFaa2l_dCm8nKNjsdVwGQLGfz186fmfujaH8189vqgzXYTkvwK5CkyW6j41l1HldFXNAzOI_mSR6mIYnys_vzBCgpq4JAGcZxEqYpy-qoqud1XWQMCJzx8yGkkjCKwyif0SxlkFc1iZIonzOKkhAaysXMheJM6fWZ70c8j5IoDvMzQUsQxneEEjIkGILSizN97pda2a0NSkLBjTWjCMut8G2kKz8jvUDph-FXU5Re4L-vW_Os0-L81zsyBxIez8l_AgAA___jBqEo">