1! { dg-do compile } 2! 3! PR fortran/30940 4program test 5implicit none 6interface 7 subroutine foobar(x) 8 integer,dimension(4) :: x 9 end subroutine foobar 10 subroutine arr(y) 11 integer,dimension(1,2,1,2) :: y 12 end subroutine arr 13end interface 14 15integer a(3), b(5) 16call foobar(a) ! { dg-warning "contains too few elements" } 17call foobar(b) 18call foobar(b(1:3)) ! { dg-warning "contains too few elements" } 19call foobar(b(1:5)) 20call foobar(b(1:5:2)) ! { dg-warning "contains too few elements" } 21call foobar(b(2)) 22call foobar(b(3)) ! { dg-warning "Actual argument contains too few elements" } 23call foobar(reshape(a(1:3),[2,1])) ! { dg-warning "contains too few elements" } 24call foobar(reshape(b(2:5),[2,2])) 25 26call arr(a) ! { dg-warning "contains too few elements" } 27call arr(b) 28call arr(b(1:3)) ! { dg-warning "contains too few elements" } 29call arr(b(1:5)) 30call arr(b(1:5:2)) ! { dg-warning "contains too few elements" } 31call arr(b(2)) 32call arr(b(3)) ! { dg-warning "contains too few elements" } 33call arr(reshape(a(1:3),[2,1])) ! { dg-warning "contains too few elements" } 34call arr(reshape(b(2:5),[2,2])) 35end program test 36