From a7f2a9e69fc53920640c4707cc8c4045d9ea7db9 Mon Sep 17 00:00:00 2001 From: Daniel Dunbar Date: Mon, 20 Apr 2009 20:50:13 +0000 Subject: [PATCH] Make Unix.h:MakeErrMsg separate the prefix and errno string, so we get: 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 --- lib/System/Unix/Memory.inc | 4 ++-- lib/System/Unix/Path.inc | 6 +++--- lib/System/Unix/Program.inc | 2 +- lib/System/Unix/Unix.h | 5 ++++- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/lib/System/Unix/Memory.inc b/lib/System/Unix/Memory.inc index cfc5a6871dc..b7a70135bcb 100644 --- a/lib/System/Unix/Memory.inc +++ b/lib/System/Unix/Memory.inc @@ -76,7 +76,7 @@ llvm::sys::Memory::AllocateRWX(unsigned NumBytes, const MemoryBlock* NearBlock, (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(); } @@ -84,7 +84,7 @@ llvm::sys::Memory::AllocateRWX(unsigned NumBytes, const MemoryBlock* NearBlock, (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 diff --git a/lib/System/Unix/Path.inc b/lib/System/Unix/Path.inc index 4a6b5051998..6bcb00fa828 100644 --- a/lib/System/Unix/Path.inc +++ b/lib/System/Unix/Path.inc @@ -748,7 +748,7 @@ bool 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; } @@ -786,7 +786,7 @@ sys::CopyFile(const sys::Path &Dest, const sys::Path &Src, std::string* ErrMsg){ 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; @@ -797,7 +797,7 @@ sys::CopyFile(const sys::Path &Dest, const sys::Path &Src, std::string* ErrMsg){ ::close(inFile); ::close(outFile); return MakeErrMsg(ErrMsg, Dest.toString() + - ": can't write destination file: "); + ": can't write destination file"); } } else { Amt -= AmtWritten; diff --git a/lib/System/Unix/Program.inc b/lib/System/Unix/Program.inc index 2426900578b..cdc6fee6094 100644 --- a/lib/System/Unix/Program.inc +++ b/lib/System/Unix/Program.inc @@ -99,7 +99,7 @@ static bool RedirectIO(const Path *Path, int FD, std::string* ErrMsg) { 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; } diff --git a/lib/System/Unix/Unix.h b/lib/System/Unix/Unix.h index b2c3160a415..452226f4f79 100644 --- a/lib/System/Unix/Unix.h +++ b/lib/System/Unix/Unix.h @@ -70,6 +70,9 @@ /// 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) @@ -94,7 +97,7 @@ static inline bool MakeErrMsg( // but, oh well, just use a generic message sprintf(buffer, "Error #%d", errnum); #endif - *ErrMsg = prefix + buffer; + *ErrMsg = prefix + ": " + buffer; return true; } -- 2.34.1