1*6c1ac141SIvan Zhechev! RUN: %python %S/test_errors.py %s %flang_fc1 2882fa241Speter klausler 3882fa241Speter klausler! Check errors from illegal (10.1.12 para 2) forward references 4882fa241Speter klausler! in specification expressions to entities declared later in the 5882fa241Speter klausler! same specification part. 6882fa241Speter klausler 7882fa241Speter klauslermodule m1 8882fa241Speter klausler integer :: m1j1, m1j2, m1j3, m1j4 9882fa241Speter klausler contains 10882fa241Speter klausler subroutine s1 11882fa241Speter klausler !ERROR: Forward reference to 'm1j1' is not allowed in the same specification part 12882fa241Speter klausler integer(kind=kind(m1j1)) :: t_s1m1j1 13882fa241Speter klausler integer(kind=kind(m1s1j1)) :: t_s1j1 ! implicitly typed in s1 14882fa241Speter klausler integer :: m1j1, m1s1j1, m1s1j2, m1s1j4 15882fa241Speter klausler block 16882fa241Speter klausler !ERROR: Forward reference to 'm1j2' is not allowed in the same specification part 17882fa241Speter klausler integer(kind=kind(m1j2)) :: t_s1bm1j2 18882fa241Speter klausler !ERROR: Forward reference to 'm1s1j2' is not allowed in the same specification part 19882fa241Speter klausler integer(kind=kind(m1s1j2)) :: t_s1bm1s1j2 20882fa241Speter klausler !ERROR: Forward reference to 'm1s1j3' is not allowed in the same specification part 21882fa241Speter klausler integer(kind=kind(m1s1j3)) :: t_m1s1j3 ! m1s1j3 implicitly typed in s1 22882fa241Speter klausler integer :: m1j2, m1s1j2, m1s1j3 23882fa241Speter klausler end block 24882fa241Speter klausler contains 25882fa241Speter klausler subroutine s2 26882fa241Speter klausler !ERROR: Forward reference to 'm1j3' is not allowed in the same specification part 27882fa241Speter klausler integer(kind=kind(m1j3)) :: t_m1j3 28882fa241Speter klausler !ERROR: Forward reference to 'm1s1j3' is not allowed in the same specification part 29882fa241Speter klausler integer(kind=kind(m1s1j3)) :: t_m1s1j3 30882fa241Speter klausler integer :: m1j3, m1s1j3, m1s2j1 31882fa241Speter klausler block 32882fa241Speter klausler !ERROR: Forward reference to 'm1j4' is not allowed in the same specification part 33882fa241Speter klausler integer(kind=kind(m1j4)) :: t_m1j4 34882fa241Speter klausler !ERROR: Forward reference to 'm1s1j4' is not allowed in the same specification part 35882fa241Speter klausler integer(kind=kind(m1s1j4)) :: t_m1s1j4 36882fa241Speter klausler !ERROR: Forward reference to 'm1s2j1' is not allowed in the same specification part 37882fa241Speter klausler integer(kind=kind(m1s2j1)) :: t_m1s2j1 38882fa241Speter klausler !ERROR: Forward reference to 'm1s2j2' is not allowed in the same specification part 39882fa241Speter klausler integer(kind=kind(m1s2j2)) :: t_m1s2j2 ! m1s2j2 implicitly typed in s2 40882fa241Speter klausler integer :: m1j4, m1s1j4, m1s2j1, m1s2j2 41882fa241Speter klausler end block 42882fa241Speter klausler end subroutine 43882fa241Speter klausler end subroutine 44882fa241Speter klauslerend module 45882fa241Speter klausler 46882fa241Speter klauslermodule m2 47882fa241Speter klausler implicit none 48882fa241Speter klausler integer :: m2j1, m2j2, m2j3, m2j4 49882fa241Speter klausler contains 50882fa241Speter klausler subroutine s1 51882fa241Speter klausler !ERROR: Forward reference to 'm2j1' is not allowed in the same specification part 52882fa241Speter klausler integer(kind=kind(m2j1)) :: t_s1m2j1 53882fa241Speter klausler !ERROR: No explicit type declared for 'm2s1j1' 54882fa241Speter klausler integer(kind=kind(m2s1j1)) :: t_s1j1 55882fa241Speter klausler integer :: m2j1, m2s1j1, m2s1j2, m2s1j4 56882fa241Speter klausler block 57882fa241Speter klausler !ERROR: Forward reference to 'm2j2' is not allowed in the same specification part 58882fa241Speter klausler integer(kind=kind(m2j2)) :: t_s1bm2j2 59882fa241Speter klausler !ERROR: Forward reference to 'm2s1j2' is not allowed in the same specification part 60882fa241Speter klausler integer(kind=kind(m2s1j2)) :: t_s1bm2s1j2 61882fa241Speter klausler !ERROR: No explicit type declared for 'm2s1j3' 62882fa241Speter klausler integer(kind=kind(m2s1j3)) :: t_m2s1j3 63882fa241Speter klausler integer :: m2j2, m2s1j2, m2s1j3 64882fa241Speter klausler end block 65882fa241Speter klausler contains 66882fa241Speter klausler subroutine s2 67882fa241Speter klausler !ERROR: Forward reference to 'm2j3' is not allowed in the same specification part 68882fa241Speter klausler integer(kind=kind(m2j3)) :: t_m2j3 69882fa241Speter klausler !ERROR: No explicit type declared for 'm2s1j3' 70882fa241Speter klausler integer(kind=kind(m2s1j3)) :: t_m2s1j3 71882fa241Speter klausler integer :: m2j3, m2s1j3, m2s2j1 72882fa241Speter klausler block 73882fa241Speter klausler !ERROR: Forward reference to 'm2j4' is not allowed in the same specification part 74882fa241Speter klausler integer(kind=kind(m2j4)) :: t_m2j4 75882fa241Speter klausler !ERROR: Forward reference to 'm2s1j4' is not allowed in the same specification part 76882fa241Speter klausler integer(kind=kind(m2s1j4)) :: t_m2s1j4 77882fa241Speter klausler !ERROR: Forward reference to 'm2s2j1' is not allowed in the same specification part 78882fa241Speter klausler integer(kind=kind(m2s2j1)) :: t_m2s2j1 79882fa241Speter klausler !ERROR: No explicit type declared for 'm2s2j2' 80882fa241Speter klausler integer(kind=kind(m2s2j2)) :: t_m2s2j2 81882fa241Speter klausler integer :: m2j4, m2s1j4, m2s2j1, m2s2j2 82882fa241Speter klausler end block 83882fa241Speter klausler end subroutine 84882fa241Speter klausler end subroutine 85882fa241Speter klauslerend module 86882fa241Speter klausler 87882fa241Speter klausler! Case that elicited bad errors 88882fa241Speter klauslerSUBROUTINE KEEL 89882fa241Speter klausler INTEGER NODES 90882fa241Speter klausler CONTAINS 91882fa241Speter klausler SUBROUTINE SGEOM 92882fa241Speter klausler REAL :: RADIUS(nodes) 93882fa241Speter klausler END SUBROUTINE 94882fa241Speter klauslerEND SUBROUTINE KEEL 95