diff options
author | upstream source tree <ports@midipix.org> | 2015-03-15 20:14:05 -0400 |
---|---|---|
committer | upstream source tree <ports@midipix.org> | 2015-03-15 20:14:05 -0400 |
commit | 554fd8c5195424bdbcabf5de30fdc183aba391bd (patch) | |
tree | 976dc5ab7fddf506dadce60ae936f43f58787092 /gcc/testsuite/gfortran.dg/missing_optional_dummy_2.f90 | |
download | cbb-gcc-4.6.4-554fd8c5195424bdbcabf5de30fdc183aba391bd.tar.bz2 cbb-gcc-4.6.4-554fd8c5195424bdbcabf5de30fdc183aba391bd.tar.xz |
obtained gcc-4.6.4.tar.bz2 from upstream website;upstream
verified gcc-4.6.4.tar.bz2.sig;
imported gcc-4.6.4 source tree from verified upstream tarball.
downloading a git-generated archive based on the 'upstream' tag
should provide you with a source tree that is binary identical
to the one extracted from the above tarball.
if you have obtained the source via the command 'git clone',
however, do note that line-endings of files in your working
directory might differ from line-endings of the respective
files in the upstream repository.
Diffstat (limited to 'gcc/testsuite/gfortran.dg/missing_optional_dummy_2.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/missing_optional_dummy_2.f90 | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/missing_optional_dummy_2.f90 b/gcc/testsuite/gfortran.dg/missing_optional_dummy_2.f90 new file mode 100644 index 000000000..100784d87 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/missing_optional_dummy_2.f90 @@ -0,0 +1,40 @@ +! { dg-do compile } +! Tests the fix for PR29321 and PR29322, in which ICEs occurred for the +! lack of proper attention to checking pointers in gfc_conv_function_call. +! +! Contributed by Olav Vahtras <vahtras@pdc.kth.se> +! and Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> +! +MODULE myint + TYPE NUM + INTEGER :: R = 0 + END TYPE NUM + CONTAINS + FUNCTION FUNC(A,B) RESULT(E) + IMPLICIT NONE + TYPE(NUM) A,B,E + INTENT(IN) :: A,B + OPTIONAL B + E%R=A%R + CALL SUB(A,E) + END FUNCTION FUNC + + SUBROUTINE SUB(A,E,B,C) + IMPLICIT NONE + TYPE(NUM) A,E,B,C + INTENT(IN) A,B + INTENT(OUT) E,C + OPTIONAL B,C + E%R=A%R + END SUBROUTINE SUB +END MODULE myint + + if (isscan () /= 0) call abort +contains + integer function isscan (substr) + character(*), optional :: substr + if (.not.present(substr)) isscan = myscan ("foo", "over") + end function isscan +end +! { dg-final { cleanup-modules "myint" } } + |