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

Re: [PATCH] Fix Solaris compiler warnings

From
Alex Riesen <raa.lkml@gmail.com>
Date
Nov 16, 2007, 07:48 UTC
Message-ID
<20071116074850.GA3400@steel.home>
In-Reply-To
<7v1war3xrq.fsf@gitster.siamese.dyndns.org>
Junio C Hamano, Fri, Nov 16, 2007 00:16:25 +0100:
Show 25 quoted lines
> Alex Riesen <raa.lkml@gmail.com> writes:
> 
> > Guido Ostkamp, Thu, Nov 15, 2007 23:19:11 +0100:
> >> Hello,
> >>
> >> the below patch fixes some compiler warnings returned by Solaris Workshop 
> >> Compilers.
> >>
> >>     CC builtin-apply.o
> >> "builtin-apply.c", line 686: warning: statement not reached
> >>     CC utf8.o
> >> "utf8.c", line 287: warning: statement not reached
> >>     CC xdiff/xdiffi.o
> >> "xdiff/xdiffi.c", line 261: warning: statement not reached
> >
> > All these are wrong. That's a fantastically broken piece of compiler
> 
> Eh?
> 
> I've looked at builtin-apply and utf8 cases but these returns
> are after an endless loop whose exit paths always return
> directly, so these return statements are in fact never reached.
> 
> Dumber compilers may not notice and if you remove these returns
> they may start complaining, though. 

Hmm... Guido, I owe you an appology. Still, consider this patch instead (it does not fix the return in xdiff/xdiffi.c though):

diff --git a/builtin-apply.c b/builtin-apply.c
index 8edcc08..6267396 100644
--- a/builtin-apply.c
+++ b/builtin-apply.c
@@ -668,13 +668,13 @@ static char *git_header_name(char *line, int llen)
 		default:
 			continue;
 		case '\n':
-			return NULL;
+			goto eol;
 		case '\t': case ' ':
 			second = name+len;
 			for (;;) {
 				char c = *second++;
 				if (c == '\n')
-					return NULL;
+					goto eol;
 				if (c == '/')
 					break;
 			}
@@ -683,6 +683,7 @@ static char *git_header_name(char *line, int llen)
 			}
 		}
 	}
+eol:
 	return NULL;
 }
 
diff --git a/utf8.c b/utf8.c
index 8095a71..50c46af 100644
--- a/utf8.c
+++ b/utf8.c
@@ -262,7 +262,7 @@ int print_wrapped_text(const char *text, int indent, int indent2, int width)
 					print_spaces(indent);
 				fwrite(start, text - start, 1, stdout);
 				if (!c)
-					return w;
+					break;
 				else if (c == '\t')
 					w |= 0x07;
 				space = text;
diff --git a/xdiff/xutils.c b/xdiff/xutils.c
index 2ade97b..533ff76 100644
--- a/xdiff/xutils.c
+++ b/xdiff/xutils.c
@@ -230,10 +230,9 @@ int xdl_recmatch(const char *l1, long s1, const char *l2, long s2, long flags)
 			i2++;
 		}
 		return i1 >= s1 && i2 >= s2;
-	} else
-		return s1 == s2 && !memcmp(l1, l2, s1);
+	}
 
-	return 0;
+	return s1 == s2 && !memcmp(l1, l2, s1);
 }
 
 static unsigned long xdl_hash_record_with_whitespace(char const **data,
Previous: Junio C HamanoNext: Junio C Hamano
Message 4 of 10 in “Fix Solaris compiler warnings”
  1. Fix Solaris compiler warningsGuido Ostkamp, Nov 15, 2007
  2. Alex RiesenNov 15, 2007
  3. Junio C HamanoNov 15, 2007
  4. Alex RiesenNov 16, 2007
  5. Junio C HamanoNov 16, 2007
  6. Guido OstkampNov 16, 2007
  7. Rewrite some function exit paths to avoid "unreachable code" trapsAlex Riesen, Nov 17, 2007
  8. Robin RosenbergNov 17, 2007
  9. Alex RiesenNov 17, 2007
  10. Robin RosenbergNov 17, 2007

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.