diff options
Diffstat (limited to 'test/083-compiler-regressions/src/Main.java')
-rw-r--r-- | test/083-compiler-regressions/src/Main.java | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/test/083-compiler-regressions/src/Main.java b/test/083-compiler-regressions/src/Main.java index 18bc674b0a..748b0dee5c 100644 --- a/test/083-compiler-regressions/src/Main.java +++ b/test/083-compiler-regressions/src/Main.java @@ -36,6 +36,7 @@ public class Main { b5884080Test(); b13679511Test(); b16177324TestWrapper(); + b16230771TestWrapper(); largeFrameTest(); largeFrameTestFloat(); mulBy1Test(); @@ -927,6 +928,28 @@ public class Main { System.out.println("Unexpectedly retrieved all values: " + v1 + ", " + v2 + ", " + v3); } + static void b16230771TestWrapper() { + try { + b16230771Test(); + } catch (NullPointerException expected) { + System.out.println("b16230771TestWrapper caught NPE as expected."); + } + } + + static void b16230771Test() { + Integer[] array = { null }; + for (Integer i : array) { + try { + int value = i; // Null check on unboxing should fail. + System.out.println("Unexpectedly retrieved value " + value); + } catch (NullPointerException e) { + int value = i; // Null check on unboxing should fail. + // The bug was a missing null check, so this would actually cause SIGSEGV. + System.out.println("Unexpectedly retrieved value " + value + " in NPE catch handler"); + } + } + } + static double TooManyArgs( long l00, long l01, |