Merge pull request #662 from richlander/rich-wiki
[platform/upstream/coreclr.git] / src / cpp.hint
1 //
2 // cpp.hint: What is this thing?
3 //
4 // This file is used solely to aid VS Intellisense while editing.  It is not
5 // used as part of any build.
6 // 
7 // VS Intellisense does not run the C preprocessor, so it's possible for some macros
8 // to confuse it, particularly when those macros expand to control-flow keywords
9 // or portions of declarations.  That's where this file comes in.  Any macro
10 // that appears to confuse VS Intellisense can have its definition duplicated
11 // here.  Macros defined here WILL be respected by VS Intellisense.
12 //
13
14 // Contracts
15 #define CONTRACT(x)
16 #define CUSTOM_CONTRACT(x,y)
17 #define CUSTOM_CONTRACT_VOID(x)
18 #define CONTRACT_VOID
19 #define CONTRACTL
20 #define LIMITED_METHOD_CONTRACT(x)
21 #define STATIC_CONTRACT_NOTHROW
22 #define WRAPPER_NO_CONTRACT
23
24
25 // Exceptions
26 #define PAL_ENDTRY
27 #define PAL_EXCEPT_FILTER(x)
28 #define PAL_TRY(x, y, z)
29 #define _EXCEPTION_HANDLER_DECL(funcname)                                                               \
30     EXCEPTION_DISPOSITION __cdecl funcname(EXCEPTION_RECORD *pExceptionRecord,                          \
31                                            struct _EXCEPTION_REGISTRATION_RECORD *pEstablisherFrame,    \
32                                            CONTEXT *pContext,                                           \
33                                            DISPATCHER_CONTEXT *pDispatcherContext)
34
35 #define EXCEPTION_HANDLER_DECL(funcname) \
36     extern "C"  _EXCEPTION_HANDLER_DECL(funcname)
37
38 #define EXCEPTION_HANDLER_IMPL(funcname) \
39     _EXCEPTION_HANDLER_DECL(funcname)
40
41 #define EXCEPTION_HANDLER_FWD(funcname) \
42     funcname(pExceptionRecord, pEstablisherFrame, pContext, pDispatcherContext)
43
44
45 // DAC
46 #define GVAL_ADDR(g) (&(g))
47 #define _SPTR_DECL(acc_type, store_type, var) \
48     static store_type var
49 #define _SPTR_IMPL(acc_type, store_type, cls, var) \
50     store_type cls::var
51 #define _SPTR_IMPL_INIT(acc_type, store_type, cls, var, init) \
52     store_type cls::var = init
53 #define _SPTR_IMPL_NS(acc_type, store_type, ns, cls, var) \
54     store_type cls::var
55 #define _SPTR_IMPL_NS_INIT(acc_type, store_type, ns, cls, var, init) \
56     store_type cls::var = init
57 #define _GPTR_DECL(acc_type, store_type, var) \
58     extern store_type var
59 #define _GPTR_IMPL(acc_type, store_type, var) \
60     store_type var
61 #define _GPTR_IMPL_INIT(acc_type, store_type, var, init) \
62     store_type var = init
63 #define SVAL_DECL(type, var) \
64     static type var
65 #define SVAL_IMPL(type, cls, var) \
66     type cls::var
67 #define SVAL_IMPL_INIT(type, cls, var, init) \
68     type cls::var = init
69 #define SVAL_IMPL_NS(type, ns, cls, var) \
70     type cls::var
71 #define SVAL_IMPL_NS_INIT(type, ns, cls, var, init) \
72     type cls::var = init
73 #define GVAL_DECL(type, var) \
74     extern type var
75 #define GVAL_IMPL(type, var) \
76     type var
77 #define GVAL_IMPL_INIT(type, var, init) \
78     type var = init
79 #define GARY_DECL(type, var, size) \
80     extern type var[size]
81 #define GARY_IMPL(type, var, size) \
82     type var[size]