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

Re: /* compiler workaround */ - what was the issue?

From
Ramsay Jones <ramsay@ramsayjones.plus.com>
Date
May 6, 2016, 21:17 UTC
Message-ID
<572D09D5.4060600@ramsayjones.plus.com>
In-Reply-To
<572CFCBC.3020103@ramsayjones.plus.com>
On 06/05/16 21:21, Ramsay Jones wrote:
> On 06/05/16 19:54, Junio C Hamano wrote:
>> Ramsay Jones <ramsay@ramsayjones.plus.com> writes:
>>
[snip]
Show 26 quoted lines
> I still can't get gcc to complain, e.g. (on top of above):
> 
>   $ git diff
>   diff --git a/builtin/rev-list.c b/builtin/rev-list.c
>   index deae1f3..845fcdc 100644
>   --- a/builtin/rev-list.c
>   +++ b/builtin/rev-list.c
>   @@ -377,7 +377,7 @@ int cmd_rev_list(int argc, const char **argv, const char *prefix)
>                   mark_edges_uninteresting(&revs, show_edge);
>    
>           if (bisect_list) {
>   -               int reaches = 0, all = 0;
>   +               int reaches, all;
>    
>                   revs.commits = find_bisection(revs.commits, &reaches, &all,
>                                                 bisect_find_all);
>   $ rm builtin/rev-list.o
>   $ make V=1 CFLAGS='-g -O3 -Wall -Wextra -Wuninitialized -Wno-unused-parameter' builtin/rev-list.o
>   cc -o builtin/rev-list.o -c -MF builtin/.depend/rev-list.o.d -MQ builtin/rev-list.o -MMD -MP  -g -O3 -Wall -Wextra -Wuninitialized -Wno-unused-parameter -I. -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND  -DHAVE_PATHS_H -DHAVE_DEV_TTY -DXDL_FAST_HASH -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM -DSHA1_HEADER='<openssl/sha.h>'  -DNO_STRLCPY -DNO_MKSTEMPS -DSHELL_PATH='"/bin/sh"'  builtin/rev-list.c
>   In file included from ./cache.h:4:0,
>                    from builtin/rev-list.c:1:
>   ./git-compat-util.h: In function ‘xsize_t’:
>   ./git-compat-util.h:838:10: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
>     if (len > (size_t) len)
>             ^
>   $ 

BTW, another patch that I have hanging around ... this time the patch below was built on master from a couple of years ago (so, I haven't bothered to rebase it, but you should get the idea):

ATB, Ramsay Jones

-- >8 --
Subject: [PATCH] git-compat-util.h: xsize_t(): avoid signed comparison warnings
Signed-off-by: Ramsay Jones <ramsay@ramsayjones.plus.com>
---
 git-compat-util.h | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/git-compat-util.h b/git-compat-util.h
index c07e0c1..3a9cf6c 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h
@@ -838,9 +838,10 @@ static inline char *xstrdup_or_null(const char *str)
 
 static inline size_t xsize_t(off_t len)
 {
-	if (len > (size_t) len)
+	size_t r = (size_t)len;
+	if (len != (off_t)r)
 		die("Cannot handle files this big");
-	return (size_t)len;
+	return r;
 }
 
 __attribute__((format (printf, 3, 4)))
-- 
2.8.0
Previous: Ramsay Jones
Message 15 of 15 in “/* compiler workaround */ - what was the issue?”
  1. Philip OakleyMay 5, 2016
  2. Junio C HamanoMay 5, 2016
  3. Duy NguyenMay 6, 2016
  4. Philip OakleyMay 6, 2016
  5. Ramsay JonesMay 6, 2016
  6. Philip OakleyMay 6, 2016
  7. Junio C HamanoMay 6, 2016
  8. Marc BranchaudMay 6, 2016
  9. Junio C HamanoMay 6, 2016
  10. Stefan BellerMay 6, 2016
  11. Philip OakleyMay 9, 2016
  12. Randall S. BeckerMay 9, 2016
  13. Marc BranchaudMay 6, 2016
  14. Ramsay JonesMay 6, 2016
  15. Ramsay JonesMay 6, 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.