# HG changeset patch # User Doug Simon # Date 1428586606 -7200 # Node ID e52678b8198f21e90a639f29238938af0d3f6757 # Parent 971b890cf5cbc715ab4e47483e8b9f5d4f2d6812 prevent lowering MacroNodes to InvokeNodes with an invalid bci diff -r 971b890cf5cb -r e52678b8198f graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/MacroNode.java --- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/MacroNode.java Thu Apr 09 15:36:13 2015 +0200 +++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/MacroNode.java Thu Apr 09 15:36:46 2015 +0200 @@ -170,6 +170,10 @@ InliningUtil.inline(invoke, replacementGraph, false, null); Debug.dump(graph(), "After inlining replacement %s", replacementGraph); } else { + if (invoke.bci() < 0) { + throw new GraalInternalError("%s: cannot lower to invoke with invalid BCI: %s", graph(), this); + } + if (invoke.stateAfter() == null) { ResolvedJavaMethod method = graph().method(); if (method.getAnnotation(MethodSubstitution.class) != null || method.getAnnotation(Snippet.class) != null) {