On 2012-03-10 21:20, Stefan Weil wrote: > Casting a pointer to an integer value must use uintptr_t or intptr_t > (not long) for portable code. MinGW-w64 requires this because > sizeof(long) != sizeof(void *) for w64 hosts, so casting to long > raises a compiler warning. > > I use uintptr_t instead of intptr_t because changing the sign does not > matter here and casting pointers to unsigned values seems more > reasonable (the unsigned value is a non negative offset. > > Cc: Jan Kiszka <jan.kis...@siemens.com> > Signed-off-by: Stefan Weil <s...@weilnetz.de> > --- > slirp/cksum.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/slirp/cksum.c b/slirp/cksum.c > index e43867d..6328660 100644 > --- a/slirp/cksum.c > +++ b/slirp/cksum.c > @@ -75,7 +75,7 @@ int cksum(struct mbuf *m, int len) > /* > * Force to even boundary. > */ > - if ((1 & (long) w) && (mlen > 0)) { > + if ((1 & (uintptr_t)w) && (mlen > 0)) { > REDUCE; > sum <<= 8; > s_util.c[0] = *(uint8_t *)w;
Thanks, I picked this up for the slirp queue for which I will send a pull request later today. Jan -- Siemens AG, Corporate Technology, CT T DE IT 1 Corporate Competence Center Embedded Linux