diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/array_memcpy_5.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/array_memcpy_5.f90 | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/array_memcpy_5.f90 b/gcc/testsuite/gfortran.dg/array_memcpy_5.f90 new file mode 100644 index 000000000..40fb6957a --- /dev/null +++ b/gcc/testsuite/gfortran.dg/array_memcpy_5.f90 @@ -0,0 +1,22 @@ +! { dg-do run } +! Tests the fix for PR33370, in which array copying, with subreferences +! was broken due to a regression. +! +! Reported by Thomas Koenig <tkoenig@gcc.gnu.org> +! +program main + type foo + integer :: i + character(len=3) :: c + end type foo + type(foo), dimension(2) :: a = (/foo (1, "uvw"), foo (2, "xyz")/) + type(foo), dimension(2) :: b = (/foo (101, "abc"), foo (102, "def")/) + a%i = 0 + print *, a + a%i = (/ 12, 2/) + if (any (a%c .ne. (/"uvw", "xyz"/))) call abort () + if (any (a%i .ne. (/12, 2/))) call abort () + a%i = b%i + if (any (a%c .ne. (/"uvw", "xyz"/))) call abort () + if (any (a%i .ne. (/101, 102/))) call abort () +end program main |