summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2015-02-24 00:15:41 -0500
committerMike Frysinger <vapier@gentoo.org>2015-02-24 13:29:40 -0500
commitba7d2c543f7d69883ece7eab39bf6c5cd5dc3081 (patch)
treeaa48200bc313424adc098d68b2104c5abc45bf5a
parent9438b237abca11de201dd10483717299eafb1f0b (diff)
downloadglibc-ba7d2c543f7d69883ece7eab39bf6c5cd5dc3081.tar.gz
alloca: fix buf interaction
The stack-grows-down case is missing paren around the buf cast. The stack-grows-up case is missing a cast with the buf assignment. This leads to build failures due to -Werror: vfprintf.c: In function '_IO_vfprintf_internal': vfprintf.c:1738:16: error: initialization from incompatible pointer type [-Werror]
-rw-r--r--ChangeLog6
-rw-r--r--include/alloca.h4
2 files changed, 8 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 8ae6cf1f56..b8da862dc2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2015-02-24 Mike Frysinger <vapier@gentoo.org>
+
+ * include/alloca.h [_STACK_GROWS_DOWN] (extend_alloca): Add
+ parenthesis around the buf assignment.
+ [_STACK_GROWS_UP] (extend_alloca): Add a char* cast.
+
2015-02-24 Joseph Myers <joseph@codesourcery.com>
[BZ #16783]
diff --git a/include/alloca.h b/include/alloca.h
index f741d25d54..01500259b8 100644
--- a/include/alloca.h
+++ b/include/alloca.h
@@ -28,7 +28,7 @@ libc_hidden_proto (__libc_alloca_cutoff)
# define extend_alloca(buf, len, newlen) \
(__typeof (buf)) ({ size_t __newlen = stackinfo_alloca_round (newlen); \
char *__newbuf = __alloca (__newlen); \
- if (__newbuf + __newlen == (char *) buf) \
+ if (__newbuf + __newlen == (char *) (buf)) \
len += __newlen; \
else \
len = __newlen; \
@@ -37,7 +37,7 @@ libc_hidden_proto (__libc_alloca_cutoff)
# define extend_alloca(buf, len, newlen) \
(__typeof (buf)) ({ size_t __newlen = stackinfo_alloca_round (newlen); \
char *__newbuf = __alloca (__newlen); \
- char *__buf = (buf); \
+ char *__buf = (char *) (buf); \
if (__buf + len == __newbuf) \
{ \
len += __newlen; \