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

    <tr>
        <th>Summary</th>
        <td>
            acc wait copy(x) causes fatal internal error: CHECK(!dirContext_.empty())
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          erichkeane
      </td>
    </tr>
</table>

<pre>
    See this reproducer:

```
! Type your code here, or load an example.
integer function square(x)
    implicit none
    integer, intent(in) :: x

!$acc wait copy(x)
    square = x * x
end function square

```
```
fatal internal error: CHECK(!dirContext_.empty()) failed at /root/llvm-project/flang/lib/Semantics/resolve-directives.cpp(60)
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/bin/flang -fc1 -fopenacc -emit-fir -o /app/output.s <source>
 #0 0x0000000003e3ce98 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-llvmflang-trunk/bin/flang+0x3e3ce98)
 #1 0x0000000003e3aa54 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
 #2 0x00007f8f50c42520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #3 0x00007f8f50c969fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
 #4 0x00007f8f50c42476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
 #5 0x00007f8f50c287f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
 #6 0x0000000005b2c0b9 (/opt/compiler-explorer/clang-llvmflang-trunk/bin/flang+0x5b2c0b9)
 #7 0x0000000004c9fe7d Fortran::semantics::AccAttributeVisitor::ResolveAccObjectList(Fortran::parser::AccObjectList const&, Fortran::semantics::Symbol::Flag) (/opt/compiler-explorer/clang-llvmflang-trunk/bin/flang+0x4c9fe7d)
 #8 0x0000000004cb7733 void Fortran::parser::detail::ParseTreeVisitorLookupScope::Walk<Fortran::parser::AccClause, Fortran::semantics::AccAttributeVisitor>(std::__cxx11::list<Fortran::parser::AccClause, std::allocator<Fortran::parser::AccClause>> const&, Fortran::semantics::AccAttributeVisitor&) (/opt/compiler-explorer/clang-llvmflang-trunk/bin/flang+0x4cb7733)
 #9 0x0000000004cd37d6 void Fortran::parser::detail::ParseTreeVisitorLookupScope::Walk<Fortran::semantics::AccAttributeVisitor>(std::__cxx11::list<Fortran::parser::ExecutionPartConstruct, std::allocator<Fortran::parser::ExecutionPartConstruct>> const&, Fortran::semantics::AccAttributeVisitor&) (/opt/compiler-explorer/clang-llvmflang-trunk/bin/flang+0x4cd37d6)
#10 0x0000000004cd65b8 void Fortran::parser::detail::ParseTreeVisitorLookupScope::Walk<Fortran::semantics::AccAttributeVisitor, Fortran::parser::Statement<Fortran::parser::FunctionStmt>, Fortran::parser::SpecificationPart, Fortran::parser::ExecutionPart, std::optional<Fortran::parser::InternalSubprogramPart>, Fortran::parser::Statement<Fortran::parser::EndFunctionStmt>>(std::tuple<Fortran::parser::Statement<Fortran::parser::FunctionStmt>, Fortran::parser::SpecificationPart, Fortran::parser::ExecutionPart, std::optional<Fortran::parser::InternalSubprogramPart>, Fortran::parser::Statement<Fortran::parser::EndFunctionStmt>> const&, Fortran::semantics::AccAttributeVisitor&) (/opt/compiler-explorer/clang-llvmflang-trunk/bin/flang+0x4cd65b8)
#11 0x0000000004cd72b0 Fortran::semantics::ResolveAccParts(Fortran::semantics::SemanticsContext&, Fortran::parser::ProgramUnit const&, Fortran::semantics::Scope*) (/opt/compiler-explorer/clang-llvmflang-trunk/bin/flang+0x4cd72b0)
#12 0x00000000049421db Fortran::semantics::ResolveNamesVisitor::Pre(Fortran::parser::ProgramUnit const&) (/opt/compiler-explorer/clang-llvmflang-trunk/bin/flang+0x49421db)
#13 0x0000000004943731 Fortran::semantics::ResolveNames(Fortran::semantics::SemanticsContext&, Fortran::parser::Program const&, Fortran::semantics::Scope&) (/opt/compiler-explorer/clang-llvmflang-trunk/bin/flang+0x4943731)
#14 0x00000000049b0e86 Fortran::semantics::Semantics::Perform() (/opt/compiler-explorer/clang-llvmflang-trunk/bin/flang+0x49b0e86)
#15 0x0000000003e95998 Fortran::frontend::FrontendAction::runSemanticChecks() (/opt/compiler-explorer/clang-llvmflang-trunk/bin/flang+0x3e95998)
#16 0x0000000004146be0 Fortran::frontend::CodeGenAction::beginSourceFileAction() (/opt/compiler-explorer/clang-llvmflang-trunk/bin/flang+0x4146be0)
#17 0x0000000003e945d5 Fortran::frontend::FrontendAction::beginSourceFile(Fortran::frontend::CompilerInstance&, Fortran::frontend::FrontendInputFile const&) (/opt/compiler-explorer/clang-llvmflang-trunk/bin/flang+0x3e945d5)
#18 0x0000000003e830d7 Fortran::frontend::CompilerInstance::executeAction(Fortran::frontend::FrontendAction&) (/opt/compiler-explorer/clang-llvmflang-trunk/bin/flang+0x3e830d7)
#19 0x0000000003e9e433 Fortran::frontend::executeCompilerInvocation(Fortran::frontend::CompilerInstance*) (/opt/compiler-explorer/clang-llvmflang-trunk/bin/flang+0x3e9e433)
#20 0x00000000021b50ae fc1_main(llvm::ArrayRef<char const*>, char const*) (/opt/compiler-explorer/clang-llvmflang-trunk/bin/flang+0x21b50ae)
#21 0x000000000206c80f main (/opt/compiler-explorer/clang-llvmflang-trunk/bin/flang+0x206c80f)
#22 0x00007f8f50c29d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#23 0x00007f8f50c29e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#24 0x00000000021b39d5 _start (/opt/compiler-explorer/clang-llvmflang-trunk/bin/flang+0x21b39d5)
Program terminated with signal: SIGSEGV
Compiler returned: 139
```


https://godbolt.org/z/z8Wr7o8vj
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsWU9v4zYW_zTMhbAhkfp78MH12NPBDnaDerY9GhT1ZLORSC1JZZz99AtSShRpUjfeeoA5NHAASRbf-_15pJ8oZow4SoAVin9C8Yc71tmT0ivQgp8egEm4K1T5tNoDYHsSBmtotSo7DhrRNQr8JwmGT7BGJMRfnlrAT6rTmKsS8Ak0ILLBSuNasRIzieHMmraGJQrWQlo4gsZVJ7kVSmLzn465AdkZkRwFa4wxFk1bCy4slkrC87V-oIvsDqVFJBMSkRw7YHSNzwM6EiISMc7xVyYs5qp9mgbvE2JEP-AzRqQfCLL8BtK3ZF8dV8yy2iPRktUYtFZOIbz5ebv5ByIZImEp9EZJC2d7WELT2id_OXeQKyZqKDGzGJGdVsoisqvrx2bRavU7cHda1Uwe3WVRILLbQ8OkFdy4-8Go-hEWpdDArXgEs-Rti0iWBD3L-8_b9X6LTVc0wmKGi-7ofFTaYqvwydrWOM3IDpHdUdhTVyy5agYI3yIRxnTgEmMmSywkr7vSVQdgrpk54YLxB6sZ9_7uLeMPuOyatq-XYImC_F6ro2YNZvrYNSCtS--Yq9bF56ppRQ16Aee2Vtp5vOOO_cIB8TosrO7kAyK7wlnea4MXFQ_xolItSGf3AhphF5XQeKFccOY02anOtp1dGozoxqhOc0B06yoBERrg4Bw8_1GgHPIMew18RZkn0x_cayGtJ_bF0UQkG2_S7OtBGauBNYgkQ3X6qnRm_zWGiPwUnAdcQ_0iQsMZasbiCO_FUbL6ZybL2kXPPIgNNuIoZKUOFpG1O39UovSH-TCiLx26Dvx_n4AMCdIqq-KARyQmwUCnL8ZzlhySaFEL2Z0XR9n1X_ClUcvEY_ZDRsR0GjBP8orj1p40sPLwIOr6uuh-_Bg9msON0gQfjad3LewoTcbA8TQwydKKYla4aXRVWD9wDJu89i8uCA-K21XLEG_Mlr7OFvG8grTEO6WtZnIo85elxZ-uOV9bq0XRWfhVGGH9uobo-pd-2Vlz_q_CrQyfhXFr8CRWy7QB_RJovBFzJd3tfoZcSr9_agpV98e7mh1vOZUG-qM42VScIk0p9XME_yGrEiwTA757d_2LhmedPiv10LV7rlrob_iN1Q-Ibi5JtKlZZ-DPVHnTlC0imbFlf8fhwM_nMOxPamfNe_O-hGB1rTjzod8zlG4R3b7b17cYuFG3dNf7N7qbT90taVom39vd7-vb9gy8cy3KPdN245TXHbfXm_gHcX48R71nvaPuly-YOZrERfYDODoX6nX-vWUWXM9zyY_d0HnubeNduBiwBS4qwdmzfxfvnjg9KRTVususvoTr09De7rui7Vs4H-bPEL6H8laWc9bTiWG7toZLEf5W9gplf6xZ7ebtOKvD2axOSRFcxDh2Ik40M29C5h3F8-nwMPaWCK_1Gx5W_i3FFV2LX0P6xvqGOjklRp3IRKc8ImFZvEenf7IGzKSVu_cP3FcqcENmPfaRGZ0xoykN383s-9h_rfW3FshJMAoUTQUqAsiSy6imp_egK6WbfgPihjA9kBFmPH00zeM8z6YwK-1ckMNKuRvO1n61Gh6oO_kMfnMC_mBuDHqANYKePI9FYZQUEFwCvVElfAT5GnMBRyH3fndhJ2oYvrqx2D2yEXc6EzuKy_hasWfA51NpTrxH_0kayySHtybH2yk_ybazLsF3WU4G7qMy2VSZjAZletnRGTF_FfwP_Gjm-6W9NT1PYKSXz4yHiNJL9AYiI8tH1fc419p905-3AfgLLTJp7klYxAEDXPHw0DA39NWe21pr9vQLVIhu-Inp56JaD-3T9NoNIQ-gRsiTzoUECc-CCju4t0vZBx1TzjbnSF7mV27O-SFjQDoPCFGADwc35mAs0_bwitC7U0D0KkU0c5bmZYz74Lf0xoUdNsCH33ALuhGSWSjxV2FPuN8URHSN958-7rcff0XBS5ljDbbTElz145Dm871__5ntnauyULVdKn1EZPdf95_9plOVPf5-V65omdOc3cEqTKM0CiOapnenFaMkgLwAKCMaVSyt0jglZZiXQGMKeX4nViQgcRCHSZjEJE6XkBU04SkpIEqqOExQFEDDRL10orjcd36DfhVGAcnCu5oVUBv_eoeQQR-CyAYRMuyUu_P4w51e-X3-ojsaFAW1MNaMIa2wNazeeouCOesMGPyXXoDcdbpe_f8vIgaqjyvyvwAAAP__tHRruA">