1//===----------------------------------------------------------------------===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is dual licensed under the MIT and the University of Illinois Open
6// Source Licenses. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9#ifndef SUPPORT_NASTY_MACROS_HPP
10#define SUPPORT_NASTY_MACROS_HPP
11
12#define NASTY_MACRO This should not be expanded!!!
13#define _A NASTY_MACRO
14#define _B NASTY_MACRO
15#define _C NASTY_MACRO
16#define _D NASTY_MACRO
17#define _E NASTY_MACRO
18#define _F NASTY_MACRO
19#define _G NASTY_MACRO
20#define _H NASTY_MACRO
21#define _I NASTY_MACRO
22#define _J NASTY_MACRO
23#define _K NASTY_MACRO
24#define _L NASTY_MACRO
25#define _M NASTY_MACRO
26#define _N NASTY_MACRO
27#define _O NASTY_MACRO
28#define _P NASTY_MACRO
29#define _Q NASTY_MACRO
30#define _R NASTY_MACRO
31#define _S NASTY_MACRO
32#define _T NASTY_MACRO
33#define _U NASTY_MACRO
34#define _V NASTY_MACRO
35#define _W NASTY_MACRO
36#define _X NASTY_MACRO
37#define _Y NASTY_MACRO
38#define _Z NASTY_MACRO
39
40// tchar.h defines these macros on Windows.
41#define _UI   NASTY_MACRO
42#define _PUC  NASTY_MACRO
43#define _CPUC NASTY_MACRO
44#define _PC   NASTY_MACRO
45#define _CRPC NASTY_MACRO
46#define _CPC  NASTY_MACRO
47
48// Test that libc++ doesn't use names reserved by WIN32 API Macros.
49// NOTE: Obviously we can only define these on non-windows platforms.
50#ifndef _WIN32
51#define __deallocate NASTY_MACRO
52#define __out NASTY_MACRO
53#endif
54
55#endif // SUPPORT_NASTY_MACROS_HPP
56