stdio: disable fortify of snprintf/sprintf for clang

clang does not have builtin function `__builtin_va_arg_pack`

Signed-off-by: chenxiaoyi <chenxiaoyi@xiaomi.com>
This commit is contained in:
chenxiaoyi
2024-12-04 18:06:20 +08:00
committed by Alan C. Assis
parent c07d9dc900
commit f107b3f5d5
2 changed files with 5 additions and 1 deletions
+3 -1
View File
@@ -127,7 +127,9 @@
} \ } \
while (0) while (0)
# define fortify_va_arg_pack __builtin_va_arg_pack # if !defined(__clang__)
# define fortify_va_arg_pack __builtin_va_arg_pack
# endif
# define fortify_real(fn) __typeof__(fn) __real_##fn __asm__(#fn) # define fortify_real(fn) __typeof__(fn) __real_##fn __asm__(#fn)
# define fortify_function(fn) fortify_real(fn); \ # define fortify_function(fn) fortify_real(fn); \
extern __inline__ no_builtin(#fn) \ extern __inline__ no_builtin(#fn) \
+2
View File
@@ -318,6 +318,7 @@ fortify_function(vsprintf) int vsprintf(FAR char *dest,
return ret; return ret;
} }
#ifdef fortify_va_arg_pack
fortify_function(snprintf) int snprintf(FAR char *buf, size_t size, fortify_function(snprintf) int snprintf(FAR char *buf, size_t size,
FAR const IPTR char *format, ...) FAR const IPTR char *format, ...)
{ {
@@ -336,6 +337,7 @@ fortify_function(sprintf) int sprintf(FAR char *buf,
return ret; return ret;
} }
#endif #endif
#endif
#undef EXTERN #undef EXTERN
#if defined(__cplusplus) #if defined(__cplusplus)