| ! { dg-do compile} |
| ! { dg-additional-options "-fcoarray=single" } |
| ! |
| ! TS 29113 |
| ! C535a An assumed-rank entity shall be a dummy variable that does not |
| ! have the CODIMENSION or VALUE attribute. |
| ! An assumed-rank object may have the CONTIGUOUS attribute. |
| ! |
| |
| ! This test file contains tests that are expected to issue diagnostics |
| ! for invalid code. |
| |
| ! Check that diagnostics are issued when dimension(..) is used to declare |
| ! things that are not dummy variables. |
| |
| subroutine s0 (a) |
| implicit none |
| integer :: a |
| |
| integer :: goodlocal |
| integer :: badlocal1(..) ! { dg-error "Assumed.rank" } |
| integer, dimension(..) :: badlocal2 ! { dg-error "Assumed.rank" } |
| integer :: badlocal3 ! { dg-error "Assumed.rank" } |
| dimension badlocal3(..) |
| |
| integer :: goodcommon |
| integer :: badcommon1(..) ! { dg-error "Assumed.rank" } |
| integer, dimension(..) :: badcommon2 ! { dg-error "Assumed.rank" } |
| integer :: badcommon3 ! { dg-error "Assumed.rank" } |
| dimension badcommon3(..) |
| common /frob/ goodcommon, badcommon1, badcommon2, badcommon3 |
| |
| integer :: goodstatic |
| integer :: badstatic1(..) ! { dg-error "Assumed.rank" } |
| integer, dimension(..) :: badstatic2 ! { dg-error "Assumed.rank" } |
| integer :: badstatic3 ! { dg-error "Assumed.rank" } |
| dimension badstatic3(..) |
| save goodstatic, badstatic1, badstatic2, badstatic3 |
| |
| block |
| integer :: goodblocklocal |
| integer :: badblocklocal1(..) ! { dg-error "Assumed.rank" } |
| integer, dimension(..) :: badblocklocal2 ! { dg-error "Assumed.rank" } |
| integer :: badblocklocal3 ! { dg-error "Assumed.rank" } |
| dimension badblocklocal3(..) |
| end block |
| |
| end subroutine |
| |
| module m |
| integer :: goodmodvar |
| integer :: badmodvar1(..) ! { dg-error "Assumed.rank" } |
| integer, dimension(..) :: badmodvar2 ! { dg-error "Assumed.rank" } |
| integer :: badmodvar3 ! { dg-error "Assumed.rank" } |
| dimension badmodvar3(..) |
| |
| save goodmodvar, badmodvar1, badmodvar2, badmodvar3 |
| |
| type :: t |
| integer :: goodcomponent |
| integer :: badcomponent1(..) ! { dg-error "must have an explicit shape" } |
| integer, dimension(..) :: badcomponent2 ! { dg-error "must have an explicit shape" } |
| end type |
| end module |
| |
| ! Check that diagnostics are issued when dimension(..) is used in combination |
| ! with the forbidden attributes. |
| |
| subroutine s2 (b) ! { dg-error "has no IMPLICIT type" } |
| implicit none |
| integer, codimension[*] :: b(..) ! { dg-error "assumed-rank array" } |
| end subroutine |
| |
| subroutine s5 (e) ! { dg-error "has no IMPLICIT type" } |
| implicit none |
| integer, value :: e(..) ! { dg-error "VALUE attribute conflicts with DIMENSION" } |
| end subroutine |
| |