Use enums instead of raw octal values.
authorRafael Espindola <rafael.espindola@gmail.com>
Wed, 26 Jun 2013 17:28:04 +0000 (17:28 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Wed, 26 Jun 2013 17:28:04 +0000 (17:28 +0000)
Patch by 罗勇刚(Yonggang Luo).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184971 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Support/FileSystem.h
lib/Support/Unix/PathV2.inc
tools/llvm-ar/ArchiveWriter.cpp

index 558145c246feff0bbff68537362e55852c64ee98..b72192753c739968146ca0e9e20dd5e53c378e9a 100644 (file)
@@ -111,6 +111,9 @@ enum perms {
   others_write =   02, 
   others_exe   =   01, 
   others_all   = others_read | others_write | others_exe, 
+  all_read     = owner_read | group_read | others_read,
+  all_write    = owner_write | group_write | others_write,
+  all_exe      = owner_exe | group_exe | others_exe,
   all_all      = owner_all | group_all | others_all,
   set_uid_on_exe  = 04000, 
   set_gid_on_exe  = 02000, 
@@ -559,15 +562,17 @@ error_code status_known(const Twine &path, bool &result);
 /// @param result_path Set to the opened file's absolute path.
 /// @param makeAbsolute If true and \a model is not an absolute path, a temp
 ///        directory will be prepended.
+/// @param mode Set to the file open mode; since this is most often used for
+///        temporary files, mode defaults to owner_read | owner_write.
 /// @returns errc::success if result_{fd,path} have been successfully set,
 ///          otherwise a platform specific error_code.
 error_code unique_file(const Twine &model, int &result_fd,
                        SmallVectorImpl<char> &result_path,
-                       bool makeAbsolute = true, unsigned mode = 0600);
+                       bool makeAbsolute = true, unsigned mode = owner_read | owner_write);
 
 /// @brief Simpler version for clients that don't want an open file.
 error_code unique_file(const Twine &Model, SmallVectorImpl<char> &ResultPath,
-                       bool MakeAbsolute = true, unsigned Mode = 0600);
+                       bool MakeAbsolute = true, unsigned Mode = owner_read | owner_write);
 
 /// @brief Canonicalize path.
 ///
index 29a89b03d07d415f1b5e3bc66535d889733a3421..91efcd8023389ea68295026c40225922b06779e3 100644 (file)
@@ -564,7 +564,6 @@ error_code setLastModificationAndAccessTime(int FD, TimeValue Time) {
   return error_code::success();
 }
 
-// Since this is most often used for temporary files, mode defaults to 0600.
 error_code unique_file(const Twine &model, int &result_fd,
                        SmallVectorImpl<char> &result_path,
                        bool makeAbsolute, unsigned mode) {
index 8f010ad7ba8dcb6f001a3233aacda3b8376cc988..7dad7e0a4726cfa3b610f973d374369f3f145b83 100644 (file)
@@ -268,7 +268,7 @@ bool Archive::writeToDisk(bool TruncateNames, std::string *ErrMsg) {
   int TmpArchiveFD;
   SmallString<128> TmpArchive;
   error_code EC = sys::fs::unique_file("temp-archive-%%%%%%%.a", TmpArchiveFD,
-                                       TmpArchive, true, 0666);
+                                       TmpArchive, true, sys::fs::all_read | sys::fs::all_write);
   if (EC)
     return true;