Driver: When compilation fails, don't try to remove output files we don't have

write access to.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130150 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Daniel Dunbar 2011-04-25 20:43:05 +00:00
Родитель 85e59d79e3
Коммит 8ac127a09a
1 изменённых файлов: 6 добавлений и 0 удалений

Просмотреть файл

@ -101,6 +101,12 @@ bool Compilation::CleanupFileList(const ArgStringList &Files,
llvm::sys::Path P(*it);
std::string Error;
// Don't try to remove files which we don't have write access to (but may be
// able to remove). Underlying tools may have intentionally not overwritten
// them.
if (!P.canWrite())
continue;
if (P.eraseFromDisk(false, &Error)) {
// Failure is only failure if the file exists and is "regular". There is
// a race condition here due to the limited interface of