# HG changeset patch # User Doug Simon # Date 1367007539 -7200 # Node ID e8dc8748f4155abb7d9054238f86e94414ba8d31 # Parent 26d11d3ca6bc9ce9b46976f375b1544f482a9c05 added check for JaCoCo methods being inserted into replacement methods added JaCoCo exclusion tag to TypeCheckSnippetUtils and Stub diff -r 26d11d3ca6bc -r e8dc8748f415 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/TypeCheckSnippetUtils.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/TypeCheckSnippetUtils.java Fri Apr 26 22:00:49 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/TypeCheckSnippetUtils.java Fri Apr 26 22:18:59 2013 +0200 @@ -37,6 +37,8 @@ import com.oracle.graal.replacements.*; import com.oracle.graal.word.*; +//JaCoCo Exclude + /** * Utilities and common code paths used by the type check snippets. */ diff -r 26d11d3ca6bc -r e8dc8748f415 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/Stub.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/Stub.java Fri Apr 26 22:00:49 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/Stub.java Fri Apr 26 22:18:59 2013 +0200 @@ -52,6 +52,8 @@ import com.oracle.graal.replacements.SnippetTemplate.SnippetInfo; import com.oracle.graal.word.*; +//JaCoCo Exclude + /** * Base class for implementing some low level code providing the out-of-line slow path for a * snippet. A concrete stub is defined a subclass of this class. diff -r 26d11d3ca6bc -r e8dc8748f415 graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ReplacementsImpl.java --- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ReplacementsImpl.java Fri Apr 26 22:00:49 2013 +0200 +++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ReplacementsImpl.java Fri Apr 26 22:18:59 2013 +0200 @@ -372,6 +372,11 @@ if (intrinsicGraph != null && policy.shouldUseReplacement(callee, methodToParse)) { targetGraph = intrinsicGraph; } else { + if (callee.getName().startsWith("$jacoco")) { + throw new GraalInternalError("Parsing call to JaCoCo instrumentation method " + format("%H.%n(%p)", callee) + " from " + format("%H.%n(%p)", methodToParse) + + " while preparing replacement " + format("%H.%n(%p)", method) + ". Placing \"//JaCoCo Exclude\" anywhere in " + + methodToParse.getDeclaringClass().getSourceFileName() + " should fix this."); + } targetGraph = parseGraph(callee, policy); } InliningUtil.inline(callTarget.invoke(), targetGraph, true);