OSDN Git Service

testsuite/
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.c-torture / execute / pr23324.c
1 extern void abort (void);
2 #define A(x) if (!(x)) abort ()
3
4 static union at6 {} vv6 = {};
5 static struct et6
6 {
7   struct bt6
8   {
9     signed av6:6;
10     signed bv6:7;
11     signed cv6:6;
12     signed dv6:5;
13     unsigned char ev6;
14     unsigned int fv6;
15     long int gv6;
16   } mv6;
17   unsigned long int nv6;
18   signed ov6:12;
19   signed pv6:3;
20   signed qv6:2;
21   signed rv6:10;
22   union ct6 { long int hv6; float iv6; float jv6; } sv6;
23   int *tv6;
24   union dt6 { double kv6; float lv6; } uv6;
25 } wv6 = {
26   { 8, 9, 2, 4, '\x10', 67426805U, 1047191860L },
27   1366022414UL, 858, 1, 1, 305,
28   { 1069379046L }, (int *) 358273621U,
29   { 3318.041978 }
30 };
31 static double xv6 = 19239.101269;
32 static long long int yv6 = 1207859169L;
33 static int zv6 = 660195606;
34
35 static union at6
36 callee_af6 (struct et6 ap6, double bp6, long long int cp6, int dp6)
37 {
38   A (wv6.mv6.av6 == ap6.mv6.av6);
39   A (wv6.mv6.bv6 == ap6.mv6.bv6);
40   A (wv6.mv6.cv6 == ap6.mv6.cv6);
41   A (wv6.mv6.dv6 == ap6.mv6.dv6);
42   A (wv6.mv6.ev6 == ap6.mv6.ev6);
43   A (wv6.mv6.fv6 == ap6.mv6.fv6);
44   A (wv6.mv6.gv6 == ap6.mv6.gv6);
45   A (wv6.nv6 == ap6.nv6);
46   A (wv6.ov6 == ap6.ov6);
47   A (wv6.pv6 == ap6.pv6);
48   A (wv6.qv6 == ap6.qv6);
49   A (wv6.rv6 == ap6.rv6);
50   A (wv6.sv6.hv6 == ap6.sv6.hv6);
51   A (wv6.tv6 == ap6.tv6);
52   A (wv6.uv6.kv6 == ap6.uv6.kv6);
53   A (xv6 == bp6);
54   A (yv6 == cp6);
55   A (zv6 == dp6);
56   return vv6;
57 }
58
59 static void
60 caller_bf6 (void)
61 {
62   union at6 bav6;
63   bav6 = callee_af6 (wv6, xv6, yv6, zv6);
64 }
65
66 static unsigned char uv7 = '\x46';
67 static float vv7 = 96636.982442;
68 static double wv7 = 28450.711801;
69 static union ct7 {} xv7 = {};
70 static struct et7
71 {
72   struct dt7
73   {
74     float iv7;
75     unsigned short int jv7;
76   } kv7;
77   float lv7[0];
78   signed mv7:9;
79   short int nv7;
80   double ov7;
81   float pv7;
82 } yv7 = {
83   { 30135.996213, 42435 },
84   {}, 170, 22116, 26479.628148, 4082.960685
85 };
86 static union ft7
87 {
88   float qv7;
89   float *rv7;
90   unsigned int *sv7;
91 } zv7 = { 5042.227886 };
92 static int bav7 = 1345451862;
93 static struct gt7 { double tv7; } bbv7 = { 47875.491954 };
94 static long int bcv7[1] = { 1732133482L };
95 static long long int bdv7 = 381678602L;
96
97 static unsigned char
98 callee_af7 (float ap7, double bp7, union ct7 cp7, struct et7 dp7,
99             union ft7 ep7, int fp7, struct gt7 gp7, long int hp7[1],
100             long long int ip7)
101 {
102   A (vv7 == ap7);
103   A (wv7 == bp7);
104   A (yv7.kv7.iv7 == dp7.kv7.iv7);
105   A (yv7.kv7.jv7 == dp7.kv7.jv7);
106   A (yv7.mv7 == dp7.mv7);
107   A (yv7.nv7 == dp7.nv7);
108   A (yv7.ov7 == dp7.ov7);
109   A (yv7.pv7 == dp7.pv7);
110   A (zv7.qv7 == ep7.qv7);
111   A (bav7 == fp7);
112   A (bbv7.tv7 == gp7.tv7);
113   A (bcv7[0] == hp7[0]);
114   A (bdv7 == ip7);
115   return uv7;
116 }
117
118 static void
119 caller_bf7 (void)
120 {
121   unsigned char bev7;
122
123   bev7 = callee_af7 (vv7, wv7, xv7, yv7, zv7, bav7, bbv7, bcv7, bdv7);
124   A (uv7 == bev7);
125 }
126
127 int
128 main ()
129 {
130   caller_bf6 ();
131   caller_bf7 ();
132   return 0;
133 }