1 // RUN: pp-trace -ignore FileChanged %s -undef -target x86_64 -std=c++11 | FileCheck --strict-whitespace %s
2 
3 #if 1
4 #endif
5 
6 #if 0
7 #endif
8 
9 #if 1
10 #else
11 #endif
12 
13 #if 0
14 #else
15 #endif
16 
17 #if 1
18 #elif 1
19 #endif
20 #if 1
21 #elif 0
22 #endif
23 
24 #if 0
25 #elif 1
26 #endif
27 #if 0
28 #elif 0
29 #endif
30 #if 1
31 #elif 1
32 #endif
33 #if 1
34 #elif 0
35 #endif
36 
37 #if 0
38 #elif 1
39 #else
40 #endif
41 #if 0
42 #elif 0
43 #else
44 #endif
45 #if 1
46 #elif 1
47 #else
48 #endif
49 #if 1
50 #elif 0
51 #else
52 #endif
53 
54 #define MACRO 1
55 #ifdef MACRO
56 #endif
57 #ifdef NO_MACRO
58 #endif
59 #ifndef MACRO
60 #endif
61 #ifndef NO_MACRO
62 #endif
63 
64 // CHECK: ---
65 // CHECK-NEXT: - Callback: MacroDefined
66 // CHECK-NEXT:   MacroNameTok: __STDC__
67 // CHECK-NEXT:   MacroDirective: MD_Define
68 // CHECK-NEXT: - Callback: MacroDefined
69 // CHECK-NEXT:   MacroNameTok: __STDC_HOSTED__
70 // CHECK-NEXT:   MacroDirective: MD_Define
71 // CHECK-NEXT: - Callback: MacroDefined
72 // CHECK-NEXT:   MacroNameTok: __cplusplus
73 // CHECK-NEXT:   MacroDirective: MD_Define
74 // CHECK-NEXT: - Callback: MacroDefined
75 // CHECK-NEXT:   MacroNameTok: __STDC_UTF_16__
76 // CHECK-NEXT:   MacroDirective: MD_Define
77 // CHECK-NEXT: - Callback: MacroDefined
78 // CHECK-NEXT:   MacroNameTok: __STDC_UTF_32__
79 // CHECK-NEXT:   MacroDirective: MD_Define
80 // CHECK-NEXT: - Callback: If
81 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:3:2"
82 // CHECK-NEXT:   ConditionRange: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:3:4", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:4:1"]
83 // CHECK-NEXT:   ConditionValue: true
84 // CHECK-NEXT: - Callback: Endif
85 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:4:2"
86 // CHECK-NEXT:   IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:3:2"
87 // CHECK-NEXT: - Callback: If
88 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:6:2"
89 // CHECK-NEXT:   ConditionRange: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:6:4", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:7:1"]
90 // CHECK-NEXT:   ConditionValue: false
91 // CHECK-NEXT: - Callback: Endif
92 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:7:2"
93 // CHECK-NEXT:   IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:6:2"
94 // CHECK-NEXT: - Callback: SourceRangeSkipped
95 // CHECK-NEXT:   Range: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:6:2", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:7:2"]
96 // CHECK-NEXT: - Callback: If
97 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:9:2"
98 // CHECK-NEXT:   ConditionRange: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:9:4", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:10:1"]
99 // CHECK-NEXT:   ConditionValue: true
100 // CHECK-NEXT: - Callback: Else
101 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:10:2"
102 // CHECK-NEXT:   IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:9:2"
103 // CHECK-NEXT: - Callback: Endif
104 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:11:2"
105 // CHECK-NEXT:   IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:9:2"
106 // CHECK-NEXT: - Callback: SourceRangeSkipped
107 // CHECK-NEXT:   Range: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:10:2", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:11:2"]
108 // CHECK-NEXT: - Callback: If
109 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:13:2"
110 // CHECK-NEXT:   ConditionRange: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:13:4", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:14:1"]
111 // CHECK-NEXT:   ConditionValue: false
112 // CHECK-NEXT: - Callback: Else
113 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:14:2"
114 // CHECK-NEXT:   IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:13:2"
115 // CHECK-NEXT: - Callback: SourceRangeSkipped
116 // CHECK-NEXT:   Range: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:13:2", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:14:2"]
117 // CHECK-NEXT: - Callback: Endif
118 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:15:2"
119 // CHECK-NEXT:   IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:13:2"
120 // CHECK-NEXT: - Callback: If
121 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:17:2"
122 // CHECK-NEXT:   ConditionRange: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:17:4", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:18:1"]
123 // CHECK-NEXT:   ConditionValue: true
124 // CHECK-NEXT: - Callback: Elif
125 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:18:2"
126 // CHECK-NEXT:   ConditionRange: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:18:6", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:19:1"]
127 // CHECK-NEXT:   ConditionValue: true
128 // CHECK-NEXT:   IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:17:2"
129 // CHECK-NEXT: - Callback: Endif
130 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:19:2"
131 // CHECK-NEXT:   IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:17:2"
132 // CHECK-NEXT: - Callback: SourceRangeSkipped
133 // CHECK-NEXT:   Range: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:18:2", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:19:2"]
134 // CHECK-NEXT: - Callback: If
135 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:20:2"
136 // CHECK-NEXT:   ConditionRange: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:20:4", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:21:1"]
137 // CHECK-NEXT:   ConditionValue: true
138 // CHECK-NEXT: - Callback: Elif
139 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:21:2"
140 // CHECK-NEXT:   ConditionRange: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:21:6", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:22:1"]
141 // CHECK-NEXT:   ConditionValue: true
142 // CHECK-NEXT:   IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:20:2"
143 // CHECK-NEXT: - Callback: Endif
144 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:22:2"
145 // CHECK-NEXT:   IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:20:2"
146 // CHECK-NEXT: - Callback: SourceRangeSkipped
147 // CHECK-NEXT:   Range: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:21:2", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:22:2"]
148 // CHECK-NEXT: - Callback: If
149 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:24:2"
150 // CHECK-NEXT:   ConditionRange: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:24:4", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:25:1"]
151 // CHECK-NEXT:   ConditionValue: false
152 // CHECK-NEXT: - Callback: Elif
153 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:25:2"
154 // CHECK-NEXT:   ConditionRange: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:25:6", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:26:1"]
155 // CHECK-NEXT:   ConditionValue: true
156 // CHECK-NEXT:   IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:24:2"
157 // CHECK-NEXT: - Callback: SourceRangeSkipped
158 // CHECK-NEXT:   Range: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:24:2", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:25:2"]
159 // CHECK-NEXT: - Callback: Endif
160 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:26:2"
161 // CHECK-NEXT:   IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:24:2"
162 // CHECK-NEXT: - Callback: If
163 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:27:2"
164 // CHECK-NEXT:   ConditionRange: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:27:4", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:28:1"]
165 // CHECK-NEXT:   ConditionValue: false
166 // CHECK-NEXT: - Callback: Endif
167 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:29:2"
168 // CHECK-NEXT:   IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:27:2"
169 // CHECK-NEXT: - Callback: SourceRangeSkipped
170 // CHECK-NEXT:   Range: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:27:2", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:29:2"]
171 // CHECK-NEXT: - Callback: If
172 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:30:2"
173 // CHECK-NEXT:   ConditionRange: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:30:4", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:31:1"]
174 // CHECK-NEXT:   ConditionValue: true
175 // CHECK-NEXT: - Callback: Elif
176 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:31:2"
177 // CHECK-NEXT:   ConditionRange: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:31:6", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:32:1"]
178 // CHECK-NEXT:   ConditionValue: true
179 // CHECK-NEXT:   IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:30:2"
180 // CHECK-NEXT: - Callback: Endif
181 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:32:2"
182 // CHECK-NEXT:   IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:30:2"
183 // CHECK-NEXT: - Callback: SourceRangeSkipped
184 // CHECK-NEXT:   Range: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:31:2", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:32:2"]
185 // CHECK-NEXT: - Callback: If
186 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:33:2"
187 // CHECK-NEXT:   ConditionRange: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:33:4", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:34:1"]
188 // CHECK-NEXT:   ConditionValue: true
189 // CHECK-NEXT: - Callback: Elif
190 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:34:2"
191 // CHECK-NEXT:   ConditionRange: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:34:6", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:35:1"]
192 // CHECK-NEXT:   ConditionValue: true
193 // CHECK-NEXT:   IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:33:2"
194 // CHECK-NEXT: - Callback: Endif
195 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:35:2"
196 // CHECK-NEXT:   IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:33:2"
197 // CHECK-NEXT: - Callback: SourceRangeSkipped
198 // CHECK-NEXT:   Range: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:34:2", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:35:2"]
199 // CHECK-NEXT: - Callback: If
200 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:37:2"
201 // CHECK-NEXT:   ConditionRange: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:37:4", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:38:1"]
202 // CHECK-NEXT:   ConditionValue: false
203 // CHECK-NEXT: - Callback: Elif
204 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:38:2"
205 // CHECK-NEXT:   ConditionRange: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:38:6", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:39:1"]
206 // CHECK-NEXT:   ConditionValue: true
207 // CHECK-NEXT:   IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:37:2"
208 // CHECK-NEXT: - Callback: SourceRangeSkipped
209 // CHECK-NEXT:   Range: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:37:2", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:38:2"]
210 // CHECK-NEXT: - Callback: Else
211 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:39:2"
212 // CHECK-NEXT:   IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:37:2"
213 // CHECK-NEXT: - Callback: Endif
214 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:40:2"
215 // CHECK-NEXT:   IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:37:2"
216 // CHECK-NEXT: - Callback: SourceRangeSkipped
217 // CHECK-NEXT:   Range: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:39:2", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:40:2"]
218 // CHECK-NEXT: - Callback: If
219 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:41:2"
220 // CHECK-NEXT:   ConditionRange: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:41:4", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:42:1"]
221 // CHECK-NEXT:   ConditionValue: false
222 // CHECK-NEXT: - Callback: Else
223 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:43:2"
224 // CHECK-NEXT:   IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:41:2"
225 // CHECK-NEXT: - Callback: SourceRangeSkipped
226 // CHECK-NEXT:   Range: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:41:2", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:43:2"]
227 // CHECK-NEXT: - Callback: Endif
228 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:44:2"
229 // CHECK-NEXT:   IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:41:2"
230 // CHECK-NEXT: - Callback: If
231 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:45:2"
232 // CHECK-NEXT:   ConditionRange: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:45:4", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:46:1"]
233 // CHECK-NEXT:   ConditionValue: true
234 // CHECK-NEXT: - Callback: Elif
235 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:46:2"
236 // CHECK-NEXT:   ConditionRange: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:46:6", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:47:1"]
237 // CHECK-NEXT:   ConditionValue: true
238 // CHECK-NEXT:   IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:45:2"
239 // CHECK-NEXT: - Callback: Endif
240 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:48:2"
241 // CHECK-NEXT:   IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:45:2"
242 // CHECK-NEXT: - Callback: SourceRangeSkipped
243 // CHECK-NEXT:   Range: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:46:2", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:48:2"]
244 // CHECK-NEXT: - Callback: If
245 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:49:2"
246 // CHECK-NEXT:   ConditionRange: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:49:4", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:50:1"]
247 // CHECK-NEXT:   ConditionValue: true
248 // CHECK-NEXT: - Callback: Elif
249 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:50:2"
250 // CHECK-NEXT:   ConditionRange: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:50:6", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:51:1"]
251 // CHECK-NEXT:   ConditionValue: true
252 // CHECK-NEXT:   IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:49:2"
253 // CHECK-NEXT: - Callback: Endif
254 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:52:2"
255 // CHECK-NEXT:   IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:49:2"
256 // CHECK-NEXT: - Callback: SourceRangeSkipped
257 // CHECK-NEXT:   Range: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:50:2", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:52:2"]
258 // CHECK-NEXT: - Callback: MacroDefined
259 // CHECK-NEXT:   MacroNameTok: MACRO
260 // CHECK-NEXT:   MacroDirective: MD_Define
261 // CHECK-NEXT: - Callback: Ifdef
262 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:55:2"
263 // CHECK-NEXT:   MacroNameTok: MACRO
264 // CHECK-NEXT:   MacroDirective: MD_Define
265 // CHECK-NEXT: - Callback: Endif
266 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:56:2"
267 // CHECK-NEXT:   IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:55:2"
268 // CHECK-NEXT: - Callback: Ifdef
269 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:57:2"
270 // CHECK-NEXT:   MacroNameTok: NO_MACRO
271 // CHECK-NEXT:   MacroDirective: (null)
272 // CHECK-NEXT: - Callback: Endif
273 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:58:2"
274 // CHECK-NEXT:   IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:57:2"
275 // CHECK-NEXT: - Callback: SourceRangeSkipped
276 // CHECK-NEXT:   Range: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:57:2", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:58:2"]
277 // CHECK-NEXT: - Callback: Ifndef
278 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:59:2"
279 // CHECK-NEXT:   MacroNameTok: MACRO
280 // CHECK-NEXT:   MacroDirective: MD_Define
281 // CHECK-NEXT: - Callback: Endif
282 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:60:2"
283 // CHECK-NEXT:   IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:59:2"
284 // CHECK-NEXT: - Callback: SourceRangeSkipped
285 // CHECK-NEXT:   Range: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:59:2", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:60:2"]
286 // CHECK-NEXT: - Callback: Ifndef
287 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:61:2"
288 // CHECK-NEXT:   MacroNameTok: NO_MACRO
289 // CHECK-NEXT:   MacroDirective: (null)
290 // CHECK-NEXT: - Callback: Endif
291 // CHECK-NEXT:   Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:62:2"
292 // CHECK-NEXT:   IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:61:2"
293 // CHECK-NEXT: - Callback: EndOfMainFile
294 // CHECK-NEXT: ...
295