stupid stuff


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27821 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Analysis/DataStructure/Local.cpp b/lib/Analysis/DataStructure/Local.cpp
index e4de3cb..75d1f4e 100644
--- a/lib/Analysis/DataStructure/Local.cpp
+++ b/lib/Analysis/DataStructure/Local.cpp
@@ -591,8 +591,9 @@
           }
         }
 
-        if (F->getName() == "calloc" || F->getName() == "posix_memalign" ||
-            F->getName() == "memalign" || F->getName() == "valloc") {
+        if ((F->isExternal() && F->getName() == "calloc") 
+            || F->getName() == "posix_memalign"
+            || F->getName() == "memalign" || F->getName() == "valloc") {
           setDestTo(*CS.getInstruction(),
                     createNode()->setHeapNodeMarker()->setModifiedMarker());
           return;
@@ -611,7 +612,10 @@
           if (DSNode *N = RetNH.getNode())
             N->setModifiedMarker()->setReadMarker();
           return;
-
+        } else if (F->getName() == "free") {
+          // Mark that the node is written to...
+          if (DSNode *N = getValueDest(**CS.arg_begin()).getNode())
+            N->setModifiedMarker()->setHeapNodeMarker();
         } else if (F->getName() == "atoi" || F->getName() == "atof" ||
                    F->getName() == "atol" || F->getName() == "atoll" ||
                    F->getName() == "remove" || F->getName() == "unlink" ||