From affec73618fa93b631861fa145ee5b8986f1f76e Mon Sep 17 00:00:00 2001 From: Xinliang David Li Date: Sun, 14 May 2017 02:54:02 +0000 Subject: [PATCH] Fix test failure on windows -- do not return deleted func git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302999 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Transforms/IPO/PartialInlining.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/Transforms/IPO/PartialInlining.cpp b/lib/Transforms/IPO/PartialInlining.cpp index 5550376279f..739b0dae314 100644 --- a/lib/Transforms/IPO/PartialInlining.cpp +++ b/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, -- 2.40.0