! RUN: %python %S/test_errors.py %s %flang_fc1 -pedantic ! Test warnings and errors about DIM= arguments to transformational intrinsics module m contains function f0a(a) real, intent(in) :: a(:) !ERROR: The value of DIM= (-1) may not be less than 1 f0a = sum(a,dim=-1) end function function f0b(a) real, intent(in) :: a(:) !ERROR: The value of DIM= (2) may not be greater than 1 f0b = sum(a,dim=2) end function function f1(a,d) real, intent(in) :: a(:) integer, optional, intent(in) :: d !PORTABILITY: The actual argument for DIM= is optional, pointer, or allocatable, and it is assumed to be present and equal to 1 at execution time f1 = sum(a,dim=d) !PORTABILITY: The actual argument for DIM= is optional, pointer, or allocatable, and it is assumed to be present and equal to 1 at execution time f1 = norm2(a,dim=d) end function function f2(a,d) real, intent(in) :: a(:) integer, pointer, intent(in) :: d !PORTABILITY: The actual argument for DIM= is optional, pointer, or allocatable, and it is assumed to be present and equal to 1 at execution time f2 = sum(a,dim=d) end function function f3(a,d) real, intent(in) :: a(:) integer, allocatable, intent(in) :: d !PORTABILITY: The actual argument for DIM= is optional, pointer, or allocatable, and it is assumed to be present and equal to 1 at execution time f3 = sum(a,dim=d) end function function f10a(a) real, intent(in) :: a(:,:) real, allocatable :: f10a(:) !ERROR: The value of DIM= (-1) may not be less than 1 f10a = sum(a,dim=-1) end function function f10b(a) real, intent(in) :: a(:,:) real, allocatable :: f10b(:) !ERROR: The value of DIM= (3) may not be greater than 2 f10b = sum(a,dim=3) end function function f11(a,d) real, intent(in) :: a(:,:) integer, optional, intent(in) :: d real, allocatable :: f11(:) !WARNING: The actual argument for DIM= is optional, pointer, or allocatable, and may not be absent during execution; parenthesize to silence this warning f11 = sum(a,dim=d) !WARNING: The actual argument for DIM= is optional, pointer, or allocatable, and may not be absent during execution; parenthesize to silence this warning f11 = norm2(a,dim=d) end function function f12(a,d) real, intent(in) :: a(:,:) integer, pointer, intent(in) :: d real, allocatable :: f12(:) !WARNING: The actual argument for DIM= is optional, pointer, or allocatable, and may not be absent during execution; parenthesize to silence this warning f12 = sum(a,dim=d) end function function f13(a,d) real, intent(in) :: a(:,:) integer, allocatable, intent(in) :: d real, allocatable :: f13(:) !WARNING: The actual argument for DIM= is optional, pointer, or allocatable, and may not be absent during execution; parenthesize to silence this warning f13 = sum(a,dim=d) end function end module