<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/60226>60226</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[flang] Compilation error of ALLOCATABLE dummy argument
</td>
</tr>
<tr>
<th>Labels</th>
<td>
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
ohno-fj
</td>
</tr>
</table>
<pre>
```
Version of flang-new : 16.0.0(77f2f34d696b77fe5bf05afbe7386966b6bcc8ba)
```
ALLOCATABLE dummy argument results in a compilation-time error.
The following are the test program, flang-new, gfortran and ifort compilation result.
snggj331_.f90:
```fortran
program main
call sub
print *,'OK'
end program main
module m1
contains
function func(i,p) result(a)
character(len=1,kind=1),allocatable,dimension(:,:):: a
character(len=*,kind=1),allocatable,optional,dimension(:,:)::p
character(len=*,kind=1),optional,intent(in)::i
end function func
function chk(i,p) result(r)
logical r(2)
character(len=*,kind=1),allocatable,optional,dimension(:,:)::p
character(len=*,kind=1),optional,intent(in)::i
r=.true.
end function chk
end module m1
recursive subroutine sub
use m1
character(len=1,kind=1),allocatable,dimension(:,:):: pointer
if (count(mask=chk(p=func(i='1',p=pointer),i='1'))/=2)write(6,*) "NG"
end subroutine sub
```
```
$ flang-new -flang-experimental-exec snggj331_.f90
error: Semantic errors in snggj331_.f90
./snggj331_.f90:24:24: error: ALLOCATABLE dummy argument 'p=' must be associated with an ALLOCATABLE actual argument
if (count(mask=chk(p=func(i='1',p=pointer),i='1'))/=2)write(6,*) "NG"
^^^^^^^^^^^^^^^^^^^^^
$
```
```
$ gfortran snggj331_.f90
$
```
```
$ ifort snggj331_.f90
snggj331_.f90(8): warning #6178: The return value of this FUNCTION has not been defined. [A]
function i4_f(i,p) result(a)
----------------------------^
$
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzMVk1v4zYT_jXjy8CCTNn6OPjgtdcvXjRIDk17XVDUSGJCkQJJJbv_vqDkz6w3QdACrSGMRUp6ZuaZL3LnZKOJ1rD6AqvdjA--NXZtWm3m9dOsNNWPNaTx4Yp3EG_-JOuk0WhqrBXXzVzTK0KywUUaxVEMLM-ymtXJskqLtMyymlZlHa94XVKW5GmRpmVaCpGXHFgxQb7RMMnN3d3DdvO4-XL3Fauh634gt83QkfZoyQ3KO5QaOQrT9VJxL42ee9kRkrXGRpdQjy1hbZQyr1I3yC2hbwk9OY-9NY3lHbDt2ZuwaGpjveUaua5QhsWlooMFV0qcbpqnJFl8i-oihmTzxrUD3rR70Iodl4cdRMGVQjeUh3VvpfYIbANsCyx7-A1YNj0iXeHPAJPsTDUowm4xLYXRnkvtjjrqQYvR_nADLJfAtj2w4uAPsPwcFBQtt1x4ssByRRqS3QLY9lnqarotgG25UkZwz0tFwLaV7EiH5ACWBwbYdpRFkMkG-S-BJzffgzZ9sJurD7X0n1JyASu1Jx0okPoEJo_EBc6vyZsenPYQRft8k1F7ZhQRlWmk4AqDWew9rv_zlCBaSHaRtwNFN2kKhJwS9k1iTtKSGKyTLxTy3prBS00XJYCDO3_xz6djb4J_9qhM1ggsF2YYPe64e4ZkNwW1h2R3qpjAWrYI1RgineyOMKMBV4-L8dpDsguRfrXSE7A8HQs62IHA2P3_gLEzTbd4uNkd326y5UU3nk-39L0nGzjwXM3pOwm87lGT1tAtAx2_U8e1l2Lqn2NzvfF6BGz_ttOx5VHgCe2d7g0s6yeasBucx5KQO2eE5J4qfJW-Ra6vALjwA1cnhHMG_usxQ1h9_VvXMXqfC_VpOt2I0KfBpul2A-l6i-X5VDv4yq0OgxRYki6yUFoYJqwlP1iNL1wNFE4HvpUO93_cbx___3CPLXeoTYg2aayolpqqCBFh9WUDq91PE0ouv9UfTKj5O78PuZ1V66QqkoLPaL1Is-Vyla2KfNauk8VS1NmiystlIXhRs7RMi5RlcVFkBcXlTK5ZzJJ4wZI4i9Mkj-KkENmyEknFiFNJsIyp41JFSr10kbHNTDo30DqNGUtnipek3PHAZdfhpXk5NA6WsZLOu_NnXno1Hs3GeobVDrcXZ5Cx1gLRv6612WDVuvW-d2Pn2wPbN9K3QxkJ0wHbB02Hv3lvzRMJD2w_WuuA7UeD_woAAP__BMjmXQ">