blob: bcb8215d8ccdcc751128636c1ab553de63361f57 [file] [log] [blame]
// 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.debuginfo;
import java.util.Arrays;
import java.util.Iterator;
public class Regress111337896Test {
public static void regress111337896() {
Iterator it = Arrays.asList(new Object()).iterator();
while (it.hasNext()) { // Loop must be a conditional to hit the issue.
it.next();
try {
noThrow();
doThrow();
noThrow();
} catch (Exception e) {
// Handler targeting the loop header causes segfault on some ART 5.0 x86 devices.
continue;
}
// The normal successor may differ from the exceptional one and still cause the issue.
it.hasNext();
}
}
public static void doThrow() throws Exception {
throw new Exception();
}
public static void noThrow() throws Exception {
// Intentionally empty.
}
public static void main(String[] args) {
regress111337896();
System.out.print("aok");
}
}