1
2
3 package joeq.Compiler.Analysis.IPA;
4
5 import jwutil.collections.IndexMap;
6 import jwutil.collections.IndexedMap;
7 import jwutil.graphs.PathNumbering;
8
9 public class PAProxy {
10 public PAProxy(PA that) {
11 this.VerifyAssertions = that.VerifyAssertions;
12 this.WRITE_PARESULTS_BATCHFILE = that.WRITE_PARESULTS_BATCHFILE;
13 this.TRACE = that.TRACE;
14 this.TRACE_SOLVER = that.TRACE_SOLVER;
15 this.TRACE_BIND = that.TRACE_BIND;
16 this.TRACE_RELATIONS = that.TRACE_RELATIONS;
17 this.TRACE_OBJECT = that.TRACE_OBJECT;
18 this.TRACE_CONTEXT = that.TRACE_CONTEXT;
19 this.out = that.out;
20 this.USE_JOEQ_CLASSLIBS = that.USE_JOEQ_CLASSLIBS;
21 this.INCREMENTAL1 = that.INCREMENTAL1;
22 this.INCREMENTAL2 = that.INCREMENTAL2;
23 this.INCREMENTAL3 = that.INCREMENTAL3;
24 this.ADD_CLINIT = that.ADD_CLINIT;
25 this.ADD_THREADS = that.ADD_THREADS;
26 this.ADD_FINALIZERS = that.ADD_FINALIZERS;
27 this.IGNORE_EXCEPTIONS = that.IGNORE_EXCEPTIONS;
28 this.FILTER_VP = that.FILTER_VP;
29 this.FILTER_HP = that.FILTER_HP;
30 this.CARTESIAN_PRODUCT = that.CARTESIAN_PRODUCT;
31 this.THREAD_SENSITIVE = that.THREAD_SENSITIVE;
32 this.OBJECT_SENSITIVE = that.OBJECT_SENSITIVE;
33 this.CONTEXT_SENSITIVE = that.CONTEXT_SENSITIVE;
34 this.CS_CALLGRAPH = that.CS_CALLGRAPH;
35 this.DISCOVER_CALL_GRAPH = that.DISCOVER_CALL_GRAPH;
36 this.DUMP_DOTGRAPH = that.DUMP_DOTGRAPH;
37 this.FILTER_NULL = that.FILTER_NULL;
38 this.LONG_LOCATIONS = that.LONG_LOCATIONS;
39 this.INCLUDE_UNKNOWN_TYPES = that.INCLUDE_UNKNOWN_TYPES;
40 this.INCLUDE_ALL_UNKNOWN_TYPES = that.INCLUDE_ALL_UNKNOWN_TYPES;
41 this.MAX_PARAMS = that.MAX_PARAMS;
42 this.bddnodes = that.bddnodes;
43 this.bddcache = that.bddcache;
44 this.resultsFileName = that.resultsFileName;
45 this.callgraphFileName = that.callgraphFileName;
46 this.initialCallgraphFileName = that.initialCallgraphFileName;
47 this.USE_VCONTEXT = that.USE_VCONTEXT;
48 this.USE_HCONTEXT = that.USE_HCONTEXT;
49 this.newMethodSummaries = that.newMethodSummaries;
50 this.rootMethods = that.rootMethods;
51 this.cg = that.cg;
52 this.ocg = that.ocg;
53 this.bdd = that.bdd;
54 this.V1 = that.V1;
55 this.V2 = that.V2;
56 this.I = that.I;
57 this.H1 = that.H1;
58 this.H2 = that.H2;
59 this.Z = that.Z;
60 this.F = that.F;
61 this.T1 = that.T1;
62 this.T2 = that.T2;
63 this.N = that.N;
64 this.M = that.M;
65 this.V1c = that.V1c;
66 this.V2c = that.V2c;
67 this.H1c = that.H1c;
68 this.H2c = that.H2c;
69 this.V_BITS = that.V_BITS;
70 this.I_BITS = that.I_BITS;
71 this.H_BITS = that.H_BITS;
72 this.Z_BITS = that.Z_BITS;
73 this.F_BITS = that.F_BITS;
74 this.T_BITS = that.T_BITS;
75 this.N_BITS = that.N_BITS;
76 this.M_BITS = that.M_BITS;
77 this.VC_BITS = that.VC_BITS;
78 this.HC_BITS = that.HC_BITS;
79 this.MAX_VC_BITS = that.MAX_VC_BITS;
80 this.MAX_HC_BITS = that.MAX_HC_BITS;
81 this.Vmap = that.Vmap;
82 this.Imap = that.Imap;
83 this.Hmap = that.Hmap;
84 this.Fmap = that.Fmap;
85 this.Tmap = that.Tmap;
86 this.Nmap = that.Nmap;
87 this.Mmap = that.Mmap;
88 this.vCnumbering = that.vCnumbering;
89 this.hCnumbering = that.hCnumbering;
90 this.oCnumbering = that.oCnumbering;
91 this.A = that.A;
92 this.vP = that.vP;
93 this.S = that.S;
94 this.L = that.L;
95 this.vT = that.vT;
96 this.hT = that.hT;
97 this.aT = that.aT;
98 this.cha = that.cha;
99 this.actual = that.actual;
100 this.formal = that.formal;
101 this.Iret = that.Iret;
102 this.Mret = that.Mret;
103 this.Ithr = that.Ithr;
104 this.Mthr = that.Mthr;
105 this.mI = that.mI;
106 this.mV = that.mV;
107 this.sync = that.sync;
108 this.fT = that.fT;
109 this.fC = that.fC;
110 this.hP = that.hP;
111 this.IE = that.IE;
112 this.IEcs = that.IEcs;
113 this.vPfilter = that.vPfilter;
114 this.hPfilter = that.hPfilter;
115 this.NNfilter = that.NNfilter;
116 this.IEfilter = that.IEfilter;
117 this.visited = that.visited;
118 this.staticCalls = that.staticCalls;
119 this.reverseLocal = that.reverseLocal;
120 this.varorder = that.varorder;
121 this.V1toV2 = that.V1toV2;
122 this.V2toV1 = that.V2toV1;
123 this.H1toH2 = that.H1toH2;
124 this.H2toH1 = that.H2toH1;
125 this.V1H1toV2H2 = that.V1H1toV2H2;
126 this.V2H2toV1H1 = that.V2H2toV1H1;
127 this.V1ctoV2c = that.V1ctoV2c;
128 this.V1cV2ctoV2cV1c = that.V1cV2ctoV2cV1c;
129 this.V1cH1ctoV2cV1c = that.V1cH1ctoV2cV1c;
130 this.T2toT1 = that.T2toT1;
131 this.T1toT2 = that.T1toT2;
132 this.H1toV1c = that.H1toV1c;
133 this.V1ctoH1 = that.V1ctoH1;
134 this.V1csets = that.V1csets;
135 this.V1cH1equals = that.V1cH1equals;
136 this.V1set = that.V1set;
137 this.V2set = that.V2set;
138 this.H1set = that.H1set;
139 this.H2set = that.H2set;
140 this.T1set = that.T1set;
141 this.T2set = that.T2set;
142 this.Fset = that.Fset;
143 this.Mset = that.Mset;
144 this.Nset = that.Nset;
145 this.Iset = that.Iset;
146 this.Zset = that.Zset;
147 this.V1V2set = that.V1V2set;
148 this.V1Fset = that.V1Fset;
149 this.V2Fset = that.V2Fset;
150 this.V1FV2set = that.V1FV2set;
151 this.V1H1set = that.V1H1set;
152 this.H1Fset = that.H1Fset;
153 this.H2Fset = that.H2Fset;
154 this.H1H2set = that.H1H2set;
155 this.H1FH2set = that.H1FH2set;
156 this.IMset = that.IMset;
157 this.INset = that.INset;
158 this.INH1set = that.INH1set;
159 this.INT2set = that.INT2set;
160 this.T2Nset = that.T2Nset;
161 this.MZset = that.MZset;
162 this.V1cset = that.V1cset;
163 this.V2cset = that.V2cset;
164 this.H1cset = that.H1cset;
165 this.H2cset = that.H2cset;
166 this.V1cV2cset = that.V1cV2cset;
167 this.V1cH1cset = that.V1cH1cset;
168 this.H1cH2cset = that.H1cH2cset;
169 this.V1cdomain = that.V1cdomain;
170 this.V2cdomain = that.V2cdomain;
171 this.H1cdomain = that.H1cdomain;
172 this.H2cdomain = that.H2cdomain;
173 this.rangeMap = that.rangeMap;
174 this.object_class = that.object_class;
175 this.javaLangObject_clone = that.javaLangObject_clone;
176 this.cloneable_class = that.cloneable_class;
177 this.throwable_class = that.throwable_class;
178 this.javaLangObject_fakeclone = that.javaLangObject_fakeclone;
179 this.last_V = that.last_V;
180 this.last_H = that.last_H;
181 this.last_T = that.last_T;
182 this.last_N = that.last_N;
183 this.last_F = that.last_F;
184 this.finalizer_method = that.finalizer_method;
185 this.main_method = that.main_method;
186 this.run_method = that.run_method;
187 this.old1_A = that.old1_A;
188 this.old1_S = that.old1_S;
189 this.old1_L = that.old1_L;
190 this.old1_vP = that.old1_vP;
191 this.old1_hP = that.old1_hP;
192 this.old3_t3 = that.old3_t3;
193 this.old3_vP = that.old3_vP;
194 this.old3_t4 = that.old3_t4;
195 this.old3_hT = that.old3_hT;
196 this.old3_t6 = that.old3_t6;
197 this.old3_t9 = that.old3_t9;
198 this.old2_myIE = that.old2_myIE;
199 this.old2_visited = that.old2_visited;
200 this.TS = that.TS;
201 this.thread_runs = that.thread_runs;
202 this.varPathSelector = that.varPathSelector;
203 this.THREADS_ONLY = that.THREADS_ONLY;
204 this.heapPathSelector = that.heapPathSelector;
205 this.polyClasses = that.polyClasses;
206 this.MATCH_FACTORY = that.MATCH_FACTORY;
207 this.objectPathSelector = that.objectPathSelector;
208 this.V1H1correspondence = that.V1H1correspondence;
209 }
210 public static boolean VerifyAssertions;
211 public static boolean WRITE_PARESULTS_BATCHFILE;
212 public boolean TRACE;
213 public boolean TRACE_SOLVER;
214 public boolean TRACE_BIND;
215 public boolean TRACE_RELATIONS;
216 public boolean TRACE_OBJECT;
217 public boolean TRACE_CONTEXT;
218 public java.io.PrintStream out;
219 public static boolean USE_JOEQ_CLASSLIBS;
220 public boolean INCREMENTAL1;
221 public boolean INCREMENTAL2;
222 public boolean INCREMENTAL3;
223 public boolean ADD_CLINIT;
224 public boolean ADD_THREADS;
225 public boolean ADD_FINALIZERS;
226 public boolean IGNORE_EXCEPTIONS;
227 public boolean FILTER_VP;
228 public boolean FILTER_HP;
229 public boolean CARTESIAN_PRODUCT;
230 public boolean THREAD_SENSITIVE;
231 public boolean OBJECT_SENSITIVE;
232 public boolean CONTEXT_SENSITIVE;
233 public boolean CS_CALLGRAPH;
234 public boolean DISCOVER_CALL_GRAPH;
235 public boolean DUMP_DOTGRAPH;
236 public boolean FILTER_NULL;
237 public boolean LONG_LOCATIONS;
238 public boolean INCLUDE_UNKNOWN_TYPES;
239 public boolean INCLUDE_ALL_UNKNOWN_TYPES;
240 public int MAX_PARAMS;
241 public int bddnodes;
242 public int bddcache;
243 public static java.lang.String resultsFileName;
244 public static java.lang.String callgraphFileName;
245 public static java.lang.String initialCallgraphFileName;
246 public boolean USE_VCONTEXT;
247 public boolean USE_HCONTEXT;
248 public java.util.Map newMethodSummaries;
249 public java.util.Set rootMethods;
250 public joeq.Compiler.Quad.CallGraph cg;
251 public joeq.Compiler.Analysis.IPA.ObjectCreationGraph ocg;
252 public net.sf.javabdd.BDDFactory bdd;
253 public net.sf.javabdd.BDDDomain V1;
254 public net.sf.javabdd.BDDDomain V2;
255 public net.sf.javabdd.BDDDomain I;
256 public net.sf.javabdd.BDDDomain H1;
257 public net.sf.javabdd.BDDDomain H2;
258 public net.sf.javabdd.BDDDomain Z;
259 public net.sf.javabdd.BDDDomain F;
260 public net.sf.javabdd.BDDDomain T1;
261 public net.sf.javabdd.BDDDomain T2;
262 public net.sf.javabdd.BDDDomain N;
263 public net.sf.javabdd.BDDDomain M;
264 public net.sf.javabdd.BDDDomain[] V1c;
265 public net.sf.javabdd.BDDDomain[] V2c;
266 public net.sf.javabdd.BDDDomain[] H1c;
267 public net.sf.javabdd.BDDDomain[] H2c;
268 public int V_BITS;
269 public int I_BITS;
270 public int H_BITS;
271 public int Z_BITS;
272 public int F_BITS;
273 public int T_BITS;
274 public int N_BITS;
275 public int M_BITS;
276 public int VC_BITS;
277 public int HC_BITS;
278 public int MAX_VC_BITS;
279 public int MAX_HC_BITS;
280 public IndexMap Vmap;
281 public IndexMap Imap;
282 public IndexedMap Hmap;
283 public IndexMap Fmap;
284 public IndexMap Tmap;
285 public IndexMap Nmap;
286 public IndexMap Mmap;
287 public PathNumbering vCnumbering;
288 public PathNumbering hCnumbering;
289 public PathNumbering oCnumbering;
290 public net.sf.javabdd.BDD A;
291 public net.sf.javabdd.BDD vP;
292 public net.sf.javabdd.BDD S;
293 public net.sf.javabdd.BDD L;
294 public net.sf.javabdd.BDD vT;
295 public net.sf.javabdd.BDD hT;
296 public net.sf.javabdd.BDD aT;
297 public net.sf.javabdd.BDD cha;
298 public net.sf.javabdd.BDD actual;
299 public net.sf.javabdd.BDD formal;
300 public net.sf.javabdd.BDD Iret;
301 public net.sf.javabdd.BDD Mret;
302 public net.sf.javabdd.BDD Ithr;
303 public net.sf.javabdd.BDD Mthr;
304 public net.sf.javabdd.BDD mI;
305 public net.sf.javabdd.BDD mV;
306 public net.sf.javabdd.BDD sync;
307 public net.sf.javabdd.BDD fT;
308 public net.sf.javabdd.BDD fC;
309 public net.sf.javabdd.BDD hP;
310 public net.sf.javabdd.BDD IE;
311 public net.sf.javabdd.BDD IEcs;
312 public net.sf.javabdd.BDD vPfilter;
313 public net.sf.javabdd.BDD hPfilter;
314 public net.sf.javabdd.BDD NNfilter;
315 public net.sf.javabdd.BDD IEfilter;
316 public net.sf.javabdd.BDD visited;
317 public net.sf.javabdd.BDD staticCalls;
318 public boolean reverseLocal;
319 public java.lang.String varorder;
320 public net.sf.javabdd.BDDPairing V1toV2;
321 public net.sf.javabdd.BDDPairing V2toV1;
322 public net.sf.javabdd.BDDPairing H1toH2;
323 public net.sf.javabdd.BDDPairing H2toH1;
324 public net.sf.javabdd.BDDPairing V1H1toV2H2;
325 public net.sf.javabdd.BDDPairing V2H2toV1H1;
326 public net.sf.javabdd.BDDPairing V1ctoV2c;
327 public net.sf.javabdd.BDDPairing V1cV2ctoV2cV1c;
328 public net.sf.javabdd.BDDPairing V1cH1ctoV2cV1c;
329 public net.sf.javabdd.BDDPairing T2toT1;
330 public net.sf.javabdd.BDDPairing T1toT2;
331 public net.sf.javabdd.BDDPairing[] H1toV1c;
332 public net.sf.javabdd.BDDPairing[] V1ctoH1;
333 public net.sf.javabdd.BDDVarSet[] V1csets;
334 public net.sf.javabdd.BDD[] V1cH1equals;
335 public net.sf.javabdd.BDDVarSet V1set;
336 public net.sf.javabdd.BDDVarSet V2set;
337 public net.sf.javabdd.BDDVarSet H1set;
338 public net.sf.javabdd.BDDVarSet H2set;
339 public net.sf.javabdd.BDDVarSet T1set;
340 public net.sf.javabdd.BDDVarSet T2set;
341 public net.sf.javabdd.BDDVarSet Fset;
342 public net.sf.javabdd.BDDVarSet Mset;
343 public net.sf.javabdd.BDDVarSet Nset;
344 public net.sf.javabdd.BDDVarSet Iset;
345 public net.sf.javabdd.BDDVarSet Zset;
346 public net.sf.javabdd.BDDVarSet V1V2set;
347 public net.sf.javabdd.BDDVarSet V1Fset;
348 public net.sf.javabdd.BDDVarSet V2Fset;
349 public net.sf.javabdd.BDDVarSet V1FV2set;
350 public net.sf.javabdd.BDDVarSet V1H1set;
351 public net.sf.javabdd.BDDVarSet H1Fset;
352 public net.sf.javabdd.BDDVarSet H2Fset;
353 public net.sf.javabdd.BDDVarSet H1H2set;
354 public net.sf.javabdd.BDDVarSet H1FH2set;
355 public net.sf.javabdd.BDDVarSet IMset;
356 public net.sf.javabdd.BDDVarSet INset;
357 public net.sf.javabdd.BDDVarSet INH1set;
358 public net.sf.javabdd.BDDVarSet INT2set;
359 public net.sf.javabdd.BDDVarSet T2Nset;
360 public net.sf.javabdd.BDDVarSet MZset;
361 public net.sf.javabdd.BDDVarSet V1cset;
362 public net.sf.javabdd.BDDVarSet V2cset;
363 public net.sf.javabdd.BDDVarSet H1cset;
364 public net.sf.javabdd.BDDVarSet H2cset;
365 public net.sf.javabdd.BDDVarSet V1cV2cset;
366 public net.sf.javabdd.BDDVarSet V1cH1cset;
367 public net.sf.javabdd.BDDVarSet H1cH2cset;
368 public net.sf.javabdd.BDD V1cdomain;
369 public net.sf.javabdd.BDD V2cdomain;
370 public net.sf.javabdd.BDD H1cdomain;
371 public net.sf.javabdd.BDD H2cdomain;
372 public java.util.Map rangeMap;
373 public joeq.Class.jq_Class object_class;
374 public joeq.Class.jq_Method javaLangObject_clone;
375 public joeq.Class.jq_Class cloneable_class;
376 public joeq.Class.jq_Class throwable_class;
377 public joeq.Class.jq_Method javaLangObject_fakeclone;
378 public int last_V;
379 public int last_H;
380 public int last_T;
381 public int last_N;
382 public int last_F;
383 public joeq.Class.jq_NameAndDesc finalizer_method;
384 public static joeq.Class.jq_NameAndDesc main_method;
385 public static joeq.Class.jq_NameAndDesc run_method;
386 public net.sf.javabdd.BDD old1_A;
387 public net.sf.javabdd.BDD old1_S;
388 public net.sf.javabdd.BDD old1_L;
389 public net.sf.javabdd.BDD old1_vP;
390 public net.sf.javabdd.BDD old1_hP;
391 public net.sf.javabdd.BDD old3_t3;
392 public net.sf.javabdd.BDD old3_vP;
393 public net.sf.javabdd.BDD old3_t4;
394 public net.sf.javabdd.BDD old3_hT;
395 public net.sf.javabdd.BDD old3_t6;
396 public net.sf.javabdd.BDD[] old3_t9;
397 public net.sf.javabdd.BDD old2_myIE;
398 public net.sf.javabdd.BDD old2_visited;
399 public joeq.Compiler.Analysis.IPA.PA.ToString TS;
400 public static java.util.Map thread_runs;
401 public joeq.Compiler.Analysis.IPA.PA.VarPathSelector varPathSelector;
402 public static boolean THREADS_ONLY;
403 public joeq.Compiler.Analysis.IPA.PA.HeapPathSelector heapPathSelector;
404 public static java.util.Set polyClasses;
405 public static boolean MATCH_FACTORY;
406 public joeq.Compiler.Analysis.IPA.PA.ObjectPathSelector objectPathSelector;
407 public java.util.Map V1H1correspondence;
408 }