1! RUN: %S/test_errors.sh %s %t %flang_fc1 2! REQUIRES: shell 3! Tests for duplicate definitions and initializations, mostly of procedures 4module m 5 procedure(real), pointer :: p 6 !ERROR: The interface for procedure 'p' has already been declared 7 procedure(integer), pointer :: p 8end 9 10module m1 11 real, dimension(:), pointer :: realArray => null() 12 !ERROR: The type of 'realarray' has already been declared 13 real, dimension(:), pointer :: realArray => localArray 14end module m1 15 16module m2 17 interface 18 subroutine sub() 19 end subroutine sub 20 end interface 21 22 procedure(sub), pointer :: p1 => null() 23 !ERROR: The interface for procedure 'p1' has already been declared 24 procedure(sub), pointer :: p1 => null() 25 26end module m2 27 28module m3 29 interface 30 real function fun() 31 end function fun 32 end interface 33 34 procedure(fun), pointer :: f1 => null() 35 !ERROR: The interface for procedure 'f1' has already been declared 36 procedure(fun), pointer :: f1 => null() 37 38end module m3 39 40module m4 41 real, dimension(:), pointer :: localArray => null() 42 type :: t2 43 real, dimension(:), pointer :: realArray => null() 44 !ERROR: Component 'realarray' is already declared in this derived type 45 real, dimension(:), pointer :: realArray => localArray 46 end type 47end module m4 48 49module m5 50 !ERROR: Actual argument for 'string=' has bad type 'REAL(4)' 51 character(len=len(a)) :: b 52 !ERROR: The type of 'a' has already been implicitly declared 53 character(len=len(b)) :: a 54end module m5 55 56module m6 57 integer, dimension(3) :: iarray 58 !ERROR: Derived type 'ubound' not found 59 character(len=ubound(iarray)(1)) :: first 60end module m6 61 62module m7 63 integer, dimension(2) :: iarray 64 !ERROR: Derived type 'ubound' not found 65 integer :: ivar = ubound(iarray)(1) 66end module m7 67 68module m8 69 integer :: iVar = 3 70 !ERROR: The type of 'ivar' has already been declared 71 integer :: iVar = 4 72 integer, target :: jVar = 5 73 integer, target :: kVar = 5 74 integer, pointer :: pVar => jVar 75 !ERROR: The type of 'pvar' has already been declared 76 integer, pointer :: pVar => kVar 77end module m8 78