Paul Eggert wrote:
> * lib/malloca.h (malloca): Pacify gcc -Wbad-function-cast
> diagnostic that I got on Fedora 27 with gcc 7.3.1 20180130.
> To pacify GCC, I had to cast alloca’s result to some type other
> than void * before casting that to uintptr_t.

Thanks. I wouldn't have expected this warning.

Let me apply the same change to xmalloca.h as well:


2018-02-23  Bruno Haible  <br...@clisp.org>

        xmalloca: pacify gcc -Wbad-function-cast
        * lib/xmalloca.h (xmalloca): Insert intermediate cast here as well.

diff --git a/lib/xmalloca.h b/lib/xmalloca.h
index 14fc1b9..2900a07 100644
--- a/lib/xmalloca.h
+++ b/lib/xmalloca.h
@@ -32,10 +32,10 @@ extern "C" {
    the function returns.  Upon failure, it exits with an error message.  */
 #if HAVE_ALLOCA
 # define xmalloca(N) \
-  ((N) < 4032 - (2 * sa_alignment_max - 1)                          \
-   ? (void *) (((uintptr_t) alloca ((N) + 2 * sa_alignment_max - 1) \
-                + (2 * sa_alignment_max - 1))                       \
-               & ~(uintptr_t)(2 * sa_alignment_max - 1))            \
+  ((N) < 4032 - (2 * sa_alignment_max - 1)                                   \
+   ? (void *) (((uintptr_t) (char *) alloca ((N) + 2 * sa_alignment_max - 1) \
+                + (2 * sa_alignment_max - 1))                                \
+               & ~(uintptr_t)(2 * sa_alignment_max - 1))                     \
    : xmmalloca (N))
 extern void * xmmalloca (size_t n);
 #else


Reply via email to