Viewing file: 991118-1.c (1.28 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
struct tmp { long long int pad : 12; long long int field : 52; };
struct tmp2 { long long int field : 52; long long int pad : 12; };
struct tmp3 { long long int pad : 11; long long int field : 53; };
struct tmp4 { long long int field : 53; long long int pad : 11; };
struct tmp sub (struct tmp tmp) { tmp.field ^= 0x0008765412345678LL; return tmp; }
struct tmp2 sub2 (struct tmp2 tmp2) { tmp2.field ^= 0x0008765412345678LL; return tmp2; }
struct tmp3 sub3 (struct tmp3 tmp3) { tmp3.field ^= 0x0018765412345678LL; return tmp3; }
struct tmp4 sub4 (struct tmp4 tmp4) { tmp4.field ^= 0x0018765412345678LL; return tmp4; }
struct tmp tmp = {0x123, 0x123456789ABCDLL}; struct tmp2 tmp2 = {0x123456789ABCDLL, 0x123}; struct tmp3 tmp3 = {0x123, 0x1FFFF00000000LL}; struct tmp4 tmp4 = {0x1FFFF00000000LL, 0x123};
main() {
if (sizeof (long long) != 8) exit (0);
tmp = sub (tmp); tmp2 = sub2 (tmp2);
if (tmp.pad != 0x123 || tmp.field != 0xFFF9551175BDFDB5LL) abort (); if (tmp2.pad != 0x123 || tmp2.field != 0xFFF9551175BDFDB5LL) abort ();
tmp3 = sub3 (tmp3); tmp4 = sub4 (tmp4); if (tmp3.pad != 0x123 || tmp3.field != 0xFFF989AB12345678LL) abort (); if (tmp4.pad != 0x123 || tmp4.field != 0xFFF989AB12345678LL) abort (); exit (0); }
|