<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/143425>143425</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[flang] Implicit ASYNCHRONOUS attribute constraint is not diagnosed.
</td>
</tr>
<tr>
<th>Labels</th>
<td>
flang:frontend
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
DanielCChen
</td>
</tr>
</table>
<pre>
Consider the following code:
```
INTERFACE
SUBROUTINE ExplicitShapeArray(ioUnit, arrayShapeExplicit)
integer :: ioUnit
complex, asynchronous, dimension( 10 ) :: arrayShapeExplicit
END SUBROUTINE ExplicitShapeArray
END INTERFACE
complex, pointer, dimension( : ) :: ptrComplexArray
complex, target, dimension( 10 ) :: complexArray
ptrComplexArray => complexArray
open(1226, asynchronous='yes', action='read',&
access='stream', form='unformatted')
do i = 1, 10
read(1226, asynchronous='yes') complexArray
end do
call ExplicitShapeArray(1226, ptrComplexArray)
close( 1226 )
END
SUBROUTINE ExplicitShapeArray(ioUnit, arrayShapeExplicit)
integer :: ioUnit
complex, asynchronous, dimension( 10 ) :: arrayShapeExplicit
END SUBROUTINE ExplicitShapeArray
```
This code violates Constraint C1549
```
C1549 (R1524) If an actual argument is an array pointer that has the ASYNCHRONOUS or VOLATILE
attribute but does not have the CONTIGUOUS attribute, and the corresponding dummy argument
has either the ASYNCHRONOUS or VOLATILE attribute, but does not have the VALUE attribute,
that dummy argument shall be an array pointer, an assumed-shape array without the CONTIGUOUS
attribute, or an assumed-rank entity without the CONTIGUOUS attribute.
```
`ptrComplexArray` is implicitly given the `asynchronous` attribute, so the call to `ExplicitShapeArray` should be diagnosed.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJysVV1vozgU_TXOi9XIGDDlgQcmH7uRqlRqm5H20cE34F1jR7bpTP79ykCTkGa2-zCoUsP1PcfnXh9fuHOy1gAFSr-hdDnjnW-MLZZcS1CLRQN6tjfiVCyMdlKAxb4BfDBKmR9S17gyAlBcIlIiRsY_El4xxnizfVu9rMvFanwPz-vu28vz7m2zXeHVz6OSlfSvDT9CaS0_IfoozU5Lj-gC8xDp1z4SEc2vmMIjtYcaLA4S4hKP4GlOZdqjgp89pTvpqrFGm86FdyFb0E4ajegjjghGNP-gurP7hXa1XX5RyJAb8q6bMIavFB1NKMF-EhMkXKk5ersYQGf6KxLPbQ3-i4KqKf6i5oYbo3iJ4tVtfsg0RwjEEaXsUzfjJaLZCRyiWb9W-aCij1rgYggjygIVrypwI8R5C7wdUQdj2yHc6fCbew8DNJ9IFgbLoBNHARUFy-Fhl_8hLr9XGmiBhZlsUnGl7nv0Y4_bU7lRWSnjoD8IShk-r662y3Pab7gN_3UFfqP1z9q_NP7NIHhrpOvHBH6XRnEPDodZ4i2X2uNFlCb5DaiPYUQfX6KUJkHY5oC5Dp7quMLc1l0L2mPp-mhv2vEeYd9wjxvu-jFVvv61Xfz58rx93r1iY_H356fybfMUbiL33sp95wHvO4-FAYe1Cch36KGL5-3b5o9dAJ5T-zZq0a9XxlpwR6NFmIKia9vTWRgiZVAA0jfjvPyVkCn3fSXfy6fdNBGRsi9zuit2TTDsHj41ZdCNuXNdC-LBhcMaM35I35jO35R83Z8ANvYab7n-B4P20v8Kf1E7_-wHxMjtvWEknKVsBzOpE67lO-ieFDEycS4j0545MxxHKN2bkH7Hk4xg15hOidAdIXmtjQMxn4kiFnmc8xkUUZbkSc5SRmdNkVX0cMgpYxmrMpYcqj0hGROPjPOEpmk1kwUlNCWM5FEeMULnnEUJZ3GW5VnGCWQoIdByqeZKvbdzY-uZdK6DIkrihKYzxfegXP_JpfSguK5RXB6s0R60QJSGD7EtAvZh39UOJURJ592FzUuv-k_2AE6XeDN2b-q1i82ry52Tg8OuGtFZVTTeH12YAHSN6LqWvun288q0iK7DtuO_h6M1f0PlEV33FTlE12NR7wX9NwAA___hH50P">