[Bugpoint] Close error log in ProcessFailure. Bugpoint had been failing to close

this, and in some circumstances (e.g. reducing particularly large test-cases)
this was causing bugpoint to be killed for hitting open file-handle limits.

No test case: I was only able to trigger this with test cases taking upwards of
10 mins to run.

llvm-svn: 219244
This commit is contained in:
Lang Hames 2014-10-07 21:47:23 +00:00
parent a2a481e0e3
commit 2959356958
1 changed files with 1 additions and 9 deletions

View File

@ -141,21 +141,13 @@ static std::string ProcessFailure(StringRef ProgPath, const char** Args,
// Rerun the compiler, capturing any error messages to print them.
SmallString<128> ErrorFilename;
int ErrorFD;
std::error_code EC = sys::fs::createTemporaryFile(
"bugpoint.program_error_messages", "", ErrorFD, ErrorFilename);
"bugpoint.program_error_messages", "", ErrorFilename);
if (EC) {
errs() << "Error making unique filename: " << EC.message() << "\n";
exit(1);
}
#ifdef _WIN32
// Close ErrorFD immediately, or it couldn't be reopened on Win32.
// FIXME: We may have an option in openFileForWrite(), not to use ResultFD
// but to close it.
delete new raw_fd_ostream(ErrorFD, true);
#endif
RunProgramWithTimeout(ProgPath, Args, "", ErrorFilename.str(),
ErrorFilename.str(), Timeout, MemoryLimit);
// FIXME: check return code ?