[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