summaryrefslogtreecommitdiff
path: root/include/llvm/Support/FileUtilities.h
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2010-03-30 19:56:41 +0000
committerDan Gohman <gohman@apple.com>2010-03-30 19:56:41 +0000
commit132a9946bf494f046ca61b95cea02a53804845c4 (patch)
treed7243f02e2488384d987f2534f0e5053ca9ceab5 /include/llvm/Support/FileUtilities.h
parentbd44314c676a05e52f3841c5961ea0a2bc1116fb (diff)
downloadllvm-132a9946bf494f046ca61b95cea02a53804845c4.tar.gz
llvm-132a9946bf494f046ca61b95cea02a53804845c4.tar.bz2
llvm-132a9946bf494f046ca61b95cea02a53804845c4.tar.xz
Fix llvm-ld to clean up its output files in case of an error.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99915 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Support/FileUtilities.h')
-rw-r--r--include/llvm/Support/FileUtilities.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/include/llvm/Support/FileUtilities.h b/include/llvm/Support/FileUtilities.h
index b535209d36..d0dd4a7598 100644
--- a/include/llvm/Support/FileUtilities.h
+++ b/include/llvm/Support/FileUtilities.h
@@ -52,6 +52,17 @@ namespace llvm {
}
}
+ /// setFile - Give ownership of the file to the FileRemover so it will
+ /// be removed when the object is destroyed. If the FileRemover already
+ /// had ownership of a file, remove it first.
+ void setFile(const sys::Path &filename, bool deleteIt = true) {
+ if (DeleteIt)
+ Filename.eraseFromDisk();
+
+ Filename = filename;
+ DeleteIt = deleteIt;
+ }
+
/// releaseFile - Take ownership of the file away from the FileRemover so it
/// will not be removed when the object is destroyed.
void releaseFile() { DeleteIt = false; }