blob: 8abac60229713b6d07a1b67b0de7943ab20c2333 [file] [log] [blame]
// Copyright (c) 2017, 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.debuginfo;
public class ExceptionLocalTest {
public void foo(int x) {
Integer obj = new Integer(x + x);
long l = obj.longValue();
try {
l = obj.longValue();
x = (int) l / x;
invokerange(l, l, l, l, l, l);
sout(x);
} catch (ArithmeticException e) {
sout(l);
} catch (RuntimeException e) {
sout(l); // We should not attempt to read the previous definition of 'e' here or below.
} catch (Throwable e) {
sout(l);
}
}
private void sout(long l) {
System.out.print(l);
}
private void invokerange(long a, long b, long c, long d, long e, long f) {
if (a != d) {
throw new RuntimeException("unexpected");
}
}
public static void main(String[] args) {
new ExceptionLocalTest().foo(21);
}
}