summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorsin2015-03-11 09:17:56 +0000
committersin2015-03-11 09:17:56 +0000
commit4b4dfea25d660a8a27e95ea531686001246b3d1e (patch)
treeded4bfd59df022936c5807f7549b197dc9dcfa9a /include
parent4f9058faae6a2ef889e9dcf113e483e27e6c1b08 (diff)
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.
Diffstat (limited to 'include')
-rw-r--r--include/string.h6
1 files changed, 2 insertions, 4 deletions
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 *
10__fortify_memcpy(void *dest, const void *src, size_t n) 10__fortify_memcpy(void *dest, const void *src, size_t n)
11{ 11{
12 size_t bos = __builtin_object_size(dest, 0); 12 size_t bos = __builtin_object_size(dest, 0);
13 char *d = dest;
14 const char *s = src;
15 13
16 /* trap if pointers are overlapping but not if dest == src. 14 /* trap if pointers are overlapping but not if dest == src.
17 * gcc seems to like to generate code that relies on dest == src */ 15 * gcc seems to like to generate code that relies on dest == src */
18 if ((d < s && d + n > s) || 16 if ((dest < src && dest + n > src) ||
19 (s < d && s + n > d)) 17 (src < dest && src + n > dest))
20 __builtin_trap(); 18 __builtin_trap();
21 if (n > bos) 19 if (n > bos)
22 __builtin_trap(); 20 __builtin_trap();