This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH, testsuite]: Prevent spurious failure for gcc.c-torture/execute/990127-2.c for i386 targets


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




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]