On Tue, Dec 04, 2012 at 05:03:10PM +0100, Tobias Burnus wrote:
> +2012-12-04 Tobias Burnus <[email protected]>
> +
> + * gfortran.dg/quad_3.f90: Fix a condition,
> + which wrongly required ordered/lazy evaluation.
> +
> 2012-12-04 Marcus Shawcroft <[email protected]>
>
> * 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