2010-11-30 Tobias Burnus <burnus@net-b.de>
[official-gcc.git] / gcc / testsuite / gfortran.dg / associate_9.f03
blob13a10fc0d9c6ecf3e2026b03dab38bfb56bf5aec
1 ! { dg-do compile }
2 ! { dg-options "-std=f2003 -fall-intrinsics" }
4 ! FIXME: Change into run test and remove excess error expectation.
6 ! PR fortran/38936
7 ! Association to derived-type, where the target type is not know
8 ! during parsing (only resolution).
10 ! Contributed by Daniel Kraft, d@domob.eu.
12 MODULE m
13   IMPLICIT NONE
15   TYPE :: mynum
16     INTEGER :: comp
17   END TYPE mynum
19   INTERFACE OPERATOR(+)
20     MODULE PROCEDURE add
21   END INTERFACE OPERATOR(+)
23 CONTAINS
25   PURE FUNCTION add (a, b)
26     TYPE(mynum), INTENT(IN) :: a, b
27     TYPE(mynum) :: add
29     add%comp = a%comp + b%comp
30   END FUNCTION add
32 END MODULE m
34 PROGRAM main
35   USE :: m
36   IMPLICIT NONE
38   TYPE(mynum) :: a
39   a = mynum (5)
41   ASSOCIATE (x => add (a, a))
42     IF (x%comp /= 10) CALL abort ()
43   END ASSOCIATE
45   ASSOCIATE (x => a + a)
46     IF (x%comp /= 10) CALL abort ()
47   END ASSOCIATE
48 END PROGRAM main
50 ! { dg-excess-errors "Syntex error in IF" }
51 ! { dg-final { cleanup-modules "m" } }