forked from OSchip/llvm-project
Fix a bugpoint crash that JeffC noticed, looking like this:
*** 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. llvm-svn: 20285
This commit is contained in:
parent
80c5b97046
commit
5e166a5f3e
|
@ -98,7 +98,7 @@ static const PassInfo *getPI(Pass *P) {
|
||||||
|
|
||||||
/// performFinalCleanups - This method clones the current Program and performs
|
/// performFinalCleanups - This method clones the current Program and performs
|
||||||
/// a series of cleanups intended to get rid of extra cruft on the module
|
/// 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) {
|
Module *BugDriver::performFinalCleanups(Module *M, bool MayModifySemantics) {
|
||||||
// Make all functions external, so GlobalDCE doesn't delete them...
|
// 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);
|
Module *New = runPassesOn(M, CleanupPasses);
|
||||||
if (New == 0) {
|
if (New == 0) {
|
||||||
std::cerr << "Final cleanups failed. Sorry. :( Please report a bug!\n";
|
std::cerr << "Final cleanups failed. Sorry. :( Please report a bug!\n";
|
||||||
|
return M;
|
||||||
}
|
}
|
||||||
delete M;
|
delete M;
|
||||||
return New;
|
return New;
|
||||||
|
|
Loading…
Reference in New Issue