111 lines · cpp
1// RUN: pp-trace -callbacks '*,-FileChanged' %s -- -undef -target x86_64 -std=c++11 | FileCheck --strict-whitespace %s2 3#define MACRO 14int i = MACRO;5#if defined(MACRO)6#endif7#undef MACRO8#if defined(MACRO)9#endif10#define FUNCMACRO(ARG1) ARG111int j = FUNCMACRO(1);12#define X X_IMPL(a+y,b) X_IMPL2(c)13#define X_IMPL(p1,p2)14#define X_IMPL2(p1)15X16 17// CHECK: ---18// CHECK-NEXT: - Callback: MacroDefined19// CHECK: MacroNameTok: __STDC__20// CHECK-NEXT: MacroDirective: MD_Define21// CHECK-NEXT: - Callback: MacroDefined22// CHECK: MacroNameTok: __STDC_HOSTED__23// CHECK-NEXT: MacroDirective: MD_Define24// CHECK-NEXT: - Callback: MacroDefined25// CHECK: MacroNameTok: __cplusplus26// CHECK-NEXT: MacroDirective: MD_Define27// CHECK-NEXT: - Callback: MacroDefined28// CHECK: MacroNameTok: __STDC_UTF_16__29// CHECK-NEXT: MacroDirective: MD_Define30// CHECK-NEXT: - Callback: MacroDefined31// CHECK: MacroNameTok: __STDC_UTF_32__32// CHECK-NEXT: MacroDirective: MD_Define33// CHECK: - Callback: MacroDefined34// CHECK-NEXT: MacroNameTok: __STDC_EMBED_NOT_FOUND__35// CHECK-NEXT: MacroDirective: MD_Define36// CHECK: - Callback: MacroDefined37// CHECK-NEXT: MacroNameTok: __STDC_EMBED_FOUND__38// CHECK-NEXT: MacroDirective: MD_Define39// CHECK: - Callback: MacroDefined40// CHECK-NEXT: MacroNameTok: __STDC_EMBED_EMPTY__41// CHECK-NEXT: MacroDirective: MD_Define42// CHECK: - Callback: MacroDefined43// CHECK-NEXT: MacroNameTok: MACRO44// CHECK-NEXT: MacroDirective: MD_Define45// CHECK-NEXT: - Callback: MacroExpands46// CHECK-NEXT: MacroNameTok: MACRO47// CHECK-NEXT: MacroDefinition: [(local)]48// CHECK-NEXT: Range: ["{{.*}}{{[/\\]}}pp-trace-macro.cpp:4:9", "{{.*}}{{[/\\]}}pp-trace-macro.cpp:4:9"]49// CHECK-NEXT: Args: (null)50// CHECK-NEXT: - Callback: Defined51// CHECK-NEXT: MacroNameTok: MACRO52// CHECK-NEXT: MacroDefinition: [(local)]53// CHECK-NEXT: Range: ["{{.*}}{{[/\\]}}pp-trace-macro.cpp:5:5", "{{.*}}{{[/\\]}}pp-trace-macro.cpp:5:19"]54// CHECK-NEXT: - Callback: If55// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-macro.cpp:5:2"56// CHECK-NEXT: ConditionRange: ["{{.*}}{{[/\\]}}pp-trace-macro.cpp:5:5", "{{.*}}{{[/\\]}}pp-trace-macro.cpp:5:19"]57// CHECK-NEXT: ConditionValue: CVK_True58// CHECK-NEXT: - Callback: Endif59// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-macro.cpp:6:2"60// CHECK-NEXT: IfLoc: "{{.*}}{{[/\\]}}pp-trace-macro.cpp:5:2"61// CHECK-NEXT: - Callback: MacroUndefined62// CHECK-NEXT: MacroNameTok: MACRO63// CHECK-NEXT: MacroDefinition: [(local)]64// CHECK-NEXT: - Callback: Defined65// CHECK-NEXT: MacroNameTok: MACRO66// CHECK-NEXT: MacroDefinition: []67// CHECK-NEXT: Range: ["{{.*}}{{[/\\]}}pp-trace-macro.cpp:8:5", "{{.*}}{{[/\\]}}pp-trace-macro.cpp:8:19"]68// CHECK-NEXT: - Callback: If69// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-macro.cpp:8:2"70// CHECK-NEXT: ConditionRange: ["{{.*}}{{[/\\]}}pp-trace-macro.cpp:8:5", "{{.*}}{{[/\\]}}pp-trace-macro.cpp:8:19"]71// CHECK-NEXT: ConditionValue: CVK_False72// CHECK-NEXT: - Callback: Endif73// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-macro.cpp:9:2"74// CHECK-NEXT: IfLoc: "{{.*}}{{[/\\]}}pp-trace-macro.cpp:8:2"75// CHECK-NEXT: - Callback: SourceRangeSkipped76// CHECK-NEXT: Range: ["{{.*}}{{[/\\]}}pp-trace-macro.cpp:8:1", "{{.*}}{{[/\\]}}pp-trace-macro.cpp:9:2"]77// CHECK-NEXT: - Callback: MacroDefined78// CHECK-NEXT: MacroNameTok: FUNCMACRO79// CHECK-NEXT: MacroDirective: MD_Define80// CHECK-NEXT: - Callback: MacroExpands81// CHECK-NEXT: MacroNameTok: FUNCMACRO82// CHECK-NEXT: MacroDefinition: [(local)]83// CHECK-NEXT: Range: ["{{.*}}{{[/\\]}}pp-trace-macro.cpp:11:9", "{{.*}}{{[/\\]}}pp-trace-macro.cpp:11:20"]84// CHECK-NEXT: Args: [1]85// CHECK-NEXT: - Callback: MacroDefined86// CHECK-NEXT: MacroNameTok: X87// CHECK-NEXT: MacroDirective: MD_Define88// CHECK-NEXT: - Callback: MacroDefined89// CHECK-NEXT: MacroNameTok: X_IMPL90// CHECK-NEXT: MacroDirective: MD_Define91// CHECK-NEXT: - Callback: MacroDefined92// CHECK-NEXT: MacroNameTok: X_IMPL293// CHECK-NEXT: MacroDirective: MD_Define94// CHECK-NEXT: - Callback: MacroExpands95// CHECK-NEXT: MacroNameTok: X96// CHECK-NEXT: MacroDefinition: [(local)]97// CHECK-NEXT: Range: ["{{.*}}{{[/\\]}}pp-trace-macro.cpp:15:1", "{{.*}}{{[/\\]}}pp-trace-macro.cpp:15:1"]98// CHECK-NEXT: Args: (null)99// CHECK-NEXT: - Callback: MacroExpands100// CHECK-NEXT: MacroNameTok: X_IMPL101// CHECK-NEXT: MacroDefinition: [(local)]102// CHECK-NEXT: Range: [(nonfile), (nonfile)]103// CHECK-NEXT: Args: [a <plus> y, b]104// CHECK-NEXT: - Callback: MacroExpands105// CHECK-NEXT: MacroNameTok: X_IMPL2106// CHECK-NEXT: MacroDefinition: [(local)]107// CHECK-NEXT: Range: [(nonfile), (nonfile)]108// CHECK-NEXT: Args: [c]109// CHECK-NEXT: - Callback: EndOfMainFile110// CHECK-NEXT: ...111