From 5a0d4179df79280d37b1cf9fdc8ba8b90c33ee13 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Sat, 13 Oct 2001 06:52:31 +0000 Subject: [PATCH] Support indirect calls git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@764 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Transforms/IPO/InlineSimple.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/Transforms/IPO/InlineSimple.cpp b/lib/Transforms/IPO/InlineSimple.cpp index c8afc27e3ec..609c3f14d98 100644 --- a/lib/Transforms/IPO/InlineSimple.cpp +++ b/lib/Transforms/IPO/InlineSimple.cpp @@ -69,7 +69,8 @@ bool opt::InlineMethod(BasicBlock::iterator CIIt) { CallInst *CI = cast(*CIIt); const Method *CalledMeth = CI->getCalledMethod(); - if (CalledMeth->isExternal()) return false; // Can't inline external method! + if (CalledMeth == 0 || // Can't inline external method or indirect call! + CalledMeth->isExternal()) return false; Method *CurrentMeth = CI->getParent()->getParent(); //cerr << "Inlining " << CalledMeth->getName() << " into " @@ -238,7 +239,7 @@ static inline bool DoMethodInlining(BasicBlock *BB) { if (CallInst *CI = dyn_cast(*I)) { // Check to see if we should inline this method Method *M = CI->getCalledMethod(); - if (ShouldInlineMethod(CI, M)) + if (M && ShouldInlineMethod(CI, M)) return InlineMethod(I); } }