First version of a common header file for Win32 implementations.
authorReid Spencer <rspencer@reidspencer.com>
Wed, 15 Sep 2004 05:48:11 +0000 (05:48 +0000)
committerReid Spencer <rspencer@reidspencer.com>
Wed, 15 Sep 2004 05:48:11 +0000 (05:48 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16360 91177308-0d34-0410-b5e6-96231b3b80d8

lib/System/Win32/Win32.h [new file with mode: 0644]

diff --git a/lib/System/Win32/Win32.h b/lib/System/Win32/Win32.h
new file mode 100644 (file)
index 0000000..fb2c7e9
--- /dev/null
@@ -0,0 +1,33 @@
+//===- Win32/Win32.h - Common Win32 Include File ----------------*- C++ -*-===//
+// 
+//                     The LLVM Compiler Infrastructure
+//
+// This file was developed by Reid Spencer and is distributed under the 
+// University of Illinois Open Source License. See LICENSE.TXT for details.
+// 
+//===----------------------------------------------------------------------===//
+//
+// This file defines things specific to Unix implementations.
+//
+//===----------------------------------------------------------------------===//
+
+//===----------------------------------------------------------------------===//
+//=== WARNING: Implementation here must contain only generic UNIX code that
+//===          is guaranteed to work on all UNIX variants.
+//===----------------------------------------------------------------------===//
+
+#include "llvm/Config/config.h"     // Get autoconf configuration settings
+#include "windows.h"
+#include <cassert>
+#include <string>
+
+inline void ThrowError(const std::string& msg) {
+  char *buffer = NULL;
+  FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM,
+      NULL, GetLastError(), 0, (LPSTR)&buffer, 1, NULL);
+  std::string s(msg);
+  s += buffer;
+  LocalFree(buffer);
+  throw s;
+}
+