From 4b4dfea25d660a8a27e95ea531686001246b3d1e Mon Sep 17 00:00:00 2001 From: sin Date: Wed, 11 Mar 2015 09:17:56 +0000 Subject: Fix invalid conversion in C++ code /usr/include/fortify/string.h: In function 'void* __fortify_memcpy(void*, const void*, size_t)': /usr/include/fortify/string.h:13:12: error: invalid conversion from 'void*' to 'char*' [-fpermissive] /usr/include/fortify/string.h:14:18: error: invalid conversion from 'const void*' to 'const char*' [-fpermissive] Since we are relying on GCC anyway, assume void * arithmetic is OK. --- include/string.h | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'include') diff --git a/include/string.h b/include/string.h index 6771b1d..86c258d 100644 --- a/include/string.h +++ b/include/string.h @@ -10,13 +10,11 @@ void * __fortify_memcpy(void *dest, const void *src, size_t n) { size_t bos = __builtin_object_size(dest, 0); - char *d = dest; - const char *s = src; /* trap if pointers are overlapping but not if dest == src. * gcc seems to like to generate code that relies on dest == src */ - if ((d < s && d + n > s) || - (s < d && s + n > d)) + if ((dest < src && dest + n > src) || + (src < dest && src + n > dest)) __builtin_trap(); if (n > bos) __builtin_trap(); -- cgit v1.3