]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
libctf: use __attribute__((__gnu_printf__)) where appropriate
authorNick Alcock <nick.alcock@oracle.com>
Tue, 3 Jun 2025 12:39:33 +0000 (13:39 +0100)
committerNick Alcock <nick.alcock@oracle.com>
Thu, 26 Jun 2025 14:50:48 +0000 (15:50 +0100)
We don't use any GNU-specific printf args, but this prevents warnings about
%z, observed on MinGW even though every libc anyone is likely to use there
supports %z perfectly well, and we're not stopping using it just because
MinGW complains.  Doing this means we stand more chance of seeing *actual*
problems on such platforms without them being drowned in noise.

We turn this off on clang, which doesn't support __gnu_printf__.

Suggested by Eli Zaretskii.

libctf/
PR libctf/31863
* ctf-impl.h (_libctf_printflike_): Use __gnu_printf__.

libctf/ctf-impl.h

index 2abd0e39f12a9dcc81d4dc1f84fcc661349e6596..d6e79061171c43ffb8c8466a2298dcd04edf248e 100644 (file)
@@ -67,8 +67,13 @@ extern "C"
    macros glibc may introduce, which have names of the pattern
    __attribute_blah__.  */
 
+#if defined (__clang__)
 #define _libctf_printflike_(string_index,first_to_check) \
     __attribute__ ((__format__ (__printf__, (string_index), (first_to_check))))
+#else
+#define _libctf_printflike_(string_index,first_to_check) \
+    __attribute__ ((__format__ (__gnu_printf__, (string_index), (first_to_check))))
+#endif
 #define _libctf_unlikely_(x) __builtin_expect ((x), 0)
 #define _libctf_unused_ __attribute__ ((__unused__))
 #define _libctf_malloc_ __attribute__((__malloc__))