<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/56629>56629</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[flang][OpenMP][omp2012] Malformed basic block with -O3 flag
</td>
</tr>
<tr>
<th>Labels</th>
<td>
openmp,
flang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
NimishMishra
</td>
</tr>
</table>
<pre>
Consider the following reproducer:
```f90
program sample
!$omp critical
do i = 1,10
end do
!$omp end critical
end program sample
```
When run with `flang-new -O3 -fopenmp sample.f90`, it fails as
```
error: loc("./sample.f90":3:3): type mismatch for bb argument #0 of successor #0
error: Lowering to LLVM IR failed
error: loc("./sample.f90":3:3): block argument does not have an LLVM type
Basic Block in function '_QQmain' does not have terminator!
label %omp.critical.region3
error: failed to create the LLVM module
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJydU02PmzAQ_TVwGQU5BpJw4NDd1UqVNt1uD-2xMmYAt8aObLPR_vuOTdP9PDWCYM-YN-_NGzrbP7XX1njVo4MwIQxWa3tWZgSHJ2f7RaLLyk8Zu8nY5X_H1mto2Bqhg6MTM3gxnzSuMYCMbzNe2fkE0qmgpNCXTPr1FhRk5Q3Qqeste5VD01P-PVCMvwaLkY_K_yP5kvmPCQ24xcBZhQmiAi3MuDF4hs19CZvBntBQmRWoiPoIgF-DCjAIpT0IDx-24i8Z52zsFmgrM37IOC8yfvsCjXPKlunmTTwYnk4Is_KzCHKi5jvoOhBuXGY0gYSXDOwAfpESvadsjLypdWfP6KJhwcLd3fcjfP6WyGL_v6Q6Ovn7mUVv0YOxASbxiCDMWiUyXwtcCa8kXKWXlIFhMTIoa4jr_ufDwyyUodUblIBuVkYEYkbmJhgtOtT0Uk1GFxeTC4cjYZVvpKz6omLpUARMo5tozTSy72Yg79uyb8pG5EEFjW1WXyXns_qGlvdk-vHruqbanG05beAoNPkxU5kuCVy7kiYnDgsBjPnidDuFcPLxE-G3dI2UX7pC2pk2Wj9eHhsa0l8oA22V9wt6WtS7HW_yqa06JvBQVdhsRb8vm2E_HPr-sO92Na-28pCn1vhIm8xaZzS6RoNJj1UJj5xz1XLGOduThrKuWVlUyBkTu6YW25ozybOKITmii8ipsG7MXZvodcvoKamVD_45KbxXo8HUsYgvljBZ135RNLLTkW4n8iSnTVr-AALXTaA">