git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 2/2] nedmalloc: work around overzealous GCC 6 warning

From
Junio C Hamano <gitster@pobox.com>
Date
Aug 4, 2016, 22:39 UTC
Message-ID
<xmqqk2fwyx8h.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<57A3BA26.5080601@web.de>
Let's try it this way.  How about this as a replacement?
-- >8 --
From: Johannes Schindelin <johannes.schindelin@gmx.de>
Date: Thu, 4 Aug 2016 18:07:08 +0200
Subject: [PATCH] nedmalloc: work around overzealous GCC 6 warning

With GCC 6, the strdup() function is declared with the "nonnull" attribute, stating that it is not allowed to pass a NULL value as parameter.

In nedmalloc()'s reimplementation of strdup(), Postel's Law is heeded and NULL parameters are handled gracefully. GCC 6 complains about that now because it thinks that NULL cannot be passed to strdup() anyway.

Because the callers in this project of strdup() must be prepared to call any implementation of strdup() supplied by the platform, so it is pointless to pretend that it is OK to call it with NULL.

Remove the conditional based on NULL-ness of the input; this squelches the warning.

See https://gcc.gnu.org/gcc-6/porting_to.html for details.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Helped-by: René Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
 compat/nedmalloc/nedmalloc.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/compat/nedmalloc/nedmalloc.c b/compat/nedmalloc/nedmalloc.c
index 677d1b2..88cd78c 100644
--- a/compat/nedmalloc/nedmalloc.c
+++ b/compat/nedmalloc/nedmalloc.c
@@ -955,12 +955,10 @@ void **nedpindependent_comalloc(nedpool *p, size_t elems, size_t *sizes, void **
  */
 char *strdup(const char *s1)
 {
-	char *s2 = 0;
-	if (s1) {
-		size_t len = strlen(s1) + 1;
-		s2 = malloc(len);
+	size_t len = strlen(s1) + 1;
+	s2 = malloc(len);
+	if (s1)
 		memcpy(s2, s1, len);
-	}
 	return s2;
 }
 #endif
-- 
2.9.2-766-gd7972a8
Previous: Junio C HamanoNext: Johannes Sixt
Message 8 of 17 in “Patches to let Git build with GCC 6 and DEVELOPER=SureWhyNot”
  1. 0/2 Patches to let Git build with GCC 6 and DEVELOPER=SureWhyNotJohannes Schindelin, Aug 4, 2016
  2. 1/2 nedmalloc: fix misleading indentationJohannes Schindelin, Aug 4, 2016
  3. 2/2 nedmalloc: work around overzealous GCC 6 warningJohannes Schindelin, Aug 4, 2016
  4. Junio C HamanoAug 4, 2016
  5. Johannes SchindelinAug 5, 2016
  6. René ScharfeAug 4, 2016
  7. Junio C HamanoAug 4, 2016
  8. Junio C HamanoAug 4, 2016
  9. Johannes SixtAug 5, 2016
  10. Johannes SixtAug 5, 2016
  11. Junio C HamanoAug 5, 2016
  12. Jeff KingAug 5, 2016
  13. Johannes SchindelinAug 5, 2016
  14. Junio C HamanoAug 5, 2016
  15. Johannes SchindelinAug 6, 2016
  16. Junio C HamanoAug 5, 2016
  17. René ScharfeAug 5, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.