FSF GCC merge 02/23/03
[official-gcc.git] / gcc / testsuite / gcc.c-torture / execute / 20020402-2.c
blobe14233f3e3ae8fef8596532836d29087a2cd2f27
1 /* PR 3967
3 local-alloc screwed up consideration of high+lo_sum and created
4 reg_equivs that it shouldn't have, resulting in lo_sum with
5 uninitialized data, resulting in segv. The test has to remain
6 relatively large, since register spilling is required to twig
7 the bug. */
9 unsigned long *Local1;
10 unsigned long *Local2;
11 unsigned long *Local3;
12 unsigned long *RDbf1;
13 unsigned long *RDbf2;
14 unsigned long *RDbf3;
15 unsigned long *IntVc1;
16 unsigned long *IntVc2;
17 unsigned long *IntCode3;
18 unsigned long *IntCode4;
19 unsigned long *IntCode5;
20 unsigned long *IntCode6;
21 unsigned long *Lom1;
22 unsigned long *Lom2;
23 unsigned long *Lom3;
24 unsigned long *Lom4;
25 unsigned long *Lom5;
26 unsigned long *Lom6;
27 unsigned long *Lom7;
28 unsigned long *Lom8;
29 unsigned long *Lom9;
30 unsigned long *Lom10;
31 unsigned long *RDbf11;
32 unsigned long *RDbf12;
34 typedef struct
36 long a1;
37 unsigned long n1;
38 unsigned long local1;
39 unsigned long local2;
40 unsigned long local3;
41 unsigned long rdbf1;
42 unsigned long rdbf2;
43 unsigned long milli;
44 unsigned long frames1;
45 unsigned long frames2;
46 unsigned long nonShared;
47 long newPrivate;
48 long freeLimit;
49 unsigned long cache1;
50 unsigned long cache2;
51 unsigned long cache3;
52 unsigned long cache4;
53 unsigned long cache5;
54 unsigned long time6;
55 unsigned long frames7;
56 unsigned long page8;
57 unsigned long ot9;
58 unsigned long data10;
59 unsigned long bm11;
60 unsigned long misc12;
62 ShrPcCommonStatSType;
65 typedef struct
67 unsigned long sharedAttached;
68 unsigned long totalAttached;
69 long avgPercentShared;
70 unsigned long numberOfFreeFrames;
71 unsigned long localDirtyPageCount;
72 unsigned long globalDirtyPageCount;
73 long wakeupInterval;
74 unsigned long numActiveProcesses;
75 unsigned long numRecentActiveProcesses;
76 unsigned long gemDirtyPageKinds[10];
77 unsigned long stoneDirtyPageKinds[10];
78 unsigned long gemsInCacheCount;
79 long targetFreeFrameCount;
81 ShrPcMonStatSType;
83 typedef struct
85 unsigned long c1;
86 unsigned long c2;
87 unsigned long c3;
88 unsigned long c4;
89 unsigned long c5;
90 unsigned long c6;
91 unsigned long c7;
92 unsigned long c8;
93 unsigned long c9;
94 unsigned long c10;
95 unsigned long c11;
96 unsigned long c12;
97 unsigned long a1;
98 unsigned long a2;
99 unsigned long a3;
100 unsigned long a4;
101 unsigned long a5;
102 unsigned long a6;
103 unsigned long a7;
104 unsigned long a8;
105 unsigned long a9;
106 unsigned long a10;
107 unsigned long a11;
108 unsigned long a12;
109 unsigned long a13;
110 unsigned long a14;
111 unsigned long a15;
112 unsigned long a16;
113 unsigned long a17;
114 unsigned long a18;
115 unsigned long a19;
116 unsigned long sessionStats[40];
118 ShrPcGemStatSType;
120 union ShrPcStatUnion
122 ShrPcMonStatSType monitor;
123 ShrPcGemStatSType gem;
126 typedef struct
128 int processId;
129 int sessionId;
130 ShrPcCommonStatSType cmn;
131 union ShrPcStatUnion u;
132 } ShrPcStatsSType;
134 typedef struct
136 unsigned long *p1;
137 unsigned long *p2;
138 unsigned long *p3;
139 unsigned long *p4;
140 unsigned long *p5;
141 unsigned long *p6;
142 unsigned long *p7;
143 unsigned long *p8;
144 unsigned long *p9;
145 unsigned long *p10;
146 unsigned long *p11;
148 WorkEntrySType;
150 WorkEntrySType Workspace;
152 static void
153 setStatPointers (ShrPcStatsSType * statsPtr, long sessionId)
155 statsPtr->sessionId = sessionId;
156 statsPtr->cmn.a1 = 0;
157 statsPtr->cmn.n1 = 5;
159 Local1 = &statsPtr->cmn.local1;
160 Local2 = &statsPtr->cmn.local2;
161 Local3 = &statsPtr->cmn.local3;
162 RDbf1 = &statsPtr->cmn.rdbf1;
163 RDbf2 = &statsPtr->cmn.rdbf2;
164 RDbf3 = &statsPtr->cmn.milli;
165 *RDbf3 = 1;
167 IntVc1 = &statsPtr->u.gem.a1;
168 IntVc2 = &statsPtr->u.gem.a2;
169 IntCode3 = &statsPtr->u.gem.a3;
170 IntCode4 = &statsPtr->u.gem.a4;
171 IntCode5 = &statsPtr->u.gem.a5;
172 IntCode6 = &statsPtr->u.gem.a6;
175 WorkEntrySType *workSpPtr;
176 workSpPtr = &Workspace;
177 workSpPtr->p1 = &statsPtr->u.gem.a7;
178 workSpPtr->p2 = &statsPtr->u.gem.a8;
179 workSpPtr->p3 = &statsPtr->u.gem.a9;
180 workSpPtr->p4 = &statsPtr->u.gem.a10;
181 workSpPtr->p5 = &statsPtr->u.gem.a11;
182 workSpPtr->p6 = &statsPtr->u.gem.a12;
183 workSpPtr->p7 = &statsPtr->u.gem.a13;
184 workSpPtr->p8 = &statsPtr->u.gem.a14;
185 workSpPtr->p9 = &statsPtr->u.gem.a15;
186 workSpPtr->p10 = &statsPtr->u.gem.a16;
187 workSpPtr->p11 = &statsPtr->u.gem.a17;
189 Lom1 = &statsPtr->u.gem.c1;
190 Lom2 = &statsPtr->u.gem.c2;
191 Lom3 = &statsPtr->u.gem.c3;
192 Lom4 = &statsPtr->u.gem.c4;
193 Lom5 = &statsPtr->u.gem.c5;
194 Lom6 = &statsPtr->u.gem.c6;
195 Lom7 = &statsPtr->u.gem.c7;
196 Lom8 = &statsPtr->u.gem.c8;
197 Lom9 = &statsPtr->u.gem.c9;
198 Lom10 = &statsPtr->u.gem.c10;
199 RDbf11 = &statsPtr->u.gem.c11;
200 RDbf12 = &statsPtr->u.gem.c12;
203 typedef struct
205 ShrPcStatsSType stats;
206 } ShrPcPteSType;
208 ShrPcPteSType MyPte;
210 static void
211 initPte (void *shrpcPtr, long sessionId)
213 ShrPcPteSType *ptePtr;
215 ptePtr = &MyPte;
216 setStatPointers (&ptePtr->stats, sessionId);
219 void
220 InitCache (int sessionId)
222 initPte (0, sessionId);
225 int
226 main (int argc, char *argv[])
228 InitCache (5);
229 return 0;