提交 e4d2be14 编写于 作者: V vlivanov

8162540: Crash in C2 escape analysis with assert: "node should be registered"

Reviewed-by: kvn, thartmann
上级 f47626c1
......@@ -2016,8 +2016,10 @@ bool ConnectionGraph::is_oop_field(Node* n, int offset, bool* unsafe) {
// Check for unsafe oop field access
for (DUIterator_Fast imax, i = n->fast_outs(imax); i < imax; i++) {
int opcode = n->fast_out(i)->Opcode();
if (opcode == Op_StoreP || opcode == Op_LoadP ||
opcode == Op_StoreN || opcode == Op_LoadN) {
if (opcode == Op_StoreP || opcode == Op_StoreN ||
opcode == Op_LoadP || opcode == Op_LoadN ||
opcode == Op_GetAndSetP || opcode == Op_GetAndSetN ||
opcode == Op_CompareAndSwapP || opcode == Op_CompareAndSwapN) {
bt = T_OBJECT;
(*unsafe) = true;
break;
......@@ -2037,8 +2039,10 @@ bool ConnectionGraph::is_oop_field(Node* n, int offset, bool* unsafe) {
// Allocation initialization, ThreadLocal field access, unsafe access
for (DUIterator_Fast imax, i = n->fast_outs(imax); i < imax; i++) {
int opcode = n->fast_out(i)->Opcode();
if (opcode == Op_StoreP || opcode == Op_LoadP ||
opcode == Op_StoreN || opcode == Op_LoadN) {
if (opcode == Op_StoreP || opcode == Op_StoreN ||
opcode == Op_LoadP || opcode == Op_LoadN ||
opcode == Op_GetAndSetP || opcode == Op_GetAndSetN ||
opcode == Op_CompareAndSwapP || opcode == Op_CompareAndSwapN) {
bt = T_OBJECT;
break;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册