summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/impure_2.f08
blob: 4bc2ca1fba69b27b219b5b560407d7ecb297c33f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
! { dg-do compile }
! { dg-options "-std=f2008" }

! PR fortran/45197
! Check for errors with IMPURE.

! Contributed by Daniel Kraft, d@domob.eu.

MODULE m
  IMPLICIT NONE

CONTAINS

  IMPURE PURE SUBROUTINE foobar () ! { dg-error "must not appear both" }

  PURE ELEMENTAL IMPURE FUNCTION xyz () ! { dg-error "must not appear both" }

  IMPURE ELEMENTAL SUBROUTINE mysub ()
  END SUBROUTINE mysub

  PURE SUBROUTINE purified ()
    CALL mysub () ! { dg-error "is not PURE" }
  END SUBROUTINE purified

END MODULE m

! { dg-final { cleanup-modules "m" } }