threads / patch / 28689

patchfmt-merge-msg.c: Fix an "dubious one-bit signed bitfield" sparse error

Subject: [PATCH] fmt-merge-msg.c: Fix an "dubious one-bit signed bitfield" sparse error

## tl;dr

2 messages between Oct 15, 2011 and Oct 16, 2011. Diffs are folded; open one to read it.

replies: 1people: 2as markdown or json

Ramsay Jones· Oct 15, 2011, 17:46 UTC · lore
Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
---
Hi Junio,

This was originally part of the patch I sent last week (applied to next as commit 273c7032 - environment.c: Fix an sparse "symbol not declared" warning, 09-10-2011), since they both blame to commit 898eacd8 (fmt-merge-msg: use branch.$name.description, 06-10-2011).

However, sparse only issued this particular error on Linux, and not cygwin or MinGW, so I decided to remove this part of the patch until I could investigate further.

So, I had a look this afternoon and, *literally*, after no more than a minute I realized why that is ... *blush*. Well, it may already be obvious, that the Makefile has -Wno-one-bit-signed-bitfield set in the SPARSE_FLAGS for cygwin and MinGW! *ahem* :-P (now, who could have done that!)

This was mainly for the benefit of MinGW, since it otherwise issues 558 errors (2 * 279 compilations); cygwin only results in 2 errors as follows:

        SP compat/cygwin.c
    /usr/include/w32api/winuser.h:3083:28: error: dubious one-bit signed bitfield
    /usr/include/w32api/winuser.h:3084:25: error: dubious one-bit signed bitfield
since only compat/cygwin.c, indirectly, includes that win32 header file.

Unfortunately, you can't tell sparse not to issue errors/warnings for system header files. I could have lived with just the two errors on cygwin, but I wanted at least one platform to be free of sparse errors/warnings. I remember thinking that it would be OK to turn the messages off because I would notice them on Linux anyway! Ha! :-P

BTW, t7800-difftool.sh fails for me on the next branch; I haven't investigated yet.

ATB, Ramsay Jones

 builtin/fmt-merge-msg.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
Show changes to builtin/fmt-merge-msg.c +1 −1
diff --git a/builtin/fmt-merge-msg.c b/builtin/fmt-merge-msg.c
index 255a50f..7da6ff6 100644
--- a/builtin/fmt-merge-msg.c
+++ b/builtin/fmt-merge-msg.c
@@ -37,7 +37,7 @@ struct src_data {
 
 struct origin_data {
 	unsigned char sha1[20];
-	int is_local_branch:1;
+	unsigned int is_local_branch:1;
 };
 
 static void init_src_data(struct src_data *data)
-- 
1.7.7
Junio C Hamano· Oct 16, 2011, 03:19 UTC · re: Ramsay Jones · lore

Re: [PATCH] fmt-merge-msg.c: Fix an "dubious one-bit signed bitfield" sparse error

Ramsay Jones <ramsay@ramsay1.demon.co.uk> writes:
>  struct origin_data {
>  	unsigned char sha1[20];
> -	int is_local_branch:1;
> +	unsigned int is_local_branch:1;
Thanks, I overlooked this one.

← back to recent threads