annotate test/compiler/6659207/Test.java @ 69:8bb88f9877e5

6659207: access violation in CompilerThread0 Summary: split_thru_phi produces top on a non-dead path Reviewed-by: kvn, rasbold, sgoldman
author never
date Tue, 18 Mar 2008 23:54:17 -0700
parents
children 2a8ec427fbe1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
69
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
1 /*
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
2 * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
3 * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
4 *
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
5 *
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
6 *
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
7 *
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
8 *
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
9 *
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
10 *
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
11 *
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
12 *
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
13 *
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
14 *
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
15 *
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
16 *
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
17 *
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
18 *
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
19 *
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
20 *
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
21 *
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
22 */
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
23
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
24 /*
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
25 * @test
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
26 * @bug 6659207
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
27 * @summary access violation in CompilerThread0
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
28 */
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
29
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
30 public class Test {
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
31 static int[] array = new int[12];
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
32
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
33 static int index(int i) {
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
34 if (i == 0) return 0;
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
35 for (int n = 0; n < array.length; n++)
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
36 if (i < array[n]) return n;
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
37 return -1;
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
38 }
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
39
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
40 static int test(int i) {
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
41 int result = 0;
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
42 i = index(i);
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
43 if (i >= 0)
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
44 if (array[i] != 0)
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
45 result++;
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
46
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
47 if (i != -1)
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
48 array[i]++;
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
49
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
50 return result;
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
51 }
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
52
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
53 public static void main(String[] args) {
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
54 int total = 0;
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
55 for (int i = 0; i < 100000; i++) {
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
56 total += test(10);
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
57 }
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
58 System.out.println(total);
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
59 }
8bb88f9877e5 6659207: access violation in CompilerThread0
never
parents:
diff changeset
60 }