diff options
Diffstat (limited to 'contrib/llvm/lib/Support/Windows/WindowsSupport.h')
| -rw-r--r-- | contrib/llvm/lib/Support/Windows/WindowsSupport.h | 18 | 
1 files changed, 11 insertions, 7 deletions
diff --git a/contrib/llvm/lib/Support/Windows/WindowsSupport.h b/contrib/llvm/lib/Support/Windows/WindowsSupport.h index 5bb0b8d2d788..34d961b148d1 100644 --- a/contrib/llvm/lib/Support/Windows/WindowsSupport.h +++ b/contrib/llvm/lib/Support/Windows/WindowsSupport.h @@ -26,12 +26,13 @@  #undef _WIN32_WINNT  #undef _WIN32_IE -// Require at least Windows XP(5.1) API. -#define _WIN32_WINNT 0x0501 -#define _WIN32_IE    0x0600 // MinGW at it again. +// Require at least Windows 7 API. +#define _WIN32_WINNT 0x0601 +#define _WIN32_IE    0x0800 // MinGW at it again. FIXME: verify if still needed.  #define WIN32_LEAN_AND_MEAN  #include "llvm/ADT/SmallVector.h" +#include "llvm/ADT/StringExtras.h"  #include "llvm/ADT/StringRef.h"  #include "llvm/ADT/Twine.h"  #include "llvm/Config/config.h" // Get build system configuration settings @@ -47,13 +48,16 @@ inline bool MakeErrMsg(std::string* ErrMsg, const std::string& prefix) {    if (!ErrMsg)      return true;    char *buffer = NULL; +  DWORD LastError = GetLastError();    DWORD R = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | -                          FORMAT_MESSAGE_FROM_SYSTEM, -                          NULL, GetLastError(), 0, (LPSTR)&buffer, 1, NULL); +                          FORMAT_MESSAGE_FROM_SYSTEM | +                          FORMAT_MESSAGE_MAX_WIDTH_MASK, +                          NULL, LastError, 0, (LPSTR)&buffer, 1, NULL);    if (R) -    *ErrMsg = prefix + buffer; +    *ErrMsg = prefix + ": " + buffer;    else -    *ErrMsg = prefix + "Unknown error"; +    *ErrMsg = prefix + ": Unknown error"; +  *ErrMsg += " (0x" + llvm::utohexstr(LastError) + ")";    LocalFree(buffer);    return R != 0;  | 
