From f2503533d8ab9edb6bea281c2e192535a465a402 Mon Sep 17 00:00:00 2001
From: Lukas Stadler <lukas.stadler@oracle.com>
Date: Wed, 16 Aug 2017 13:03:52 +0200
Subject: [PATCH] clear last.warning during base package loading

---
 .../oracle/truffle/r/nodes/builtin/RBuiltinPackages.java    | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/RBuiltinPackages.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/RBuiltinPackages.java
index 3cbd00ed57..2d774b7c73 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/RBuiltinPackages.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/RBuiltinPackages.java
@@ -33,6 +33,7 @@ import com.oracle.truffle.api.CompilerAsserts;
 import com.oracle.truffle.api.RootCallTarget;
 import com.oracle.truffle.api.Truffle;
 import com.oracle.truffle.api.frame.FrameDescriptor;
+import com.oracle.truffle.api.frame.FrameSlot;
 import com.oracle.truffle.api.frame.MaterializedFrame;
 import com.oracle.truffle.api.source.Source;
 import com.oracle.truffle.r.nodes.builtin.base.BasePackage;
@@ -116,6 +117,11 @@ public final class RBuiltinPackages implements RBuiltinLookup {
             } catch (ParseException e) {
                 throw new RInternalError(e, "error while parsing base source from %s", baseSource.getName());
             }
+            // forcibly clear last.warnings during startup:
+            FrameSlot slot = baseFrame.getFrameDescriptor().findFrameSlot("last.warning");
+            if (slot != null) {
+                FrameSlotChangeMonitor.setObject(baseFrame, slot, null);
+            }
         } finally {
             RContext.getInstance().setLoadingBase(false);
         }
-- 
GitLab