Improvements to unique_file and createUniqueDirectory.
authorRafael Espindola <rafael.espindola@gmail.com>
Fri, 28 Jun 2013 03:48:47 +0000 (03:48 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Fri, 28 Jun 2013 03:48:47 +0000 (03:48 +0000)
commit8e7294f9953a98cfaae7e3bf5a6c852018cbcb83
tree5d97a5307e1eefeae8eb3b07a2beb7880c4cda1c
parent1300638d50318278926588d73d9ce0c00cf284f2
Improvements to unique_file and createUniqueDirectory.

* Don't try to create parent directories in unique_file. It had two problem:
   * It violates the contract that it is atomic. If the directory creation
     success and the file creation fails, we would return an error but the
     file system was modified.
   * When creating a temporary file clang would have to first check if the
     parent directory existed or not to avoid creating one when it was not
     supposed to.

* More efficient implementations of createUniqueDirectory and the unique_file
  that produces only the file name. Now all 3 just call into a static
  function passing what they want (name, file or directory).

Clang also has to be updated, so tests might fail if a bot picks up this commit
and not the corresponding clang one.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185126 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Support/Path.cpp
lib/Support/Unix/Path.inc
lib/Support/Windows/Path.inc