<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/138899>138899</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[flang] Missing diagnostic on non-simply-contiguous actual to POINTER CONTIGUOUS dummy
</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:
```
PROGRAM main
IMPLICIT NONE
INTEGER, TARGET :: T3(100)
INTEGER, POINTER :: P3(:)
P3 => T3(1:100:2) !<--- not simply contiguous: invalid
CALL sub(P3)
CONTAINS
SUBROUTINE sub(Arg)
INTEGER, POINTER, CONTIGUOUS :: Arg(:)
END SUBROUTINE sub
END
```
Flang compiles successfully. However the standard requires a diagnostic on this case as:
```
C1550 The actual argument corresponding to a dummy pointer with the CONTIGUOUS attribute shall be simply contiguous (9.5.4).
```
All ifort, gfortran and XLF issues an error.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJxsU1GPqygY_TX48qVGoXbqgw9ea2ebdGzTscm-oqCyQegCdtJ_v8Hp7fbODDERhXM-zjl81FrRK84zlPxCySagkxu0yTZUCS6LYuAqaDS7ZYVWVjBuwA0cOi2l_hCqh1YzjkiOohytovsT5cfT4fWUv8FIhUJRDvPYvR33u2JXQ3WoSg94LFR1-VqeEC6gzk-vZT3_9awkh5ogvI6jCOH0J8Dx4D9OT4CjB_j5DHhgjgQQ2SBS3hkRyT0ryTHCKfweCMeIFIvFApR2YMV4kTdotXKin_RkPb9QVyoFexAX-X4PdmoQXvvSvmhxqOp8V70_9ryff50O53pXlfeduemfBf0kyU890e71fDi__1Y3A3-QV1abr1Xm1bLafMkGRflW0jm68SIkt2CntuXWdpOUtxD-0h_8es_ZOqoYNQwM_3cShlugwATtlbZOtKAVuEFYaKnlQO33e1DESRJBPXCgrZuoBGr6aeTKQauN4faiFfO3yGlPPI3jDS5aKMcNfAg3zGd48oA6Z0QzOQ52oFJCw79HBAiv0zAJlwin4XfpuZQgOm2ct7f3E0MVUMXg7_0WhLWTF6mAG6NNGLCMsJSkNOBZ_LJcrQheJWkwZCu26hjm3QulbbJmXdd18YqTFFNGWfSSBCLDEU6iJHqJk-UyTkO-bCnponXTNEmTkA4tIz5SIUMpr2OoTR_MxbOYrNdpGkjacGnnpsS483khkndGK8cVQxj7VjWZxy6aqbdoGUlhnf2fzQkn56b-BCcbeBPWerP_DFBptfg0cfFk4j0upx8N9hTDHFQwGZkNzl3m2PEW4W0v3DA1YatHhLf-IPfX4mL0P7x1CG8_DUZ4e5d5zfB_AQAA___PuFbf">