Support indirect calls


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@764 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Transforms/IPO/InlineSimple.cpp b/lib/Transforms/IPO/InlineSimple.cpp
index c8afc27..609c3f1 100644
--- a/lib/Transforms/IPO/InlineSimple.cpp
+++ b/lib/Transforms/IPO/InlineSimple.cpp
@@ -69,7 +69,8 @@
 
   CallInst *CI = cast<CallInst>(*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 @@
     if (CallInst *CI = dyn_cast<CallInst>(*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);
     }
   }