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 <jani...@codesourcer.com> * 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