Fix test failure on windows -- do not return deleted func
authorXinliang David Li <davidxl@google.com>
Sun, 14 May 2017 02:54:02 +0000 (02:54 +0000)
committerXinliang David Li <davidxl@google.com>
Sun, 14 May 2017 02:54:02 +0000 (02:54 +0000)
llvm-svn: 302999

llvm/lib/Transforms/IPO/PartialInlining.cpp

index 5550376..739b0da 100644 (file)
@@ -715,9 +715,15 @@ Function *PartialInlinerImpl::unswitchFunction(Function *F) {
   // users (function pointers, etc.) back to the original function.
   DuplicateFunction->replaceAllUsesWith(F);
   DuplicateFunction->eraseFromParent();
-  if (!AnyInline && OutlinedFunction)
+
+  if (AnyInline)
+    return OutlinedFunction;
+
+  // Remove the function that is speculatively created:
+  if (OutlinedFunction)
     OutlinedFunction->eraseFromParent();
-  return OutlinedFunction;
+
+  return nullptr;
 }
 
 bool PartialInlinerImpl::tryPartialInline(Function *DuplicateFunction,