On Mon, Mar 04, 2013 at 12:15:31PM +0100, Georg-Johann Lay wrote: > http://gcc.gnu.org/r196428 > > Fixed this test case that assumed int is always 32 bits at least. > > PR testsuite/52641 > PR tree-optimization/52631 > * gcc.dg/tree-ssa/pr52631.c: Fix 16-bit int. > > --- gcc.dg/tree-ssa/pr52631.c (revision 196329) > +++ gcc.dg/tree-ssa/pr52631.c (working copy) > @@ -3,7 +3,11 @@ > > unsigned f(unsigned a) > { > +#if __SIZEOF_INT__ == 2 > + unsigned b = a >> 15; > +#else > unsigned b = a >> 31; > +#endif
So perhaps better unsigned b = a >> (__SIZEOF_INT__ * __CHAR_BIT__ - 1); ? Jakub