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 
17 
18 public class Main {
main(String[] args)19   public static void main(String[] args) {
20     try {
21       doTopCall();
22     } catch (Error e) {
23       e.printStackTrace(System.out);
24     }
25   }
26 
27   // We check that some inlining happened by checking the
28   // method index of the called method.
29 
30   /// CHECK-START: void Main.doTopCall() inliner (before)
31   /// CHECK:     InvokeStaticOrDirect dex_file_index:2
32 
33   /// CHECK-START: void Main.doTopCall() inliner (after)
34   /// CHECK:     InvokeStaticOrDirect dex_file_index:4
doTopCall()35   public static void doTopCall() {
36     inline1();
37   }
38 
inline1()39   public static void inline1() {
40     inline2();
41   }
42 
inline2()43   public static void inline2() {
44     inline3();
45   }
46 
inline3()47   public static void inline3() {
48     throw new Error();
49   }
50 }
51