OSDN Git Service

Fix a bugpoint crash that JeffC noticed, looking like this:
authorChris Lattner <sabre@nondot.org>
Wed, 23 Feb 2005 06:12:11 +0000 (06:12 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 23 Feb 2005 06:12:11 +0000 (06:12 +0000)
*** Attempting to perform final cleanups: Final cleanups failed.  Sorry. :(  Ple
ase report a bug!

<llc>llc.exe: bytecode didn't read correctly.
llc.exe: bytecode didn't read correctly.
<crash>
Assertion failed: M && "You can't write a null module!!", file c:\llvm\lib\bytec
ode\writer\writer.cpp, line 1094

The fact that llc bombed (in this case) is ok, but bugpoint shouldn't crash after this.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20285 91177308-0d34-0410-b5e6-96231b3b80d8

tools/bugpoint/ExtractFunction.cpp

index 078c7ba..0eecc49 100644 (file)
@@ -98,7 +98,7 @@ static const PassInfo *getPI(Pass *P) {
 
 /// performFinalCleanups - This method clones the current Program and performs
 /// a series of cleanups intended to get rid of extra cruft on the module
-/// before handing it to the user...
+/// before handing it to the user.
 ///
 Module *BugDriver::performFinalCleanups(Module *M, bool MayModifySemantics) {
   // Make all functions external, so GlobalDCE doesn't delete them...
@@ -118,6 +118,7 @@ Module *BugDriver::performFinalCleanups(Module *M, bool MayModifySemantics) {
   Module *New = runPassesOn(M, CleanupPasses);
   if (New == 0) {
     std::cerr << "Final cleanups failed.  Sorry. :(  Please report a bug!\n";
+    return M;
   }
   delete M;
   return New;