diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/argument_checking_5.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/argument_checking_5.f90 | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/argument_checking_5.f90 b/gcc/testsuite/gfortran.dg/argument_checking_5.f90 new file mode 100644 index 000000000..3715b30cf --- /dev/null +++ b/gcc/testsuite/gfortran.dg/argument_checking_5.f90 @@ -0,0 +1,35 @@ +! { dg-do compile } +! +! PR fortran/30940 +program test +implicit none +interface + subroutine foobar(x) + integer,dimension(4) :: x + end subroutine foobar + subroutine arr(y) + integer,dimension(1,2,1,2) :: y + end subroutine arr +end interface + +integer a(3), b(5) +call foobar(a) ! { dg-warning "contains too few elements" } +call foobar(b) +call foobar(b(1:3)) ! { dg-warning "contains too few elements" } +call foobar(b(1:5)) +call foobar(b(1:5:2)) ! { dg-warning "contains too few elements" } +call foobar(b(2)) +call foobar(b(3)) ! { dg-warning "Actual argument contains too few elements" } +call foobar(reshape(a(1:3),[2,1])) ! { dg-warning "contains too few elements" } +call foobar(reshape(b(2:5),[2,2])) + +call arr(a) ! { dg-warning "contains too few elements" } +call arr(b) +call arr(b(1:3)) ! { dg-warning "contains too few elements" } +call arr(b(1:5)) +call arr(b(1:5:2)) ! { dg-warning "contains too few elements" } +call arr(b(2)) +call arr(b(3)) ! { dg-warning "contains too few elements" } +call arr(reshape(a(1:3),[2,1])) ! { dg-warning "contains too few elements" } +call arr(reshape(b(2:5),[2,2])) +end program test |