This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH, testsuite]: Prevent spurious failure for gcc.c-torture/execute/990127-2.c for i386 targets
- From: Roman Zippel <zippel at linux-m68k dot org>
- To: Uros Bizjak <ubizjak at gmail dot com>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Fri, 22 Jun 2007 20:38:11 +0200 (CEST)
- Subject: Re: [PATCH, testsuite]: Prevent spurious failure for gcc.c-torture/execute/990127-2.c for i386 targets
- References: <46520312.9060905@gmail.com>
Hi,
On Mon, 21 May 2007, Uros Bizjak wrote:
> Hello!
>
> This spurious failure is due to excess precision of 80387. Attached patch
> prevents this failure by adding -mpc64 on targets, where -mpcX is supported.
>
> Patch was tested on i686-pc-linux-gnu.
>
> 2007-05-21 Uros Bizjak <ubizjak@gmail.com>
>
> * gcc.c-torture/execute/990127-2.x: New file.
>
> Uros.
>
> Index: gcc.c-torture/execute/990127-2.x
> ===================================================================
> --- gcc.c-torture/execute/990127-2.x (revision 0)
> +++ gcc.c-torture/execute/990127-2.x (revision 0)
> @@ -0,0 +1,15 @@
> +# On x86 targets, two floating-point double values can't be reliably compared
> +# for inequality due to excess precision of 80387 floating-point coprocessor.
> +# Use -mpc64 to force 80387 floating-point precision to 64 bits. This option
> +# has no effect on SSE, but it is needed in case of -m32 on x86_64 targets.
> +
> +if { [istarget i?86-*-linux*]
> + || [istarget i?86-*-kfreebsd*-gnu]
> + || [istarget i?86-*-knetbsd*-gnu]
> + || [istarget x86_64-*-linux*]
> + || [istarget x86_64-*-kfreebsd*-gnu]
> + || [istarget x86_64-*-knetbsd*-gnu] } {
> + set additional_flags "-mpc64"
> +}
> +
> +return 0
Is this really the way now to fix these things? I'm looking at this
because it also fails on m68k for the same reason and m68k doesn't has
this option. In other cases this has been fixed by using volatile.
bye, Roman