[llvm-commits] [poolalloc] r133681 - /poolalloc/trunk/lib/AssistDS/TypeChecks.cpp

Arushi Aggarwal aggarwa4 at illinois.edu
Wed Jun 22 20:25:37 PDT 2011


Author: aggarwa4
Date: Wed Jun 22 22:25:37 2011
New Revision: 133681

URL: http://llvm.org/viewvc/llvm-project?rev=133681&view=rev
Log:
Add instrumentation for __errno_location.
Give getpwuid a separate function, which instruments
the pointers in its fields too.

Modified:
    poolalloc/trunk/lib/AssistDS/TypeChecks.cpp

Modified: poolalloc/trunk/lib/AssistDS/TypeChecks.cpp
URL: http://llvm.org/viewvc/llvm-project/poolalloc/trunk/lib/AssistDS/TypeChecks.cpp?rev=133681&r1=133680&r2=133681&view=diff
==============================================================================
--- poolalloc/trunk/lib/AssistDS/TypeChecks.cpp (original)
+++ poolalloc/trunk/lib/AssistDS/TypeChecks.cpp Wed Jun 22 22:25:37 2011
@@ -1401,10 +1401,19 @@
       Args.push_back(AllocSize);
       Args.push_back(getTagCounter());
       CallInst::Create(trackInitInst, Args.begin(), Args.end(), "", I);
-    } else if (F->getNameStr() == std::string("getpwuid") ||
-               F->getNameStr() == std::string("getgruid") ||
+    } else if (F->getNameStr() == std::string("getpwuid")) {
+      CastInst *BCI = BitCastInst::CreatePointerCast(I, VoidPtrTy);
+      BCI->insertAfter(I);
+      std::vector<Value *>Args;
+      Args.push_back(BCI);
+      Args.push_back(getTagCounter());
+      Constant *F = M.getOrInsertFunction("trackgetpwuid", VoidTy, VoidPtrTy, Int32Ty, NULL);
+      CallInst *CI = CallInst::Create(F, Args.begin(), Args.end());
+      CI->insertAfter(BCI);
+    } else if (F->getNameStr() == std::string("getgruid") ||
                F->getNameStr() == std::string("getgrnam") ||
-               F->getNameStr() == std::string("getpwnam")) {
+               F->getNameStr() == std::string("getpwnam") ||
+               F->getNameStr() == std::string("__errno_location")) {
       CastInst *BCI  = BitCastInst::CreatePointerCast(I, VoidPtrTy);
       assert (isa<PointerType>(I->getType()));
       const PointerType * PT = cast<PointerType>(I->getType());





More information about the llvm-commits mailing list