dg-require-ifunc syntax

Iain Sandoe iain@sandoe.co.uk
Sun May 19 14:23:00 GMT 2019


Hi Dominique,

> On 19 May 2019, at 15:10, Dominique d'Humières <dominiq@lps.ens.fr> wrote:
> 
> AFAICT the syntax for dg-require-ifunc seems to be
> 
> /* { dg-require-ifunc "" } */
> 
> with two sets of exceptions:
> 
> (1) gcc.target/i386/pr90500-*.c
> 
> which explains
> 
> FAIL: gcc.target/i386/pr90500-1.c  (test for errors, line 6)
> FAIL: gcc.target/i386/pr90500-1.c  (test for warnings, line 6)
> FAIL: gcc.target/i386/pr90500-1.c (test for excess errors)
> FAIL: gcc.target/i386/pr90500-2.c  (test for errors, line 6)
> FAIL: gcc.target/i386/pr90500-2.c  (test for warnings, line 6)
> FAIL: gcc.target/i386/pr90500-2.c (test for excess errors)
> 
> and is fixed with the trivial patch
> 
> --- ../_clean/gcc/testsuite/gcc.target/i386/pr90500-1.c	2019-05-16 17:34:09.000000000 +0200
> +++ gcc/testsuite/gcc.target/i386/pr90500-1.c	2019-05-18 14:28:12.000000000 +0200
> @@ -1,6 +1,6 @@
> /* PR middle-end/84723 */
> /* { dg-do compile } */
> -/* { dg-require-ifunc } */
> +/* { dg-require-ifunc "" } */
> 
> __attribute__((target_clones("arch=haswell", "default"))) int __tanh() {}
> __typeof(__tanh) tanhf64 __attribute__((alias("__tanh")))/* { dg-error "clones for .target_clones. attribute cannot be created" } */

From a Darwin point of view, this is OK (it seems obvious to me, also).

> --- ../_clean/gcc/testsuite/gcc.target/i386/pr90500-2.c	2019-05-16 17:34:09.000000000 +0200
> +++ gcc/testsuite/gcc.target/i386/pr90500-2.c	2019-05-18 14:28:25.000000000 +0200
> @@ -1,6 +1,6 @@
> /* PR middle-end/84723 */
> /* { dg-do compile } */
> -/* { dg-require-ifunc } */
> +/* { dg-require-ifunc "" } */
> 
> __attribute__((target_clones("arch=haswell", "default"))) int __tanh() {}
> __typeof(__tanh) tanhf64 __attribute__((alias("__tanh"),target_clones("arch=haswell", "default"))); /* { dg-error "clones for .target_clones. attribute cannot be created" } */
> 
> (2) gcc.target/i386/pr84723-*.c
> 
> which succeed on darwin. What is the suitable fix for that?

My assumption here is that the tests should not be run on a non-ifuncs target, 
but that it happens to be that they are testing for an erroneous condition 
- which by chance also gives the correct error on a non-ifuncs target.
> 
> (a) Fix the dg-require-ifunc as above?

I would prefer this, (it’s confusing to run tests for an unsupported functionality)
- unless there is some other value to running the tests (will wait for comments
on that).

thanks for the patch.
Iain

> (b) Remove the line?
> 
> TIA
> 
> Dominique
> 



More information about the Gcc-patches mailing list