From 554fd8c5195424bdbcabf5de30fdc183aba391bd Mon Sep 17 00:00:00 2001 From: upstream source tree Date: Sun, 15 Mar 2015 20:14:05 -0400 Subject: obtained gcc-4.6.4.tar.bz2 from upstream website; verified gcc-4.6.4.tar.bz2.sig; imported gcc-4.6.4 source tree from verified upstream tarball. downloading a git-generated archive based on the 'upstream' tag should provide you with a source tree that is binary identical to the one extracted from the above tarball. if you have obtained the source via the command 'git clone', however, do note that line-endings of files in your working directory might differ from line-endings of the respective files in the upstream repository. --- gcc/testsuite/gfortran.dg/array_initializer_1.f90 | 35 +++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 gcc/testsuite/gfortran.dg/array_initializer_1.f90 (limited to 'gcc/testsuite/gfortran.dg/array_initializer_1.f90') diff --git a/gcc/testsuite/gfortran.dg/array_initializer_1.f90 b/gcc/testsuite/gfortran.dg/array_initializer_1.f90 new file mode 100644 index 000000000..3347758dc --- /dev/null +++ b/gcc/testsuite/gfortran.dg/array_initializer_1.f90 @@ -0,0 +1,35 @@ +! { dg-do run } +! Check the fix for PR16206, in which array sections would not work +! in array initializers. Use of implied do loop variables for indices +! and substrings, with and without implied do loops, were fixed at the +! same time. +! +! Contributed by Paul Thomas +! based on testcase from Harald Anlauf +! + real, parameter :: x(4,4) = reshape((/(i, i = 1, 16)/), (/4,4/)) + real, parameter :: y(4) = (/ x(1:2, 2), x(3:4, 4)/) + real, parameter :: z(2) = x(2:3, 3) + 1 + real, parameter :: r(6) = (/(x(i:i +1, i), i = 1,3)/) + real, parameter :: s(12) = (/((x(i, i:j-1:-1), i = 3,4), j = 2,3)/) + real, parameter :: t(8) = (/(z, real (i)**3, y(i), i = 2, 3)/) + + integer, parameter :: ii = 4 + + character(4), parameter :: chr(4) = (/"abcd", "efgh", "ijkl", "mnop"/) + character(4), parameter :: chrs = chr(ii)(2:3)//chr(2)(ii-3:ii-2) + character(4), parameter :: chrt(2) = (/chr(2:2)(2:3), chr(ii-1)(3:ii)/) + character(2), parameter :: chrx(2) = (/(chr(i)(i:i+1), i=2,3)/) + + if (any (y .ne. (/5., 6., 15., 16./))) call abort () + if (any (z .ne. (/11., 12./))) call abort () + if (any (r .ne. (/1., 2., 6., 7., 11., 12./))) call abort () + if (any (s .ne. (/11., 7., 3., 16., 12., 8., 4., & + 11., 7., 16., 12., 8. /))) call abort () + + if (any (t .ne. (/11., 12., 8., 6., 11., 12., 27., 15. /))) call abort () + + if (chrs .ne. "noef") call abort () + if (any (chrt .ne. (/"fg", "kl"/))) call abort () + if (any (chrx .ne. (/"fg", "kl"/))) call abort () +end -- cgit v1.2.3