Re: [PATCH/RFC] Fix some warnings (on cygwin) to allow -Werror

4 messages, 2 authors, 2016-06-15 · open the first message on its own page

Re: [PATCH/RFC] Fix some warnings (on cygwin) to allow -Werror

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:44:53

Ramsay Jones [off-list ref] writes:
Despite the subject line, this should be useful on any system for
which uint32_t is defined to be unsigned long rather than
unsigned int. (and where the return type of htonl() is similarly
defined).
Correct.  Perhaps "Use %PRIu32 and such to print integers of fixed length"?

The only worry I have with this patch is with systems with not-so-ANSI
headers; as you noticed, we already have:

        #ifndef PRIuMAX
        #define PRIuMAX "llu"
        #endif

in git-compat-util.h, which does include <inttypes.h>, so PRIu32 and
friends could be problematic on these platforms.
quoted hunk
@@ -1718,7 +1720,8 @@ static int add_ref_tag(const char *path, const unsigned char *sha1, int flag, vo
 static void prepare_pack(int window, int depth)
 {
 	struct object_entry **delta_list;
-	uint32_t i, n, nr_deltas;
+	uint32_t i, nr_deltas;
+	unsigned n;
Hmm.  Is this change necessary?

Re: [PATCH/RFC] Fix some warnings (on cygwin) to allow -Werror

From: Ramsay Jones <hidden>
Date: 2016-06-15 22:44:53

Junio C Hamano wrote:
Ramsay Jones [off-list ref] writes:
quoted
Despite the subject line, this should be useful on any system for
which uint32_t is defined to be unsigned long rather than
unsigned int. (and where the return type of htonl() is similarly
defined).
Correct.  Perhaps "Use %PRIu32 and such to print integers of fixed length"?

The only worry I have with this patch is with systems with not-so-ANSI
headers; as you noticed, we already have:

        #ifndef PRIuMAX
        #define PRIuMAX "llu"
        #endif

in git-compat-util.h, which does include <inttypes.h>, so PRIu32 and
friends could be problematic on these platforms.
Yes, I had the same worry, since I did not know which system(s) required
the above #ifdef and, perhaps more important, why.  Having said that, I
suspect (hope?) that the affected system(s) are somewhat rare.  I guess
it would not be long before someone complained otherwise...

[Note: I can't just blame the above #ifdef because I don't have a real
git repo ;-) - it would simply blame me!]
quoted
@@ -1718,7 +1720,8 @@ static int add_ref_tag(const char *path, const unsigned char *sha1, int flag, vo
 static void prepare_pack(int window, int depth)
 {
 	struct object_entry **delta_list;
-	uint32_t i, n, nr_deltas;
+	uint32_t i, nr_deltas;
+	unsigned n;
Hmm.  Is this change necessary?
Yes, otherwise:

builtin-pack-objects.c: In function `prepare_pack':
builtin-pack-objects.c:1760: warning: passing arg 2 of `find_deltas' from incompatible pointer type
make: *** [builtin-pack-objects.o] Error 1

Note that ll_find_deltas() is #defined to find_deltas() in the #else arm
of #ifdef THREADED_DELTA_SEARCH, and find_deltas() takes an "unsigned *"

ATB,

Ramsay Jones

Re: [PATCH/RFC] Fix some warnings (on cygwin) to allow -Werror

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:44:53

Ramsay Jones [off-list ref] writes:
Junio C Hamano wrote:
...
quoted
quoted
@@ -1718,7 +1720,8 @@ static int add_ref_tag(const char *path, const unsigned char *sha1, int flag, vo
 static void prepare_pack(int window, int depth)
 {
 	struct object_entry **delta_list;
-	uint32_t i, n, nr_deltas;
+	uint32_t i, nr_deltas;
+	unsigned n;
Hmm.  Is this change necessary?
Yes, otherwise:

builtin-pack-objects.c: In function `prepare_pack':
builtin-pack-objects.c:1760: warning: passing arg 2 of `find_deltas' from incompatible pointer type
make: *** [builtin-pack-objects.o] Error 1

Note that ll_find_deltas() is #defined to find_deltas() in the #else arm
of #ifdef THREADED_DELTA_SEARCH, and find_deltas() takes an "unsigned *"
Ah, I missed that.  So it is not just warning squelch but is a bugfix in
case unsigned and uint32_t are of different sizes.

Re: [PATCH/RFC] Fix some warnings (on cygwin) to allow -Werror

From: Ramsay Jones <hidden>
Date: 2016-06-15 22:44:55

Junio C Hamano wrote:
Ramsay Jones [off-list ref] writes:
quoted
Junio C Hamano wrote:
...
quoted
quoted
@@ -1718,7 +1720,8 @@ static int add_ref_tag(const char *path, const unsigned char *sha1, int flag, vo
 static void prepare_pack(int window, int depth)
 {
 	struct object_entry **delta_list;
-	uint32_t i, n, nr_deltas;
+	uint32_t i, nr_deltas;
+	unsigned n;
Hmm.  Is this change necessary?
Yes, otherwise:

builtin-pack-objects.c: In function `prepare_pack':
builtin-pack-objects.c:1760: warning: passing arg 2 of `find_deltas' from incompatible pointer type
make: *** [builtin-pack-objects.o] Error 1

Note that ll_find_deltas() is #defined to find_deltas() in the #else arm
of #ifdef THREADED_DELTA_SEARCH, and find_deltas() takes an "unsigned *"
Ah, I missed that.  So it is not just warning squelch but is a bugfix in
case unsigned and uint32_t are of different sizes.
Yes, but I didn't think about that when I "fixed" it ;-)

ATB,

Ramsay Jones
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help