1 /* PR tree-optimization/72835. */ 2 /* { dg-do run } */ 3 /* { dg-options "-O2" } */ 4 /* { dg-require-effective-target int32plus } */ 5 6 struct struct_1 { 7 unsigned int m1 : 6 ; 8 unsigned int m2 : 24 ; 9 unsigned int m3 : 6 ; 10 }; 11 12 unsigned short var_32 = 0x2d10; 13 14 struct struct_1 s1; 15 init()16void init () 17 { 18 s1.m1 = 4; 19 s1.m2 = 0x7ca4b8; 20 s1.m3 = 24; 21 } 22 foo()23void foo () 24 { 25 unsigned int c 26 = ((unsigned int) s1.m2) * (-((unsigned int) s1.m3)) 27 + (var_32) * (-((unsigned int) (s1.m1))); 28 if (c != 4098873984) 29 __builtin_abort (); 30 } 31 main()32int main () 33 { 34 init (); 35 foo (); 36 return 0; 37 } 38