From: Tobias Burnus Date: Wed, 18 Sep 2013 22:19:03 +0000 (+0200) Subject: re PR fortran/57697 ([OOP] Segfault with defined assignment for components during... X-Git-Tag: misc/gupc_5_2_0_release~144^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=57c6def418f116f355d3d5eb71f4dd5003eefb0b;p=thirdparty%2Fgcc.git re PR fortran/57697 ([OOP] Segfault with defined assignment for components during intrinsic assignment) 2013-09-18 Tobias Burnus PR fortran/57697 * gfortran.dg/defined_assignment_11.f90: New. From-SVN: r202725 --- diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 4ed1d8b943b8..8b6304f0ef2b 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2013-09-18 Tobias Burnus + + PR fortran/57697 + * gfortran.dg/defined_assignment_11.f90: New. + 2013-09-18 Vladimir Makarov PR rtl-optimization/58438 diff --git a/gcc/testsuite/gfortran.dg/defined_assignment_11.f90 b/gcc/testsuite/gfortran.dg/defined_assignment_11.f90 new file mode 100644 index 000000000000..ec297d5492a8 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/defined_assignment_11.f90 @@ -0,0 +1,43 @@ +! { dg-do run } +! +! PR fortran/57697 +! +! Further test of typebound defined assignment +! +module m0 + implicit none + type :: component + integer :: i = 42 + integer, allocatable :: b + contains + procedure :: assign0 + generic :: assignment(=) => assign0 + end type + type, extends(component) :: comp2 + real :: aa + end type comp2 + type parent + type(component) :: foo + real :: cc + end type + type p2 + type(parent) :: x + end type p2 +contains + elemental subroutine assign0(lhs,rhs) + class(component), intent(INout) :: lhs + class(component), intent(in) :: rhs + lhs%i = 20 + end subroutine +end module + +program main + use m0 + implicit none + type(p2), allocatable :: left + type(p2) :: right +! print *, right%x%foo%i + left = right +! print *, left%x%foo%i + if (left%x%foo%i /= 20) call abort() +end