diff options
| author | Alex Richardson <arichardson@FreeBSD.org> | 2025-12-16 18:03:44 +0000 |
|---|---|---|
| committer | Alex Richardson <arichardson@FreeBSD.org> | 2025-12-16 20:21:45 +0000 |
| commit | 802c6d5d61d15494a54a386dc2ffbcfefc68c8ab (patch) | |
| tree | 05a1b9de84ddb3d5914e51c081388d9cb4b25ba6 | |
| parent | ce9557d4ee174267504a63b2c8f6009be27368c9 (diff) | |
cdefs.h: Introduce __nonstring attribute
This attribute can be used to annotate char arrays that are not supposed to
be terminated with a NUL char and is needed to silence clang's new
-Wunterminated-string-initialization warning. The name matches linuxkpi.
Reviewed by: emaste, jhb
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D52565
| -rw-r--r-- | sys/sys/cdefs.h | 7 | ||||
| -rw-r--r-- | tools/build/cross-build/include/common/sys/cdefs.h | 8 |
2 files changed, 15 insertions, 0 deletions
diff --git a/sys/sys/cdefs.h b/sys/sys/cdefs.h index 3bc4389346d2..ea6a92ad0056 100644 --- a/sys/sys/cdefs.h +++ b/sys/sys/cdefs.h @@ -394,6 +394,13 @@ #define __printf0like(fmtarg, firstvararg) #endif +/* To silence warnings about null terminator not fitting into an array. */ +#if __has_attribute(__nonstring__) +#define __nonstring __attribute__((__nonstring__)) +#else +#define __nonstring +#endif + #define __strong_reference(sym,aliassym) \ extern __typeof (sym) aliassym __attribute__ ((__alias__ (#sym))) #ifdef __STDC__ diff --git a/tools/build/cross-build/include/common/sys/cdefs.h b/tools/build/cross-build/include/common/sys/cdefs.h index faad5eccb3af..c7e453394478 100644 --- a/tools/build/cross-build/include/common/sys/cdefs.h +++ b/tools/build/cross-build/include/common/sys/cdefs.h @@ -100,6 +100,14 @@ __attribute__((__format__(__printf0__, fmtarg, firstvararg))) #endif +#ifndef __nonstring +#if __has_attribute(__nonstring__) +#define __nonstring __attribute__((__nonstring__)) +#else +#define __nonstring +#endif +#endif + #ifndef __predict_true #define __predict_true(exp) __builtin_expect((exp), 1) #endif |
