Fix bug: PruneEH/2003-09-14-ExternalCall.llx
authorChris Lattner <sabre@nondot.org>
Mon, 15 Sep 2003 02:22:50 +0000 (02:22 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 15 Sep 2003 02:22:50 +0000 (02:22 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8516 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/IPO/PruneEH.cpp

index 8be8761b8532fd41590745ac5ae02f803bbd258e..4008ea6d63832af7365ddef4a5cd739dd97197f5 100644 (file)
@@ -48,11 +48,14 @@ bool PruneEH::runOnSCC(const std::vector<CallGraphNode *> &SCC) {
         std::find(SCC.begin(), SCC.end(), SCC[i]) == SCC.end()) {
       SCCMightThrow = true; break;
     } else if (Function *F = SCC[i]->getFunction())
-      if (!F->isExternal())
+      if (F->isExternal()) {
+        SCCMightThrow = true; break;
+      } else {
         for (Function::iterator I = F->begin(), E = F->end(); I != E; ++I)
           if (isa<UnwindInst>(I->getTerminator())) {  // Uses unwind!
             SCCMightThrow = true; break;
           }
+      }
 
   bool MadeChange = false;