mirror of git://gcc.gnu.org/git/gcc.git
re PR fortran/46328 ([OOP] type-bound operator call with non-trivial polymorphic operand)
2012-01-09 Tobias Burnus <burnus@net-b.de> PR fortran/46328 * gfortran.dg/typebound_operator_11.f90: New. From-SVN: r183039
This commit is contained in:
parent
243b92d11e
commit
0ec05c678a
|
@ -1,3 +1,8 @@
|
||||||
|
2012-01-09 Tobias Burnus <burnus@net-b.de>
|
||||||
|
|
||||||
|
PR fortran/46328
|
||||||
|
* gfortran.dg/typebound_operator_11.f90: New.
|
||||||
|
|
||||||
2012-01-09 Eric Botcazou <ebotcazou@adacore.com>
|
2012-01-09 Eric Botcazou <ebotcazou@adacore.com>
|
||||||
|
|
||||||
* gnat.dg/array18.adb: New test.
|
* gnat.dg/array18.adb: New test.
|
||||||
|
@ -12,7 +17,7 @@
|
||||||
|
|
||||||
2012-01-09 Martin Jambor <mjambor@suse.cz>
|
2012-01-09 Martin Jambor <mjambor@suse.cz>
|
||||||
|
|
||||||
PR tree-optimization/51759
|
PR tree-optimization/51759
|
||||||
* g++.dg/ipa/pr51759.C: New test.
|
* g++.dg/ipa/pr51759.C: New test.
|
||||||
|
|
||||||
2012-01-09 Tobias Burnus <burnus@net-b.de>
|
2012-01-09 Tobias Burnus <burnus@net-b.de>
|
||||||
|
|
|
@ -0,0 +1,42 @@
|
||||||
|
! { dg-do compile }
|
||||||
|
!
|
||||||
|
! PR fortran/46328
|
||||||
|
!
|
||||||
|
! Contributed by Damian Rouson
|
||||||
|
!
|
||||||
|
module foo_module
|
||||||
|
type ,abstract :: foo
|
||||||
|
contains
|
||||||
|
procedure(t_interface) ,deferred :: t
|
||||||
|
procedure(assign_interface) ,deferred :: assign
|
||||||
|
procedure(multiply_interface) ,deferred :: multiply
|
||||||
|
generic :: operator(*) => multiply
|
||||||
|
generic :: assignment(=) => assign
|
||||||
|
end type
|
||||||
|
abstract interface
|
||||||
|
function t_interface(this)
|
||||||
|
import :: foo
|
||||||
|
class(foo) :: this
|
||||||
|
class(foo), allocatable ::t_interface
|
||||||
|
end function
|
||||||
|
function multiply_interface(lhs,rhs)
|
||||||
|
import :: foo
|
||||||
|
class(foo), allocatable :: multiply_interface
|
||||||
|
class(foo), intent(in) :: lhs
|
||||||
|
real, intent(in) :: rhs
|
||||||
|
end function
|
||||||
|
subroutine assign_interface(lhs,rhs)
|
||||||
|
import :: foo
|
||||||
|
class(foo), intent(in) :: rhs
|
||||||
|
class(foo), intent(inout) :: lhs
|
||||||
|
end subroutine
|
||||||
|
end interface
|
||||||
|
contains
|
||||||
|
subroutine bar(x,dt)
|
||||||
|
class(foo) :: x
|
||||||
|
real, intent(in) :: dt
|
||||||
|
x = x%t()*dt
|
||||||
|
end subroutine
|
||||||
|
end module
|
||||||
|
|
||||||
|
! { dg-final { cleanup-modules "foo_module" } }
|
Loading…
Reference in New Issue