diff options
author | Mikael Morin <mikael@gcc.gnu.org> | 2013-06-13 14:30:17 +0000 |
---|---|---|
committer | Mikael Morin <mikael@gcc.gnu.org> | 2013-06-13 14:30:17 +0000 |
commit | fffad99bde9d1da856f35d714a94e8249fdce1f7 (patch) | |
tree | be5b1044e2293d152cb52d7f6a48ce74e7bdf24b /gcc | |
parent | 37ea263afa8f68bc7a6fcda19a47eb645624ecb7 (diff) | |
download | gcc-fffad99bde9d1da856f35d714a94e8249fdce1f7.zip gcc-fffad99bde9d1da856f35d714a94e8249fdce1f7.tar.gz gcc-fffad99bde9d1da856f35d714a94e8249fdce1f7.tar.bz2 |
Commit forgotten file
From-SVN: r200070
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/gfortran.dg/typebound_assignment_5.f03 | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/typebound_assignment_5.f03 b/gcc/testsuite/gfortran.dg/typebound_assignment_5.f03 new file mode 100644 index 0000000..33fc38f --- /dev/null +++ b/gcc/testsuite/gfortran.dg/typebound_assignment_5.f03 @@ -0,0 +1,40 @@ +! { dg-do run } +! +! PR fortran/49074 +! ICE on defined assignment with class arrays. + + module foo + type bar + integer :: i + + contains + + generic :: assignment (=) => assgn_bar + procedure, private :: assgn_bar + end type bar + + contains + + elemental subroutine assgn_bar (a, b) + class (bar), intent (inout) :: a + class (bar), intent (in) :: b + + select type (b) + type is (bar) + a%i = b%i + end select + + return + end subroutine assgn_bar + end module foo + + program main + use foo + + type (bar), allocatable :: foobar(:) + + allocate (foobar(2)) + foobar = [bar(1), bar(2)] + if (any(foobar%i /= [1, 2])) call abort + end program + |