From dfde06bdef2b0adbf7feb0f831b46a82b2eb68be Mon Sep 17 00:00:00 2001
From: Gero Leinemann <gero.leinemann@oracle.com>
Date: Thu, 25 Sep 2014 12:36:20 +0200
Subject: [PATCH] Fixed compilation issues for generic cases of RCallNode PIC

---
 .../src/com/oracle/truffle/r/nodes/function/RCallNode.java   | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/RCallNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/RCallNode.java
index 82340bf9e9..3faef1fa51 100644
--- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/RCallNode.java
+++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/RCallNode.java
@@ -459,7 +459,10 @@ public abstract class RCallNode extends RNode {
         }
 
         @Override
+        @SlowPath
         public Object execute(VirtualFrame frame, RFunction currentFunction) {
+            CompilerDirectives.transferToInterpreter();
+
             if (lastCallTarget == currentFunction.getTarget() && lastMatchedArgs != null) {
                 // poor man's caching succeeded - same function: no re-match needed
                 Object[] argsObject = RArguments.create(currentFunction, getSourceSection(), lastMatchedArgs.doExecuteArray(frame), lastMatchedArgs.getNames());
@@ -639,7 +642,7 @@ public abstract class RCallNode extends RNode {
         @Override
         @SlowPath
         public Object execute(VirtualFrame frame, RFunction currentFunction) {
-            CompilerAsserts.neverPartOfCompilation();
+            CompilerDirectives.transferToInterpreter();
 
             // Function and arguments may change every call: Flatt'n'Match on SlowPath! :-/
             UnrolledVariadicArguments argsValuesAndNames = suppliedArgs.executeFlatten(frame);
-- 
GitLab