changeset 22106:cb7d2d509b01

Fix an issue in the inlining phase in the context of deleted unwind nodes. Reported by: Christian Thalinger.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Fri, 26 Jun 2015 18:02:40 +0200
parents 6772b63f4dac
children 33468b455bed
files graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/InliningUtil.java
diffstat 1 files changed, 2 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/InliningUtil.java	Mon Jun 22 15:00:10 2015 +0200
+++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/InliningUtil.java	Fri Jun 26 18:02:40 2015 +0200
@@ -334,7 +334,7 @@
 
         if (invoke instanceof InvokeWithExceptionNode) {
             InvokeWithExceptionNode invokeWithException = ((InvokeWithExceptionNode) invoke);
-            if (unwindNode != null) {
+            if (unwindNode != null && unwindNode.isAlive()) {
                 assert unwindNode.predecessor() != null;
                 assert invokeWithException.exceptionEdge().successors().count() == 1;
                 ExceptionObjectNode obj = (ExceptionObjectNode) invokeWithException.exceptionEdge();
@@ -358,7 +358,7 @@
                 graph.removeFixed(begin);
             }
         } else {
-            if (unwindNode != null && !unwindNode.isDeleted()) {
+            if (unwindNode != null && unwindNode.isAlive()) {
                 DeoptimizeNode deoptimizeNode = graph.add(new DeoptimizeNode(DeoptimizationAction.InvalidateRecompile, DeoptimizationReason.NotCompiledExceptionHandler));
                 unwindNode.replaceAndDelete(deoptimizeNode);
             }