! RUN: %python %S/test_errors.py %s %flang_fc1 subroutine s1(x, y) !ERROR: Array pointer 'x' must have deferred shape or assumed rank real, pointer :: x(1:) ! C832 !ERROR: Allocatable array 'y' must have deferred shape or assumed rank real, dimension(1:,1:), allocatable :: y ! C832 end subroutine s2(a, b, c) real :: a(:,1:) real :: b(10,*) real :: c(..) !ERROR: Array pointer 'd' must have deferred shape or assumed rank real, pointer :: d(:,1:) ! C832 !ERROR: Allocatable array 'e' must have deferred shape or assumed rank real, allocatable :: e(10,*) ! C832 !ERROR: Assumed-rank array 'f' must be a dummy argument real, pointer :: f(..) ! C837 !ERROR: Assumed-shape array 'g' must be a dummy argument real :: g(:,1:) !ERROR: Assumed-size array 'h' must be a dummy argument real :: h(10,*) ! C833 !ERROR: Assumed-rank array 'i' must be a dummy argument real :: i(..) ! C837 end subroutine s3(a, b) real :: a(*) !ERROR: Dummy array argument 'b' may not have implied shape real :: b(*,*) ! C835, C836 !ERROR: Implied-shape array 'c' must be a named constant or a dummy argument real :: c(*) ! C836 !ERROR: Named constant 'd' array must have constant or implied shape integer, parameter :: d(:) = [1, 2, 3] end subroutine s4() type :: t integer, allocatable :: a(:) !ERROR: Component array 'b' without ALLOCATABLE or POINTER attribute must have explicit shape integer :: b(:) ! C749 real, dimension(1:10) :: c !ERROR: Array pointer component 'd' must have deferred shape real, pointer, dimension(1:10) :: d ! C745 end type end function f() !ERROR: Array 'f' without ALLOCATABLE or POINTER attribute must have explicit shape real, dimension(:) :: f ! C832 end subroutine s5() !ERROR: Allocatable array 'a' must have deferred shape or assumed rank integer :: a(10), b(:) allocatable :: a allocatable :: b end subroutine subroutine s6() !C835 An object whose array bounds are specified by an ! implied-shape-or-assumed-size-spec shall be a dummy data object or a named ! constant. ! !C843 An entity with the INTENT attribute shall be a dummy data object or a ! dummy procedure pointer. ! !C849 An entity with the OPTIONAL attribute shall be a dummy argument. !ERROR: Implied-shape array 'local1' must be a named constant or a dummy argument real, dimension (*) :: local1 !ERROR: INTENT attributes may apply only to a dummy argument real, intent(in) :: local2 !ERROR: INTENT attributes may apply only to a dummy argument procedure(), intent(in) :: p1 !ERROR: OPTIONAL attribute may apply only to a dummy argument real, optional :: local3 !ERROR: OPTIONAL attribute may apply only to a dummy argument procedure(), optional :: p2 end subroutine