Fix some logic I broke that caused a regression on
authorChris Lattner <sabre@nondot.org>
Sun, 25 Sep 2005 07:06:48 +0000 (07:06 +0000)
committerChris Lattner <sabre@nondot.org>
Sun, 25 Sep 2005 07:06:48 +0000 (07:06 +0000)
SimplifyLibCalls/2005-05-20-sprintf-crash.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23430 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/IPO/SimplifyLibCalls.cpp

index a11bde10a6b7f7b05a007dba6e60e4f08665614f..ae76a4d11bc80a1273cee59c6ca045e3873dd891 100644 (file)
@@ -1500,9 +1500,11 @@ public:
       new CallInst(memcpy_func, args, "", ci);
       
       // The strlen result is the unincremented number of bytes in the string.
-      if (!ci->use_empty() && Len->getType() != ci->getType())
-        Len = new CastInst(Len, ci->getType(), Len->getName(), ci);
-      ci->replaceAllUsesWith(Len);
+      if (!ci->use_empty()) {
+        if (Len->getType() != ci->getType())
+          Len = new CastInst(Len, ci->getType(), Len->getName(), ci);
+        ci->replaceAllUsesWith(Len);
+      }
       ci->eraseFromParent();
       return true;
     }