summaryrefslogtreecommitdiffstats
path: root/test/800-smali/smali/b_22331663.smali
blob: 057fc7f2a5c722b34716ef55068c6074daa7dc44 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
.class public LB22331663;
.super Ljava/lang/Object;


.method public static run(Z)V
.registers 6
       # Make v4 defined, just use null.
       const v4, 0

       if-eqz v5, :Label2

:Label1
       # Construct a java.lang.Object completely, and throw a new exception.
       new-instance v4, Ljava/lang/Object;
       invoke-direct {v4}, Ljava/lang/Object;-><init>()V

       new-instance v3, Ljava/lang/RuntimeException;
       invoke-direct {v3}, Ljava/lang/RuntimeException;-><init>()V
       throw v3

:Label2
       # Allocate a java.lang.Object (do not initialize), and throw a new exception.
       new-instance v4, Ljava/lang/Object;

       new-instance v3, Ljava/lang/RuntimeException;
       invoke-direct {v3}, Ljava/lang/RuntimeException;-><init>()V
       throw v3

:Label3
       # Catch handler. Here we had to merge the uninitialized with the initialized reference,
       # which creates a conflict. Copy the conflict, and then return. This should not make the
       # verifier fail the method.
       move-object v0, v4

       return-void

.catchall {:Label1 .. :Label3} :Label3
.end method