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

Reply via email to