annotate gcc/testsuite/gcc.dg/attr-ms_struct-1.c @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 /* Test for MS structure sizes. */
kono
parents:
diff changeset
2 /* { dg-do run { target i?86-*-* x86_64-*-* } } */
kono
parents:
diff changeset
3 /* { dg-require-effective-target ilp32 } */
kono
parents:
diff changeset
4 /* { dg-options "-std=gnu99" } */
kono
parents:
diff changeset
5
kono
parents:
diff changeset
6 extern void abort ();
kono
parents:
diff changeset
7
kono
parents:
diff changeset
8 #define ATTR __attribute__((__ms_struct__))
kono
parents:
diff changeset
9
kono
parents:
diff changeset
10 #define size_struct_0 1
kono
parents:
diff changeset
11 #define size_struct_1 4
kono
parents:
diff changeset
12 #define size_struct_2 24
kono
parents:
diff changeset
13 #define size_struct_3 8
kono
parents:
diff changeset
14 #define size_struct_4 32
kono
parents:
diff changeset
15 #define size_struct_5 12
kono
parents:
diff changeset
16 #define size_struct_6 40
kono
parents:
diff changeset
17 #define size_struct_7 8
kono
parents:
diff changeset
18 #define size_struct_8 20
kono
parents:
diff changeset
19 #define size_struct_9 32
kono
parents:
diff changeset
20
kono
parents:
diff changeset
21 struct _struct_0
kono
parents:
diff changeset
22 {
kono
parents:
diff changeset
23 char member_0;
kono
parents:
diff changeset
24 } ATTR;
kono
parents:
diff changeset
25 typedef struct _struct_0 struct_0;
kono
parents:
diff changeset
26
kono
parents:
diff changeset
27 struct _struct_1
kono
parents:
diff changeset
28 {
kono
parents:
diff changeset
29 char member_0;
kono
parents:
diff changeset
30 short member_1:13;
kono
parents:
diff changeset
31 } ATTR;
kono
parents:
diff changeset
32 typedef struct _struct_1 struct_1;
kono
parents:
diff changeset
33
kono
parents:
diff changeset
34 struct _struct_2
kono
parents:
diff changeset
35 {
kono
parents:
diff changeset
36 double member_0;
kono
parents:
diff changeset
37 unsigned char member_1:8;
kono
parents:
diff changeset
38 long member_2:32;
kono
parents:
diff changeset
39 unsigned char member_3:5;
kono
parents:
diff changeset
40 short member_4:14;
kono
parents:
diff changeset
41 short member_5:13;
kono
parents:
diff changeset
42 unsigned char:0;
kono
parents:
diff changeset
43 } ATTR;
kono
parents:
diff changeset
44 typedef struct _struct_2 struct_2;
kono
parents:
diff changeset
45
kono
parents:
diff changeset
46 struct _struct_3
kono
parents:
diff changeset
47 {
kono
parents:
diff changeset
48 unsigned long member_0:26;
kono
parents:
diff changeset
49 unsigned char member_1:2;
kono
parents:
diff changeset
50
kono
parents:
diff changeset
51 } ATTR;
kono
parents:
diff changeset
52 typedef struct _struct_3 struct_3;
kono
parents:
diff changeset
53
kono
parents:
diff changeset
54 struct _struct_4
kono
parents:
diff changeset
55 {
kono
parents:
diff changeset
56 unsigned char member_0:7;
kono
parents:
diff changeset
57 double member_1;
kono
parents:
diff changeset
58 double member_2;
kono
parents:
diff changeset
59 short member_3:5;
kono
parents:
diff changeset
60 char member_4:2;
kono
parents:
diff changeset
61
kono
parents:
diff changeset
62 } ATTR;
kono
parents:
diff changeset
63 typedef struct _struct_4 struct_4;
kono
parents:
diff changeset
64
kono
parents:
diff changeset
65 struct _struct_5
kono
parents:
diff changeset
66 {
kono
parents:
diff changeset
67 unsigned short member_0:12;
kono
parents:
diff changeset
68 long member_1:1;
kono
parents:
diff changeset
69 unsigned short member_2:6;
kono
parents:
diff changeset
70
kono
parents:
diff changeset
71 } ATTR;
kono
parents:
diff changeset
72 typedef struct _struct_5 struct_5;
kono
parents:
diff changeset
73
kono
parents:
diff changeset
74 struct _struct_6
kono
parents:
diff changeset
75 {
kono
parents:
diff changeset
76 unsigned char member_0:7;
kono
parents:
diff changeset
77 unsigned long member_1:25;
kono
parents:
diff changeset
78 char member_2:1;
kono
parents:
diff changeset
79 double member_3;
kono
parents:
diff changeset
80 short member_4:9;
kono
parents:
diff changeset
81 double member_5;
kono
parents:
diff changeset
82
kono
parents:
diff changeset
83 } ATTR;
kono
parents:
diff changeset
84 typedef struct _struct_6 struct_6;
kono
parents:
diff changeset
85
kono
parents:
diff changeset
86 struct _struct_7
kono
parents:
diff changeset
87 {
kono
parents:
diff changeset
88 double member_0;
kono
parents:
diff changeset
89
kono
parents:
diff changeset
90 } ATTR;
kono
parents:
diff changeset
91 typedef struct _struct_7 struct_7;
kono
parents:
diff changeset
92
kono
parents:
diff changeset
93 struct _struct_8
kono
parents:
diff changeset
94 {
kono
parents:
diff changeset
95 unsigned char member_0:7;
kono
parents:
diff changeset
96 long member_1:11;
kono
parents:
diff changeset
97 long member_2:5;
kono
parents:
diff changeset
98 long:0;
kono
parents:
diff changeset
99 char member_4:8;
kono
parents:
diff changeset
100 unsigned short member_5:4;
kono
parents:
diff changeset
101 unsigned char member_6:3;
kono
parents:
diff changeset
102 long member_7:23;
kono
parents:
diff changeset
103
kono
parents:
diff changeset
104 } ATTR;
kono
parents:
diff changeset
105 typedef struct _struct_8 struct_8;
kono
parents:
diff changeset
106
kono
parents:
diff changeset
107 struct _struct_9
kono
parents:
diff changeset
108 {
kono
parents:
diff changeset
109 double member_0;
kono
parents:
diff changeset
110 unsigned long member_1:6;
kono
parents:
diff changeset
111 long member_2:17;
kono
parents:
diff changeset
112 double member_3;
kono
parents:
diff changeset
113 unsigned long member_4:22;
kono
parents:
diff changeset
114
kono
parents:
diff changeset
115 } ATTR;
kono
parents:
diff changeset
116 typedef struct _struct_9 struct_9;
kono
parents:
diff changeset
117
kono
parents:
diff changeset
118 struct_0 test_struct_0 = { 123 };
kono
parents:
diff changeset
119 struct_1 test_struct_1 = { 82, 1081 };
kono
parents:
diff changeset
120 struct_2 test_struct_2 = { 20.0, 31, 407760, 1, 14916, 6712 };
kono
parents:
diff changeset
121 struct_3 test_struct_3 = { 64616999, 1 };
kono
parents:
diff changeset
122 struct_4 test_struct_4 = { 61, 20.0, 20.0, 12, 0 };
kono
parents:
diff changeset
123 struct_5 test_struct_5 = { 909, 1, 57 };
kono
parents:
diff changeset
124 struct_6 test_struct_6 = { 12, 21355796, 0, 20.0, 467, 20.0 };
kono
parents:
diff changeset
125 struct_7 test_struct_7 = { 20.0 };
kono
parents:
diff changeset
126 struct_8 test_struct_8 = { 126, 1821, 22, 125, 6, 0, 2432638 };
kono
parents:
diff changeset
127 struct_9 test_struct_9 = { 20.0, 3, 23957, 20.0, 1001631 };
kono
parents:
diff changeset
128
kono
parents:
diff changeset
129
kono
parents:
diff changeset
130 int
kono
parents:
diff changeset
131 main (void)
kono
parents:
diff changeset
132 {
kono
parents:
diff changeset
133
kono
parents:
diff changeset
134 if (size_struct_0 != sizeof (struct_0))
kono
parents:
diff changeset
135 abort ();
kono
parents:
diff changeset
136
kono
parents:
diff changeset
137 if (size_struct_1 != sizeof (struct_1))
kono
parents:
diff changeset
138 abort ();
kono
parents:
diff changeset
139
kono
parents:
diff changeset
140 if (size_struct_2 != sizeof (struct_2))
kono
parents:
diff changeset
141 abort ();
kono
parents:
diff changeset
142
kono
parents:
diff changeset
143 if (size_struct_3 != sizeof (struct_3))
kono
parents:
diff changeset
144 abort ();
kono
parents:
diff changeset
145
kono
parents:
diff changeset
146 if (size_struct_4 != sizeof (struct_4))
kono
parents:
diff changeset
147 abort ();
kono
parents:
diff changeset
148
kono
parents:
diff changeset
149 if (size_struct_5 != sizeof (struct_5))
kono
parents:
diff changeset
150 abort ();
kono
parents:
diff changeset
151
kono
parents:
diff changeset
152 if (size_struct_6 != sizeof (struct_6))
kono
parents:
diff changeset
153 abort ();
kono
parents:
diff changeset
154
kono
parents:
diff changeset
155 if (size_struct_7 != sizeof (struct_7))
kono
parents:
diff changeset
156 abort ();
kono
parents:
diff changeset
157
kono
parents:
diff changeset
158 if (size_struct_8 != sizeof (struct_8))
kono
parents:
diff changeset
159 abort ();
kono
parents:
diff changeset
160
kono
parents:
diff changeset
161 if (size_struct_9 != sizeof (struct_9))
kono
parents:
diff changeset
162 abort ();
kono
parents:
diff changeset
163
kono
parents:
diff changeset
164 return 0;
kono
parents:
diff changeset
165 }