blob: 76d8ab0e720f6c24093d75d0a7ef0992ab09bb9e [file] [log] [blame]
Eric Fiselier38236b52016-01-19 21:52:04 +00001//===----------------------------------------------------------------------===//
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//===----------------------------------------------------------------------===//
Eric Fiselier6fe361c2015-02-05 23:01:40 +00009#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
Eric Fiselierf9645c32017-05-31 21:39:54 +000040// 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
Eric Fiselier89918ca2017-05-31 21:20:18 +000047
Eric Fiselier5741d862017-01-07 11:27:06 +000048// 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
Alexander Richardson42bfedd2017-11-14 11:14:25 +000055#define __output NASTY_MACRO
56#define __input NASTY_MACRO
57
Eric Fiselier6fe361c2015-02-05 23:01:40 +000058#endif // SUPPORT_NASTY_MACROS_HPP