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

[PATCH 3/4] drop some obsolete "x = x" compiler warning hacks

From
Jeff King <peff@peff.net>
Date
Mar 21, 2013, 11:10 UTC
Message-ID
<20130321111028.GC18819@sigill.intra.peff.net>
In-Reply-To
<20130321110338.GA18552@sigill.intra.peff.net>

In cases where the setting and access of a variable are protected by the same conditional flag, older versions of gcc would generate a "might be used unitialized" warning. We silence the warning by initializing the variable to itself, a hack that gcc recognizes.

Modern versions of gcc are smart enough to get this right, going back to at least version 4.3.5. gcc 4.1 does get it wrong in both cases, but is sufficiently old that we probably don't need to care about it anymore.

Signed-off-by: Jeff King <peff@peff.net>
---
gcc 4.2 is conspicuously missing because no current Debian system even
has a backwards-compatibility package for it, making it harder to test.
And 4.3 was old enough for me to say "I do not care if you can run with
-Wall -Werror or not", let alone 4.2.
 builtin/cat-file.c | 2 +-
 fast-import.c      | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/builtin/cat-file.c b/builtin/cat-file.c
index 00528dd..ad29000 100644
--- a/builtin/cat-file.c
+++ b/builtin/cat-file.c
@@ -193,7 +193,7 @@ static int batch_one_object(const char *obj_name, int print_contents)
 	unsigned char sha1[20];
 	enum object_type type = 0;
 	unsigned long size;
-	void *contents = contents;
+	void *contents;
 
 	if (!obj_name)
 	   return 1;
diff --git a/fast-import.c b/fast-import.c
index 583a439..e12a8b8 100644
--- a/fast-import.c
+++ b/fast-import.c
@@ -2434,7 +2434,7 @@ static void note_change_n(struct branch *b, unsigned char *old_fanout)
 {
 	const char *p = command_buf.buf + 2;
 	static struct strbuf uq = STRBUF_INIT;
-	struct object_entry *oe = oe;
+	struct object_entry *oe;
 	struct branch *s;
 	unsigned char sha1[20], commit_sha1[20];
 	char path[60];
-- 
1.8.2.rc2.8.g2161951
Previous: Jonathan NiederNext: Erik Faye-Lund
Message 9 of 42 in “drop some "int x = x" hacks to silence gcc warnings”
  1. 0/4 drop some "int x = x" hacks to silence gcc warningsJeff King, Mar 21, 2013
  2. 1/4 wt-status: fix possible use of uninitialized variableJeff King, Mar 21, 2013
  3. Jonathan NiederMar 21, 2013
  4. Junio C HamanoMar 21, 2013
  5. Jonathan NiederMar 21, 2013
  6. Jeff KingMar 22, 2013
  7. 2/4 fast-import: use pointer-to-pointer to keep list tailJeff King, Mar 21, 2013
  8. Jonathan NiederMar 21, 2013
  9. 3/4 drop some obsolete "x = x" compiler warning hacksJeff King, Mar 21, 2013
  10. Erik Faye-LundMar 21, 2013
  11. Jonathan NiederMar 21, 2013
  12. Torsten BögershausenMar 24, 2013
  13. 4/4 transport: drop "int cmp = cmp" hackJeff King, Mar 21, 2013
  14. Jonathan NiederMar 21, 2013
  15. Junio C HamanoMar 24, 2013
  16. Jeff KingMar 24, 2013
  17. Torsten BögershausenMar 24, 2013
  18. Junio C HamanoMar 25, 2013
  19. Jeff KingMar 25, 2013
  20. Junio C HamanoMar 25, 2013
  21. Johannes SixtMar 21, 2013
  22. Jeff KingMar 21, 2013
  23. Junio C HamanoMar 21, 2013
  24. Junio C HamanoMar 21, 2013
  25. Jeff KingMar 21, 2013
  26. 5/4 fast-import: clarify "inline" logic in file_change_mJeff King, Mar 21, 2013
  27. 6/4 run-command: always set failed_errno in start_commandJeff King, Mar 21, 2013
  28. Jonathan NiederMar 21, 2013
  29. Jeff KingMar 22, 2013
  30. 7/4 submodule: clarify logic in show_submodule_summaryJeff King, Mar 22, 2013
  31. Junio C HamanoMar 22, 2013
  32. 8/4 match-trees: drop "x = x" initializationsJeff King, Mar 22, 2013
  33. Junio C HamanoMar 22, 2013
  34. Junio C HamanoMar 22, 2013
  35. Jeff KingMar 22, 2013
  36. René ScharfeMar 23, 2013
  37. Junio C HamanoMar 24, 2013
  38. Jeff KingMar 24, 2013
  39. René ScharfeMar 24, 2013
  40. Junio C HamanoMar 25, 2013
  41. Joachim SchmitzMar 21, 2013
  42. Joachim SchmitzMar 21, 2013

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.