1! { dg-do run } 2! Checks the fix for PR31205, in which temporaries were not 3! written for the interface assignment and the parentheses below. 4! 5! Contributed by Joost VandeVondele <jv244@cam.ac.uk> 6! 7MODULE TT 8 TYPE data_type 9 INTEGER :: I=2 10 END TYPE data_type 11 INTERFACE ASSIGNMENT (=) 12 MODULE PROCEDURE set 13 END INTERFACE 14CONTAINS 15 PURE SUBROUTINE set(x1,x2) 16 TYPE(data_type), INTENT(IN) :: x2 17 TYPE(data_type), INTENT(OUT) :: x1 18 CALL S1(x1,x2) 19 END SUBROUTINE 20 PURE SUBROUTINE S1(x1,x2) 21 TYPE(data_type), INTENT(IN) :: x2 22 TYPE(data_type), INTENT(OUT) :: x1 23 x1%i=x2%i 24 END SUBROUTINE 25END MODULE 26 27USE TT 28TYPE(data_type) :: D,E 29 30D%I=4 31D=D 32 33E%I=4 34CALL set(E,(E)) 35 36IF (D%I.NE.4) call abort () 37IF (4.NE.E%I) call abort () 38END 39