Skip to content
This repository has been archived by the owner on Oct 13, 2021. It is now read-only.

Commit

Permalink
Merge support for clang 3.7. Close #551.
Browse files Browse the repository at this point in the history
  • Loading branch information
erikrose committed Jun 1, 2016
2 parents ba71efa + 20170a9 commit 3cb7441
Showing 1 changed file with 78 additions and 40 deletions.
118 changes: 78 additions & 40 deletions dxr/plugins/clang/dxr-index.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -95,20 +95,33 @@ class PreprocThunk : public PPCallbacks {
PreprocThunk(IndexConsumer *c) : real(c) {}
#if CLANG_AT_LEAST(3, 3)
void MacroDefined(const Token &tok, const MacroDirective *md) override;
void MacroExpands(const Token &tok, const MacroDirective *md, SourceRange range,
const MacroArgs *ma) override;
void MacroUndefined(const Token &tok, const MacroDirective *md) override;
#if CLANG_AT_LEAST(3, 4)
void Defined(const Token &tok, const MacroDirective *md,
SourceRange range) override;
#else
void Defined(const Token &tok, const MacroDirective *md) override;
#endif
void Ifdef(SourceLocation loc, const Token &tok,
const MacroDirective *md) override;
void Ifndef(SourceLocation loc, const Token &tok,
const MacroDirective *md) override;
#else
#if CLANG_AT_LEAST(3, 7)
void MacroExpands(const Token &tok, const MacroDefinition &md,
SourceRange range, const MacroArgs *ma) override;
void MacroUndefined(const Token &tok, const MacroDefinition &md) override;
void Ifdef(SourceLocation loc, const Token &tok,
const MacroDefinition &md) override;
void Ifndef(SourceLocation loc, const Token &tok,
const MacroDefinition &md) override;
#else
void MacroExpands(const Token &tok, const MacroDirective *md,
SourceRange range, const MacroArgs *ma) override;
void MacroUndefined(const Token &tok, const MacroDirective *md) override;
void Ifdef(SourceLocation loc, const Token &tok,
const MacroDirective *md) override;
void Ifndef(SourceLocation loc, const Token &tok,
const MacroDirective *md) override;
#endif
#if CLANG_AT_LEAST(3, 7)
void Defined(const Token &tok, const MacroDefinition &md,
SourceRange range) override;
#elif CLANG_AT_LEAST(3, 4)
void Defined(const Token &tok, const MacroDirective *md,
SourceRange range) override;
#else
void Defined(const Token &tok, const MacroDirective *md) override;
#endif
#else // clang < 3.3
void MacroDefined(const Token &MacroNameTok, const MacroInfo *MI) override;
void MacroExpands(const Token &MacroNameTok, const MacroInfo *MI,
SourceRange Range) override;
Expand All @@ -117,7 +130,7 @@ class PreprocThunk : public PPCallbacks {
void Ifdef(SourceLocation loc, const Token &tok) override;
void Ifndef(SourceLocation loc, const Token &tok) override;
#endif
void InclusionDirective( // same in 3.2 and 3.3
void InclusionDirective(
SourceLocation hashLoc,
const Token &includeTok,
StringRef fileName,
Expand Down Expand Up @@ -1261,30 +1274,55 @@ class IndexConsumer : public ASTConsumer,
void PreprocThunk::MacroDefined(const Token &tok, const MacroDirective *md) {
real->MacroDefined(tok, md->getMacroInfo());
}
void PreprocThunk::MacroExpands(const Token &tok, const MacroDirective *md,
SourceRange range, const MacroArgs *ma) {
real->MacroExpands(tok, md->getMacroInfo(), range);
}
void PreprocThunk::MacroUndefined(const Token &tok, const MacroDirective *md) {
real->MacroUndefined(tok, md->getMacroInfo());
}
#if CLANG_AT_LEAST(3, 4)
void PreprocThunk::Defined(const Token &tok, const MacroDirective *md,
SourceRange) {
#else
void PreprocThunk::Defined(const Token &tok, const MacroDirective *md) {
#endif
real->Defined(tok, md->getMacroInfo());
}
void PreprocThunk::Ifdef(SourceLocation loc, const Token &tok,
const MacroDirective *md) {
real->Ifdef(loc, tok, md->getMacroInfo());
}
void PreprocThunk::Ifndef(SourceLocation loc, const Token &tok,
const MacroDirective *md) {
real->Ifndef(loc, tok, md->getMacroInfo());
}
#else
#if CLANG_AT_LEAST(3, 7)
void PreprocThunk::MacroExpands(const Token &tok, const MacroDefinition &md,
SourceRange range, const MacroArgs *ma) {
real->MacroExpands(tok, md.getMacroInfo(), range);
}
void PreprocThunk::MacroUndefined(const Token &tok, const MacroDefinition &md) {
real->MacroUndefined(tok, md.getMacroInfo());
}
void PreprocThunk::Ifdef(SourceLocation loc, const Token &tok,
const MacroDefinition &md) {
real->Ifdef(loc, tok, md.getMacroInfo());
}
void PreprocThunk::Ifndef(SourceLocation loc, const Token &tok,
const MacroDefinition &md) {
real->Ifndef(loc, tok, md.getMacroInfo());
}
#else
void PreprocThunk::MacroExpands(const Token &tok, const MacroDirective *md,
SourceRange range, const MacroArgs *ma) {
real->MacroExpands(tok, md->getMacroInfo(), range);
}
void PreprocThunk::MacroUndefined(const Token &tok, const MacroDirective *md) {
real->MacroUndefined(tok, md->getMacroInfo());
}
void PreprocThunk::Ifdef(SourceLocation loc, const Token &tok,
const MacroDirective *md) {
real->Ifdef(loc, tok, md->getMacroInfo());
}
void PreprocThunk::Ifndef(SourceLocation loc, const Token &tok,
const MacroDirective *md) {
real->Ifndef(loc, tok, md->getMacroInfo());
}
#endif
#if CLANG_AT_LEAST(3, 7)
void PreprocThunk::Defined(const Token &tok, const MacroDefinition &md,
SourceRange range) {
real->Defined(tok, md.getMacroInfo());
}
#elif CLANG_AT_LEAST(3, 4)
void PreprocThunk::Defined(const Token &tok, const MacroDirective *md,
SourceRange) {
real->Defined(tok, md->getMacroInfo());
}
#else
void PreprocThunk::Defined(const Token &tok, const MacroDirective *md) {
real->Defined(tok, md->getMacroInfo());
}
#endif
#else // clang < 3.3
void PreprocThunk::MacroDefined(const Token &tok, const MacroInfo *MI) {
real->MacroDefined(tok, MI);
}
Expand All @@ -1305,7 +1343,7 @@ void PreprocThunk::Ifndef(SourceLocation loc, const Token &tok) {
real->Ifndef(loc, tok, nullptr);
}
#endif
void PreprocThunk::InclusionDirective( // same in 3.2 and 3.3
void PreprocThunk::InclusionDirective(
SourceLocation hashLoc,
const Token &includeTok,
StringRef fileName,
Expand Down

0 comments on commit 3cb7441

Please sign in to comment.