1! { dg-do compile } 2! { dg-options "-std=f2003 -fall-intrinsics" } 3 4! FIXME: Change into run test and remove excess error expectation. 5 6! PR fortran/38936 7! Association to derived-type, where the target type is not know 8! during parsing (only resolution). 9 10! Contributed by Daniel Kraft, d@domob.eu. 11 12MODULE m 13 IMPLICIT NONE 14 15 TYPE :: mynum 16 INTEGER :: comp 17 END TYPE mynum 18 19 INTERFACE OPERATOR(+) 20 MODULE PROCEDURE add 21 END INTERFACE OPERATOR(+) 22 23CONTAINS 24 25 PURE FUNCTION add (a, b) 26 TYPE(mynum), INTENT(IN) :: a, b 27 TYPE(mynum) :: add 28 29 add%comp = a%comp + b%comp 30 END FUNCTION add 31 32END MODULE m 33 34PROGRAM main 35 USE :: m 36 IMPLICIT NONE 37 38 TYPE(mynum) :: a 39 a = mynum (5) 40 41 ASSOCIATE (x => add (a, a)) 42 IF (x%comp /= 10) CALL abort () 43 END ASSOCIATE 44 45 ASSOCIATE (x => a + a) 46 IF (x%comp /= 10) CALL abort () 47 END ASSOCIATE 48END PROGRAM main 49 50! { dg-excess-errors "Syntex error in IF" } 51