On 07/18/2017 01:49 PM, Jakub Jelinek wrote:
On Tue, Jul 18, 2017 at 01:44:21PM +0200, Martin Liška wrote:
gcc/testsuite/ChangeLog:

2017-07-17  Martin Liska  <mli...@suse.cz>

        PR sanitizer/63361
        * c-c++-common/ubsan/float-cast-overflow-1.c: Add either
        -ffloat-store or -mieee for targets that need it.
---
  gcc/testsuite/c-c++-common/ubsan/float-cast-overflow-1.c | 3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/gcc/testsuite/c-c++-common/ubsan/float-cast-overflow-1.c 
b/gcc/testsuite/c-c++-common/ubsan/float-cast-overflow-1.c
index cd6941c9d30..a25e8dea29e 100644
--- a/gcc/testsuite/c-c++-common/ubsan/float-cast-overflow-1.c
+++ b/gcc/testsuite/c-c++-common/ubsan/float-cast-overflow-1.c
@@ -1,6 +1,7 @@
  /* { dg-do run { target { lp64 || ilp32 } } } */
+/* { dg-additional-options "-mfloat-store" { target { ia32 m68k-*-* } } } */

-ffloat-store, not -mfloat-store, that doesn't exist.

I wonder if one can mix effective target names with target tripplets this
way.  If it works, fine, otherwise I guess you'd need { { ia32 } || { m68k-*-* 
} }
or something similar.  Can you please test it?
First make sure that for RUNTESTFLAGS='--target_board=unix\{-m32,-m64\} 
ubsan.exp=float-cast-overflow-1.c'
you get -ffloat-store for 32-bit and not 64-bit.
I guess you don't have m68k-*-* target around, so next step I'd temporarily
change that m68k to x86_64 and retry and see if it enabled on both.

+/* { dg-additional-options "-mieee" { target { alpha* sh* } } } */

I'd prefer alpha*-*-* sh*-*-*

  /* { dg-options "-fsanitize=float-cast-overflow" } */
-/* { dg-additional-options "-msse2 -mfpmath=sse" { target { sse2_runtime && 
ia32 } } } */

        Jakub


Thanks Jakub. Tested that and installed as r250336.

Martin

Reply via email to