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

    <tr>
        <th>Summary</th>
        <td>
            [Flang][OpenMP] fatal internal error: SemanticsContext::FindScope(): invalid source location for 'end subroutine'
        </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>
    Compiling the following program with `-fopenmp` causes a crash.

```console
$ cat test.f90
impure elemental module subroutine e()
end subroutine
```

Compile with: `flang-new -fopenmp test.f90`

Output:
```console
fatal internal error: SemanticsContext::FindScope(): invalid source location for 'end subroutine'
```

Stack dump (see Godbolt: https://godbolt.org/z/bzY8xPz7Y)
```console
 #0 0x000000000355b248 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-llvmflang-trunk-20240225/bin/flang-new+0x355b248)
 #1 0x0000000003558bbc SignalHandler(int) Signals.cpp:0:0
 #2 0x00007f0e69e42520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #3 0x00007f0e69e969fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
 #4 0x00007f0e69e42476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
 #5 0x00007f0e69e287f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
 #6 0x00000000049f4339 (/opt/compiler-explorer/clang-llvmflang-trunk-20240225/bin/flang-new+0x49f4339)
 #7 0x0000000003e87dd9 (/opt/compiler-explorer/clang-llvmflang-trunk-20240225/bin/flang-new+0x3e87dd9)
 #8 0x00000000040b2b16 Fortran::semantics::ResolveOmpTopLevelParts(Fortran::semantics::SemanticsContext&, Fortran::parser::Program const&) (/opt/compiler-explorer/clang-llvmflang-trunk-20240225/bin/flang-new+0x40b2b16)
 #9 0x0000000003e67c78 Fortran::semantics::ResolveNames(Fortran::semantics::SemanticsContext&, Fortran::parser::Program const&, Fortran::semantics::Scope&) (/opt/compiler-explorer/clang-llvmflang-trunk-20240225/bin/flang-new+0x3e67c78)
#10 0x0000000003ebe491 Fortran::semantics::Semantics::Perform() (/opt/compiler-explorer/clang-llvmflang-trunk-20240225/bin/flang-new+0x3ebe491)
#11 0x000000000359e097 Fortran::frontend::FrontendAction::runSemanticChecks() (/opt/compiler-explorer/clang-llvmflang-trunk-20240225/bin/flang-new+0x359e097)
#12 0x00000000038bfe00 Fortran::frontend::CodeGenAction::beginSourceFileAction() (/opt/compiler-explorer/clang-llvmflang-trunk-20240225/bin/flang-new+0x38bfe00)
#13 0x000000000359d695 Fortran::frontend::FrontendAction::beginSourceFile(Fortran::frontend::CompilerInstance&, Fortran::frontend::FrontendInputFile const&) (/opt/compiler-explorer/clang-llvmflang-trunk-20240225/bin/flang-new+0x359d695)
#14 0x000000000358d437 Fortran::frontend::CompilerInstance::executeAction(Fortran::frontend::FrontendAction&) (/opt/compiler-explorer/clang-llvmflang-trunk-20240225/bin/flang-new+0x358d437)
#15 0x00000000035a38fd Fortran::frontend::executeCompilerInvocation(Fortran::frontend::CompilerInstance*) (/opt/compiler-explorer/clang-llvmflang-trunk-20240225/bin/flang-new+0x35a38fd)
#16 0x0000000001d6bfa8 fc1_main(llvm::ArrayRef<char const*>, char const*) (/opt/compiler-explorer/clang-llvmflang-trunk-20240225/bin/flang-new+0x1d6bfa8)
#17 0x0000000001c7124d main (/opt/compiler-explorer/clang-llvmflang-trunk-20240225/bin/flang-new+0x1c7124d)
#18 0x00007f0e69e29d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#19 0x00007f0e69e29e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#20 0x0000000001d6aeee _start (/opt/compiler-explorer/clang-llvmflang-trunk-20240225/bin/flang-new+0x1d6aeee)
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 1e98d4883d78ac2c65b87e24694e8b2f1dc9f02d)
Target: x86_64-unknown-linux-gnu
Thread model: posix
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy8mE1v2zgTxz8NfSFsUNT7wQc3edynwO42aHrpyaDIka0NRQoklbj99AtSchy6hbc5eIO8iSJn_r8Zvo2Ztd1eAaxR_gHl9ws2uoM266clM0a_2EWjxff1ne6HTnZqj90BcKul1C_-aTB6b1iPXzp3wKggy1YPoPoBFQRzNlqwmGFumD2sELlHZDP_Lsj0zbWyWsLcSjPMmcMOrFu1NZlau34YDWCQ0INyTOJei1ECtmNj9Og6BRgQrRCtp_6gxJt3F_7eipiYIGhH6cbLbyVT-6WCF3wCOYuJB38e3TA6lF4FapnX2ykHRjGJwRhtvKdH6JlyHbd3Wjk4BjPpZtsp8cj1cKJJN7hTz0x2Als9Gg5Yas5cpxVutcGIlheotLxC--gYf8Ji7AeMaGUB8EctGi29c3xwbrBeBd0iut1PL1ba7BHd_kB02_z4Vh0ffpTfXqP8a2CMaEowOZLTV5rnDc0qLOVzP1Ha73b658F0ygVVXw3jHvrcybCXnbbOAOsRLRC980FEtMYhNFs9OES3fMqfWcJxkNqA8W0hgd7QlEpnRvW0pIRmhNLck3QK0e1rnhH9QI6zyFc2T5FcUFRNw_Fjt1dM_p8pIb23ahY1NdsVHwaUbkj4eTVEZ0NlS6CoIaM5JTOG7BpEt8eq2BXZUnZqPC73apxe8JXVqyLIC0MicWlssy7qluPBHQwwsXvqpHyfgzA-cpBdis7KAu9t4Hyv-KwsItt5bJtWZZti1mjj3mc5DIwsF29zltVtlqY3mjGz8ch7Gc0YqEohbjVfJ-OR9ypiJw1tkgJvtXGGqXnhnTad6fELWC2f4XM_fNXDH_AM8oEZZxGtro36aeeaVmc0ZGDGgjkt8ul88LvE1PlWGZmQo5jUcUaKkpfV78TkL9bD7QNxd1XKfBDcLmBzPM4bOk2TeOuGBrI6ua4yfnwA02rTT-fXrWQHVZHsi726BlKXsezW-CwpMR-089OG-8N0PnFGdYK5OwB_sjeFmDRGEDSCqJoWCLkGcacFfAT1lqGBfacew1Vh20mYX92SY5IZcaQXyRBFnb83GRcgl0vxMhATzSdlHVMcfrW4fu3ykxpG5x3cfnuaAxFFKosjVYksvTptfwINrXAEPrpzsn8_1DfFDTQRbh7jsrRqxTXcGexM_Tzfft87HTY3xAwUEWZ0CUlE0bSswi1Pdj3zFt5ccjfGsO9foEXpHT8wc5qEG5T-z0_guO1WCLPCCCG6ySS8TGgmsJd_IwmTh0hCdXFJrEX9zltzGBLZrC9tQkbwbueH7axjxu3eMP62F8giL5Rc5J8BAJ7s3yyD3seriPPbdHMuOUfFGgnYaTyvK8x137OwavDG375BeH1cGwhVIoh_sRha8WnxnczhlnUSBBZjcHYuGUYLePkc2gB8Yfu6mi-94Gcw1le5Sb0iK7LvQuAuStTOHcZmxXXvU-KX1PRnORj9N3C38qMSqCuRVVUqyopxyou8qUqgWVFnUDW0TQSvW0LPoF-Z2UMoiOfEj-pJ6Rf1ZgJM_UKlhXstQPreg7bd8aIuXoh1Kuq0ZgtYJyWpqqyuinxxWGc0q2lWUE5L3hRJImhWlozxIqOiYAVZdOtTxkmVJiRfgYCaNDwTCWuzushQRqBnnVx5Yl-lLzprR1hXtE7ShWQNSBs-zaE0BBVRivL7hVmHCDXj3qKMyM46e7bgOifDR0DbMCK_R_mHzwOoPx9Qfo__8w8yFqOR6_elHNFtCINFdBsi8U8AAAD__9lbwJU">