1 # Copyright (c) 2017, the R8 project authors. Please see the AUTHORS file 2 # for details. All rights reserved. Use of this source code is governed by a 3 # BSD-style license that can be found in the LICENSE file. 4 5 .class LTest; 6 .super Ljava/lang/Object; 7 8 # Fall through to catch block. 9 .method public test1()V 10 .registers 1 11 :try_start 12 monitor-enter p0 13 monitor-exit p0 14 :try_end 15 return-void 16 .catchall {:try_start .. :try_end} :try_end 17 .end method 18 19 .method public static test2()I 20 .locals 1 21 const v0, 0 22 :try_start 23 const v0, 1 24 goto :return 25 :try_end 26 .catch Ljava/lang/Exception; {:try_start .. :try_end} :return 27 .catch Ljava/lang/Throwable; {:try_start .. :try_end} :error 28 :error 29 move-exception v0 30 const v0, 2 31 :return 32 return v0 33 .end method 34 35 # Dead catch block. 36 .method public test3()I 37 .locals 1 38 const v0, 0 39 return v0 40 :start 41 nop 42 :end 43 .catchall {:start .. :end} :catch 44 nop 45 :catch 46 nop 47 .end method 48 49 .method public static main([Ljava/lang/String;)V 50 .locals 0 51 return-void 52 .end method 53 54 .method public test4(I)V 55 .locals 1 56 const/4 v0, 0 57 if-nez p0, :not_zero 58 const/4 v0, 1 59 goto :try_end 60 :not_zero 61 const/4 v0, 2 62 :try_start 63 invoke-static {}, Ltest/X;->f()V 64 const/4 v0, 3 65 :try_end 66 return-void 67 .catchall {:try_start .. :try_end} :try_end 68 .end method 69 70 .method public f()V 71 .locals 0 72 return-void 73 .end method 74