summaryrefslogtreecommitdiff
path: root/include/fortify-headers.h (unfollow)
AgeCommit message (Collapse)Author
2025-11-14Add `format` annotationsannotationsjvoisin
2025-11-14Add `access` annotationsjvoisin
2025-11-10Do not use static inline for C++ to avoid ODR violationsq66
Fixes https://github.com/jvoisin/fortify-headers/issues/31
2025-10-31add initial clang supportDaniel Kolesa
Co-Authored-By: jvoisin <julien.voisin@dustri.org>
2025-10-31Make use of __builtin_dynamic_object_sizejvoisin
GCC and Clang provide __builtin_dynamic_object_size (see documentation: https://gcc.gnu.org/onlinedocs/gcc/Object-Size-Checking.html), so we should make use of it when its available.
2016-09-10Bump copyright yearsin
2015-06-04Use the __inline__ keyword instead of __inline to avoid breakageTrutz Behn
Newer compilers default to GNU11, a C11 dialect. Some software however is unprepared for this or has wrong compatibility checks. What happens is that some software will for compatibility with C89 #define inline before inclusion of a standard header, which is undefined behaviour in C99 and above (C99/C11 7.1.2/4), as inline is a keyword. If any libc headers that are then included via #include_next provide an __inline macro definition (current musl does this if C++ or C99 and above is detected) like the following #define __inline inline this results in any __inline token to be preprocessed away. This breaks use of __builtin_va_arg_pack() in our stdio.h at compile-time as it can only be used in always inlined functions. The function attributes __always_inline__ and __gnu_inline__ themselves require an inline specifier on the function to be applied.
2015-06-03Use namespace-safe macro, param and variable namesTrutz Behn
2015-06-03Fix usage of __USER_LABEL_PREFIX__Trutz Behn
The predefined __USER_LABEL_PREFIX__ macro if it is non-empty contains an identifier, not a string literal, thus it needs to be stringified.
2015-05-13Add LICENSE headersin
2015-05-13Add fortify_fn() helper in fortify-headers.hsin