1! { dg-do compile } 2! PR fortran/34661 ICE on user-defined assignments in where statements 3! Testcase contributed by Joost VandeVondele 4 5MODULE M1 6 IMPLICIT NONE 7 TYPE T1 8 INTEGER :: I 9 END TYPE T1 10 INTERFACE ASSIGNMENT(=) 11 MODULE PROCEDURE S1 12 END INTERFACE 13CONTAINS 14 SUBROUTINE S1(I,J) 15 TYPE(T1), INTENT(OUT) :: I(2) 16 TYPE(T1), INTENT(IN) :: J(2) 17 I%I=-J%I 18 END SUBROUTINE S1 19END MODULE M1 20 21USE M1 22TYPE(T1) :: I(2),J(2) 23I(:)%I=1 24WHERE (I(:)%I>0) 25 J=I ! { dg-error "Non-ELEMENTAL user-defined assignment in WHERE" } 26END WHERE 27 28WHERE (I(:)%I>0) J=I ! { dg-error "Non-ELEMENTAL user-defined assignment in WHERE" } 29 30END 31