<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/148258>148258</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[flang] Unexpected runtime failure when allocating a zero-sized array
</td>
</tr>
<tr>
<th>Labels</th>
<td>
flang:runtime
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
DanielCChen
</td>
</tr>
</table>
<pre>
Consider the following code
```
real, allocatable :: r1(:)
call sub(r1, [real :: ], 0)
contains
subroutine sub(obj, source, size)
real, allocatable :: obj(:)
real :: source(size)
integer :: size
allocate(obj, source=source)
print*, allocated(r1)
end subroutine
end
```
Flang failed at runtime with
```
> a.out
fatal Fortran runtime error(t.f:2): Assign: left-hand side variable is neither allocated nor allocatable
IOT/Abort trap(coredump)
```
Flang supports allocating zero-sized array as shown in issue #148255, this variation should also be supported.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJx8U8GO6ygQ_Bp8aSXCOE6cgw9-yVra0152PwBMO2ZEwGpgsjNfv8JxJtHM6kmWjKCrqCq6ZQjm4hBbVv9i9bmQKU6e2rN0Bu3pNKErlNcf7cm7YDQSxAlh9Nb6m3EXGLxGxrv87fn68Y5QWiZOIK31g4xSWQRWdazqgEommrwWR8a7QVoLISkmmnxwAlb_yuBHNavPeZffqzPAuyiNC4x3ISnyKRqHK4NXb7k4-EQDLivziXfkbwQtqKei19sfTM2TyLiIF6SvinywCFuZ8YeO6vygyfiZjItMdC9iUK_uV4voNDy93Te-5ct411vpLjBKY1GDjEDJRXNFuJk4fa-u_gC59SnekaOM0kLvKZJ0Xzgk8sREE7cjqzqR1VQddEt35JXFMW4mmbUZjfAuySwpmgAOTZyQnn7AeXqNmvHuz7_-ZqLvlKcIkeTMRDN4Qp2u82r8_-yFNM-eYniQ5Y77RPKbnLsGSSQ_QAYIk785MA5MCAmBiarcNaKuc8pxMuEuNxrvcmmyGqQNHhQ-bkC9LXRb6WN1lAW25aEWoua8bIqpLXdcjqh2ZVkeBT-IZr87yON-2Jd6FPWxKkwruKj5oSzLPd_X9VYprdSgaqH0nuuDYDuOV2ns1tr369bTpVh0tovIprBSoQ3LAAoxZuOs6tZ3YULkqaQ2QzcqXQLbcWtCDE-yaKJd5veOrc_wj8N_ZxzyUzzeN3dKIoTbhO41Tvkj0CKRbacY57AMRc9EfzFxSmo7-CsTfb53_W1m8m84RCb6xVFgol9NvbfivwAAAP__E6tfSA">