[testsuite] gcc.target/arm: skip 5 tests for flag conflicts

Richard Earnshaw rearnsha@arm.com
Wed Oct 10 10:46:00 GMT 2012


On 21/09/12 03:51, Janis Johnson wrote:
> This patch adds test directives to skip 5 tests in gcc.target/arm if the
> flags specified for the test would be overridden by or conflict with
> flags used for all tests, such as multilib flags.
>
> Tested on arm-none-eabi with a variety of test flags.  I'll wait a day
> or two before checking it in to give ARM experts a chance to comment.
> I plan to backport to the 4.7 branch soon after it's in trunk.
>
> Janis
>
>
> gcc-20120920-1
>
>
> 2012-09-20  Janis Johnson  <janisjo@codesourcery.com>
>
> 	* gcc.target/arm/pr40887.c: Avoid conflicting flags.
> 	* gcc.target/arm/pr51835.c: Likewise.
> 	* gcc.target/arm/pr51915.c: Likewise.
> 	* gcc.target/arm/pr52006.c: Likewise.
> 	* gcc.target/arm/pr53187.c: Likewise.
>
> Index: gcc.target/arm/pr40887.c
> ===================================================================
> --- gcc.target/arm/pr40887.c	(revision 191502)
> +++ gcc.target/arm/pr40887.c	(working copy)
> @@ -1,3 +1,4 @@
> +/* { dg-skip-if " do not override -march" { *-*-* } { "-march=*" } { "-march=armv5te" } } */
>   /* { dg-options "-O2 -march=armv5te" }  */
>   /* { dg-final { scan-assembler "blx" } } */
>

It looks like this test should be run on ARMv5TE or later, so doesn't 
skipping this is weakening our testing?

As a secondary issue, -mcpu will override the -march setting quietly so 
we could end up with testsuite failures if the compiler was being tested 
with a -mcpu= flag.


> Index: gcc.target/arm/pr51835.c
> ===================================================================
> --- gcc.target/arm/pr51835.c	(revision 191502)
> +++ gcc.target/arm/pr51835.c	(working copy)
> @@ -1,6 +1,8 @@
>   /* { dg-do compile } */
> +/* { dg-require-effective-target arm_thumb2_ok } */
> +/* { dg-skip-if "do not override -mfloat-abi" { *-*-* } { "-mfloat-abi=*" } { "-mfloat-abi=hard" } } */
> +/* { dg-skip-if "do not override -mfpu" { *-*-* } { "-mfpu=*" } { "-mfpu=fpv4-sp-d16" } } */
>   /* { dg-options "-O2 -mfloat-abi=hard -mfpu=fpv4-sp-d16" }  */
> -/* { dg-require-effective-target arm_thumb2_ok } */
>

Similarly, doesn't this weaken our test coverage?


>   int func1 (double d)
>   {
> Index: gcc.target/arm/pr51915.c
> ===================================================================
> --- gcc.target/arm/pr51915.c	(revision 191502)
> +++ gcc.target/arm/pr51915.c	(working copy)
> @@ -1,5 +1,7 @@
>   /* PR target/51915 */
>   /* { dg-do compile } */
> +/* { dg-skip-if "do not override -march" { *-*-* } { "-march=*" } { "-march=armv7-a" } } */
> +/* { dg-skip-if "do not override -mfloat-abi" { *-*-* } { "-mfloat-abi=*" } { "-mfloat-abi=hard" } } */
>   /* { dg-options "-march=armv7-a -mfloat-abi=hard -O2" } */
>
>   struct S { int s1; void *s2; };
> Index: gcc.target/arm/pr52006.c
> ===================================================================
> --- gcc.target/arm/pr52006.c	(revision 191502)
> +++ gcc.target/arm/pr52006.c	(working copy)
> @@ -1,5 +1,7 @@
>   /* PR target/52006 */
>   /* { dg-do compile } */
> +/* { dg-skip-if "do not override -march=" { *-*-* } { "-march=*" } { "-march=armv7-a" } } */
> +/* { dg-skip-if "do not override -mfloat-abi" { *-*-* } { "-mfloat-abi=*" } { "-mfloat-abi=hard" } } */
>   /* { dg-options "-march=armv7-a -mfloat-abi=hard -O2 -fPIC" } */
>
>   unsigned long a;
> Index: gcc.target/arm/pr53187.c
> ===================================================================
> --- gcc.target/arm/pr53187.c	(revision 191502)
> +++ gcc.target/arm/pr53187.c	(working copy)
> @@ -1,5 +1,6 @@
>   /* PR target/53187 */
>   /* { dg-do compile } */
> +/* { dg-skip-if "do not override -march" { *-*-* } { "-march=*" } { "-march=armv7-a" } } */
>   /* { dg-options "-march=armv7-a -mfloat-abi=hard -O2" } */
>
>   void bar (int);
>

And the same for the rest.

Remind me again, why dg-options are on the command line before the 
multilib options.

R.



More information about the Gcc-patches mailing list