1 /* { dg-xfail-if "ABI specifies bitfields cannot exceed 32 bits" { mcore-*-* } "*" "" } */ 2 struct tmp 3 { 4 long long int pad : 12; 5 long long int field : 52; 6 }; 7 8 struct tmp2 9 { 10 long long int field : 52; 11 long long int pad : 12; 12 }; 13 14 struct tmp sub(struct tmp tmp)15sub (struct tmp tmp) 16 { 17 tmp.field |= 0x0008765412345678LL; 18 return tmp; 19 } 20 21 struct tmp2 sub2(struct tmp2 tmp2)22sub2 (struct tmp2 tmp2) 23 { 24 tmp2.field |= 0x0008765412345678LL; 25 return tmp2; 26 } 27 main()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