summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/IPO/PartialInlining.cpp
diff options
context:
space:
mode:
authorXinliang David Li <davidxl@google.com>2017-05-14 02:54:02 +0000
committerXinliang David Li <davidxl@google.com>2017-05-14 02:54:02 +0000
commit392e975693cf745c4c85ccbb2b0d6294086d1d2a (patch)
treeabb06dc935498703312b60972c90b9bac0833117 /llvm/lib/Transforms/IPO/PartialInlining.cpp
parent0683be2ebcb37db2a060993430caf782ec800429 (diff)
downloadbcm5719-llvm-392e975693cf745c4c85ccbb2b0d6294086d1d2a.tar.gz
bcm5719-llvm-392e975693cf745c4c85ccbb2b0d6294086d1d2a.zip
Fix test failure on windows -- do not return deleted func
llvm-svn: 302999
Diffstat (limited to 'llvm/lib/Transforms/IPO/PartialInlining.cpp')
-rw-r--r--llvm/lib/Transforms/IPO/PartialInlining.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/llvm/lib/Transforms/IPO/PartialInlining.cpp b/llvm/lib/Transforms/IPO/PartialInlining.cpp
index 5550376279f..739b0dae314 100644
--- a/llvm/lib/Transforms/IPO/PartialInlining.cpp
+++ b/llvm/lib/Transforms/IPO/PartialInlining.cpp
@@ -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,
OpenPOWER on IntegriCloud