diff options
author | Tobias Burnus <burnus@net-b.de> | 2008-04-25 22:11:21 +0200 |
---|---|---|
committer | Tobias Burnus <burnus@gcc.gnu.org> | 2008-04-25 22:11:21 +0200 |
commit | 38101ca779c9b130f8559df3250c0f9d91cbd0ba (patch) | |
tree | 3232e26f0239c46e8fc9a6837d3438042664a118 /gcc/testsuite/gfortran.dg | |
parent | e94471bae06f30fae4904fa95da2d36a9dc11985 (diff) | |
download | gcc-38101ca779c9b130f8559df3250c0f9d91cbd0ba.zip gcc-38101ca779c9b130f8559df3250c0f9d91cbd0ba.tar.gz gcc-38101ca779c9b130f8559df3250c0f9d91cbd0ba.tar.bz2 |
array_constructor_23.f: Change REAL(10) into kind > 8.
2008-04-25 Tobias Burnus <burnus@net-b.de>
* gfortran/array_constructor_23.f: Change REAL(10) into kind > 8.
* gfortran/array_constructor_24.f: New; REAL(8) version of the test.
From-SVN: r134678
Diffstat (limited to 'gcc/testsuite/gfortran.dg')
-rw-r--r-- | gcc/testsuite/gfortran.dg/array_constructor_23.f | 3 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/array_constructor_24.f | 47 |
2 files changed, 49 insertions, 1 deletions
diff --git a/gcc/testsuite/gfortran.dg/array_constructor_23.f b/gcc/testsuite/gfortran.dg/array_constructor_23.f index 3eeedba..ac57efc 100644 --- a/gcc/testsuite/gfortran.dg/array_constructor_23.f +++ b/gcc/testsuite/gfortran.dg/array_constructor_23.f @@ -1,4 +1,5 @@ ! { dg-do run } +! { dg-require-effective-target fortran_large_real } ! Tests the fix for PR35944/6/7, in which the variable array constructors below ! were incorrectly translated and wrong code was produced. ! @@ -34,7 +35,7 @@ subroutine fa2083 implicit none integer j1,k - parameter (k=10) !failed + parameter (k=selected_real_kind (precision (0.0_8) + 1)) ! failed REAL(k) QDA1(10) REAL(k) QDA(10), qval qda = (/ 1,2,3,4,5,6,7,8,9,10 /) diff --git a/gcc/testsuite/gfortran.dg/array_constructor_24.f b/gcc/testsuite/gfortran.dg/array_constructor_24.f new file mode 100644 index 0000000..dad613b --- /dev/null +++ b/gcc/testsuite/gfortran.dg/array_constructor_24.f @@ -0,0 +1,47 @@ +! { dg-do run } +! Tests the fix for PR35944/6/7, in which the variable array constructors below +! were incorrectly translated and wrong code was produced. +! +! Contributed by Dick Hendrickson <dick.hendrickson@gmail.com> +! + program try_fa6013 + call fa6013 (10, 1, -1) + call fa6077 (10, 1, -1, (/1,2,3,4,5,6,7,8,9,10/)) + call fa2083 + end program + + subroutine FA6013 (nf10, nf1, mf1) + integer, parameter :: kv = 4 + REAL(KV) DDA1(10) + REAL(KV) DDA2(10) + REAL(KV) DDA(10), dval + dda = (/1,2,3,4,5,6,7,8,9,10/) + DDA1 = ATAN2 ((/(REAL(J1,KV),J1=1,10)/), + $ REAL((/(J1,J1=nf10,nf1,mf1)/), KV)) !fails + DDA2 = ATAN2 (DDA, DDA(10:1:-1)) + if (any (DDA1 .ne. DDA2)) call abort () + END + + subroutine FA6077 (nf10,nf1,mf1, ida) + INTEGER IDA1(10) + INTEGER IDA2(10), ida(10) + IDA1 = IEOR((/1,2,3,4,5,6,7,8,9,10/), + $ (/(IDA(J1),J1=10,1,-1)/) ) + IDA2 = IEOR ((/1,2,3,4,5,6,7,8,9,10/), (/10,9,8,7,6,5,4,3,2,1/) ) + if (any (ida1 .ne. ida2)) call abort () + END SUBROUTINE + + subroutine fa2083 + implicit none + integer j1,k + parameter (k=8) !failed for k=10 + REAL(k) QDA1(10) + REAL(k) QDA(10), qval + qda = (/ 1,2,3,4,5,6,7,8,9,10 /) + QDA1 = MOD ( 1.1_k*( QDA(1) -5.0_k), P=( QDA -2.5_k)) + DO J1 = 1,10 + QVAL = MOD(1.1_k*(QDA(1)-5.0_k),P=(QDA(J1)-2.5_k)) + if (qval .ne. qda1(j1)) call abort () + ENDDO + END + |