memcpy returns void!!!!!
authorReid Spencer <rspencer@reidspencer.com>
Tue, 26 Apr 2005 22:46:23 +0000 (22:46 +0000)
committerReid Spencer <rspencer@reidspencer.com>
Tue, 26 Apr 2005 22:46:23 +0000 (22:46 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21574 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/IPO/SimplifyLibCalls.cpp

index cc638be9a9d578d357110bacd966a5cf9186286e..a776d38dc55c571162d6cf26944709f2df5a8cee 100644 (file)
@@ -205,8 +205,7 @@ namespace {
       args.push_back(PointerType::get(Type::SByteTy));
       args.push_back(Type::IntTy);
       args.push_back(Type::IntTy);
-      memcpy_type = FunctionType::get(
-        PointerType::get(Type::SByteTy), args, false);
+      memcpy_type = FunctionType::get(Type::VoidTy, args, false);
     }
     return memcpy_type;
   }
@@ -568,10 +567,7 @@ public:
     switch (len)
     {
       case 0:
-        // Just replace with the destination parameter since a zero length
-        // memcpy is a no-op.
-        ci->replaceAllUsesWith(
-            new CastInst(dest,PointerType::get(Type::VoidTy),"",ci));
+        // The memcpy is a no-op so just dump its call.
         ci->eraseFromParent();
         return true;
       case 1:
@@ -595,8 +591,6 @@ public:
     }
     LoadInst* LI = new LoadInst(SrcCast,"",ci);
     StoreInst* SI = new StoreInst(LI, DestCast, ci);
-    ci->replaceAllUsesWith(
-      new CastInst(dest,PointerType::get(Type::VoidTy),"",ci));
     ci->eraseFromParent();
     return true;
   }