summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
Diffstat (limited to 'llvm')
-rw-r--r--llvm/lib/System/Win32/Win32.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/llvm/lib/System/Win32/Win32.h b/llvm/lib/System/Win32/Win32.h
index 7ed10471de1..d1029916605 100644
--- a/llvm/lib/System/Win32/Win32.h
+++ b/llvm/lib/System/Win32/Win32.h
@@ -24,6 +24,16 @@
#include <cassert>
#include <string>
+inline bool GetError(const std::string &Prefix, std::string *Dest) {
+ if (Dest == 0) return;
+ char *buffer = NULL;
+ FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM,
+ NULL, GetLastError(), 0, (LPSTR)&buffer, 1, NULL);
+ *Dest = Prefix + buffer;
+ LocalFree(buffer);
+ return true;
+}
+
inline void ThrowError(const std::string& msg) {
char *buffer = NULL;
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM,
OpenPOWER on IntegriCloud