liblzma: Suppress -Wunused-function warning.

Clang 16.0.0 and earlier have a bug that the ifunc resolver function
triggers the -Wunused-function warning. The resolver function is static
and only "used" by the __attribute__((__ifunc()__)).

At this time, the bug is still unresolved, but has been reported:
https://github.com/llvm/llvm-project/issues/63957

This is not a problem in GCC.
This commit is contained in:
Jia Tan 2023-07-19 23:36:00 +08:00
parent 43845fa70f
commit 0184d344fa
1 changed files with 10 additions and 0 deletions

View File

@ -441,6 +441,13 @@ is_clmul_supported(void)
typedef uint64_t (*crc64_func_type)( typedef uint64_t (*crc64_func_type)(
const uint8_t *buf, size_t size, uint64_t crc); const uint8_t *buf, size_t size, uint64_t crc);
// Clang 16.0.0 and older has a bug where it marks the ifunc resolver
// function as unused since it is static and never used outside of
// __attribute__((__ifunc__())).
#if defined(HAVE_FUNC_ATTRIBUTE_IFUNC) && defined(__clang__)
# pragma GCC diagnostic push
# pragma GCC diagnostic ignored "-Wunused-function"
#endif
static crc64_func_type static crc64_func_type
crc64_resolve(void) crc64_resolve(void)
@ -448,6 +455,9 @@ crc64_resolve(void)
return is_clmul_supported() ? &crc64_clmul : &crc64_generic; return is_clmul_supported() ? &crc64_clmul : &crc64_generic;
} }
#if defined(HAVE_FUNC_ATTRIBUTE_IFUNC) && defined(__clang__)
# pragma GCC diagnostic pop
#endif
#ifndef HAVE_FUNC_ATTRIBUTE_IFUNC #ifndef HAVE_FUNC_ATTRIBUTE_IFUNC