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