Update to match clang r236404.

llvm-svn: 236405
This commit is contained in:
Richard Smith 2015-05-04 03:15:55 +00:00
parent 36bd40df72
commit 33de8566f0
7 changed files with 69 additions and 49 deletions

View File

@ -144,17 +144,15 @@ private:
} }
void Ifndef(SourceLocation Loc, const Token &MacroNameTok, void Ifndef(SourceLocation Loc, const Token &MacroNameTok,
const MacroDirective *MD) override { const MacroDefinition &MD) override {
Guard->Count++; Guard->Count++;
// If this #ifndef is the top-most directive and the symbol isn't defined // If this #ifndef is the top-most directive and the symbol isn't defined
// store those information in the guard detection, the next step will be to // store those information in the guard detection, the next step will be to
// check for the define. // check for the define.
if (Guard->Count == 1 && MD == nullptr) { if (Guard->Count == 1 && !MD) {
IdentifierInfo *MII = MacroNameTok.getIdentifierInfo(); IdentifierInfo *MII = MacroNameTok.getIdentifierInfo();
if (MII->hasMacroDefinition())
return;
Guard->IfndefLoc = Loc; Guard->IfndefLoc = Loc;
Guard->TheMacro = MII; Guard->TheMacro = MII;
} }
@ -196,14 +194,14 @@ private:
Guard->EndifLoc = Loc; Guard->EndifLoc = Loc;
} }
void MacroExpands(const Token &, const MacroDirective *, SourceRange, void MacroExpands(const Token &, const MacroDefinition &, SourceRange,
const MacroArgs *) override { const MacroArgs *) override {
Guard->Count++; Guard->Count++;
} }
void MacroUndefined(const Token &, const MacroDirective *) override { void MacroUndefined(const Token &, const MacroDefinition &) override {
Guard->Count++; Guard->Count++;
} }
void Defined(const Token &, const MacroDirective *, SourceRange) override { void Defined(const Token &, const MacroDefinition &, SourceRange) override {
Guard->Count++; Guard->Count++;
} }
void If(SourceLocation, SourceRange, ConditionValueKind) override { void If(SourceLocation, SourceRange, ConditionValueKind) override {
@ -213,7 +211,7 @@ private:
SourceLocation) override { SourceLocation) override {
Guard->Count++; Guard->Count++;
} }
void Ifdef(SourceLocation, const Token &, const MacroDirective *) override { void Ifdef(SourceLocation, const Token &, const MacroDefinition &) override {
Guard->Count++; Guard->Count++;
} }
void Else(SourceLocation, SourceLocation) override { void Else(SourceLocation, SourceLocation) override {

View File

@ -58,7 +58,7 @@ public:
} }
void Ifndef(SourceLocation Loc, const Token &MacroNameTok, void Ifndef(SourceLocation Loc, const Token &MacroNameTok,
const MacroDirective *MD) override { const MacroDefinition &MD) override {
if (MD) if (MD)
return; return;
@ -71,7 +71,7 @@ public:
const MacroDirective *MD) override { const MacroDirective *MD) override {
// Record all defined macros. We store the whole token to get info on the // Record all defined macros. We store the whole token to get info on the
// name later. // name later.
Macros.emplace_back(MacroNameTok, MD); Macros.emplace_back(MacroNameTok, MD->getMacroInfo());
} }
void Endif(SourceLocation Loc, SourceLocation IfLoc) override { void Endif(SourceLocation Loc, SourceLocation IfLoc) override {
@ -84,7 +84,7 @@ public:
SourceManager &SM = PP->getSourceManager(); SourceManager &SM = PP->getSourceManager();
for (const auto &MacroEntry : Macros) { for (const auto &MacroEntry : Macros) {
const MacroInfo *MI = MacroEntry.second->getMacroInfo(); const MacroInfo *MI = MacroEntry.second;
// We use clang's header guard detection. This has the advantage of also // We use clang's header guard detection. This has the advantage of also
// emitting a warning for cases where a pseudo header guard is found but // emitting a warning for cases where a pseudo header guard is found but
@ -268,7 +268,7 @@ public:
} }
private: private:
std::vector<std::pair<Token, const MacroDirective *>> Macros; std::vector<std::pair<Token, const MacroInfo *>> Macros;
llvm::StringMap<const FileEntry *> Files; llvm::StringMap<const FileEntry *> Files;
std::map<const IdentifierInfo *, std::pair<SourceLocation, SourceLocation>> std::map<const IdentifierInfo *, std::pair<SourceLocation, SourceLocation>>
Ifndefs; Ifndefs;

View File

@ -763,10 +763,10 @@ public:
clang::SrcMgr::CharacteristicKind FileType, clang::SrcMgr::CharacteristicKind FileType,
clang::FileID PrevFID = clang::FileID()) override; clang::FileID PrevFID = clang::FileID()) override;
void MacroExpands(const clang::Token &MacroNameTok, void MacroExpands(const clang::Token &MacroNameTok,
const clang::MacroDirective *MD, clang::SourceRange Range, const clang::MacroDefinition &MD, clang::SourceRange Range,
const clang::MacroArgs *Args) override; const clang::MacroArgs *Args) override;
void Defined(const clang::Token &MacroNameTok, void Defined(const clang::Token &MacroNameTok,
const clang::MacroDirective *MD, const clang::MacroDefinition &MD,
clang::SourceRange Range) override; clang::SourceRange Range) override;
void If(clang::SourceLocation Loc, clang::SourceRange ConditionRange, void If(clang::SourceLocation Loc, clang::SourceRange ConditionRange,
clang::PPCallbacks::ConditionValueKind ConditionResult) override; clang::PPCallbacks::ConditionValueKind ConditionResult) override;
@ -774,9 +774,9 @@ public:
clang::PPCallbacks::ConditionValueKind ConditionResult, clang::PPCallbacks::ConditionValueKind ConditionResult,
clang::SourceLocation IfLoc) override; clang::SourceLocation IfLoc) override;
void Ifdef(clang::SourceLocation Loc, const clang::Token &MacroNameTok, void Ifdef(clang::SourceLocation Loc, const clang::Token &MacroNameTok,
const clang::MacroDirective *MD) override; const clang::MacroDefinition &MD) override;
void Ifndef(clang::SourceLocation Loc, const clang::Token &MacroNameTok, void Ifndef(clang::SourceLocation Loc, const clang::Token &MacroNameTok,
const clang::MacroDirective *MD) override; const clang::MacroDefinition &MD) override;
private: private:
PreprocessorTrackerImpl &PPTracker; PreprocessorTrackerImpl &PPTracker;
@ -1336,7 +1336,7 @@ void PreprocessorCallbacks::FileChanged(
// Handle macro expansion. // Handle macro expansion.
void PreprocessorCallbacks::MacroExpands(const clang::Token &MacroNameTok, void PreprocessorCallbacks::MacroExpands(const clang::Token &MacroNameTok,
const clang::MacroDirective *MD, const clang::MacroDefinition &MD,
clang::SourceRange Range, clang::SourceRange Range,
const clang::MacroArgs *Args) { const clang::MacroArgs *Args) {
clang::SourceLocation Loc = Range.getBegin(); clang::SourceLocation Loc = Range.getBegin();
@ -1344,7 +1344,7 @@ void PreprocessorCallbacks::MacroExpands(const clang::Token &MacroNameTok,
if (!Loc.isFileID()) if (!Loc.isFileID())
return; return;
clang::IdentifierInfo *II = MacroNameTok.getIdentifierInfo(); clang::IdentifierInfo *II = MacroNameTok.getIdentifierInfo();
const clang::MacroInfo *MI = PP.getMacroInfo(II); const clang::MacroInfo *MI = MD.getMacroInfo();
std::string MacroName = II->getName().str(); std::string MacroName = II->getName().str();
std::string Unexpanded(getMacroUnexpandedString(Range, PP, MacroName, MI)); std::string Unexpanded(getMacroUnexpandedString(Range, PP, MacroName, MI));
std::string Expanded(getMacroExpandedString(PP, MacroName, MI, Args)); std::string Expanded(getMacroExpandedString(PP, MacroName, MI, Args));
@ -1354,11 +1354,11 @@ void PreprocessorCallbacks::MacroExpands(const clang::Token &MacroNameTok,
} }
void PreprocessorCallbacks::Defined(const clang::Token &MacroNameTok, void PreprocessorCallbacks::Defined(const clang::Token &MacroNameTok,
const clang::MacroDirective *MD, const clang::MacroDefinition &MD,
clang::SourceRange Range) { clang::SourceRange Range) {
clang::SourceLocation Loc(Range.getBegin()); clang::SourceLocation Loc(Range.getBegin());
clang::IdentifierInfo *II = MacroNameTok.getIdentifierInfo(); clang::IdentifierInfo *II = MacroNameTok.getIdentifierInfo();
const clang::MacroInfo *MI = PP.getMacroInfo(II); const clang::MacroInfo *MI = MD.getMacroInfo();
std::string MacroName = II->getName().str(); std::string MacroName = II->getName().str();
std::string Unexpanded(getSourceString(PP, Range)); std::string Unexpanded(getSourceString(PP, Range));
PPTracker.addMacroExpansionInstance( PPTracker.addMacroExpansionInstance(
@ -1388,7 +1388,7 @@ void PreprocessorCallbacks::Elif(clang::SourceLocation Loc,
void PreprocessorCallbacks::Ifdef(clang::SourceLocation Loc, void PreprocessorCallbacks::Ifdef(clang::SourceLocation Loc,
const clang::Token &MacroNameTok, const clang::Token &MacroNameTok,
const clang::MacroDirective *MD) { const clang::MacroDefinition &MD) {
clang::PPCallbacks::ConditionValueKind IsDefined = clang::PPCallbacks::ConditionValueKind IsDefined =
(MD ? clang::PPCallbacks::CVK_True : clang::PPCallbacks::CVK_False ); (MD ? clang::PPCallbacks::CVK_True : clang::PPCallbacks::CVK_False );
PPTracker.addConditionalExpansionInstance( PPTracker.addConditionalExpansionInstance(
@ -1399,7 +1399,7 @@ void PreprocessorCallbacks::Ifdef(clang::SourceLocation Loc,
void PreprocessorCallbacks::Ifndef(clang::SourceLocation Loc, void PreprocessorCallbacks::Ifndef(clang::SourceLocation Loc,
const clang::Token &MacroNameTok, const clang::Token &MacroNameTok,
const clang::MacroDirective *MD) { const clang::MacroDefinition &MD) {
clang::PPCallbacks::ConditionValueKind IsNotDefined = clang::PPCallbacks::ConditionValueKind IsNotDefined =
(!MD ? clang::PPCallbacks::CVK_True : clang::PPCallbacks::CVK_False ); (!MD ? clang::PPCallbacks::CVK_True : clang::PPCallbacks::CVK_False );
PPTracker.addConditionalExpansionInstance( PPTracker.addConditionalExpansionInstance(

View File

@ -302,12 +302,12 @@ void PPCallbacksTracker::PragmaWarningPop(clang::SourceLocation Loc) {
// macro invocation is found. // macro invocation is found.
void void
PPCallbacksTracker::MacroExpands(const clang::Token &MacroNameTok, PPCallbacksTracker::MacroExpands(const clang::Token &MacroNameTok,
const clang::MacroDirective *MacroDirective, const clang::MacroDefinition &MacroDefinition,
clang::SourceRange Range, clang::SourceRange Range,
const clang::MacroArgs *Args) { const clang::MacroArgs *Args) {
beginCallback("MacroExpands"); beginCallback("MacroExpands");
appendArgument("MacroNameTok", MacroNameTok); appendArgument("MacroNameTok", MacroNameTok);
appendArgument("MacroDirective", MacroDirective); appendArgument("MacroDefinition", MacroDefinition);
appendArgument("Range", Range); appendArgument("Range", Range);
appendArgument("Args", Args); appendArgument("Args", Args);
} }
@ -324,19 +324,19 @@ PPCallbacksTracker::MacroDefined(const clang::Token &MacroNameTok,
// Hook called whenever a macro #undef is seen. // Hook called whenever a macro #undef is seen.
void PPCallbacksTracker::MacroUndefined( void PPCallbacksTracker::MacroUndefined(
const clang::Token &MacroNameTok, const clang::Token &MacroNameTok,
const clang::MacroDirective *MacroDirective) { const clang::MacroDefinition &MacroDefinition) {
beginCallback("MacroUndefined"); beginCallback("MacroUndefined");
appendArgument("MacroNameTok", MacroNameTok); appendArgument("MacroNameTok", MacroNameTok);
appendArgument("MacroDirective", MacroDirective); appendArgument("MacroDefinition", MacroDefinition);
} }
// Hook called whenever the 'defined' operator is seen. // Hook called whenever the 'defined' operator is seen.
void PPCallbacksTracker::Defined(const clang::Token &MacroNameTok, void PPCallbacksTracker::Defined(const clang::Token &MacroNameTok,
const clang::MacroDirective *MacroDirective, const clang::MacroDefinition &MacroDefinition,
clang::SourceRange Range) { clang::SourceRange Range) {
beginCallback("Defined"); beginCallback("Defined");
appendArgument("MacroNameTok", MacroNameTok); appendArgument("MacroNameTok", MacroNameTok);
appendArgument("MacroDirective", MacroDirective); appendArgument("MacroDefinition", MacroDefinition);
appendArgument("Range", Range); appendArgument("Range", Range);
} }
@ -371,21 +371,21 @@ void PPCallbacksTracker::Elif(clang::SourceLocation Loc,
// Hook called whenever an #ifdef is seen. // Hook called whenever an #ifdef is seen.
void PPCallbacksTracker::Ifdef(clang::SourceLocation Loc, void PPCallbacksTracker::Ifdef(clang::SourceLocation Loc,
const clang::Token &MacroNameTok, const clang::Token &MacroNameTok,
const clang::MacroDirective *MacroDirective) { const clang::MacroDefinition &MacroDefinition) {
beginCallback("Ifdef"); beginCallback("Ifdef");
appendArgument("Loc", Loc); appendArgument("Loc", Loc);
appendArgument("MacroNameTok", MacroNameTok); appendArgument("MacroNameTok", MacroNameTok);
appendArgument("MacroDirective", MacroDirective); appendArgument("MacroDefinition", MacroDefinition);
} }
// Hook called whenever an #ifndef is seen. // Hook called whenever an #ifndef is seen.
void PPCallbacksTracker::Ifndef(clang::SourceLocation Loc, void PPCallbacksTracker::Ifndef(clang::SourceLocation Loc,
const clang::Token &MacroNameTok, const clang::Token &MacroNameTok,
const clang::MacroDirective *MacroDirective) { const clang::MacroDefinition &MacroDefinition) {
beginCallback("Ifndef"); beginCallback("Ifndef");
appendArgument("Loc", Loc); appendArgument("Loc", Loc);
appendArgument("MacroNameTok", MacroNameTok); appendArgument("MacroNameTok", MacroNameTok);
appendArgument("MacroDirective", MacroDirective); appendArgument("MacroDefinition", MacroDefinition);
} }
// Hook called whenever an #else is seen. // Hook called whenever an #else is seen.
@ -558,6 +558,25 @@ void PPCallbacksTracker::appendArgument(const char *Name,
appendArgument(Name, MacroDirectiveKindStrings[Value->getKind()]); appendArgument(Name, MacroDirectiveKindStrings[Value->getKind()]);
} }
// Append a MacroDefinition argument to the top trace item.
void PPCallbacksTracker::appendArgument(const char *Name,
const clang::MacroDefinition &Value) {
std::string Str;
llvm::raw_string_ostream SS(Str);
SS << "[";
bool Any = false;
if (Value.getLocalDirective()) {
SS << "(local)";
Any = true;
}
for (auto *MM : Value.getModuleMacros()) {
if (Any) SS << ", ";
SS << MM->getOwningModule()->getFullModuleName();
}
SS << "]";
appendArgument(Name, SS.str());
}
// Append a MacroArgs argument to the top trace item. // Append a MacroArgs argument to the top trace item.
void PPCallbacksTracker::appendArgument(const char *Name, void PPCallbacksTracker::appendArgument(const char *Name,
const clang::MacroArgs *Value) { const clang::MacroArgs *Value) {

View File

@ -129,14 +129,14 @@ public:
void PragmaWarningPush(clang::SourceLocation Loc, int Level) override; void PragmaWarningPush(clang::SourceLocation Loc, int Level) override;
void PragmaWarningPop(clang::SourceLocation Loc) override; void PragmaWarningPop(clang::SourceLocation Loc) override;
void MacroExpands(const clang::Token &MacroNameTok, void MacroExpands(const clang::Token &MacroNameTok,
const clang::MacroDirective *MD, clang::SourceRange Range, const clang::MacroDefinition &MD, clang::SourceRange Range,
const clang::MacroArgs *Args) override; const clang::MacroArgs *Args) override;
void MacroDefined(const clang::Token &MacroNameTok, void MacroDefined(const clang::Token &MacroNameTok,
const clang::MacroDirective *MD) override; const clang::MacroDirective *MD) override;
void MacroUndefined(const clang::Token &MacroNameTok, void MacroUndefined(const clang::Token &MacroNameTok,
const clang::MacroDirective *MD) override; const clang::MacroDefinition &MD) override;
void Defined(const clang::Token &MacroNameTok, void Defined(const clang::Token &MacroNameTok,
const clang::MacroDirective *MD, const clang::MacroDefinition &MD,
clang::SourceRange Range) override; clang::SourceRange Range) override;
void SourceRangeSkipped(clang::SourceRange Range) override; void SourceRangeSkipped(clang::SourceRange Range) override;
void If(clang::SourceLocation Loc, clang::SourceRange ConditionRange, void If(clang::SourceLocation Loc, clang::SourceRange ConditionRange,
@ -144,9 +144,9 @@ public:
void Elif(clang::SourceLocation Loc, clang::SourceRange ConditionRange, void Elif(clang::SourceLocation Loc, clang::SourceRange ConditionRange,
ConditionValueKind ConditionValue, clang::SourceLocation IfLoc) override; ConditionValueKind ConditionValue, clang::SourceLocation IfLoc) override;
void Ifdef(clang::SourceLocation Loc, const clang::Token &MacroNameTok, void Ifdef(clang::SourceLocation Loc, const clang::Token &MacroNameTok,
const clang::MacroDirective *MD) override; const clang::MacroDefinition &MD) override;
void Ifndef(clang::SourceLocation Loc, const clang::Token &MacroNameTok, void Ifndef(clang::SourceLocation Loc, const clang::Token &MacroNameTok,
const clang::MacroDirective *MD) override; const clang::MacroDefinition &MD) override;
void Else(clang::SourceLocation Loc, void Else(clang::SourceLocation Loc,
clang::SourceLocation IfLoc) override; clang::SourceLocation IfLoc) override;
void Endif(clang::SourceLocation Loc, void Endif(clang::SourceLocation Loc,
@ -205,6 +205,9 @@ public:
/// \brief Append a MacroDirective argument to the top trace item. /// \brief Append a MacroDirective argument to the top trace item.
void appendArgument(const char *Name, const clang::MacroDirective *Value); void appendArgument(const char *Name, const clang::MacroDirective *Value);
/// \brief Append a MacroDefinition argument to the top trace item.
void appendArgument(const char *Name, const clang::MacroDefinition &Value);
/// \brief Append a MacroArgs argument to the top trace item. /// \brief Append a MacroArgs argument to the top trace item.
void appendArgument(const char *Name, const clang::MacroArgs *Value); void appendArgument(const char *Name, const clang::MacroArgs *Value);

View File

@ -271,14 +271,14 @@
// CHECK-NEXT: - Callback: Ifdef // CHECK-NEXT: - Callback: Ifdef
// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:55:2" // CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:55:2"
// CHECK-NEXT: MacroNameTok: MACRO // CHECK-NEXT: MacroNameTok: MACRO
// CHECK-NEXT: MacroDirective: MD_Define // CHECK-NEXT: MacroDefinition: [(local)]
// CHECK-NEXT: - Callback: Endif // CHECK-NEXT: - Callback: Endif
// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:56:2" // CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:56:2"
// CHECK-NEXT: IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:55:2" // CHECK-NEXT: IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:55:2"
// CHECK-NEXT: - Callback: Ifdef // CHECK-NEXT: - Callback: Ifdef
// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:57:2" // CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:57:2"
// CHECK-NEXT: MacroNameTok: NO_MACRO // CHECK-NEXT: MacroNameTok: NO_MACRO
// CHECK-NEXT: MacroDirective: (null) // CHECK-NEXT: MacroDefinition: []
// CHECK-NEXT: - Callback: Endif // CHECK-NEXT: - Callback: Endif
// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:58:2" // CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:58:2"
// CHECK-NEXT: IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:57:2" // CHECK-NEXT: IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:57:2"
@ -287,7 +287,7 @@
// CHECK-NEXT: - Callback: Ifndef // CHECK-NEXT: - Callback: Ifndef
// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:59:2" // CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:59:2"
// CHECK-NEXT: MacroNameTok: MACRO // CHECK-NEXT: MacroNameTok: MACRO
// CHECK-NEXT: MacroDirective: MD_Define // CHECK-NEXT: MacroDefinition: [(local)]
// CHECK-NEXT: - Callback: Endif // CHECK-NEXT: - Callback: Endif
// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:60:2" // CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:60:2"
// CHECK-NEXT: IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:59:2" // CHECK-NEXT: IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:59:2"
@ -296,7 +296,7 @@
// CHECK-NEXT: - Callback: Ifndef // CHECK-NEXT: - Callback: Ifndef
// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:61:2" // CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:61:2"
// CHECK-NEXT: MacroNameTok: NO_MACRO // CHECK-NEXT: MacroNameTok: NO_MACRO
// CHECK-NEXT: MacroDirective: (null) // CHECK-NEXT: MacroDefinition: []
// CHECK-NEXT: - Callback: Endif // CHECK-NEXT: - Callback: Endif
// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:62:2" // CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:62:2"
// CHECK-NEXT: IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:61:2" // CHECK-NEXT: IfLoc: "{{.*}}{{[/\\]}}pp-trace-conditional.cpp:61:2"

View File

@ -35,12 +35,12 @@ X
// CHECK-NEXT: MacroDirective: MD_Define // CHECK-NEXT: MacroDirective: MD_Define
// CHECK-NEXT: - Callback: MacroExpands // CHECK-NEXT: - Callback: MacroExpands
// CHECK-NEXT: MacroNameTok: MACRO // CHECK-NEXT: MacroNameTok: MACRO
// CHECK-NEXT: MacroDirective: MD_Define // CHECK-NEXT: MacroDefinition: [(local)]
// CHECK-NEXT: Range: ["{{.*}}{{[/\\]}}pp-trace-macro.cpp:4:9", "{{.*}}{{[/\\]}}pp-trace-macro.cpp:4:9"] // CHECK-NEXT: Range: ["{{.*}}{{[/\\]}}pp-trace-macro.cpp:4:9", "{{.*}}{{[/\\]}}pp-trace-macro.cpp:4:9"]
// CHECK-NEXT: Args: (null) // CHECK-NEXT: Args: (null)
// CHECK-NEXT: - Callback: Defined // CHECK-NEXT: - Callback: Defined
// CHECK-NEXT: MacroNameTok: MACRO // CHECK-NEXT: MacroNameTok: MACRO
// CHECK-NEXT: MacroDirective: MD_Define // CHECK-NEXT: MacroDefinition: [(local)]
// CHECK-NEXT: Range: ["{{.*}}{{[/\\]}}pp-trace-macro.cpp:5:5", "{{.*}}{{[/\\]}}pp-trace-macro.cpp:5:19"] // CHECK-NEXT: Range: ["{{.*}}{{[/\\]}}pp-trace-macro.cpp:5:5", "{{.*}}{{[/\\]}}pp-trace-macro.cpp:5:19"]
// CHECK-NEXT: - Callback: If // CHECK-NEXT: - Callback: If
// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-macro.cpp:5:2" // CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-macro.cpp:5:2"
@ -51,10 +51,10 @@ X
// CHECK-NEXT: IfLoc: "{{.*}}{{[/\\]}}pp-trace-macro.cpp:5:2" // CHECK-NEXT: IfLoc: "{{.*}}{{[/\\]}}pp-trace-macro.cpp:5:2"
// CHECK-NEXT: - Callback: MacroUndefined // CHECK-NEXT: - Callback: MacroUndefined
// CHECK-NEXT: MacroNameTok: MACRO // CHECK-NEXT: MacroNameTok: MACRO
// CHECK-NEXT: MacroDirective: MD_Define // CHECK-NEXT: MacroDefinition: [(local)]
// CHECK-NEXT: - Callback: Defined // CHECK-NEXT: - Callback: Defined
// CHECK-NEXT: MacroNameTok: MACRO // CHECK-NEXT: MacroNameTok: MACRO
// CHECK-NEXT: MacroDirective: (null) // CHECK-NEXT: MacroDefinition: []
// CHECK-NEXT: Range: ["{{.*}}{{[/\\]}}pp-trace-macro.cpp:8:5", "{{.*}}{{[/\\]}}pp-trace-macro.cpp:8:19"] // CHECK-NEXT: Range: ["{{.*}}{{[/\\]}}pp-trace-macro.cpp:8:5", "{{.*}}{{[/\\]}}pp-trace-macro.cpp:8:19"]
// CHECK-NEXT: - Callback: If // CHECK-NEXT: - Callback: If
// CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-macro.cpp:8:2" // CHECK-NEXT: Loc: "{{.*}}{{[/\\]}}pp-trace-macro.cpp:8:2"
@ -70,7 +70,7 @@ X
// CHECK-NEXT: MacroDirective: MD_Define // CHECK-NEXT: MacroDirective: MD_Define
// CHECK-NEXT: - Callback: MacroExpands // CHECK-NEXT: - Callback: MacroExpands
// CHECK-NEXT: MacroNameTok: FUNCMACRO // CHECK-NEXT: MacroNameTok: FUNCMACRO
// CHECK-NEXT: MacroDirective: MD_Define // CHECK-NEXT: MacroDefinition: [(local)]
// CHECK-NEXT: Range: ["{{.*}}{{[/\\]}}pp-trace-macro.cpp:11:9", "{{.*}}{{[/\\]}}pp-trace-macro.cpp:11:20"] // CHECK-NEXT: Range: ["{{.*}}{{[/\\]}}pp-trace-macro.cpp:11:9", "{{.*}}{{[/\\]}}pp-trace-macro.cpp:11:20"]
// CHECK-NEXT: Args: [1] // CHECK-NEXT: Args: [1]
// CHECK-NEXT: - Callback: MacroDefined // CHECK-NEXT: - Callback: MacroDefined
@ -84,17 +84,17 @@ X
// CHECK-NEXT: MacroDirective: MD_Define // CHECK-NEXT: MacroDirective: MD_Define
// CHECK-NEXT: - Callback: MacroExpands // CHECK-NEXT: - Callback: MacroExpands
// CHECK-NEXT: MacroNameTok: X // CHECK-NEXT: MacroNameTok: X
// CHECK-NEXT: MacroDirective: MD_Define // CHECK-NEXT: MacroDefinition: [(local)]
// CHECK-NEXT: Range: ["{{.*}}{{[/\\]}}pp-trace-macro.cpp:15:1", "{{.*}}{{[/\\]}}pp-trace-macro.cpp:15:1"] // CHECK-NEXT: Range: ["{{.*}}{{[/\\]}}pp-trace-macro.cpp:15:1", "{{.*}}{{[/\\]}}pp-trace-macro.cpp:15:1"]
// CHECK-NEXT: Args: (null) // CHECK-NEXT: Args: (null)
// CHECK-NEXT: - Callback: MacroExpands // CHECK-NEXT: - Callback: MacroExpands
// CHECK-NEXT: MacroNameTok: X_IMPL // CHECK-NEXT: MacroNameTok: X_IMPL
// CHECK-NEXT: MacroDirective: MD_Define // CHECK-NEXT: MacroDefinition: [(local)]
// CHECK-NEXT: Range: [(nonfile), (nonfile)] // CHECK-NEXT: Range: [(nonfile), (nonfile)]
// CHECK-NEXT: Args: [a <plus> y, b] // CHECK-NEXT: Args: [a <plus> y, b]
// CHECK-NEXT: - Callback: MacroExpands // CHECK-NEXT: - Callback: MacroExpands
// CHECK-NEXT: MacroNameTok: X_IMPL2 // CHECK-NEXT: MacroNameTok: X_IMPL2
// CHECK-NEXT: MacroDirective: MD_Define // CHECK-NEXT: MacroDefinition: [(local)]
// CHECK-NEXT: Range: [(nonfile), (nonfile)] // CHECK-NEXT: Range: [(nonfile), (nonfile)]
// CHECK-NEXT: Args: [c] // CHECK-NEXT: Args: [c]
// CHECK-NEXT: - Callback: EndOfMainFile // CHECK-NEXT: - Callback: EndOfMainFile