From 75b95fa25df74fcd0498bf59e3524f20f594755d Mon Sep 17 00:00:00 2001 From: jvoisin Date: Fri, 22 Sep 2023 18:27:54 +0200 Subject: Add more __diagnose_as_builtin annotations --- include/stdlib.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'include/stdlib.h') diff --git a/include/stdlib.h b/include/stdlib.h index 734f0e6..d3cd863 100644 --- a/include/stdlib.h +++ b/include/stdlib.h @@ -43,6 +43,9 @@ extern "C" { __malloc(malloc (free, 1)) __alloc_size(1) __warn_unused_result +#if __has_builtin(__builtin_malloc) +__diagnose_as_builtin(__builtin_malloc, 1) +#endif _FORTIFY_FN(malloc) void *malloc(size_t __s) { return __orig_malloc(__s); @@ -50,6 +53,9 @@ _FORTIFY_FN(malloc) void *malloc(size_t __s) __alloc_size(2) __warn_unused_result +#if __has_builtin(__builtin_realloc) +__diagnose_as_builtin(__builtin_realloc, 1, 2) +#endif _FORTIFY_FN(realloc) void *realloc(void *__p, size_t __s) { return __orig_realloc(__p, __s); @@ -57,6 +63,9 @@ _FORTIFY_FN(realloc) void *realloc(void *__p, size_t __s) __alloc_size(1, 2) __warn_unused_result +#if __has_builtin(__builtin_calloc) +__diagnose_as_builtin(__builtin_calloc, 1, 2) +#endif _FORTIFY_FN(calloc) void *calloc(size_t __n, size_t __s) { return __orig_calloc(__n, __s); @@ -66,6 +75,9 @@ _FORTIFY_FN(calloc) void *calloc(size_t __n, size_t __s) #undef reallocarray __alloc_size (2, 3) __warn_unused_result +#if __has_builtin(__builtin_reallocarray) +__diagnose_as_builtin(__builtin_reallocarray, 1, 2, 3) +#endif _FORTIFY_FN(reallocarray) void* reallocarray(void* __p, size_t __n, size_t __s) { return __orig_reallocarray(__p, __n, __s); @@ -76,6 +88,9 @@ _FORTIFY_FN(reallocarray) void* reallocarray(void* __p, size_t __n, size_t __s) #if (defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)) && !defined(__clang__) #undef realpath __warning_if(__p == NULL, "'realpath' called with path set to `NULL`; did you invert the arguments?") +#if __has_builtin(__builtin_realpath) +__diagnose_as_builtin(__builtin_realpath, 1, 2) +#endif _FORTIFY_FN(realpath) char *realpath(const char *__p, char *__r) { #ifndef PATH_MAX -- cgit v1.3