Tests target/arm/vfp-ldm*.c and vfp-sdm*.c add -mfloat-abi=softfp but
fail if multilib flags override that option. This patch skips the test
for multilibs that specify a different value for -mfloat-abi.
Tested on arm-none-linux-gnueabi with 43 sets of multlib flags. OK for
trunk, and later for 4.6?
Janis
2011-06-23 Janis Johnson
* gcc.target/arm/vfp-ldmdbd.c: Skip if multilib flags override
-mfloat-abi from test.
* gcc.target/arm/vfp-ldmdbs.c: Ditto.
* gcc.target/arm/vfp-ldmiad.c: Ditto.
* gcc.target/arm/vfp-ldmias.c: Ditto.
* gcc.target/arm/vfp-stmdbd.c: Ditto.
* gcc.target/arm/vfp-stmdbs.c: Ditto.
* gcc.target/arm/vfp-stmiad.c: Ditto.
* gcc.target/arm/vfp-stmias.c: Ditto.
Index: gcc.target/arm/vfp-ldmdbd.c
===
--- gcc.target/arm/vfp-ldmdbd.c (revision 175313)
+++ gcc.target/arm/vfp-ldmdbd.c (working copy)
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-require-effective-target arm_vfp_ok } */
+/* { dg-skip-if "don't override float abi" { *-*-* } { "-mfloat-abi=*" } {
"-mfloat-abi=softfp" } } */
/* { dg-options "-O2 -mfpu=vfp -mfloat-abi=softfp" } */
extern void bar (double);
Index: gcc.target/arm/vfp-ldmdbs.c
===
--- gcc.target/arm/vfp-ldmdbs.c (revision 175313)
+++ gcc.target/arm/vfp-ldmdbs.c (working copy)
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-require-effective-target arm_vfp_ok } */
+/* { dg-skip-if "don't override float abi" { *-*-* } { "-mfloat-abi=*" } {
"-mfloat-abi=softfp" } } */
/* { dg-options "-O2 -mfpu=vfp -mfloat-abi=softfp" } */
extern void baz (float);
Index: gcc.target/arm/vfp-ldmiad.c
===
--- gcc.target/arm/vfp-ldmiad.c (revision 175313)
+++ gcc.target/arm/vfp-ldmiad.c (working copy)
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-require-effective-target arm_vfp_ok } */
+/* { dg-skip-if "don't override float abi" { *-*-* } { "-mfloat-abi=*" } {
"-mfloat-abi=softfp" } } */
/* { dg-options "-O2 -mfpu=vfp -mfloat-abi=softfp" } */
extern void bar (double);
Index: gcc.target/arm/vfp-ldmias.c
===
--- gcc.target/arm/vfp-ldmias.c (revision 175313)
+++ gcc.target/arm/vfp-ldmias.c (working copy)
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-require-effective-target arm_vfp_ok } */
+/* { dg-skip-if "don't override float abi" { *-*-* } { "-mfloat-abi=*" } {
"-mfloat-abi=softfp" } } */
/* { dg-options "-O2 -mfpu=vfp -mfloat-abi=softfp" } */
extern void baz (float);
Index: gcc.target/arm/vfp-stmdbd.c
===
--- gcc.target/arm/vfp-stmdbd.c (revision 175313)
+++ gcc.target/arm/vfp-stmdbd.c (working copy)
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-require-effective-target arm_vfp_ok } */
+/* { dg-skip-if "don't override float abi" { *-*-* } { "-mfloat-abi=*" } {
"-mfloat-abi=softfp" } } */
/* { dg-options "-O2 -mfpu=vfp -mfloat-abi=softfp" } */
void
Index: gcc.target/arm/vfp-stmdbs.c
===
--- gcc.target/arm/vfp-stmdbs.c (revision 175313)
+++ gcc.target/arm/vfp-stmdbs.c (working copy)
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-require-effective-target arm_vfp_ok } */
+/* { dg-skip-if "don't override float abi" { *-*-* } { "-mfloat-abi=*" } {
"-mfloat-abi=softfp" } } */
/* { dg-options "-O2 -mfpu=vfp -mfloat-abi=softfp" } */
void
Index: gcc.target/arm/vfp-stmiad.c
===
--- gcc.target/arm/vfp-stmiad.c (revision 175313)
+++ gcc.target/arm/vfp-stmiad.c (working copy)
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-require-effective-target arm_vfp_ok } */
+/* { dg-skip-if "don't override float abi" { *-*-* } { "-mfloat-abi=*" } {
"-mfloat-abi=softfp" } } */
/* { dg-options "-O2 -mfpu=vfp -mfloat-abi=softfp" } */
void
Index: gcc.target/arm/vfp-stmias.c
===
--- gcc.target/arm/vfp-stmias.c (revision 175313)
+++ gcc.target/arm/vfp-stmias.c (working copy)
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-require-effective-target arm_vfp_ok } */
+/* { dg-skip-if "don't override float abi" { *-*-* } { "-mfloat-abi=*" } {
"-mfloat-abi=softfp" } } */
/* { dg-options "-O2 -mfpu=vfp -mfloat-abi=softfp" } */
void