92 lines · plain
1! RUN: %python %S/test_errors.py %s %flang_fc12! Tests for duplicate definitions and initializations, mostly of procedures3module m4 procedure(real), pointer :: p5 !ERROR: EXTERNAL attribute was already specified on 'p'6 !ERROR: POINTER attribute was already specified on 'p'7 !ERROR: The type of 'p' has already been declared8 procedure(integer), pointer :: p9end10 11module m112 real, dimension(:), pointer :: realArray => null()13 !ERROR: POINTER attribute was already specified on 'realarray'14 !ERROR: The type of 'realarray' has already been declared15 real, dimension(:), pointer :: realArray => localArray16end module m117 18module m219 interface20 subroutine sub()21 end subroutine sub22 end interface23 24 procedure(sub), pointer :: p1 => null()25 !ERROR: EXTERNAL attribute was already specified on 'p1'26 !ERROR: POINTER attribute was already specified on 'p1'27 !ERROR: The interface for procedure 'p1' has already been declared28 procedure(sub), pointer :: p1 => null()29 30end module m231 32module m333 interface34 real function fun()35 end function fun36 end interface37 38 procedure(fun), pointer :: f1 => null()39 !ERROR: EXTERNAL attribute was already specified on 'f1'40 !ERROR: POINTER attribute was already specified on 'f1'41 !ERROR: The interface for procedure 'f1' has already been declared42 procedure(fun), pointer :: f1 => null()43 44end module m345 46module m447 real, dimension(:), pointer :: localArray => null()48 type :: t249 real, dimension(:), pointer :: realArray => null()50 !ERROR: Component 'realarray' is already declared in this derived type51 real, dimension(:), pointer :: realArray => localArray52 end type53end module m454 55module m556 !ERROR: Actual argument for 'string=' has bad type 'REAL(4)'57 character(len=len(a)) :: b58 !ERROR: The type of 'a' has already been implicitly declared59 character(len=len(b)) :: a60end module m561 62module m663 integer, dimension(3) :: iarray64 !ERROR: Derived type 'ubound' not found65 character(len=ubound(iarray)(1)) :: first66end module m667 68module m769 integer, dimension(2) :: iarray70 !ERROR: Derived type 'ubound' not found71 integer :: ivar = ubound(iarray)(1)72end module m773 74module m875 integer :: iVar = 376 !ERROR: The type of 'ivar' has already been declared77 integer :: iVar = 478 integer, target :: jVar = 579 integer, target :: kVar = 580 integer, pointer :: pVar => jVar81 !ERROR: POINTER attribute was already specified on 'pvar'82 !ERROR: The type of 'pvar' has already been declared83 integer, pointer :: pVar => kVar84end module m885 86module m987 integer :: p, q88 procedure() p ! ok89 !ERROR: The type of 'q' has already been declared90 procedure(real) q91end module m992