diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/implicit_actual.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/implicit_actual.f90 | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/implicit_actual.f90 b/gcc/testsuite/gfortran.dg/implicit_actual.f90 new file mode 100644 index 000000000..750d3f385 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/implicit_actual.f90 @@ -0,0 +1,35 @@ +! { dg-do compile } +! Tests patch for problem that was found whilst investigating +! PR24158. The call to foo would cause an ICE because the +! actual argument was of a type that was not defined. The USE +! GLOBAL was commented out, following the fix for PR29364. +! +! Contributed by Paul Thomas <pault@gcc.gnu.org> +! +module global + type :: t2 + type(t3), pointer :: d ! { dg-error "has not been declared" } + end type t2 +end module global + +program snafu +! use global + implicit type (t3) (z) + + call foo (zin) ! { dg-error "defined|Type mismatch" } + +contains + + subroutine foo (z) + + type :: t3 + integer :: i + end type t3 + + type(t3) :: z + z%i = 1 + + end subroutine foo +end program snafu + +! { dg-final { cleanup-modules "global" } } |