blob: 824f0dc8486340b1d7b1e1db4bff7f8dd0e11a73 [file] [log] [blame]
David Brazdilca3c8c32016-09-06 14:04:48 +01001# Copyright (C) 2016 The Android Open Source Project
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15.class public LMain;
16.super LMyThreadSet;
17
18.method public static ArgumentType_ResolvedClass(Ljava/lang/Thread;)V
19 .registers 1
20 return-void
21.end method
22
23.method public static ArgumentType_ResolvedReferenceArray([Ljava/lang/Thread;)V
24 .registers 1
25 return-void
26.end method
27
28.method public static ArgumentType_ResolvedPrimitiveArray([B)V
29 .registers 1
30 return-void
31.end method
32
33.method public static ArgumentType_UnresolvedClass(LUnresolvedClass;)V
34 .registers 1
35 return-void
36.end method
37
38.method public static ArgumentType_UnresolvedSuper(LMySetWithUnresolvedSuper;)V
39 .registers 1
40 return-void
41.end method
42
43.method public static ReturnType_Reference(Ljava/lang/IllegalStateException;)Ljava/lang/Throwable;
44 .registers 1
45 return-object p0
46.end method
47
48.method public static ReturnType_Array([Ljava/lang/IllegalStateException;)[Ljava/lang/Integer;
49 .registers 1
50 return-object p0
51.end method
52
53.method public static InvokeArgumentType(Ljava/text/SimpleDateFormat;Ljava/util/SimpleTimeZone;)V
54 .registers 2
55 invoke-virtual {p0, p1}, Ljava/text/SimpleDateFormat;->setTimeZone(Ljava/util/TimeZone;)V
56 return-void
57.end method
58
59.method public static MergeTypes_RegisterLines(Z)Ljava/lang/Object;
60 .registers 2
61 if-eqz p0, :else
62
63 new-instance v0, LMySocketTimeoutException;
64 invoke-direct {v0}, LMySocketTimeoutException;-><init>()V
65 goto :merge
66
67 :else
68 new-instance v0, Ljava/util/concurrent/TimeoutException;
69 invoke-direct {v0}, Ljava/util/concurrent/TimeoutException;-><init>()V
70 goto :merge
71
72 :merge
73 return-object v0
74.end method
75
76.method public static MergeTypes_IfInstanceOf(Ljava/net/SocketTimeoutException;)V
77 .registers 2
78 instance-of v0, p0, Ljava/util/concurrent/TimeoutException;
79 if-eqz v0, :else
80 return-void
81 :else
82 return-void
83.end method
84
85.method public static MergeTypes_Unresolved(ZZLUnresolvedClassA;)Ljava/lang/Object;
86 .registers 5
87 if-eqz p0, :else1
88
89 move-object v0, p2
90 goto :merge
91
92 :else1
93 if-eqz p1, :else2
94
95 new-instance v0, Ljava/util/concurrent/TimeoutException;
96 invoke-direct {v0}, Ljava/util/concurrent/TimeoutException;-><init>()V
97 goto :merge
98
99 :else2
100 new-instance v0, Ljava/net/SocketTimeoutException;
101 invoke-direct {v0}, Ljava/net/SocketTimeoutException;-><init>()V
102 goto :merge
103
104 :merge
105 return-object v0
106.end method
107
108.method public static ConstClass_Resolved()V
109 .registers 1
110 const-class v0, Ljava/lang/IllegalStateException;
111 return-void
112.end method
113
114.method public static ConstClass_Unresolved()V
115 .registers 1
116 const-class v0, LUnresolvedClass;
117 return-void
118.end method
119
120.method public static CheckCast_Resolved(Ljava/lang/Object;)V
121 .registers 1
122 check-cast p0, Ljava/lang/IllegalStateException;
123 return-void
124.end method
125
126.method public static CheckCast_Unresolved(Ljava/lang/Object;)V
127 .registers 1
128 check-cast p0, LUnresolvedClass;
129 return-void
130.end method
131
132.method public static InstanceOf_Resolved(Ljava/lang/Object;)Z
133 .registers 1
134 instance-of p0, p0, Ljava/lang/IllegalStateException;
135 return p0
136.end method
137
138.method public static InstanceOf_Unresolved(Ljava/lang/Object;)Z
139 .registers 1
140 instance-of p0, p0, LUnresolvedClass;
141 return p0
142.end method
143
144.method public static NewInstance_Resolved()V
145 .registers 1
146 new-instance v0, Ljava/lang/IllegalStateException;
147 return-void
148.end method
149
150.method public static NewInstance_Unresolved()V
151 .registers 1
152 new-instance v0, LUnresolvedClass;
153 return-void
154.end method
155
156.method public static NewArray_Resolved()V
157 .registers 1
158 const/4 v0, 0x1
159 new-array v0, v0, [Ljava/lang/IllegalStateException;
160 return-void
161.end method
162
163.method public static NewArray_Unresolved()V
164 .registers 2
165 const/4 v0, 0x1
166 new-array v0, v0, [LUnresolvedClass;
167 return-void
168.end method
169
170.method public static Throw(Ljava/lang/IllegalStateException;)V
171 .registers 2
172 throw p0
173.end method
174
175.method public static MoveException_Resolved()Ljava/lang/Object;
176 .registers 1
177 :try_start
178 invoke-static {}, Ljava/lang/System;->nanoTime()J
179 :try_end
180 .catch Ljava/net/SocketTimeoutException; {:try_start .. :try_end} :catch_block
181 .catch Ljava/io/InterruptedIOException; {:try_start .. :try_end} :catch_block
182 .catch Ljava/util/zip/ZipException; {:try_start .. :try_end} :catch_block
183 const/4 v0, 0x0
184 return-object v0
185
186 :catch_block
187 move-exception v0
188 return-object v0
189.end method
190
191.method public static MoveException_Unresolved()Ljava/lang/Object;
192 .registers 1
193 :try_start
194 invoke-static {}, Ljava/lang/System;->nanoTime()J
195 :try_end
196 .catch LUnresolvedException; {:try_start .. :try_end} :catch_block
197 const/4 v0, 0x0
198 return-object v0
199
200 :catch_block
201 move-exception v0
202 return-object v0
203.end method
204
205.method public static StaticField_Resolved_DeclaredInReferenced()V
206 .registers 1
207 sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
208 return-void
209.end method
210
211.method public static StaticField_Resolved_DeclaredInSuperclass1()V
212 .registers 1
213 sget v0, Ljava/util/SimpleTimeZone;->LONG:I
214 return-void
215.end method
216
217.method public static StaticField_Resolved_DeclaredInSuperclass2()V
218 .registers 1
219 sget v0, LMySimpleTimeZone;->SHORT:I
220 return-void
221.end method
222
223.method public static StaticField_Resolved_DeclaredInInterface1()V
224 .registers 1
225 # Case 1: DOMResult implements Result
226 sget-object v0, Ljavax/xml/transform/dom/DOMResult;->PI_ENABLE_OUTPUT_ESCAPING:Ljava/lang/String;
227 return-void
228.end method
229
230.method public static StaticField_Resolved_DeclaredInInterface2()V
231 .registers 1
232 # Case 2: MyDOMResult extends DOMResult, DOMResult implements Result
233 sget-object v0, LMyDOMResult;->PI_ENABLE_OUTPUT_ESCAPING:Ljava/lang/String;
234 return-void
235.end method
236
237.method public static StaticField_Resolved_DeclaredInInterface3()V
238 .registers 1
239 # Case 3: MyResult implements Result
240 sget-object v0, LMyResult;->PI_ENABLE_OUTPUT_ESCAPING:Ljava/lang/String;
241 return-void
242.end method
243
244.method public static StaticField_Resolved_DeclaredInInterface4()V
245 .registers 1
246 # Case 4: MyDocument implements Document, Document extends Node
247 sget-short v0, LMyDocument;->ELEMENT_NODE:S
248 return-void
249.end method
250
251.method public static StaticField_Unresolved_ReferrerInBoot()V
252 .registers 1
253 sget v0, Ljava/util/TimeZone;->x:I
254 return-void
255.end method
256
257.method public static StaticField_Unresolved_ReferrerInDex()V
258 .registers 1
259 sget v0, LMyThreadSet;->x:I
260 return-void
261.end method
262
263.method public static InstanceField_Resolved_DeclaredInReferenced(LMySocketTimeoutException;)V
264 .registers 1
265 iget v0, p0, Ljava/io/InterruptedIOException;->bytesTransferred:I
266 return-void
267.end method
268
269.method public static InstanceField_Resolved_DeclaredInSuperclass1(LMySocketTimeoutException;)V
270 .registers 1
271 iget v0, p0, Ljava/net/SocketTimeoutException;->bytesTransferred:I
272 return-void
273.end method
274
275.method public static InstanceField_Resolved_DeclaredInSuperclass2(LMySocketTimeoutException;)V
276 .registers 1
277 iget v0, p0, LMySocketTimeoutException;->bytesTransferred:I
278 return-void
279.end method
280
281.method public static InstanceField_Unresolved_ReferrerInBoot(LMySocketTimeoutException;)V
282 .registers 1
283 iget v0, p0, Ljava/io/InterruptedIOException;->x:I
284 return-void
285.end method
286
287.method public static InstanceField_Unresolved_ReferrerInDex(LMyThreadSet;)V
288 .registers 1
289 iget v0, p0, LMyThreadSet;->x:I
290 return-void
291.end method
292
293.method public static InvokeStatic_Resolved_DeclaredInReferenced()V
294 .registers 1
295 const v0, 0x0
296 invoke-static {v0}, Ljava/net/Socket;->setSocketImplFactory(Ljava/net/SocketImplFactory;)V
297 return-void
298.end method
299
300.method public static InvokeStatic_Resolved_DeclaredInSuperclass1()V
301 .registers 1
302 const v0, 0x0
303 invoke-static {v0}, Ljavax/net/ssl/SSLSocket;->setSocketImplFactory(Ljava/net/SocketImplFactory;)V
304 return-void
305.end method
306
307.method public static InvokeStatic_Resolved_DeclaredInSuperclass2()V
308 .registers 1
309 const v0, 0x0
310 invoke-static {v0}, LMySSLSocket;->setSocketImplFactory(Ljava/net/SocketImplFactory;)V
311 return-void
312.end method
313
314.method public static InvokeStatic_DeclaredInInterface1()V
315 .registers 1
316 invoke-static {}, Ljava/util/Map$Entry;->comparingByKey()Ljava/util/Comparator;
317 return-void
318.end method
319
320.method public static InvokeStatic_DeclaredInInterface2()V
321 .registers 1
322 # AbstractMap$SimpleEntry implements Map$Entry
323 # INVOKE_STATIC does not resolve to methods in superinterfaces. This will
324 # therefore result in an unresolved method.
325 invoke-static {}, Ljava/util/AbstractMap$SimpleEntry;->comparingByKey()Ljava/util/Comparator;
326 return-void
327.end method
328
329.method public static InvokeStatic_Unresolved1()V
330 .registers 1
331 invoke-static {}, Ljavax/net/ssl/SSLSocket;->x()V
332 return-void
333.end method
334
335.method public static InvokeStatic_Unresolved2()V
336 .registers 1
337 invoke-static {}, LMySSLSocket;->x()V
338 return-void
339.end method
340
341.method public static InvokeDirect_Resolved_DeclaredInReferenced()V
342 .registers 1
343 new-instance v0, Ljava/net/Socket;
344 invoke-direct {v0}, Ljava/net/Socket;-><init>()V
345 return-void
346.end method
347
348.method public static InvokeDirect_Resolved_DeclaredInSuperclass1(LMySSLSocket;)V
349 .registers 1
350 invoke-direct {p0}, Ljavax/net/ssl/SSLSocket;->checkOldImpl()V
351 return-void
352.end method
353
354.method public static InvokeDirect_Resolved_DeclaredInSuperclass2(LMySSLSocket;)V
355 .registers 1
356 invoke-direct {p0}, LMySSLSocket;->checkOldImpl()V
357 return-void
358.end method
359
360.method public static InvokeDirect_Unresolved1(LMySSLSocket;)V
361 .registers 1
362 invoke-direct {p0}, Ljavax/net/ssl/SSLSocket;->x()V
363 return-void
364.end method
365
366.method public static InvokeDirect_Unresolved2(LMySSLSocket;)V
367 .registers 1
368 invoke-direct {p0}, LMySSLSocket;->x()V
369 return-void
370.end method
371
372.method public static InvokeVirtual_Resolved_DeclaredInReferenced(LMySocketTimeoutException;)V
373 .registers 1
374 invoke-virtual {p0}, Ljava/lang/Throwable;->getMessage()Ljava/lang/String;
375 return-void
376.end method
377
378.method public static InvokeVirtual_Resolved_DeclaredInSuperclass1(LMySocketTimeoutException;)V
379 .registers 1
380 invoke-virtual {p0}, Ljava/io/InterruptedIOException;->getMessage()Ljava/lang/String;
381 return-void
382.end method
383
384.method public static InvokeVirtual_Resolved_DeclaredInSuperclass2(LMySocketTimeoutException;)V
385 .registers 1
386 invoke-virtual {p0}, LMySocketTimeoutException;->getMessage()Ljava/lang/String;
387 return-void
388.end method
389
390.method public static InvokeVirtual_Resolved_DeclaredInSuperinterface(LMyThreadSet;)V
391 .registers 1
392 invoke-virtual {p0}, LMyThreadSet;->size()I
393 return-void
394.end method
395
396.method public static InvokeVirtual_Unresolved1(LMySocketTimeoutException;)V
397 .registers 1
398 invoke-virtual {p0}, Ljava/io/InterruptedIOException;->x()V
399 return-void
400.end method
401
402.method public static InvokeVirtual_Unresolved2(LMySocketTimeoutException;)V
403 .registers 1
404 invoke-virtual {p0}, LMySocketTimeoutException;->x()V
405 return-void
406.end method
407
David Brazdilca3c8c32016-09-06 14:04:48 +0100408.method public static InvokeInterface_Resolved_DeclaredInReferenced(LMyThread;)V
409 .registers 1
410 invoke-interface {p0}, Ljava/lang/Runnable;->run()V
411 return-void
412.end method
413
414.method public static InvokeInterface_Resolved_DeclaredInSuperclass(LMyThread;)V
415 .registers 1
416 # Method join() is declared in the superclass of MyThread. As such, it should
Vladimir Markoba118822017-06-12 15:41:56 +0100417 # be called with invoke-virtual. However, the lookup type does not depend
418 # on the invoke type, so it shall be resolved here anyway.
419 # TODO: Maybe we should not record dependency if the invoke type does not match the lookup type.
David Brazdilca3c8c32016-09-06 14:04:48 +0100420 invoke-interface {p0}, LMyThread;->join()V
421 return-void
422.end method
423
424.method public static InvokeInterface_Resolved_DeclaredInSuperinterface1(LMyThreadSet;)V
425 .registers 1
426 # Verification will fail because the referring class is not an interface.
Vladimir Markoba118822017-06-12 15:41:56 +0100427 # However, the lookup type does not depend on the invoke type, so it shall be resolved here anyway.
428 # TODO: Maybe we should not record dependency if the invoke type does not match the lookup type.
David Brazdilca3c8c32016-09-06 14:04:48 +0100429 invoke-interface {p0}, LMyThreadSet;->run()V
430 return-void
431.end method
432
433.method public static InvokeInterface_Resolved_DeclaredInSuperinterface2(LMyThreadSet;)V
434 .registers 1
435 # Verification will fail because the referring class is not an interface.
436 invoke-interface {p0}, LMyThreadSet;->isEmpty()Z
437 return-void
438.end method
439
440.method public static InvokeInterface_Unresolved1(LMyThread;)V
441 .registers 1
442 invoke-interface {p0}, Ljava/lang/Runnable;->x()V
443 return-void
444.end method
445
446.method public static InvokeInterface_Unresolved2(LMyThread;)V
447 .registers 1
448 invoke-interface {p0}, LMyThreadSet;->x()V
449 return-void
450.end method
451
452.method public static InvokeSuper_ThisAssignable(Ljava/lang/Thread;)V
453 .registers 1
454 invoke-super {p0}, Ljava/lang/Runnable;->run()V
455 return-void
456.end method
457
458.method public static InvokeSuper_ThisNotAssignable(Ljava/lang/Integer;)V
459 .registers 1
460 invoke-super {p0}, Ljava/lang/Integer;->intValue()I
461 return-void
462.end method