<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">