Home | History | Annotate | Download | only in try-catch
      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