clang: error: unable to make temporary file: /etc/cc: can't make
unique filename: Permission denied
instead of
clang: error: unable to make temporary file: /etc/cc: can't make
unique filenamePermission denied
for example.
Also, audited the uses of MakeErrMsg to make the prefix strings
consistent (not end with newline/punctuation/space/": ").
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69626
91177308-0d34-0410-b5e6-
96231b3b80d8
(vm_size_t)(pageSize*NumPages), 0,
VM_PROT_READ | VM_PROT_EXECUTE | VM_PROT_COPY);
if (KERN_SUCCESS != kr) {
- MakeErrMsg(ErrMsg, "vm_protect max RX failed\n");
+ MakeErrMsg(ErrMsg, "vm_protect max RX failed");
return sys::MemoryBlock();
}
(vm_size_t)(pageSize*NumPages), 0,
VM_PROT_READ | VM_PROT_WRITE);
if (KERN_SUCCESS != kr) {
- MakeErrMsg(ErrMsg, "vm_protect RW failed\n");
+ MakeErrMsg(ErrMsg, "vm_protect RW failed");
return sys::MemoryBlock();
}
#endif
Path::renamePathOnDisk(const Path& newName, std::string* ErrMsg) {
if (0 != ::rename(path.c_str(), newName.c_str()))
return MakeErrMsg(ErrMsg, std::string("can't rename '") + path + "' as '" +
- newName.toString() + "' ");
+ newName.toString() + "'");
return false;
}
if (errno != EINTR && errno != EAGAIN) {
::close(inFile);
::close(outFile);
- return MakeErrMsg(ErrMsg, Src.toString()+": can't read source file: ");
+ return MakeErrMsg(ErrMsg, Src.toString()+": can't read source file");
}
} else {
char *BufPtr = Buffer;
::close(inFile);
::close(outFile);
return MakeErrMsg(ErrMsg, Dest.toString() +
- ": can't write destination file: ");
+ ": can't write destination file");
}
} else {
Amt -= AmtWritten;
int InFD = open(File.c_str(), FD == 0 ? O_RDONLY : O_WRONLY|O_CREAT, 0666);
if (InFD == -1) {
MakeErrMsg(ErrMsg, "Cannot open file '" + File + "' for "
- + (FD == 0 ? "input" : "output") + "!\n");
+ + (FD == 0 ? "input" : "output"));
return true;
}
/// string and the Unix error number given by \p errnum. If errnum is -1, the
/// default then the value of errno is used.
/// @brief Make an error message
+///
+/// If the error number can be converted to a string, it will be
+/// separated from prefix by ": ".
static inline bool MakeErrMsg(
std::string* ErrMsg, const std::string& prefix, int errnum = -1) {
if (!ErrMsg)
// but, oh well, just use a generic message
sprintf(buffer, "Error #%d", errnum);
#endif
- *ErrMsg = prefix + buffer;
+ *ErrMsg = prefix + ": " + buffer;
return true;
}