xref: /aosp_15_r20/dalvik/dx/tests/031-bb-dead-code/blort.j (revision 055d459012065f78d96b68be8421640240ddf631)
1*055d4590SKeyi Gui; Copyright (C) 2007 The Android Open Source Project
2*055d4590SKeyi Gui;
3*055d4590SKeyi Gui; Licensed under the Apache License, Version 2.0 (the "License");
4*055d4590SKeyi Gui; you may not use this file except in compliance with the License.
5*055d4590SKeyi Gui; You may obtain a copy of the License at
6*055d4590SKeyi Gui;
7*055d4590SKeyi Gui;      http://www.apache.org/licenses/LICENSE-2.0
8*055d4590SKeyi Gui;
9*055d4590SKeyi Gui; Unless required by applicable law or agreed to in writing, software
10*055d4590SKeyi Gui; distributed under the License is distributed on an "AS IS" BASIS,
11*055d4590SKeyi Gui; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*055d4590SKeyi Gui; See the License for the specific language governing permissions and
13*055d4590SKeyi Gui; limitations under the License.
14*055d4590SKeyi Gui
15*055d4590SKeyi Gui.class blort
16*055d4590SKeyi Gui.super java/lang/Object
17*055d4590SKeyi Gui
18*055d4590SKeyi Gui.method public <init>()V
19*055d4590SKeyi Gui    .limit locals 1
20*055d4590SKeyi Gui
21*055d4590SKeyi Gui    aload_0
22*055d4590SKeyi Gui    invokespecial java/lang/Object/<init>()V
23*055d4590SKeyi Gui    return
24*055d4590SKeyi Gui.end method
25*055d4590SKeyi Gui
26*055d4590SKeyi Gui; dead code after the last reachable instruction in a method
27*055d4590SKeyi Gui.method public test_deadend1()V
28*055d4590SKeyi Gui    return
29*055d4590SKeyi Gui    aload_0
30*055d4590SKeyi Gui.end method
31*055d4590SKeyi Gui
32*055d4590SKeyi Gui; dead code after the last reachable instruction in a method
33*055d4590SKeyi Gui.method public test_deadend2()V
34*055d4590SKeyi Gui    ireturn
35*055d4590SKeyi Gui    aload_0
36*055d4590SKeyi Gui    aload_0
37*055d4590SKeyi Gui.end method
38*055d4590SKeyi Gui
39*055d4590SKeyi Gui; dead code after the last reachable instruction in a method
40*055d4590SKeyi Gui.method public test_deadend3()V
41*055d4590SKeyi Gui    aconst_null
42*055d4590SKeyi Gui    athrow
43*055d4590SKeyi Gui    sipush 0x1234
44*055d4590SKeyi Gui.end method
45*055d4590SKeyi Gui
46*055d4590SKeyi Gui; make sure an exception handler for a dead range doesn't get enlivened
47*055d4590SKeyi Gui.method public test_dead_exception_handler()V
48*055d4590SKeyi Gui    return
49*055d4590SKeyi Gui    nop
50*055d4590SKeyi Guiblort:
51*055d4590SKeyi Gui    nop
52*055d4590SKeyi Gui    nop
53*055d4590SKeyi Gui    return
54*055d4590SKeyi Guihandler:
55*055d4590SKeyi Gui    nop
56*055d4590SKeyi Gui    return
57*055d4590SKeyi Gui    .catch all from blort to handler using handler
58*055d4590SKeyi Gui.end method
59*055d4590SKeyi Gui
60*055d4590SKeyi Gui; dead code after goto instruction
61*055d4590SKeyi Gui.method public test_dead_goto()V
62*055d4590SKeyi Gui    goto blort
63*055d4590SKeyi Gui    nop
64*055d4590SKeyi Guiblort:
65*055d4590SKeyi Gui    return
66*055d4590SKeyi Gui.end method
67*055d4590SKeyi Gui
68*055d4590SKeyi Gui; dead code after ret instruction
69*055d4590SKeyi Gui.method public test_dead_ret()V
70*055d4590SKeyi Gui    ifeq blort
71*055d4590SKeyi Gui    ret 0
72*055d4590SKeyi Gui    iconst_m1
73*055d4590SKeyi Guiblort:
74*055d4590SKeyi Gui    return
75*055d4590SKeyi Gui.end method
76*055d4590SKeyi Gui
77*055d4590SKeyi Gui; dead code after tableswitch instruction
78*055d4590SKeyi Gui.method public test_dead_tableswitch()V
79*055d4590SKeyi Gui    tableswitch 0x10
80*055d4590SKeyi Gui        blort
81*055d4590SKeyi Gui        default: blort
82*055d4590SKeyi Gui    nop
83*055d4590SKeyi Gui    nop
84*055d4590SKeyi Gui    nop
85*055d4590SKeyi Gui    aload_0
86*055d4590SKeyi Gui    aload_1
87*055d4590SKeyi Gui    aload_2
88*055d4590SKeyi Gui    aload_3
89*055d4590SKeyi Guiblort:
90*055d4590SKeyi Gui    return
91*055d4590SKeyi Gui.end method
92*055d4590SKeyi Gui
93*055d4590SKeyi Gui; dead code after lookupswitch instruction
94*055d4590SKeyi Gui.method public test_dead_lookupswitch()V
95*055d4590SKeyi Gui    lookupswitch
96*055d4590SKeyi Gui        0x10: blort
97*055d4590SKeyi Gui        0x20: blort
98*055d4590SKeyi Gui        default: blort
99*055d4590SKeyi Gui    ldc "WHYA REYO UREA DING THIS ?"
100*055d4590SKeyi Guiblort:
101*055d4590SKeyi Gui    return
102*055d4590SKeyi Gui.end method
103*055d4590SKeyi Gui
104*055d4590SKeyi Gui; dead code after ireturn instruction
105*055d4590SKeyi Gui.method public test_dead_ireturn()V
106*055d4590SKeyi Gui    ifeq blort
107*055d4590SKeyi Gui    ireturn
108*055d4590SKeyi Gui    iconst_1
109*055d4590SKeyi Guiblort:
110*055d4590SKeyi Gui    return
111*055d4590SKeyi Gui.end method
112*055d4590SKeyi Gui
113*055d4590SKeyi Gui; dead code after lreturn instruction
114*055d4590SKeyi Gui.method public test_dead_lreturn()V
115*055d4590SKeyi Gui    ifeq blort
116*055d4590SKeyi Gui    lreturn
117*055d4590SKeyi Gui    iconst_1
118*055d4590SKeyi Guiblort:
119*055d4590SKeyi Gui    return
120*055d4590SKeyi Gui.end method
121*055d4590SKeyi Gui
122*055d4590SKeyi Gui; dead code after freturn instruction
123*055d4590SKeyi Gui.method public test_dead_freturn()V
124*055d4590SKeyi Gui    ifeq blort
125*055d4590SKeyi Gui    freturn
126*055d4590SKeyi Gui    iconst_1
127*055d4590SKeyi Guiblort:
128*055d4590SKeyi Gui    return
129*055d4590SKeyi Gui.end method
130*055d4590SKeyi Gui
131*055d4590SKeyi Gui; dead code after dreturn instruction
132*055d4590SKeyi Gui.method public test_dead_dreturn()V
133*055d4590SKeyi Gui    ifeq blort
134*055d4590SKeyi Gui    dreturn
135*055d4590SKeyi Gui    iconst_1
136*055d4590SKeyi Guiblort:
137*055d4590SKeyi Gui    return
138*055d4590SKeyi Gui.end method
139*055d4590SKeyi Gui
140*055d4590SKeyi Gui; dead code after areturn instruction
141*055d4590SKeyi Gui.method public test_dead_areturn()V
142*055d4590SKeyi Gui    ifeq blort
143*055d4590SKeyi Gui    areturn
144*055d4590SKeyi Gui    iconst_1
145*055d4590SKeyi Guiblort:
146*055d4590SKeyi Gui    return
147*055d4590SKeyi Gui.end method
148*055d4590SKeyi Gui
149*055d4590SKeyi Gui; dead code after return instruction
150*055d4590SKeyi Gui.method public test_dead_return()V
151*055d4590SKeyi Gui    ifeq blort
152*055d4590SKeyi Gui    return
153*055d4590SKeyi Gui    iconst_1
154*055d4590SKeyi Guiblort:
155*055d4590SKeyi Gui    return
156*055d4590SKeyi Gui.end method
157*055d4590SKeyi Gui
158*055d4590SKeyi Gui; dead code after athrow instruction
159*055d4590SKeyi Gui.method public test_dead_athrow()V
160*055d4590SKeyi Gui    ifeq blort
161*055d4590SKeyi Gui    athrow
162*055d4590SKeyi Gui    iconst_1
163*055d4590SKeyi Guiblort:
164*055d4590SKeyi Gui    return
165*055d4590SKeyi Gui.end method
166*055d4590SKeyi Gui
167*055d4590SKeyi Gui; dead code after wide ret instruction
168*055d4590SKeyi Gui.method public test_dead_wideret()V
169*055d4590SKeyi Gui    ifeq blort
170*055d4590SKeyi Gui    ret 0x0100
171*055d4590SKeyi Gui    iconst_1
172*055d4590SKeyi Guiblort:
173*055d4590SKeyi Gui    return
174*055d4590SKeyi Gui.end method
175*055d4590SKeyi Gui
176*055d4590SKeyi Gui; dead code after goto_w instruction
177*055d4590SKeyi Gui.method public test_dead_goto_w()V
178*055d4590SKeyi Gui    goto_w blort
179*055d4590SKeyi Gui    iconst_1
180*055d4590SKeyi Guiblort:
181*055d4590SKeyi Gui    return
182*055d4590SKeyi Gui.end method
183