On Wed, 2015-10-14 at 15:44 -0700, Jeremy Huddleston Sequoia wrote: > > On Oct 14, 2015, at 15:33, Alan Coopersmith wrote: > > > > On 10/14/15 03:13 PM, Jeremy Huddleston Sequoia wrote: > > > rrtransform.c:199:23: warning: shifting a negative signed value > > > is undefined [-Wshift-negative-value,Semantic Issue] > > > rot_cos = F(-1); > > > > > > > - rot_cos = F(-1); > > > + rot_cos = F(~0u); > > > > Is -1 guaranteed to be ~0u on all platforms? Or just all the ones > > we know and care about? > > I'm pretty certain that ~0u and -1 are the same bit patterns on all > platforms. I can't think of a reason why they wouldn't be.
On a ones' complement machine, (uint8_t)-1 is 0b11111110. On a signed- magnitude machine, (uint8_t)-1 is 0b10000001. But I think you're significantly more likely to encounter a PDP-endian machine than a non- two's-complement machine at this point, and there's plenty of other places in xserver where we're assuming two's complement, e.g.: fb/fb.h:#define FB_ALLONES ((FbBits) -1) - ajax _______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel