35 lines
598 B
C
35 lines
598 B
C
/* 20050922-1.c does not trigger the expand_shift rotate bug on sh4-elf, but
|
|
this does. */
|
|
|
|
/* { dg-do run } */
|
|
/* { dg-options "-O1 -std=c99" } */
|
|
|
|
extern void abort (void);
|
|
extern void exit (int);
|
|
|
|
#if __INT_MAX__ == 2147483647
|
|
typedef unsigned int uint32_t;
|
|
#elif __LONG_MAX__ == 2147483647
|
|
typedef unsigned long uint32_t;
|
|
#else
|
|
#error unable to find 32-bit integer type
|
|
#endif
|
|
|
|
#define rotl(x,n) (((x) << ((int)(n))) | ((x) >> (32 - (int)(n))))
|
|
|
|
uint32_t
|
|
f (uint32_t a, uint32_t b)
|
|
{
|
|
|
|
b = rotl (a, b & 31);
|
|
return b;
|
|
}
|
|
|
|
int
|
|
main ()
|
|
{
|
|
if (f(2,31) != 1)
|
|
abort ();
|
|
exit (0);
|
|
}
|