re PR fortran/42684 (ICE when interface operator(xx) available through host and use assoc in module procedure)
2010-01-14 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR fortran/42684 * gfortran.dg/interface_31.f90: New test. From-SVN: r155931
This commit is contained in:
parent
0175478dec
commit
3f298330df
@ -1,3 +1,8 @@
|
|||||||
|
2010-01-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
||||||
|
|
||||||
|
PR fortran/42684
|
||||||
|
* gfortran.dg/interface_31.f90: New test.
|
||||||
|
|
||||||
2010-01-14 Michael Meissner <meissner@linux.vnet.ibm.com>
|
2010-01-14 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||||||
|
|
||||||
* gcc.target/powerpc/pr42747.c: New file.
|
* gcc.target/powerpc/pr42747.c: New file.
|
||||||
|
41
gcc/testsuite/gfortran.dg/interface_31.f90
Normal file
41
gcc/testsuite/gfortran.dg/interface_31.f90
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
! { dg-do compile }
|
||||||
|
! PR42684 (42680) Ice with Interface.
|
||||||
|
MODULE mod1
|
||||||
|
IMPLICIT NONE
|
||||||
|
TYPE ta
|
||||||
|
INTEGER i
|
||||||
|
END TYPE ta
|
||||||
|
INTERFACE OPERATOR(+)
|
||||||
|
MODULE PROCEDURE add_a
|
||||||
|
END INTERFACE OPERATOR(+)
|
||||||
|
CONTAINS
|
||||||
|
FUNCTION add_a(lhs, rhs) RESULT(r)
|
||||||
|
TYPE(ta), INTENT(IN) :: lhs
|
||||||
|
TYPE(ta), INTENT(IN) :: rhs
|
||||||
|
TYPE(ta) :: r
|
||||||
|
!****
|
||||||
|
r%i = lhs%i + rhs%i
|
||||||
|
END FUNCTION add_a
|
||||||
|
END MODULE mod1
|
||||||
|
|
||||||
|
MODULE mod2
|
||||||
|
IMPLICIT NONE
|
||||||
|
TYPE tb
|
||||||
|
INTEGER j
|
||||||
|
END TYPE tb
|
||||||
|
INTERFACE OPERATOR(+)
|
||||||
|
MODULE PROCEDURE add_b
|
||||||
|
END INTERFACE OPERATOR(+)
|
||||||
|
CONTAINS
|
||||||
|
SUBROUTINE other_proc()
|
||||||
|
USE mod1 ! Causes ICE
|
||||||
|
END SUBROUTINE other_proc
|
||||||
|
FUNCTION add_b(lhs, rhs) RESULT(r)
|
||||||
|
TYPE(tb), INTENT(IN) :: lhs
|
||||||
|
TYPE(tb), INTENT(IN) :: rhs
|
||||||
|
TYPE(tb) :: r
|
||||||
|
!****
|
||||||
|
r%j = lhs%j + rhs%j
|
||||||
|
END FUNCTION add_b
|
||||||
|
END MODULE mod2
|
||||||
|
! { dg-final { cleanup-modules "mod1 mod2" } }
|
Loading…
Reference in New Issue
Block a user