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

    <tr>
        <th>Summary</th>
        <td>
            [OpenMP] Compiler segfault with `#pragma omp` in global lambda
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

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

<pre>
    https://godbolt.org/z/vnMM79oYf

This segfaults:
```cpp
#include <omp.h>

auto slice_work = [](size_t device, float start, float end){
    #pragma omp target teams device(device) 
 {
    }
};

int main(){
    slice_work(0,0,0);
    return 0;
}
```

Moving the lambda to a local function, even as static will compile just fine:

```cpp
#include <omp.h>

int main(){
    static auto slice_work = [](size_t device, float start, float end) {
 #pragma omp target teams device(device) 
        {
        }
    };
 
    slice_work(0,0,0);
    return 0;
}
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJysVE2PozoQ_DXNpTWRaZMPDhwyycvlKXrvsJc9jRzTgGeNjWyTaOfXrwjJZHalPYw0URC2oLqrulyoGE3rmCtYPsNyn6kxdT5U_6owBr_rfDDZydc_qy6lIYLcAh2ADq2vT96mhQ8t0OEN6HB2x-O69N8bEFsQ22-diRi5bdRo0xUntrAS818Pw7QlaZy2Y80Icuf7YdGB_GeGqzF5jNZofrn48ANB7nEmCLSJ5o1fEtZ8NpqBdthYrxLGpEJ6bNnVQCWsn0FsERGB5BBU2yv0_YBJhZYTJlZ9fK-0uS9KnEAfsOv9xGu9B_k8EzQuYa-MA9r81uXBGWgjgHa3q5yR0yuB0xgcilutufR9NHP1oz8b12LqGK3qT7XC5FGh9VpZbEank_FukspndqjipD0ZjRdjLWrfD8Yyvo4xYWMc36b_KQP-qm9u9GX-3If8eXduvwe1h1H31TzyL3ImqytZl7JUGVf5ulhSuSykyLpKF4XIud6UmyIvBYmy1mtdNpJqqVirPDMVCVqKgkgU-ToXC6nzmlZNKVlw3uQrKAT3ytiFted-ylRmYhy5yuVqtaTMqhPbeA0okeMLXp8C0ZTXUE2gp9PYRiiENTHFR5lkkr0m-7-B3fF_WO5xN5-O8B5OvJjU4aTxowWwEmgcttaflL0dwmwM9s_vgEndeFpo3wMdpra329MQ_CvrBHS4ko1Ah5uac0W_AgAA__83ElFD">