Fix PR2929 by making bugpoint/code extract propagate the nothrow
authorChris Lattner <sabre@nondot.org>
Thu, 18 Dec 2008 05:52:56 +0000 (05:52 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 18 Dec 2008 05:52:56 +0000 (05:52 +0000)
bit from the original function to the cloned one.

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

lib/Transforms/Utils/CodeExtractor.cpp

index 2f4698dce1eef5b708e6f4be0ebd3b19e7849fca..6d5904e308867180ea6e6655578681fcd15fb109 100644 (file)
@@ -283,6 +283,10 @@ Function *CodeExtractor::constructFunction(const Values &inputs,
                                            GlobalValue::InternalLinkage,
                                            oldFunction->getName() + "_" +
                                            header->getName(), M);
+  // If the old function is no-throw, so is the new one.
+  if (oldFunction->doesNotThrow())
+    newFunction->setDoesNotThrow(true);
+  
   newFunction->getBasicBlockList().push_back(newRootNode);
 
   // Create an iterator to name all of the arguments we inserted.