diff options
author | Janus Weil <janus@gcc.gnu.org> | 2012-10-12 10:16:17 +0200 |
---|---|---|
committer | Janus Weil <janus@gcc.gnu.org> | 2012-10-12 10:16:17 +0200 |
commit | f2f8171fb15c0cdbefdead5387d5d253c4008ff2 (patch) | |
tree | 621f55baff38398b2069456b8ee118391ada291a /gcc/testsuite | |
parent | 60b95d28c0d2b2f16836ceacd5a3a9c5dd2d80f9 (diff) | |
download | gcc-f2f8171fb15c0cdbefdead5387d5d253c4008ff2.zip gcc-f2f8171fb15c0cdbefdead5387d5d253c4008ff2.tar.gz gcc-f2f8171fb15c0cdbefdead5387d5d253c4008ff2.tar.bz2 |
re PR fortran/40453 ([F95] Enhanced (recursive) argument checking)
2012-10-12 Janus Weil <janus@gcc.gnu.org>
PR fortran/40453
* interface.c (check_dummy_characteristics): Recursively check dummy
procedures.
2012-10-12 Janus Weil <janus@gcc.gnu.org>
PR fortran/40453
* gfortran.dg/dummy_procedure_9.f90: New.
From-SVN: r192391
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/dummy_procedure_9.f90 | 37 |
2 files changed, 42 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 776727c..0612d04 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2012-10-12 Janus Weil <janus@gcc.gnu.org> + + PR fortran/40453 + * gfortran.dg/dummy_procedure_9.f90: New. + 2012-10-12 Richard Biener <rguenther@suse.de> PR tree-optimization/54894 diff --git a/gcc/testsuite/gfortran.dg/dummy_procedure_9.f90 b/gcc/testsuite/gfortran.dg/dummy_procedure_9.f90 new file mode 100644 index 0000000..16da37f --- /dev/null +++ b/gcc/testsuite/gfortran.dg/dummy_procedure_9.f90 @@ -0,0 +1,37 @@ +! { dg-do compile } +! +! PR 40453: [F95] Enhanced (recursive) argument checking +! +! Contributed by Tobias Burnus <burnus@gcc.gnu.org> + +program RecursiveInterface + + call c(b2) ! { dg-error "Interface mismatch in dummy procedure" } + + contains + + subroutine a1(x) + real :: x + end subroutine + + subroutine a2(i) + integer :: i + end subroutine + + !!!!!!!!!!!!!!! + + subroutine b1 (f1) + procedure(a1) :: f1 + end subroutine + + subroutine b2 (f2) + procedure(a2) :: f2 + end subroutine + + !!!!!!!!!!!!!!! + + subroutine c(g) + procedure(b1) :: g + end subroutine + +end |