This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: dg-require-ifunc syntax
- From: Rainer Orth <ro at CeBiTec dot Uni-Bielefeld dot DE>
- To: Iain Sandoe <iain at sandoe dot co dot uk>
- Cc: "Dominique d'Humières" <dominiq at tournesol dot lps dot ens dot fr>, gcc-patches <gcc-patches at gcc dot gnu dot org>, marxin at gcc dot gnu dot org, Jakub Jelinek <jakub at redhat dot com>
- Date: Mon, 20 May 2019 11:03:41 +0200
- Subject: Re: dg-require-ifunc syntax
- References: <BDFEBBD8-CC0B-45D5-BFC6-79E7D2307C6B@lps.ens.fr> <9DAB5E72-7605-462C-BD97-64C1B4C54763@sandoe.co.uk>
Hi Iain,
> 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).
indeed: I have the same issue on Solaris, too.
>> --- ../_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).
Right: I guess we can wait for Jakub's take on that. The tests PASS on
Solaris/x86 as well, which hasn't ifunc support either, and there are no
gcc-testresults postings showing failures for this test anywhere.
Prompted by the initial bug, I looked around a bit and found some more
instances of the dg-require-* syntax problem. I'll commit them either
together with the rest of separately, since this stuff tends to be
copied around.
Rainer
--
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University
# HG changeset patch
# Parent 4fe3c3e82cdf35ee95d5171062e5392c901f89f2
Fix dg-require-* syntax
gcc/testsuite:
* gcc.dg/Wattribute-alias.c: Pass emtpy arg to dg-require-ifunc.
* gcc.target/i386/pr90500-1.c: Likewise.
* gcc.target/i386/pr90500-2.c: Likewise.
* gcc.c-torture/execute/20030125-1.c: Pass emtpy arg to dg-require-weak.
* gcc.dg/torture/ftrapv-2.c: Pass empty arg to dg-require-fork.
* gcc.target/i386/pr84723-1.c: Remove dg-require-ifunc.
* gcc.target/i386/pr84723-2.c: Likewise.
* gcc.target/i386/pr84723-3.c: Likewise.
* gcc.target/i386/pr84723-4.c: Likewise.
* gcc.target/i386/pr84723-5.c: Likewise.
diff --git a/gcc/testsuite/gcc.c-torture/execute/20030125-1.c b/gcc/testsuite/gcc.c-torture/execute/20030125-1.c
--- a/gcc/testsuite/gcc.c-torture/execute/20030125-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/20030125-1.c
@@ -1,6 +1,6 @@
/* Verify whether math functions are simplified. */
/* { dg-require-effective-target c99_runtime } */
-/* { dg-require-weak } */
+/* { dg-require-weak "" } */
double sin(double);
double floor(double);
float
diff --git a/gcc/testsuite/gcc.dg/Wattribute-alias.c b/gcc/testsuite/gcc.dg/Wattribute-alias.c
--- a/gcc/testsuite/gcc.dg/Wattribute-alias.c
+++ b/gcc/testsuite/gcc.dg/Wattribute-alias.c
@@ -1,6 +1,6 @@
/* PR middle-end/81824 - Warn for missing attributes with function aliases
{ dg-do compile }
- { dg-require-ifunc "require ifunc support" }
+ { dg-require-ifunc "" }
{ dg-options "-Wall -Wattribute-alias=2" } */
#define ATTR(...) __attribute__ ((__VA_ARGS__))
diff --git a/gcc/testsuite/gcc.dg/torture/ftrapv-2.c b/gcc/testsuite/gcc.dg/torture/ftrapv-2.c
--- a/gcc/testsuite/gcc.dg/torture/ftrapv-2.c
+++ b/gcc/testsuite/gcc.dg/torture/ftrapv-2.c
@@ -3,7 +3,7 @@
/* { dg-skip-if "" { *-*-* } { "-flto" } { "" } } */
/* { dg-additional-options "-ftrapv" } */
/* { dg-require-effective-target trapping } */
-/* { dg-require-fork unused } */
+/* { dg-require-fork "" } */
#include <stdlib.h>
#include <unistd.h>