diff options
Diffstat (limited to 'llvm/lib/Support')
-rw-r--r-- | llvm/lib/Support/Unix/Path.inc | 12 | ||||
-rw-r--r-- | llvm/lib/Support/Windows/Path.inc | 8 |
2 files changed, 13 insertions, 7 deletions
diff --git a/llvm/lib/Support/Unix/Path.inc b/llvm/lib/Support/Unix/Path.inc index 58c15023bab..e80880c6b3c 100644 --- a/llvm/lib/Support/Unix/Path.inc +++ b/llvm/lib/Support/Unix/Path.inc @@ -702,19 +702,21 @@ unsigned getUmask() { return Mask; } -std::error_code setPermissions(const Twine &Path, perms Permissions, - bool RespectUmask) { +std::error_code setPermissions(const Twine &Path, perms Permissions) { SmallString<128> PathStorage; StringRef P = Path.toNullTerminatedStringRef(PathStorage); - if (RespectUmask) - Permissions = static_cast<perms>(Permissions & ~getUmask()); - if (::chmod(P.begin(), Permissions)) return std::error_code(errno, std::generic_category()); return std::error_code(); } +std::error_code setPermissions(int FD, perms Permissions) { + if (::fchmod(FD, Permissions)) + return std::error_code(errno, std::generic_category()); + return std::error_code(); +} + std::error_code setLastAccessAndModificationTime(int FD, TimePoint<> AccessTime, TimePoint<> ModificationTime) { #if defined(HAVE_FUTIMENS) diff --git a/llvm/lib/Support/Windows/Path.inc b/llvm/lib/Support/Windows/Path.inc index 045d0b9ed58..5704930aeec 100644 --- a/llvm/lib/Support/Windows/Path.inc +++ b/llvm/lib/Support/Windows/Path.inc @@ -742,8 +742,7 @@ unsigned getUmask() { return 0; } -std::error_code setPermissions(const Twine &Path, perms Permissions, - bool /*RespectUmask*/) { +std::error_code setPermissions(const Twine &Path, perms Permissions) { SmallVector<wchar_t, 128> PathUTF16; if (std::error_code EC = widenPath(Path, PathUTF16)) return EC; @@ -774,6 +773,11 @@ std::error_code setPermissions(const Twine &Path, perms Permissions, return std::error_code(); } +std::error_code setPermissions(int FD, perms Permissions) { + // FIXME Not implemented. + return std::make_error_code(std::errc::not_supported); +} + std::error_code setLastAccessAndModificationTime(int FD, TimePoint<> AccessTime, TimePoint<> ModificationTime) { FILETIME AccessFT = toFILETIME(AccessTime); |