diff options
author | Dan Gohman <gohman@apple.com> | 2010-03-30 19:56:41 +0000 |
---|---|---|
committer | Dan Gohman <gohman@apple.com> | 2010-03-30 19:56:41 +0000 |
commit | 132a9946bf494f046ca61b95cea02a53804845c4 (patch) | |
tree | d7243f02e2488384d987f2534f0e5053ca9ceab5 /include/llvm/Support/FileUtilities.h | |
parent | bd44314c676a05e52f3841c5961ea0a2bc1116fb (diff) |
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.h | 11 |
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; } |