Wed, 09 May 2012 13:07:42 -0700
Added tag jdk8-b37 for changeset bfcf92bfefb8
never@1738 | 1 | /* |
trims@1907 | 2 | * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. |
never@1738 | 3 | * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
never@1738 | 4 | * |
never@1738 | 5 | * This code is free software; you can redistribute it and/or modify it |
never@1738 | 6 | * under the terms of the GNU General Public License version 2 only, as |
never@1738 | 7 | * published by the Free Software Foundation. |
never@1738 | 8 | * |
never@1738 | 9 | * This code is distributed in the hope that it will be useful, but WITHOUT |
never@1738 | 10 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
never@1738 | 11 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
never@1738 | 12 | * version 2 for more details (a copy is included in the LICENSE file that |
never@1738 | 13 | * accompanied this code). |
never@1738 | 14 | * |
never@1738 | 15 | * You should have received a copy of the GNU General Public License version |
never@1738 | 16 | * 2 along with this work; if not, write to the Free Software Foundation, |
never@1738 | 17 | * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
never@1738 | 18 | * |
trims@1907 | 19 | * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
trims@1907 | 20 | * or visit www.oracle.com if you need additional information or have any |
trims@1907 | 21 | * questions. |
never@1738 | 22 | * |
never@1738 | 23 | */ |
never@1738 | 24 | |
never@1738 | 25 | /** |
never@1738 | 26 | * @test |
never@1738 | 27 | * @bug 6930043 |
never@1738 | 28 | * @summary C2: SIGSEGV in javasoft.sqe.tests.lang.arr017.arr01702.arr01702.loop_forw(II)I |
never@1738 | 29 | * |
never@1738 | 30 | * @run main Test6930043 |
never@1738 | 31 | */ |
never@1738 | 32 | |
never@1738 | 33 | import java.io.PrintStream; |
never@1738 | 34 | |
never@1738 | 35 | public class Test6930043 { |
never@1738 | 36 | int[] a; |
never@1738 | 37 | int idx; |
never@1738 | 38 | |
never@1738 | 39 | public int loop_back(int i, int i_0_) { |
never@1738 | 40 | int i_1_ = 0; |
never@1738 | 41 | int[] is = a; |
never@1738 | 42 | if (is == null) return 0; |
never@1738 | 43 | for (int i_2_ = i; i_2_ >= i_0_; i_2_--) |
never@1738 | 44 | i_1_ += is[idx = i_2_]; |
never@1738 | 45 | return i_1_; |
never@1738 | 46 | } |
never@1738 | 47 | |
never@1738 | 48 | public int loop_forw(int start, int end) { |
never@1738 | 49 | int result = 0; |
never@1738 | 50 | int[] is = a; |
never@1738 | 51 | if (is == null) return 0; |
never@1738 | 52 | for (int index = start; index < end; index++) |
never@1738 | 53 | result += is[index]; |
never@1738 | 54 | // result += is[idx = index]; |
never@1738 | 55 | return result; |
never@1738 | 56 | } |
never@1738 | 57 | |
never@1738 | 58 | public static void main(String[] strings) { |
never@1738 | 59 | Test6930043 var_Test6930043 = new Test6930043(); |
never@1738 | 60 | var_Test6930043.a = new int[1000000]; |
never@1738 | 61 | var_Test6930043.loop_forw(10, 999990); |
never@1738 | 62 | var_Test6930043.loop_forw(10, 999990); |
never@1738 | 63 | for (int i = 0; i < 3; i++) { |
never@1738 | 64 | try { |
never@1738 | 65 | if (var_Test6930043.loop_forw(-1, 999990) != 0) throw new InternalError(); |
never@1738 | 66 | } catch (ArrayIndexOutOfBoundsException e) { } |
never@1738 | 67 | } |
never@1738 | 68 | var_Test6930043.loop_back(999990, 10); |
never@1738 | 69 | var_Test6930043.loop_back(999990, 10); |
never@1738 | 70 | for (int i = 0; i < 3; i++) { |
never@1738 | 71 | try { |
never@1738 | 72 | if (var_Test6930043.loop_back(999990, -1) != 0) throw new InternalError(); |
never@1738 | 73 | } catch (ArrayIndexOutOfBoundsException e) { } |
never@1738 | 74 | } |
never@1738 | 75 | } |
never@1738 | 76 | } |