On Tue, Dec 04, 2012 at 05:03:10PM +0100, Tobias Burnus wrote: > +2012-12-04 Tobias Burnus <bur...@net-b.de> > + > + * gfortran.dg/quad_3.f90: Fix a condition, > + which wrongly required ordered/lazy evaluation. > + > 2012-12-04 Marcus Shawcroft <marcus.shawcr...@arm.com> > > * gcc.target/aarch64/121127.c: New test. > Index: gfortran.dg/quad_3.f90 > =================================================================== > --- gfortran.dg/quad_3.f90 (Revision 194152) > +++ gfortran.dg/quad_3.f90 (Arbeitskopie) > @@ -15,6 +15,8 @@ program test_qp > ! Run this only with libquadmath; assume that all those systems > ! have also kind=10. > if (size (real_kinds) >= 4 .and. real_kinds(3) == 10 .and. qp == 16) then > + if (real_kinds(3) /= 10) stop
How does this fix it? Shouldn't you also remove .and. real_kinds(3) == 10 from the previous line? If .and. is not like C &&, then that still accesses past the array size if real_kinds is smaller than 4 elements. > + > exponent = 4000 > b(:) = huge (1.0_qp)/10.0_qp**exponent > ! print *, 'real(16) big value: ', b(1) Jakub