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