hotspot/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/ConstantBindingParameterPlugin.java
changeset 46344 694c102fd8ed
parent 43972 1ade39b8381b
--- a/hotspot/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/ConstantBindingParameterPlugin.java	Mon Dec 12 16:16:27 2016 +0300
+++ b/hotspot/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/ConstantBindingParameterPlugin.java	Wed Mar 22 13:42:45 2017 -0700
@@ -57,7 +57,16 @@
         if (arg != null) {
             ConstantNode constantNode;
             if (arg instanceof ConstantNode) {
-                constantNode = (ConstantNode) arg;
+                ConstantNode otherCon = (ConstantNode) arg;
+                if (otherCon.graph() != b.getGraph()) {
+                    /*
+                     * This is a node from another graph, so copy over extra state into a new
+                     * ConstantNode.
+                     */
+                    constantNode = ConstantNode.forConstant(stamp.getTrustedStamp(), otherCon.asConstant(), otherCon.getStableDimension(), otherCon.isDefaultStable(), metaAccess);
+                } else {
+                    constantNode = otherCon;
+                }
             } else if (arg instanceof Constant) {
                 constantNode = ConstantNode.forConstant(stamp.getTrustedStamp(), (Constant) arg, metaAccess);
             } else {