1/* { dg-xfail-if "ABI specifies bitfields cannot exceed 32 bits" { mcore-*-* } "*" "" } */ 2struct tmp 3{ 4 long long int pad : 12; 5 long long int field : 52; 6}; 7 8struct tmp2 9{ 10 long long int field : 52; 11 long long int pad : 12; 12}; 13 14struct tmp 15sub (struct tmp tmp) 16{ 17 tmp.field |= 0x0008765412345678LL; 18 return tmp; 19} 20 21struct tmp2 22sub2 (struct tmp2 tmp2) 23{ 24 tmp2.field |= 0x0008765412345678LL; 25 return tmp2; 26} 27 28main() 29{ 30 struct tmp tmp = {0x123, 0xFFF000FFF000FLL}; 31 struct tmp2 tmp2 = {0xFFF000FFF000FLL, 0x123}; 32 33 tmp = sub (tmp); 34 tmp2 = sub2 (tmp2); 35 36 if (tmp.pad != 0x123 || tmp.field != 0xFFFFFF541FFF567FLL) 37 abort (); 38 if (tmp2.pad != 0x123 || tmp2.field != 0xFFFFFF541FFF567FLL) 39 abort (); 40 exit (0); 41} 42