PR inline-asm/84742
[official-gcc.git] / gcc / testsuite / gcc.c-torture / execute / 991118-1.c
blob77ba888a2a011030416b72237324dd5fbbf31279
1 struct tmp
3 long long int pad : 12;
4 long long int field : 52;
5 };
7 struct tmp2
9 long long int field : 52;
10 long long int pad : 12;
13 struct tmp3
15 long long int pad : 11;
16 long long int field : 53;
19 struct tmp4
21 long long int field : 53;
22 long long int pad : 11;
25 struct tmp
26 sub (struct tmp tmp)
28 tmp.field ^= 0x0008765412345678LL;
29 return tmp;
32 struct tmp2
33 sub2 (struct tmp2 tmp2)
35 tmp2.field ^= 0x0008765412345678LL;
36 return tmp2;
39 struct tmp3
40 sub3 (struct tmp3 tmp3)
42 tmp3.field ^= 0x0018765412345678LL;
43 return tmp3;
46 struct tmp4
47 sub4 (struct tmp4 tmp4)
49 tmp4.field ^= 0x0018765412345678LL;
50 return tmp4;
53 struct tmp tmp = {0x123, 0x123456789ABCDLL};
54 struct tmp2 tmp2 = {0x123456789ABCDLL, 0x123};
55 struct tmp3 tmp3 = {0x123, 0x1FFFF00000000LL};
56 struct tmp4 tmp4 = {0x1FFFF00000000LL, 0x123};
58 main()
61 if (sizeof (long long) != 8)
62 exit (0);
64 tmp = sub (tmp);
65 tmp2 = sub2 (tmp2);
67 if (tmp.pad != 0x123 || tmp.field != 0xFFF9551175BDFDB5LL)
68 abort ();
69 if (tmp2.pad != 0x123 || tmp2.field != 0xFFF9551175BDFDB5LL)
70 abort ();
72 tmp3 = sub3 (tmp3);
73 tmp4 = sub4 (tmp4);
74 if (tmp3.pad != 0x123 || tmp3.field != 0xFFF989AB12345678LL)
75 abort ();
76 if (tmp4.pad != 0x123 || tmp4.field != 0xFFF989AB12345678LL)
77 abort ();
78 exit (0);