提交 83066b1a 编写于 作者: N never

6659207: access violation in CompilerThread0

Summary: split_thru_phi produces top on a non-dead path
Reviewed-by: kvn, rasbold, sgoldman
上级 b73e27dc
......@@ -29,6 +29,11 @@
//------------------------------split_thru_phi---------------------------------
// Split Node 'n' through merge point if there is enough win.
Node *PhaseIdealLoop::split_thru_phi( Node *n, Node *region, int policy ) {
if (n->Opcode() == Op_ConvI2L && n->bottom_type() != TypeLong::LONG) {
// ConvI2L may have type information on it which is unsafe to push up
// so disable this for now
return NULL;
}
int wins = 0;
assert( !n->is_CFG(), "" );
assert( region->is_Region(), "" );
......
/*
* Copyright 2008 Sun Microsystems, Inc. All rights reserved.
* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
/*
* @test
* @bug 6659207
* @summary access violation in CompilerThread0
*/
public class Test {
static int[] array = new int[12];
static int index(int i) {
if (i == 0) return 0;
for (int n = 0; n < array.length; n++)
if (i < array[n]) return n;
return -1;
}
static int test(int i) {
int result = 0;
i = index(i);
if (i >= 0)
if (array[i] != 0)
result++;
if (i != -1)
array[i]++;
return result;
}
public static void main(String[] args) {
int total = 0;
for (int i = 0; i < 100000; i++) {
total += test(10);
}
System.out.println(total);
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册