Home | History | Annotate | Download | only in smali
      1 #
      2 # Copyright (C) 2015 The Android Open Source Project
      3 #
      4 # Licensed under the Apache License, Version 2.0 (the "License");
      5 # you may not use this file except in compliance with the License.
      6 # You may obtain a copy of the License at
      7 #
      8 #     http://www.apache.org/licenses/LICENSE-2.0
      9 #
     10 # Unless required by applicable law or agreed to in writing, software
     11 # distributed under the License is distributed on an "AS IS" BASIS,
     12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13 # See the License for the specific language governing permissions and
     14 # limitations under the License.
     15 
     16 .class public LTest;
     17 
     18 .super Ljava/lang/Object;
     19 
     20 ## CHECK-START: int Test.testCase(int, int, int) builder (after)
     21 ## CHECK:         TryBoundary kind:entry
     22 ## CHECK:         TryBoundary kind:entry
     23 ## CHECK-NOT:     TryBoundary kind:entry
     24 
     25 ## CHECK-START: int Test.testCase(int, int, int) builder (after)
     26 ## CHECK:         TryBoundary kind:exit
     27 ## CHECK:         TryBoundary kind:exit
     28 ## CHECK-NOT:     TryBoundary kind:exit
     29 
     30 .method public static testCase(III)I
     31   .registers 4
     32 
     33   :try_start_1
     34   div-int/2addr p0, p1
     35   return p0
     36   :try_end_1
     37   .catchall {:try_start_1 .. :try_end_1} :catchall
     38 
     39   :catchall
     40   :try_start_2
     41   move-exception v0
     42   # Block would be split here but second part not marked as throwing.
     43   div-int/2addr p0, p1
     44   if-eqz p2, :else
     45 
     46   div-int/2addr p0, p1
     47   :else
     48   div-int/2addr p0, p2
     49   :try_end_2
     50   .catchall {:try_start_2 .. :try_end_2} :catchall2
     51 
     52   :catchall2
     53   return p0
     54 
     55 .end method
     56