Re: [PATCH] fix warning from pack-objects.c
From: Andreas Ericsson <hidden>
Date: 2016-06-15 22:42:20
Luck, Tony wrote:
When compiling on ia64 I get this warning (from gcc 3.4.3): gcc -o pack-objects.o -c -g -O2 -Wall -DSHA1_HEADER='<openssl/sha.h>' pack-objects.c pack-objects.c: In function `pack_revindex_ix': pack-objects.c:94: warning: cast from pointer to integer of different size A double cast (first to long, then to int) shuts gcc up, but is there a better way?
Make ui and i unsigned long and cast p to unsigned long (or perhaps ptrdiff_t is preferred?). On 32-bit archs it's no difference, but 64-bit archs can work with their native size. It's slightly faster (although I expect the compiler takes care of that anyways). I noticed this earlier on my shiny AMD FX2 64-bit. The tests run just fine with my solution. I expect they will with yours as well.
quoted hunk ↗ jump to hunk
Signed-off-by: Tony Luck <tony.luck@intel.com> ---diff --git a/pack-objects.c b/pack-objects.c index 8f352aa..c985fab 100644 --- a/pack-objects.c +++ b/pack-objects.c@@ -91,7 +91,7 @@ static int reused_delta = 0; static int pack_revindex_ix(struct packed_git *p) { - unsigned int ui = (unsigned int) p; + unsigned int ui = (unsigned int)(long)p; int i; ui = ui ^ (ui >> 16); /* defeat structure alignment */ -To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
-- Andreas Ericsson andreas.ericsson@op5.se OP5 AB www.op5.se Tel: +46 8-230225 Fax: +46 8-230231