diff options
author | Xinliang David Li <davidxl@google.com> | 2017-05-14 02:54:02 +0000 |
---|---|---|
committer | Xinliang David Li <davidxl@google.com> | 2017-05-14 02:54:02 +0000 |
commit | 392e975693cf745c4c85ccbb2b0d6294086d1d2a (patch) | |
tree | abb06dc935498703312b60972c90b9bac0833117 /llvm/lib/Transforms/IPO/PartialInlining.cpp | |
parent | 0683be2ebcb37db2a060993430caf782ec800429 (diff) | |
download | bcm5719-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.cpp | 10 |
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, |