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:
parent
43845fa70f
commit
0184d344fa
|
@ -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
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue