|  | // Copyright (c) 2018, the R8 project authors. Please see the AUTHORS file | 
|  | // for details. All rights reserved. Use of this source code is governed by a | 
|  | // BSD-style license that can be found in the LICENSE file. | 
|  | package com.android.tools.r8.ir; | 
|  |  | 
|  | public class PhiDefinitionsTest { | 
|  |  | 
|  | public static Class[] CLASSES = { | 
|  | PhiDefinitionsTest.class, | 
|  | MethodWriter.class, | 
|  | }; | 
|  |  | 
|  | static class MethodWriter { | 
|  | public int exceptionCount; | 
|  | } | 
|  |  | 
|  | public static void main(String[] args) { | 
|  | if (args.length >= 42) { | 
|  | System.out.println(new PhiDefinitionsTest().readMethod(args.length)); | 
|  | } | 
|  | } | 
|  |  | 
|  | private int readMethod(int u) { | 
|  | u += 6; | 
|  | int exception = 0; | 
|  | for (int i = count(u); i > 0; --i) { | 
|  | exception = count(u); | 
|  | for (int j = count(); j > 0; --j) { | 
|  | read(exception); | 
|  | exception += 2; | 
|  | } | 
|  | u += 6 + count(u + 4); | 
|  | } | 
|  | u += 2; | 
|  | MethodWriter mv = visitMethod(); | 
|  | if (cond() && cond() && cond()) { | 
|  | MethodWriter mw = mv; | 
|  | boolean sameExceptions = false; | 
|  | if (count() == mw.exceptionCount) { | 
|  | sameExceptions = true; | 
|  | for (int j = count(); j >= 0; --j) { | 
|  | exception -= 2; | 
|  | } | 
|  | } | 
|  | if (cond()) { | 
|  | return u; | 
|  | } | 
|  | } | 
|  | return u; | 
|  | } | 
|  |  | 
|  | private native MethodWriter visitMethod(); | 
|  |  | 
|  | private native boolean cond(); | 
|  |  | 
|  | private native String read(int i); | 
|  |  | 
|  | private native int count(int arg); | 
|  |  | 
|  | private native int count(); | 
|  | } |