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

Reply via email to