1 /* { dg-do run { target { { i?86-*-linux* x86_64-*-linux* } && ilp32 } } } */
2 /* { dg-options "-Os" } */
5 extern void abort (void);
8 lshifts (int val
, int cnt
)
15 static inline unsigned int
16 lshiftu (unsigned int val
, unsigned int cnt
)
18 if (cnt
>= sizeof (unsigned int) * __CHAR_BIT__
19 || val
> ((__INT_MAX__
* 2U) >> cnt
))
25 rshifts (int val
, unsigned int cnt
)
27 if (val
< 0 || cnt
>= sizeof (int) * __CHAR_BIT__
)
33 foo (unsigned int val
)
35 return rshifts (1 + val
, lshifts (lshiftu (val
, val
), 1));