From ba7d2c543f7d69883ece7eab39bf6c5cd5dc3081 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Tue, 24 Feb 2015 00:15:41 -0500 Subject: [PATCH] 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] --- ChangeLog | 6 ++++++ include/alloca.h | 4 ++-- 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 + + * 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 [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; \