diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/impure_assignment_1.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/impure_assignment_1.f90 | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/impure_assignment_1.f90 b/gcc/testsuite/gfortran.dg/impure_assignment_1.f90 new file mode 100644 index 000000000..6a1660c38 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/impure_assignment_1.f90 @@ -0,0 +1,28 @@ +! { dg-do compile } +! Tests fix for PR25059, which gave and ICE after error message +! Contributed by Joost VandeVondele <jv244@cam.ac.uk> +MODULE M1 + TYPE T1 + INTEGER :: I + END TYPE T1 + INTERFACE ASSIGNMENT(=) + MODULE PROCEDURE S1 + END INTERFACE +CONTAINS + SUBROUTINE S1(I,J) + TYPE(T1), INTENT(OUT):: I + TYPE(T1), INTENT(IN) :: J + I%I=J%I**2 + END SUBROUTINE S1 +END MODULE M1 + +USE M1 +CONTAINS +PURE SUBROUTINE S2(I,J) + TYPE(T1), INTENT(OUT):: I + TYPE(T1), INTENT(IN) :: J + I=J ! { dg-error "is not PURE" } +END SUBROUTINE S2 +END +! { dg-final { cleanup-modules "M1" } } + |