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