1 /* PR tree-optimization/65215 */ 2 3 struct S { unsigned long long l1 : 48; }; 4 5 static inline unsigned int foo(unsigned int x)6foo (unsigned int x) 7 { 8 return (x >> 24) | ((x >> 8) & 0xff00) | ((x << 8) & 0xff0000) | (x << 24); 9 } 10 11 __attribute__((noinline, noclone)) unsigned int bar(struct S * x)12bar (struct S *x) 13 { 14 return foo (x->l1); 15 } 16 17 int main()18main () 19 { 20 if (__CHAR_BIT__ != 8 || sizeof (unsigned int) != 4 || sizeof (unsigned long long) != 8) 21 return 0; 22 struct S s; 23 s.l1 = foo (0xdeadbeefU) | (0xfeedULL << 32); 24 if (bar (&s) != 0xdeadbeefU) 25 __builtin_abort (); 26 return 0; 27 } 28