operator int() const {return FileDescriptor;}
};
+}
- error_code TempDir(SmallVectorImpl<char> &result) {
- // FIXME: Don't use TMPDIR if program is SUID or SGID enabled.
- const char *dir = 0;
- (dir = std::getenv("TMPDIR" )) ||
- (dir = std::getenv("TMP" )) ||
- (dir = std::getenv("TEMP" )) ||
- (dir = std::getenv("TEMPDIR")) ||
+static error_code TempDir(SmallVectorImpl<char> &result) {
+ // FIXME: Don't use TMPDIR if program is SUID or SGID enabled.
+ const char *dir = 0;
+ (dir = std::getenv("TMPDIR")) || (dir = std::getenv("TMP")) ||
+ (dir = std::getenv("TEMP")) || (dir = std::getenv("TEMPDIR")) ||
#ifdef P_tmpdir
- (dir = P_tmpdir) ||
+ (dir = P_tmpdir) ||
#endif
- (dir = "/tmp");
+ (dir = "/tmp");
- result.clear();
- StringRef d(dir);
- result.append(d.begin(), d.end());
- return error_code::success();
- }
+ result.clear();
+ StringRef d(dir);
+ result.append(d.begin(), d.end());
+ return error_code::success();
}
static error_code createUniqueEntity(const Twine &Model, int &ResultFD,
using llvm::sys::windows::UTF8ToUTF16;
using llvm::sys::windows::UTF16ToUTF8;
-namespace {
- error_code TempDir(SmallVectorImpl<wchar_t> &result) {
- retry_temp_dir:
- DWORD len = ::GetTempPathW(result.capacity(), result.begin());
+static error_code TempDir(SmallVectorImpl<wchar_t> &result) {
+retry_temp_dir:
+ DWORD len = ::GetTempPathW(result.capacity(), result.begin());
- if (len == 0)
- return windows_error(::GetLastError());
-
- if (len > result.capacity()) {
- result.reserve(len);
- goto retry_temp_dir;
- }
+ if (len == 0)
+ return windows_error(::GetLastError());
- result.set_size(len);
- return error_code::success();
+ if (len > result.capacity()) {
+ result.reserve(len);
+ goto retry_temp_dir;
}
- bool is_separator(const wchar_t value) {
- switch (value) {
- case L'\\':
- case L'/':
- return true;
- default:
- return false;
- }
+ result.set_size(len);
+ return error_code::success();
+}
+
+static bool is_separator(const wchar_t value) {
+ switch (value) {
+ case L'\\':
+ case L'/':
+ return true;
+ default:
+ return false;
}
}