On Thu, 31 Oct 2024, Jakub Jelinek wrote:
> On Wed, Oct 23, 2024 at 05:52:13PM +0000, Joseph Myers wrote:
> > One test failing with a -std=gnu23 default that I wanted to
> > investigate further is gcc.dg/pr114115.c. Building with -std=gnu23
> > produces a warning:
> >
> > pr114115.c:18:8: warning: 'ifunc' resolver for 'foo_ifunc2' should return
> > 'void * (*)(void)' [-Wattribute-alias=]
> >
> > It turns out that this warning (from cgraphunit.cc) is disabled for
> > unprototyped functions. It's not immediately obvious that being
> > unprototyped has much to do with such incompatibilities of return type
> > (void versus void *), but it still seems reasonable to address this
> > warning by adding -std=gnu17 to the options for this testcase, so
> > minimizing the perturbation to what it tests.
>
> My preference would be just fix the bug in the testcase, i.e.
> -void *foo_ifunc2() __attribute__((ifunc("foo_resolver")));
> +void foo_ifunc2() __attribute__((ifunc("foo_resolver")));
Here is a patch version to do that. OK to commit?
testsuite: Fix prototype in gcc.dg/pr114115.c
One test failing with a -std=gnu23 default that I wanted to
investigate further is gcc.dg/pr114115.c. Building with -std=gnu23
produces a warning:
pr114115.c:18:8: warning: 'ifunc' resolver for 'foo_ifunc2' should return 'void
* (*)(void)' [-Wattribute-alias=]
It turns out that this warning (from cgraphunit.cc) is disabled for
unprototyped functions. Fix the return type for foo_ifunc2 so the
test builds without warnings both with and without -std=gnu23.
Tested for x86_64.
* gcc.dg/pr114115.c (foo_ifunc2): Return void.
diff --git a/gcc/testsuite/gcc.dg/pr114115.c b/gcc/testsuite/gcc.dg/pr114115.c
index 2629f591877..5e3ef5793cd 100644
--- a/gcc/testsuite/gcc.dg/pr114115.c
+++ b/gcc/testsuite/gcc.dg/pr114115.c
@@ -3,7 +3,7 @@
/* { dg-require-profiling "-fprofile-generate" } */
/* { dg-require-ifunc "" } */
-void *foo_ifunc2() __attribute__((ifunc("foo_resolver")));
+void foo_ifunc2() __attribute__((ifunc("foo_resolver")));
void bar(void)
{
--
Joseph S. Myers
[email protected]