> > The pr59858.c testcase explicitly sets -msoft-float which is
> incompatible
> > with our -mfloat-abi=hard variant.
> >
> > This patch therefore should not be run if you have -mfloat-abi=hard.
> >
> > Tested with both variations for arm-none-eabi build.
> >
> > OK for commit?
> >
> > Cheers,
> > Ian
> >
> >
> > 2014-02-13 Ian Bolton <ian.bol...@arm.com>
> >
> > testsuite/
> > * gcc.target/arm/pr59858.c: Skip test if -mfloat-abi=hard.
> >
> >
> > pr59858-skip-if-hard-float-patch-v2.txt
> >
> >
> > diff --git a/gcc/testsuite/gcc.target/arm/pr59858.c
> b/gcc/testsuite/gcc.target/arm/pr59858.c
> > index 463bd38..1e03203 100644
> > --- a/gcc/testsuite/gcc.target/arm/pr59858.c
> > +++ b/gcc/testsuite/gcc.target/arm/pr59858.c
> > @@ -1,5 +1,6 @@
> > /* { dg-do compile } */
> > /* { dg-options "-march=armv5te -marm -mthumb-interwork -Wall -
> Wstrict-prototypes -Wstrict-aliasing -funsigned-char -fno-builtin -fno-
> asm -msoft-float -std=gnu99 -mlittle-endian -mthumb -fno-stack-
> protector -Os -g -feliminate-unused-debug-types -funit-at-a-time -
> fmerge-all-constants -fstrict-aliasing -fno-tree-loop-optimize -fno-
> tree-dominator-opts -fno-strength-reduce -fPIC -w" } */
> > +/* { dg-skip-if "Test is not compatible with hard-float" { *-*-* } {
> "-mfloat-abi=hard" } { "" } } */
> >
> > typedef enum {
> > REG_ENOSYS = -1,
> >
>
> This won't work if hard-float is the default. Take a look at the way
> other tests check for this.
Hi Richard,
The test does actually pass if it is hard float by default. My comment
on the skip line was misleading, because the precise issue is when
someone specifies -mfloat-abi=hard on the command line. I've fixed up
that comment in the attached patch now.
I've also reduced the number of command-line options passed (without
affecting the code generated) in the patch and changed -msoft-float
into -mfloat-abi=soft, since the former is deprecated and maps to the
latter anyway.
OK for commit?
Cheers,
Ian
diff --git a/gcc/testsuite/gcc.target/arm/pr59858.c
b/gcc/testsuite/gcc.target/arm/pr59858.c
index 463bd38..a944b9a 100644
--- a/gcc/testsuite/gcc.target/arm/pr59858.c
+++ b/gcc/testsuite/gcc.target/arm/pr59858.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
-/* { dg-options "-march=armv5te -marm -mthumb-interwork -Wall
-Wstrict-prototypes -Wstrict-aliasing -funsigned-char -fno-builtin -fno-asm
-msoft-float -std=gnu99 -mlittle-endian -mthumb -fno-stack-protector -Os -g
-feliminate-unused-debug-types -funit-at-a-time -fmerge-all-constants
-fstrict-aliasing -fno-tree-loop-optimize -fno-tree-dominator-opts
-fno-strength-reduce -fPIC -w" } */
+/* { dg-options "-march=armv5te -fno-builtin -mfloat-abi=soft -mthumb
-fno-stack-protector -Os -fno-tree-loop-optimize -fno-tree-dominator-opts -fPIC
-w" } */
+/* { dg-skip-if "Incompatible command line options: -mfloat-abi=soft
-mfloat-abi=hard" { *-*-* } { "-mfloat-abi=hard" } { "" } } */
typedef enum {
REG_ENOSYS = -1,