From 3b7a8246c984bf5de8daa346f55a55f7d42d0391 Mon Sep 17 00:00:00 2001 From: Easwaran Raman Date: Fri, 4 Mar 2016 00:44:01 +0000 Subject: Fix a use-after-free bug introduced in r262636 llvm-svn: 262679 --- llvm/lib/Transforms/Utils/InlineFunction.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'llvm/lib/Transforms/Utils') diff --git a/llvm/lib/Transforms/Utils/InlineFunction.cpp b/llvm/lib/Transforms/Utils/InlineFunction.cpp index 923e5b231c4..251afb57b1f 100644 --- a/llvm/lib/Transforms/Utils/InlineFunction.cpp +++ b/llvm/lib/Transforms/Utils/InlineFunction.cpp @@ -1994,8 +1994,11 @@ bool llvm::InlineFunction(CallSite CS, InlineFunctionInfo &IFI, // If we inlined any musttail calls and the original return is now // unreachable, delete it. It can only contain a bitcast and ret. - if (InlinedMustTailCalls && pred_begin(AfterCallBB) == pred_end(AfterCallBB)) + if (InlinedMustTailCalls && + pred_begin(AfterCallBB) == pred_end(AfterCallBB)) { + IFI.CallSuccessorBlockDeleted = true; AfterCallBB->eraseFromParent(); + } // We should always be able to fold the entry block of the function into the // single predecessor of the block... -- cgit v1.2.3