[InstCombine] Preserve NSW flags for `lshr (mul nuw X, C1), C2 -> mul nuw nsw X,...
[llvm-project.git] / clang / test / AST / ast-dump-macro-json.c
blob96f4be6fec3ddfe63d677b2fc11c2d991f89de7e
1 // RUN: %clang_cc1 -triple x86_64-unknown-unknown -ast-dump=json %s | FileCheck %s
3 #define FOO frobble
4 #define BAR FOO
6 void FOO(void);
7 void BAR(void);
9 #define BING(x) x
11 void BING(quux)(void);
13 #define BLIP(x, y) x ## y
14 #define BLAP(x, y) BLIP(x, y)
16 void BLAP(foo, __COUNTER__)(void);
17 void BLAP(foo, __COUNTER__)(void);
19 // NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py
20 // using --filters=FunctionDecl
22 // CHECK-NOT: {{^}}Dumping
23 // CHECK: "kind": "FunctionDecl",
24 // CHECK-NEXT: "loc": {
25 // CHECK-NEXT: "spellingLoc": {
26 // CHECK-NEXT: "offset": {{[0-9]+}},
27 // CHECK-NEXT: "file": "{{.*}}",
28 // CHECK-NEXT: "line": 3,
29 // CHECK-NEXT: "col": 13,
30 // CHECK-NEXT: "tokLen": 7
31 // CHECK-NEXT: },
32 // CHECK-NEXT: "expansionLoc": {
33 // CHECK-NEXT: "offset": {{[0-9]+}},
34 // CHECK-NEXT: "line": 6,
35 // CHECK-NEXT: "col": 6,
36 // CHECK-NEXT: "tokLen": 3
37 // CHECK-NEXT: }
38 // CHECK-NEXT: },
39 // CHECK-NEXT: "range": {
40 // CHECK-NEXT: "begin": {
41 // CHECK-NEXT: "offset": {{[0-9]+}},
42 // CHECK-NEXT: "col": 1,
43 // CHECK-NEXT: "tokLen": 4
44 // CHECK-NEXT: },
45 // CHECK-NEXT: "end": {
46 // CHECK-NEXT: "offset": {{[0-9]+}},
47 // CHECK-NEXT: "col": 14,
48 // CHECK-NEXT: "tokLen": 1
49 // CHECK-NEXT: }
50 // CHECK-NEXT: },
51 // CHECK-NEXT: "name": "frobble",
52 // CHECK-NEXT: "mangledName": "frobble",
53 // CHECK-NEXT: "type": {
54 // CHECK-NEXT: "qualType": "void (void)"
55 // CHECK-NEXT: }
56 // CHECK-NEXT: }
58 // CHECK-NOT: {{^}}Dumping
59 // CHECK: "kind": "FunctionDecl",
60 // CHECK-NEXT: "loc": {
61 // CHECK-NEXT: "spellingLoc": {
62 // CHECK-NEXT: "offset": {{[0-9]+}},
63 // CHECK-NEXT: "line": 3,
64 // CHECK-NEXT: "col": 13,
65 // CHECK-NEXT: "tokLen": 7
66 // CHECK-NEXT: },
67 // CHECK-NEXT: "expansionLoc": {
68 // CHECK-NEXT: "offset": {{[0-9]+}},
69 // CHECK-NEXT: "line": 7,
70 // CHECK-NEXT: "col": 6,
71 // CHECK-NEXT: "tokLen": 3
72 // CHECK-NEXT: }
73 // CHECK-NEXT: },
74 // CHECK-NEXT: "range": {
75 // CHECK-NEXT: "begin": {
76 // CHECK-NEXT: "offset": {{[0-9]+}},
77 // CHECK-NEXT: "col": 1,
78 // CHECK-NEXT: "tokLen": 4
79 // CHECK-NEXT: },
80 // CHECK-NEXT: "end": {
81 // CHECK-NEXT: "offset": {{[0-9]+}},
82 // CHECK-NEXT: "col": 14,
83 // CHECK-NEXT: "tokLen": 1
84 // CHECK-NEXT: }
85 // CHECK-NEXT: },
86 // CHECK-NEXT: "previousDecl": "0x{{.*}}",
87 // CHECK-NEXT: "name": "frobble",
88 // CHECK-NEXT: "mangledName": "frobble",
89 // CHECK-NEXT: "type": {
90 // CHECK-NEXT: "qualType": "void (void)"
91 // CHECK-NEXT: }
92 // CHECK-NEXT: }
94 // CHECK-NOT: {{^}}Dumping
95 // CHECK: "kind": "FunctionDecl",
96 // CHECK-NEXT: "loc": {
97 // CHECK-NEXT: "spellingLoc": {
98 // CHECK-NEXT: "offset": {{[0-9]+}},
99 // CHECK-NEXT: "line": 11,
100 // CHECK-NEXT: "col": 11,
101 // CHECK-NEXT: "tokLen": 4
102 // CHECK-NEXT: },
103 // CHECK-NEXT: "expansionLoc": {
104 // CHECK-NEXT: "offset": {{[0-9]+}},
105 // CHECK-NEXT: "col": 6,
106 // CHECK-NEXT: "tokLen": 4,
107 // CHECK-NEXT: "isMacroArgExpansion": true
108 // CHECK-NEXT: }
109 // CHECK-NEXT: },
110 // CHECK-NEXT: "range": {
111 // CHECK-NEXT: "begin": {
112 // CHECK-NEXT: "offset": {{[0-9]+}},
113 // CHECK-NEXT: "col": 1,
114 // CHECK-NEXT: "tokLen": 4
115 // CHECK-NEXT: },
116 // CHECK-NEXT: "end": {
117 // CHECK-NEXT: "offset": {{[0-9]+}},
118 // CHECK-NEXT: "col": 21,
119 // CHECK-NEXT: "tokLen": 1
120 // CHECK-NEXT: }
121 // CHECK-NEXT: },
122 // CHECK-NEXT: "name": "quux",
123 // CHECK-NEXT: "mangledName": "quux",
124 // CHECK-NEXT: "type": {
125 // CHECK-NEXT: "qualType": "void (void)"
126 // CHECK-NEXT: }
127 // CHECK-NEXT: }
129 // CHECK-NOT: {{^}}Dumping
130 // CHECK: "kind": "FunctionDecl",
131 // CHECK-NEXT: "loc": {
132 // CHECK-NEXT: "spellingLoc": {
133 // CHECK-NEXT: "offset": {{[0-9]+}},
134 // CHECK-NEXT: "file": "<scratch space>",
135 // CHECK-NEXT: "line": 3,
136 // CHECK-NEXT: "col": 1,
137 // CHECK-NEXT: "tokLen": 4
138 // CHECK-NEXT: },
139 // CHECK-NEXT: "expansionLoc": {
140 // CHECK-NEXT: "offset": {{[0-9]+}},
141 // CHECK-NEXT: "file": "{{.*}}",
142 // CHECK-NEXT: "line": 16,
143 // CHECK-NEXT: "col": 6,
144 // CHECK-NEXT: "tokLen": 4
145 // CHECK-NEXT: }
146 // CHECK-NEXT: },
147 // CHECK-NEXT: "range": {
148 // CHECK-NEXT: "begin": {
149 // CHECK-NEXT: "offset": {{[0-9]+}},
150 // CHECK-NEXT: "col": 1,
151 // CHECK-NEXT: "tokLen": 4
152 // CHECK-NEXT: },
153 // CHECK-NEXT: "end": {
154 // CHECK-NEXT: "offset": {{[0-9]+}},
155 // CHECK-NEXT: "col": 33,
156 // CHECK-NEXT: "tokLen": 1
157 // CHECK-NEXT: }
158 // CHECK-NEXT: },
159 // CHECK-NEXT: "name": "foo0",
160 // CHECK-NEXT: "mangledName": "foo0",
161 // CHECK-NEXT: "type": {
162 // CHECK-NEXT: "qualType": "void (void)"
163 // CHECK-NEXT: }
164 // CHECK-NEXT: }
166 // CHECK-NOT: {{^}}Dumping
167 // CHECK: "kind": "FunctionDecl",
168 // CHECK-NEXT: "loc": {
169 // CHECK-NEXT: "spellingLoc": {
170 // CHECK-NEXT: "offset": {{[0-9]+}},
171 // CHECK-NEXT: "file": "<scratch space>",
172 // CHECK-NEXT: "line": 5,
173 // CHECK-NEXT: "col": 1,
174 // CHECK-NEXT: "tokLen": 4
175 // CHECK-NEXT: },
176 // CHECK-NEXT: "expansionLoc": {
177 // CHECK-NEXT: "offset": {{[0-9]+}},
178 // CHECK-NEXT: "file": "{{.*}}",
179 // CHECK-NEXT: "line": 17,
180 // CHECK-NEXT: "col": 6,
181 // CHECK-NEXT: "tokLen": 4
182 // CHECK-NEXT: }
183 // CHECK-NEXT: },
184 // CHECK-NEXT: "range": {
185 // CHECK-NEXT: "begin": {
186 // CHECK-NEXT: "offset": {{[0-9]+}},
187 // CHECK-NEXT: "col": 1,
188 // CHECK-NEXT: "tokLen": 4
189 // CHECK-NEXT: },
190 // CHECK-NEXT: "end": {
191 // CHECK-NEXT: "offset": {{[0-9]+}},
192 // CHECK-NEXT: "col": 33,
193 // CHECK-NEXT: "tokLen": 1
194 // CHECK-NEXT: }
195 // CHECK-NEXT: },
196 // CHECK-NEXT: "name": "foo1",
197 // CHECK-NEXT: "mangledName": "foo1",
198 // CHECK-NEXT: "type": {
199 // CHECK-NEXT: "qualType": "void (void)"
200 // CHECK-NEXT: }
201 // CHECK-NEXT: }