1! { dg-do compile }
2! PR42684 (42680) Ice with Interface.
3MODULE mod1
4  IMPLICIT NONE
5  TYPE ta
6    INTEGER i
7  END TYPE ta
8  INTERFACE OPERATOR(+)
9    MODULE PROCEDURE add_a
10  END INTERFACE OPERATOR(+)
11CONTAINS
12  FUNCTION add_a(lhs, rhs) RESULT(r)
13    TYPE(ta), INTENT(IN) :: lhs
14    TYPE(ta), INTENT(IN) :: rhs
15    TYPE(ta) :: r
16    !****
17    r%i = lhs%i + rhs%i
18  END FUNCTION add_a
19END MODULE mod1
20
21MODULE mod2
22  IMPLICIT NONE
23  TYPE tb
24    INTEGER j
25  END TYPE tb
26  INTERFACE OPERATOR(+)
27    MODULE PROCEDURE add_b
28  END INTERFACE OPERATOR(+)
29CONTAINS
30  SUBROUTINE other_proc()
31    USE mod1    ! Causes ICE
32  END SUBROUTINE other_proc
33  FUNCTION add_b(lhs, rhs) RESULT(r)
34    TYPE(tb), INTENT(IN) :: lhs
35    TYPE(tb), INTENT(IN) :: rhs
36    TYPE(tb) :: r
37    !****
38    r%j = lhs%j + rhs%j
39  END FUNCTION add_b
40END MODULE mod2
41