[MemoryBuiltins] Use ImmutableCallSite instead of CallSite to remove a const_cast...
authorCraig Topper <craig.topper@gmail.com>
Tue, 18 Apr 2017 20:17:23 +0000 (20:17 +0000)
committerCraig Topper <craig.topper@gmail.com>
Tue, 18 Apr 2017 20:17:23 +0000 (20:17 +0000)
llvm-svn: 300585

llvm/lib/Analysis/MemoryBuiltins.cpp

index b8c44490472388ec08cf65a8d66bac6d7f4e4081..2fee95d0fd46d743c2078db50121fa40b09bd0d8 100644 (file)
@@ -77,8 +77,8 @@ static const std::pair<LibFunc, AllocFnsTy> AllocationFnData[] = {
   // TODO: Handle "int posix_memalign(void **, size_t, size_t)"
 };
 
-static Function *getCalledFunction(const Value *V, bool LookThroughBitCast,
-                                   bool &IsNoBuiltin) {
+static const Function *getCalledFunction(const Value *V, bool LookThroughBitCast,
+                                         bool &IsNoBuiltin) {
   // Don't care about intrinsics in this case.
   if (isa<IntrinsicInst>(V))
     return nullptr;
@@ -86,13 +86,13 @@ static Function *getCalledFunction(const Value *V, bool LookThroughBitCast,
   if (LookThroughBitCast)
     V = V->stripPointerCasts();
 
-  CallSite CS(const_cast<Value*>(V));
+  ImmutableCallSite CS(V);
   if (!CS.getInstruction())
     return nullptr;
 
   IsNoBuiltin = CS.isNoBuiltin();
 
-  Function *Callee = CS.getCalledFunction();
+  const Function *Callee = CS.getCalledFunction();
   if (!Callee || !Callee->isDeclaration())
     return nullptr;
   return Callee;