blob: d677bcb0c0b13cee76339170fa4e2adeba3b2cfe [file] [log] [blame]
John Thompson0bc443b2013-11-12 02:04:53 +00001// 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
John Thompson17c35732013-12-04 20:19:30 +0000166// CHECK-NEXT: - Callback: Elif
167// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:28:2"
168// CHECK-NEXT: ConditionRange: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:28:6", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:29:1"]
169// CHECK-NEXT: ConditionValue: false
170// CHECK-NEXT: IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:27:2"
John Thompson0bc443b2013-11-12 02:04:53 +0000171// CHECK-NEXT: - Callback: Endif
172// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:29:2"
173// CHECK-NEXT: IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:27:2"
174// CHECK-NEXT: - Callback: SourceRangeSkipped
175// CHECK-NEXT: Range: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:27:2", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:29:2"]
176// CHECK-NEXT: - Callback: If
177// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:30:2"
178// CHECK-NEXT: ConditionRange: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:30:4", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:31:1"]
179// CHECK-NEXT: ConditionValue: true
180// CHECK-NEXT: - Callback: Elif
181// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:31:2"
182// CHECK-NEXT: ConditionRange: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:31:6", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:32:1"]
183// CHECK-NEXT: ConditionValue: true
184// CHECK-NEXT: IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:30:2"
185// CHECK-NEXT: - Callback: Endif
186// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:32:2"
187// CHECK-NEXT: IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:30:2"
188// CHECK-NEXT: - Callback: SourceRangeSkipped
189// CHECK-NEXT: Range: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:31:2", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:32:2"]
190// CHECK-NEXT: - Callback: If
191// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:33:2"
192// CHECK-NEXT: ConditionRange: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:33:4", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:34:1"]
193// CHECK-NEXT: ConditionValue: true
194// CHECK-NEXT: - Callback: Elif
195// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:34:2"
196// CHECK-NEXT: ConditionRange: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:34:6", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:35:1"]
197// CHECK-NEXT: ConditionValue: true
198// CHECK-NEXT: IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:33:2"
199// CHECK-NEXT: - Callback: Endif
200// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:35:2"
201// CHECK-NEXT: IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:33:2"
202// CHECK-NEXT: - Callback: SourceRangeSkipped
203// CHECK-NEXT: Range: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:34:2", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:35:2"]
204// CHECK-NEXT: - Callback: If
205// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:37:2"
206// CHECK-NEXT: ConditionRange: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:37:4", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:38:1"]
207// CHECK-NEXT: ConditionValue: false
208// CHECK-NEXT: - Callback: Elif
209// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:38:2"
210// CHECK-NEXT: ConditionRange: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:38:6", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:39:1"]
211// CHECK-NEXT: ConditionValue: true
212// CHECK-NEXT: IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:37:2"
213// CHECK-NEXT: - Callback: SourceRangeSkipped
214// CHECK-NEXT: Range: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:37:2", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:38:2"]
215// CHECK-NEXT: - Callback: Else
216// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:39:2"
217// CHECK-NEXT: IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:37:2"
218// CHECK-NEXT: - Callback: Endif
219// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:40:2"
220// CHECK-NEXT: IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:37:2"
221// CHECK-NEXT: - Callback: SourceRangeSkipped
222// CHECK-NEXT: Range: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:39:2", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:40:2"]
223// CHECK-NEXT: - Callback: If
224// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:41:2"
225// CHECK-NEXT: ConditionRange: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:41:4", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:42:1"]
226// CHECK-NEXT: ConditionValue: false
John Thompson17c35732013-12-04 20:19:30 +0000227// CHECK-NEXT: - Callback: Elif
228// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:42:2"
229// CHECK-NEXT: ConditionRange: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:42:6", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:43:1"]
230// CHECK-NEXT: ConditionValue: false
231// CHECK-NEXT: IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:41:2"
John Thompson0bc443b2013-11-12 02:04:53 +0000232// CHECK-NEXT: - Callback: Else
233// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:43:2"
234// CHECK-NEXT: IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:41:2"
235// CHECK-NEXT: - Callback: SourceRangeSkipped
236// CHECK-NEXT: Range: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:41:2", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:43:2"]
237// CHECK-NEXT: - Callback: Endif
238// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:44:2"
239// CHECK-NEXT: IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:41:2"
240// CHECK-NEXT: - Callback: If
241// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:45:2"
242// CHECK-NEXT: ConditionRange: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:45:4", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:46:1"]
243// CHECK-NEXT: ConditionValue: true
244// CHECK-NEXT: - Callback: Elif
245// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:46:2"
246// CHECK-NEXT: ConditionRange: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:46:6", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:47:1"]
247// CHECK-NEXT: ConditionValue: true
248// CHECK-NEXT: IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:45:2"
249// CHECK-NEXT: - Callback: Endif
250// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:48:2"
251// CHECK-NEXT: IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:45:2"
252// CHECK-NEXT: - Callback: SourceRangeSkipped
253// CHECK-NEXT: Range: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:46:2", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:48:2"]
254// CHECK-NEXT: - Callback: If
255// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:49:2"
256// CHECK-NEXT: ConditionRange: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:49:4", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:50:1"]
257// CHECK-NEXT: ConditionValue: true
258// CHECK-NEXT: - Callback: Elif
259// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:50:2"
260// CHECK-NEXT: ConditionRange: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:50:6", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:51:1"]
261// CHECK-NEXT: ConditionValue: true
262// CHECK-NEXT: IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:49:2"
263// CHECK-NEXT: - Callback: Endif
264// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:52:2"
265// CHECK-NEXT: IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:49:2"
266// CHECK-NEXT: - Callback: SourceRangeSkipped
267// CHECK-NEXT: Range: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:50:2", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:52:2"]
268// CHECK-NEXT: - Callback: MacroDefined
269// CHECK-NEXT: MacroNameTok: MACRO
270// CHECK-NEXT: MacroDirective: MD_Define
271// CHECK-NEXT: - Callback: Ifdef
272// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:55:2"
273// CHECK-NEXT: MacroNameTok: MACRO
274// CHECK-NEXT: MacroDirective: MD_Define
275// CHECK-NEXT: - Callback: Endif
276// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:56:2"
277// CHECK-NEXT: IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:55:2"
278// CHECK-NEXT: - Callback: Ifdef
279// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:57:2"
280// CHECK-NEXT: MacroNameTok: NO_MACRO
281// CHECK-NEXT: MacroDirective: (null)
282// CHECK-NEXT: - Callback: Endif
283// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:58:2"
284// CHECK-NEXT: IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:57:2"
285// CHECK-NEXT: - Callback: SourceRangeSkipped
286// CHECK-NEXT: Range: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:57:2", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:58:2"]
287// CHECK-NEXT: - Callback: Ifndef
288// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:59:2"
289// CHECK-NEXT: MacroNameTok: MACRO
290// CHECK-NEXT: MacroDirective: MD_Define
291// CHECK-NEXT: - Callback: Endif
292// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:60:2"
293// CHECK-NEXT: IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:59:2"
294// CHECK-NEXT: - Callback: SourceRangeSkipped
295// CHECK-NEXT: Range: ["{{.*}}{{[/\\]}}pp-trace-conditional.cpp:59:2", "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:60:2"]
296// CHECK-NEXT: - Callback: Ifndef
297// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:61:2"
298// CHECK-NEXT: MacroNameTok: NO_MACRO
299// CHECK-NEXT: MacroDirective: (null)
300// CHECK-NEXT: - Callback: Endif
301// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:62:2"
302// CHECK-NEXT: IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:61:2"
303// CHECK-NEXT: - Callback: EndOfMainFile
304// CHECK-NEXT: ...