[llvm] r201258 - Rename Windows.h to WindowsSupport.h to avoid ambiguity
Reid Kleckner
reid at kleckner.net
Wed Feb 12 13:26:21 PST 2014
Author: rnk
Date: Wed Feb 12 15:26:20 2014
New Revision: 201258
URL: http://llvm.org/viewvc/llvm-project?rev=201258&view=rev
Log:
Rename Windows.h to WindowsSupport.h to avoid ambiguity
Added:
llvm/trunk/lib/Support/Windows/WindowsSupport.h
- copied, changed from r201256, llvm/trunk/lib/Support/Windows/Windows.h
Removed:
llvm/trunk/lib/Support/Windows/Windows.h
Modified:
llvm/trunk/lib/Support/CrashRecoveryContext.cpp
llvm/trunk/lib/Support/Threading.cpp
llvm/trunk/lib/Support/Windows/DynamicLibrary.inc
llvm/trunk/lib/Support/Windows/Host.inc
llvm/trunk/lib/Support/Windows/Memory.inc
llvm/trunk/lib/Support/Windows/Mutex.inc
llvm/trunk/lib/Support/Windows/Path.inc
llvm/trunk/lib/Support/Windows/Process.inc
llvm/trunk/lib/Support/Windows/Program.inc
llvm/trunk/lib/Support/Windows/RWMutex.inc
llvm/trunk/lib/Support/Windows/Signals.inc
llvm/trunk/lib/Support/Windows/ThreadLocal.inc
llvm/trunk/lib/Support/Windows/TimeValue.inc
Modified: llvm/trunk/lib/Support/CrashRecoveryContext.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/CrashRecoveryContext.cpp?rev=201258&r1=201257&r2=201258&view=diff
==============================================================================
--- llvm/trunk/lib/Support/CrashRecoveryContext.cpp (original)
+++ llvm/trunk/lib/Support/CrashRecoveryContext.cpp Wed Feb 12 15:26:20 2014
@@ -132,7 +132,7 @@ CrashRecoveryContext::unregisterCleanup(
#ifdef LLVM_ON_WIN32
-#include "Windows/Windows.h"
+#include "Windows/WindowsSupport.h"
// On Windows, we can make use of vectored exception handling to
// catch most crashing situations. Note that this does mean
Modified: llvm/trunk/lib/Support/Threading.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/Threading.cpp?rev=201258&r1=201257&r2=201258&view=diff
==============================================================================
--- llvm/trunk/lib/Support/Threading.cpp (original)
+++ llvm/trunk/lib/Support/Threading.cpp Wed Feb 12 15:26:20 2014
@@ -103,7 +103,7 @@ void llvm::llvm_execute_on_thread(void (
::pthread_attr_destroy(&Attr);
}
#elif LLVM_ENABLE_THREADS!=0 && defined(LLVM_ON_WIN32)
-#include "Windows/Windows.h"
+#include "Windows/WindowsSupport.h"
#include <process.h>
struct ThreadInfo {
Modified: llvm/trunk/lib/Support/Windows/DynamicLibrary.inc
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/Windows/DynamicLibrary.inc?rev=201258&r1=201257&r2=201258&view=diff
==============================================================================
--- llvm/trunk/lib/Support/Windows/DynamicLibrary.inc (original)
+++ llvm/trunk/lib/Support/Windows/DynamicLibrary.inc Wed Feb 12 15:26:20 2014
@@ -11,7 +11,7 @@
//
//===----------------------------------------------------------------------===//
-#include "Windows.h"
+#include "WindowsSupport.h"
#ifdef __MINGW32__
#include <imagehlp.h>
Modified: llvm/trunk/lib/Support/Windows/Host.inc
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/Windows/Host.inc?rev=201258&r1=201257&r2=201258&view=diff
==============================================================================
--- llvm/trunk/lib/Support/Windows/Host.inc (original)
+++ llvm/trunk/lib/Support/Windows/Host.inc Wed Feb 12 15:26:20 2014
@@ -11,7 +11,7 @@
//
//===----------------------------------------------------------------------===//
-#include "Windows.h"
+#include "WindowsSupport.h"
#include <cstdio>
#include <string>
Modified: llvm/trunk/lib/Support/Windows/Memory.inc
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/Windows/Memory.inc?rev=201258&r1=201257&r2=201258&view=diff
==============================================================================
--- llvm/trunk/lib/Support/Windows/Memory.inc (original)
+++ llvm/trunk/lib/Support/Windows/Memory.inc Wed Feb 12 15:26:20 2014
@@ -17,7 +17,7 @@
#include "llvm/Support/Process.h"
// The Windows.h header must be the last one included.
-#include "Windows.h"
+#include "WindowsSupport.h"
namespace {
Modified: llvm/trunk/lib/Support/Windows/Mutex.inc
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/Windows/Mutex.inc?rev=201258&r1=201257&r2=201258&view=diff
==============================================================================
--- llvm/trunk/lib/Support/Windows/Mutex.inc (original)
+++ llvm/trunk/lib/Support/Windows/Mutex.inc Wed Feb 12 15:26:20 2014
@@ -16,7 +16,7 @@
//=== is guaranteed to work on *all* Win32 variants.
//===----------------------------------------------------------------------===//
-#include "Windows.h"
+#include "WindowsSupport.h"
#include "llvm/Support/Mutex.h"
namespace llvm {
Modified: llvm/trunk/lib/Support/Windows/Path.inc
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/Windows/Path.inc?rev=201258&r1=201257&r2=201258&view=diff
==============================================================================
--- llvm/trunk/lib/Support/Windows/Path.inc (original)
+++ llvm/trunk/lib/Support/Windows/Path.inc Wed Feb 12 15:26:20 2014
@@ -24,7 +24,7 @@
// These two headers must be included last, and make sure shlobj is required
// after Windows.h to make sure it picks up our definition of _WIN32_WINNT
-#include "Windows.h"
+#include "WindowsSupport.h"
#include <shlobj.h>
#undef max
Modified: llvm/trunk/lib/Support/Windows/Process.inc
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/Windows/Process.inc?rev=201258&r1=201257&r2=201258&view=diff
==============================================================================
--- llvm/trunk/lib/Support/Windows/Process.inc (original)
+++ llvm/trunk/lib/Support/Windows/Process.inc Wed Feb 12 15:26:20 2014
@@ -15,7 +15,7 @@
#include <malloc.h>
// The Windows.h header must be after LLVM and standard headers.
-#include "Windows.h"
+#include "WindowsSupport.h"
#include <direct.h>
#include <io.h>
Modified: llvm/trunk/lib/Support/Windows/Program.inc
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/Windows/Program.inc?rev=201258&r1=201257&r2=201258&view=diff
==============================================================================
--- llvm/trunk/lib/Support/Windows/Program.inc (original)
+++ llvm/trunk/lib/Support/Windows/Program.inc Wed Feb 12 15:26:20 2014
@@ -11,7 +11,7 @@
//
//===----------------------------------------------------------------------===//
-#include "Windows.h"
+#include "WindowsSupport.h"
#include "llvm/ADT/OwningPtr.h"
#include "llvm/Support/FileSystem.h"
#include <cstdio>
Modified: llvm/trunk/lib/Support/Windows/RWMutex.inc
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/Windows/RWMutex.inc?rev=201258&r1=201257&r2=201258&view=diff
==============================================================================
--- llvm/trunk/lib/Support/Windows/RWMutex.inc (original)
+++ llvm/trunk/lib/Support/Windows/RWMutex.inc Wed Feb 12 15:26:20 2014
@@ -16,7 +16,7 @@
//=== is guaranteed to work on *all* Win32 variants.
//===----------------------------------------------------------------------===//
-#include "Windows.h"
+#include "WindowsSupport.h"
namespace llvm {
using namespace sys;
Modified: llvm/trunk/lib/Support/Windows/Signals.inc
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/Windows/Signals.inc?rev=201258&r1=201257&r2=201258&view=diff
==============================================================================
--- llvm/trunk/lib/Support/Windows/Signals.inc (original)
+++ llvm/trunk/lib/Support/Windows/Signals.inc Wed Feb 12 15:26:20 2014
@@ -17,7 +17,7 @@
#include <vector>
// The Windows.h header must be after LLVM and standard headers.
-#include "Windows.h"
+#include "WindowsSupport.h"
#ifdef __MINGW32__
#include <imagehlp.h>
Modified: llvm/trunk/lib/Support/Windows/ThreadLocal.inc
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/Windows/ThreadLocal.inc?rev=201258&r1=201257&r2=201258&view=diff
==============================================================================
--- llvm/trunk/lib/Support/Windows/ThreadLocal.inc (original)
+++ llvm/trunk/lib/Support/Windows/ThreadLocal.inc Wed Feb 12 15:26:20 2014
@@ -16,7 +16,7 @@
//=== is guaranteed to work on *all* Win32 variants.
//===----------------------------------------------------------------------===//
-#include "Windows.h"
+#include "WindowsSupport.h"
#include "llvm/Support/ThreadLocal.h"
namespace llvm {
Modified: llvm/trunk/lib/Support/Windows/TimeValue.inc
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/Windows/TimeValue.inc?rev=201258&r1=201257&r2=201258&view=diff
==============================================================================
--- llvm/trunk/lib/Support/Windows/TimeValue.inc (original)
+++ llvm/trunk/lib/Support/Windows/TimeValue.inc Wed Feb 12 15:26:20 2014
@@ -11,7 +11,7 @@
//
//===----------------------------------------------------------------------===//
-#include "Windows.h"
+#include "WindowsSupport.h"
#include <cctype>
#include <time.h>
Removed: llvm/trunk/lib/Support/Windows/Windows.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/Windows/Windows.h?rev=201257&view=auto
==============================================================================
--- llvm/trunk/lib/Support/Windows/Windows.h (original)
+++ llvm/trunk/lib/Support/Windows/Windows.h (removed)
@@ -1,169 +0,0 @@
-//===- Win32/Win32.h - Common Win32 Include File ----------------*- C++ -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines things specific to Win32 implementations.
-//
-//===----------------------------------------------------------------------===//
-
-//===----------------------------------------------------------------------===//
-//=== WARNING: Implementation here must contain only generic Win32 code that
-//=== is guaranteed to work on *all* Win32 variants.
-//===----------------------------------------------------------------------===//
-
-// mingw-w64 tends to define it as 0x0502 in its headers.
-#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.
-#define WIN32_LEAN_AND_MEAN
-
-#include "llvm/ADT/SmallVector.h"
-#include "llvm/ADT/StringRef.h"
-#include "llvm/Config/config.h" // Get build system configuration settings
-#include "llvm/Support/Compiler.h"
-#include "llvm/Support/system_error.h"
-#include <windows.h>
-#include <wincrypt.h>
-#include <cassert>
-#include <string>
-#include <vector>
-
-inline bool MakeErrMsg(std::string* ErrMsg, const std::string& prefix) {
- if (!ErrMsg)
- return true;
- char *buffer = NULL;
- DWORD R = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
- FORMAT_MESSAGE_FROM_SYSTEM,
- NULL, GetLastError(), 0, (LPSTR)&buffer, 1, NULL);
- if (R)
- *ErrMsg = prefix + buffer;
- else
- *ErrMsg = prefix + "Unknown error";
-
- LocalFree(buffer);
- return R != 0;
-}
-
-template <typename HandleTraits>
-class ScopedHandle {
- typedef typename HandleTraits::handle_type handle_type;
- handle_type Handle;
-
- ScopedHandle(const ScopedHandle &other); // = delete;
- void operator=(const ScopedHandle &other); // = delete;
-public:
- ScopedHandle()
- : Handle(HandleTraits::GetInvalid()) {}
-
- explicit ScopedHandle(handle_type h)
- : Handle(h) {}
-
- ~ScopedHandle() {
- if (HandleTraits::IsValid(Handle))
- HandleTraits::Close(Handle);
- }
-
- handle_type take() {
- handle_type t = Handle;
- Handle = HandleTraits::GetInvalid();
- return t;
- }
-
- ScopedHandle &operator=(handle_type h) {
- if (HandleTraits::IsValid(Handle))
- HandleTraits::Close(Handle);
- Handle = h;
- return *this;
- }
-
- // True if Handle is valid.
- LLVM_EXPLICIT operator bool() const {
- return HandleTraits::IsValid(Handle) ? true : false;
- }
-
- operator handle_type() const {
- return Handle;
- }
-};
-
-struct CommonHandleTraits {
- typedef HANDLE handle_type;
-
- static handle_type GetInvalid() {
- return INVALID_HANDLE_VALUE;
- }
-
- static void Close(handle_type h) {
- ::CloseHandle(h);
- }
-
- static bool IsValid(handle_type h) {
- return h != GetInvalid();
- }
-};
-
-struct JobHandleTraits : CommonHandleTraits {
- static handle_type GetInvalid() {
- return NULL;
- }
-};
-
-struct CryptContextTraits : CommonHandleTraits {
- typedef HCRYPTPROV handle_type;
-
- static handle_type GetInvalid() {
- return 0;
- }
-
- static void Close(handle_type h) {
- ::CryptReleaseContext(h, 0);
- }
-
- static bool IsValid(handle_type h) {
- return h != GetInvalid();
- }
-};
-
-struct FindHandleTraits : CommonHandleTraits {
- static void Close(handle_type h) {
- ::FindClose(h);
- }
-};
-
-struct FileHandleTraits : CommonHandleTraits {};
-
-typedef ScopedHandle<CommonHandleTraits> ScopedCommonHandle;
-typedef ScopedHandle<FileHandleTraits> ScopedFileHandle;
-typedef ScopedHandle<CryptContextTraits> ScopedCryptContext;
-typedef ScopedHandle<FindHandleTraits> ScopedFindHandle;
-typedef ScopedHandle<JobHandleTraits> ScopedJobHandle;
-
-namespace llvm {
-template <class T>
-class SmallVectorImpl;
-
-template <class T>
-typename SmallVectorImpl<T>::const_pointer
-c_str(SmallVectorImpl<T> &str) {
- str.push_back(0);
- str.pop_back();
- return str.data();
-}
-
-namespace sys {
-namespace windows {
-error_code UTF8ToUTF16(StringRef utf8,
- SmallVectorImpl<wchar_t> &utf16);
-error_code UTF16ToUTF8(const wchar_t *utf16, size_t utf16_len,
- SmallVectorImpl<char> &utf8);
-} // end namespace windows
-} // end namespace sys
-} // end namespace llvm.
Copied: llvm/trunk/lib/Support/Windows/WindowsSupport.h (from r201256, llvm/trunk/lib/Support/Windows/Windows.h)
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/Windows/WindowsSupport.h?p2=llvm/trunk/lib/Support/Windows/WindowsSupport.h&p1=llvm/trunk/lib/Support/Windows/Windows.h&r1=201256&r2=201258&rev=201258&view=diff
==============================================================================
--- llvm/trunk/lib/Support/Windows/Windows.h (original)
+++ llvm/trunk/lib/Support/Windows/WindowsSupport.h Wed Feb 12 15:26:20 2014
@@ -1,4 +1,4 @@
-//===- Win32/Win32.h - Common Win32 Include File ----------------*- C++ -*-===//
+//===- WindowsSupport.h - Common Windows Include File -----------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
@@ -7,7 +7,10 @@
//
//===----------------------------------------------------------------------===//
//
-// This file defines things specific to Win32 implementations.
+// This file defines things specific to Windows implementations. In addition to
+// providing some helpers for working with win32 APIs, this header wraps
+// <windows.h> with some portability macros. Always include WindowsSupport.h
+// instead of including <windows.h> directly.
//
//===----------------------------------------------------------------------===//
More information about the llvm-commits
mailing list