bug-gnulib@gnu.org mirror (unofficial)
 help / color / mirror / Atom feed
From: Bruno Haible <bruno@clisp.org>
To: bug-gnulib@gnu.org
Cc: Paul Eggert <eggert@cs.ucla.edu>
Subject: Re: [PATCH 07/27] malloca: improve -fanalyzer malloc checking
Date: Sat, 07 Aug 2021 15:20:27 +0200	[thread overview]
Message-ID: <2619022.DqNQGvE0Ip@omega> (raw)
In-Reply-To: <20210802011821.1057057-7-eggert@cs.ucla.edu>

Paul Eggert wrote:
> diff --git a/lib/malloca.h b/lib/malloca.h
> index 6fa1d8b20..dbbec3f06 100644
> --- a/lib/malloca.h
> +++ b/lib/malloca.h
> @@ -65,7 +65,6 @@ extern "C" {
>  # define malloca(N) \
>    mmalloca (N)
>  #endif
> -extern void * mmalloca (size_t n);
>  
>  /* Free a block of memory allocated through malloca().  */
>  #if HAVE_ALLOCA
> @@ -74,6 +73,10 @@ extern void freea (void *p);
>  # define freea free
>  #endif
>  
> +extern void *mmalloca (size_t n)
> +  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC (freea, 1)
> +  _GL_ATTRIBUTE_ALLOC_SIZE ((1));
> +
>  /* nmalloca(N,S) is an overflow-safe variant of malloca (N * S).
>     It allocates an array of N objects, each with S bytes of memory,
>     on the stack.  N and S should be nonnegative and free of side effects.

malloca and mmalloca belong close together. I prefer to move the 'freea'
declaration, so that malloca and mmalloca are declared together.


2021-08-07  Bruno Haible  <bruno@clisp.org>

	malloca: Tweak last commit.
	* lib/malloca.h: Keep use and declaration of mmalloca close together.

diff --git a/lib/malloca.h b/lib/malloca.h
index dbbec3f..7eb63d2 100644
--- a/lib/malloca.h
+++ b/lib/malloca.h
@@ -51,6 +51,13 @@ extern "C" {
 # define safe_alloca(N) ((void) (N), NULL)
 #endif
 
+/* Free a block of memory allocated through malloca().  */
+#if HAVE_ALLOCA
+extern void freea (void *p);
+#else
+# define freea free
+#endif
+
 /* malloca(N) is a safe variant of alloca(N).  It allocates N bytes of
    memory allocated on the stack, that must be freed using freea() before
    the function returns.  Upon failure, it returns NULL.  */
@@ -65,14 +72,6 @@ extern "C" {
 # define malloca(N) \
   mmalloca (N)
 #endif
-
-/* Free a block of memory allocated through malloca().  */
-#if HAVE_ALLOCA
-extern void freea (void *p);
-#else
-# define freea free
-#endif
-
 extern void *mmalloca (size_t n)
   _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC (freea, 1)
   _GL_ATTRIBUTE_ALLOC_SIZE ((1));



  reply	other threads:[~2021-08-07 13:24 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-02  1:17 [PATCH 01/27] backupfile: improve -fanalyzer malloc checking Paul Eggert
2021-08-02  1:17 ` [PATCH 02/27] maint: " Paul Eggert
2021-08-02  1:17 ` [PATCH 03/27] dfa: " Paul Eggert
2021-08-07 13:03   ` Bruno Haible
2021-08-02  1:17 ` [PATCH 04/27] dirname: " Paul Eggert
2021-08-07 13:13   ` Bruno Haible
2021-08-02  1:17 ` [PATCH 05/27] exclude: " Paul Eggert
2021-08-02  1:18 ` [PATCH 06/27] filenamecat-lgpl: " Paul Eggert
2021-08-02  1:18 ` [PATCH 07/27] malloca: " Paul Eggert
2021-08-07 13:20   ` Bruno Haible [this message]
2021-08-02  1:18 ` [PATCH 08/27] modechange: " Paul Eggert
2021-08-02  1:18 ` [PATCH 09/27] mountlist: " Paul Eggert
2021-08-02  1:18 ` [PATCH 10/27] pagalign_alloc: " Paul Eggert
2021-08-02  1:18 ` [PATCH 11/27] quotearg: " Paul Eggert
2021-08-07 13:25   ` Bruno Haible
2021-08-02  1:18 ` [PATCH 12/27] readutmp: " Paul Eggert
2021-08-02  1:18 ` [PATCH 13/27] savedir: " Paul Eggert
2021-08-02  1:18 ` [PATCH 14/27] sh-quote: " Paul Eggert
2021-08-02  1:18 ` [PATCH 15/27] system-quote: " Paul Eggert
2021-08-02  1:18 ` [PATCH 16/27] trim: " Paul Eggert
2021-08-02  1:18 ` [PATCH 17/27] xgetcwd: " Paul Eggert
2021-08-02  1:18 ` [PATCH 18/27] xgethostname: " Paul Eggert
2021-08-02  1:18 ` [PATCH 19/27] xmalloca: " Paul Eggert
2021-08-02  1:18 ` [PATCH 20/27] xreadlink: " Paul Eggert
2021-08-02  1:18 ` [PATCH 21/27] xstriconv: " Paul Eggert
2021-08-02  1:18 ` [PATCH 22/27] xvasprintf: " Paul Eggert
2021-08-02  1:18 ` [PATCH 23/27] vasnprintf: " Paul Eggert
2021-08-02  1:18 ` [PATCH 24/27] argmatch-tests: " Paul Eggert
2021-08-02  1:18 ` [PATCH 25/27] manywarnings: " Paul Eggert
2021-08-02  1:18 ` [PATCH 26/27] sigsegv-tests: make more things static Paul Eggert
2021-08-07 13:47   ` Bruno Haible
2021-08-02  1:18 ` [PATCH 27/27] * lib/quotarg.c: remove wrong, unneeded comment Paul Eggert

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://lists.gnu.org/mailman/listinfo/bug-gnulib

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2619022.DqNQGvE0Ip@omega \
    --to=bruno@clisp.org \
    --cc=bug-gnulib@gnu.org \
    --cc=eggert@cs.ucla.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).