1 /* PR tree-optimization/93582 */ 2 /* { dg-do compile { target int32 } } */ 3 /* { dg-options "-O2 -fdump-tree-fre1" } */ 4 /* { dg-final { scan-tree-dump "return 72876566;" "fre1" { target le } } } */ 5 /* { dg-final { scan-tree-dump "return 559957376;" "fre1" { target be } } } */ 6 7 union U { 8 struct S { int a : 12, b : 5, c : 10, d : 5; } s; 9 unsigned int i; 10 }; 11 struct A { char a[12]; union U u; }; 12 void bar (struct A *); 13 14 unsigned foo(void)15foo (void) 16 { 17 struct A a; 18 bar (&a); 19 a.u.s.a = 1590; 20 a.u.s.c = -404; 21 #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ 22 #define M 0x67e0a5f 23 #elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ 24 #define M 0xa5f067e0 25 #else 26 #define M 0 27 #endif 28 return a.u.i & M; 29 } 30