diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/argument_checking_3.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/argument_checking_3.f90 | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/argument_checking_3.f90 b/gcc/testsuite/gfortran.dg/argument_checking_3.f90 new file mode 100644 index 000000000..5f451bf6d --- /dev/null +++ b/gcc/testsuite/gfortran.dg/argument_checking_3.f90 @@ -0,0 +1,36 @@ +! { dg-do compile } +! +! PR fortran/30940 +program test +implicit none +interface + subroutine foo(a) + character(len=1),dimension(:) :: a + end subroutine foo + subroutine bar(a) + character(len=1),dimension(:,:) :: a + end subroutine bar + subroutine foobar(a) + character(len=1),dimension(4) :: a + end subroutine foobar + subroutine arr(a) + character(len=1),dimension(1,2,1,2) :: a + end subroutine arr +end interface + character(len=2) :: len2 + character(len=4) :: len4 + len2 = '12' + len4 = '1234' + + call foo(len2) ! { dg-error "Rank mismatch in argument" } + call foo("ca") ! { dg-error "Rank mismatch in argument" } + call bar("ca") ! { dg-error "Rank mismatch in argument" } + call foobar(len2) ! { dg-warning "contains too few elements" } + call foobar(len4) + call foobar("bar") ! { dg-warning "contains too few elements" } + call foobar("bar33") + call arr(len2) ! { dg-warning "contains too few elements" } + call arr(len4) + call arr("bar") ! { dg-warning "contains too few elements" } + call arr("bar33") +end program test |