aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2025-01-03 08:33:16 -0300
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2025-01-13 10:17:42 -0300
commit6a498d780e6fd3b7db7575c4ec00c00dc8568fef (patch)
tree8202027761b9dc487362411a0c09a852a4e7ac8a
parentf28702b2eead1c65292c4fc84ecade2be201de0e (diff)
downloadglibc-6a498d780e6fd3b7db7575c4ec00c00dc8568fef.zip
glibc-6a498d780e6fd3b7db7575c4ec00c00dc8568fef.tar.gz
glibc-6a498d780e6fd3b7db7575c4ec00c00dc8568fef.tar.bz2
elf: Suppress unused function clang for __ifunc_resolver
The __ifunc_resolver macro expands to: extern __typeof (__redirect_name) name __attribute__ ((ifunc ("iname_ifunc"))); static __typeof (__redirect_name) *name_ifunc (void) { [...] }; And although NAME_IFUNC is and alias for NAME, clang-18 still emits an 'unused function 'name_ifunc' [-Werror,-Wunused-function]' warning.
-rw-r--r--elf/ifuncmain9.c4
-rw-r--r--elf/tst-ifunc-fault-lazy.c4
2 files changed, 8 insertions, 0 deletions
diff --git a/elf/ifuncmain9.c b/elf/ifuncmain9.c
index b2c9547..64539b4 100644
--- a/elf/ifuncmain9.c
+++ b/elf/ifuncmain9.c
@@ -22,6 +22,7 @@
#include <stdbool.h>
#include <stdio.h>
+#include <libc-diag.h>
#if __GNUC_PREREQ (5, 5)
/* Do not use the test framework, so that the process setup is not
@@ -41,6 +42,8 @@ implementation (void)
return random_constant;
}
+DIAG_PUSH_NEEDS_COMMENT_CLANG;
+DIAG_IGNORE_NEEDS_COMMENT_CLANG (13, "-Wunused-function");
static __typeof__ (implementation) *
inhibit_stack_protector
resolver (void)
@@ -50,6 +53,7 @@ resolver (void)
}
static int magic (void) __attribute__ ((ifunc ("resolver")));
+DIAG_POP_NEEDS_COMMENT_CLANG;
int
main (void)
diff --git a/elf/tst-ifunc-fault-lazy.c b/elf/tst-ifunc-fault-lazy.c
index c86edde..072d2c6 100644
--- a/elf/tst-ifunc-fault-lazy.c
+++ b/elf/tst-ifunc-fault-lazy.c
@@ -21,6 +21,7 @@
relocations. */
#include <config.h>
+#include <libc-diag.h>
#ifdef HAVE_GCC_IFUNC
@@ -34,6 +35,8 @@ implementation (void)
*p = 0;
}
+DIAG_PUSH_NEEDS_COMMENT_CLANG;
+DIAG_IGNORE_NEEDS_COMMENT_CLANG (13, "-Wunused-function");
static __typeof__ (implementation) *
resolver (void)
{
@@ -42,6 +45,7 @@ resolver (void)
*p = 0;
return implementation;
}
+DIAG_POP_NEEDS_COMMENT_CLANG;
static void magic (void) __attribute__ ((ifunc ("resolver")));