bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] malloca: pacify gcc -Wbad-function-cast


From: Bruno Haible
Subject: Re: [PATCH] malloca: pacify gcc -Wbad-function-cast
Date: Sat, 24 Feb 2018 01:34:16 +0100
User-agent: KMail/5.1.3 (Linux/4.4.0-112-generic; KDE/5.18.0; x86_64; ; )

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  <address@hidden>

        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

[Prev in Thread] Current Thread [Next in Thread]