sparse: update __builtin_object_size() prototype
Sparse emits a large number of warnings for the linux kernel source
tree of the form:
./arch/x86/include/asm/uaccess.h:735:18: \
warning: incorrect type in argument 1 (different modifiers)
./arch/x86/include/asm/uaccess.h:735:18: expected void *<noident>
./arch/x86/include/asm/uaccess.h:735:18: got void const *from
Fix by making the first parameter to __builtin_object_size()
type "const void *" instead of "void *", which is consistent with GCC
behavior (the prototype for this builtin in GCC documentation is evidently
incorrect).
Signed-off-by: Lance Richardson <lrichard@redhat.com>
Acked-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
Signed-off-by: Christopher Li <sparse@chrisli.org>
diff --git a/lib.c b/lib.c
index d5b56b0..2d66aa0 100644
--- a/lib.c
+++ b/lib.c
@@ -888,7 +888,7 @@
add_pre_buffer("extern long double __builtin_nanl(const char *);\n");
/* And some __FORTIFY_SOURCE ones.. */
- add_pre_buffer ("extern __SIZE_TYPE__ __builtin_object_size(void *, int);\n");
+ add_pre_buffer ("extern __SIZE_TYPE__ __builtin_object_size(const void *, int);\n");
add_pre_buffer ("extern void * __builtin___memcpy_chk(void *, const void *, __SIZE_TYPE__, __SIZE_TYPE__);\n");
add_pre_buffer ("extern void * __builtin___memmove_chk(void *, const void *, __SIZE_TYPE__, __SIZE_TYPE__);\n");
add_pre_buffer ("extern void * __builtin___mempcpy_chk(void *, const void *, __SIZE_TYPE__, __SIZE_TYPE__);\n");