diff options
| author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2012-01-17 18:48:07 +0000 |
|---|---|---|
| committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2012-01-17 18:48:07 +0000 |
| commit | da6e05476d848422e9505a22921466092abcd415 (patch) | |
| tree | 3c9fa4379fb7dad80391cd8afd2ec4c5d9e811ab | |
| parent | 5767f0f1131564cfac89abda0d3d9135e2b7e031 (diff) | |
| download | bcm5719-llvm-da6e05476d848422e9505a22921466092abcd415.tar.gz bcm5719-llvm-da6e05476d848422e9505a22921466092abcd415.zip | |
[libclang] Make sure Preprocessor is set in ASTUnit during indexing.
llvm-svn: 148319
| -rw-r--r-- | clang/include/clang/Frontend/ASTUnit.h | 1 | ||||
| -rw-r--r-- | clang/lib/Frontend/ASTUnit.cpp | 2 | ||||
| -rw-r--r-- | clang/tools/libclang/Indexing.cpp | 1 | ||||
| -rw-r--r-- | clang/tools/libclang/IndexingContext.cpp | 4 | ||||
| -rw-r--r-- | clang/tools/libclang/IndexingContext.h | 1 |
5 files changed, 9 insertions, 0 deletions
diff --git a/clang/include/clang/Frontend/ASTUnit.h b/clang/include/clang/Frontend/ASTUnit.h index 8feab307ea5..4b84e6a8d6b 100644 --- a/clang/include/clang/Frontend/ASTUnit.h +++ b/clang/include/clang/Frontend/ASTUnit.h @@ -457,6 +457,7 @@ public: ASTContext &getASTContext() { return *Ctx; } void setASTContext(ASTContext *ctx) { Ctx = ctx; } + void setPreprocessor(Preprocessor *pp); bool hasSema() const { return TheSema; } Sema &getSema() const { diff --git a/clang/lib/Frontend/ASTUnit.cpp b/clang/lib/Frontend/ASTUnit.cpp index 5272636fa90..e31bf5500ba 100644 --- a/clang/lib/Frontend/ASTUnit.cpp +++ b/clang/lib/Frontend/ASTUnit.cpp @@ -262,6 +262,8 @@ ASTUnit::~ASTUnit() { } } +void ASTUnit::setPreprocessor(Preprocessor *pp) { PP = pp; } + /// \brief Determine the set of code-completion contexts in which this /// declaration should be shown. static unsigned getDeclShowContexts(NamedDecl *ND, diff --git a/clang/tools/libclang/Indexing.cpp b/clang/tools/libclang/Indexing.cpp index 630c55bb335..6bffc6b97aa 100644 --- a/clang/tools/libclang/Indexing.cpp +++ b/clang/tools/libclang/Indexing.cpp @@ -176,6 +176,7 @@ public: IndexCtx.setASTContext(CI.getASTContext()); Preprocessor &PP = CI.getPreprocessor(); PP.addPPCallbacks(new IndexPPCallbacks(PP, IndexCtx)); + IndexCtx.setPreprocessor(PP); return new IndexingConsumer(IndexCtx); } diff --git a/clang/tools/libclang/IndexingContext.cpp b/clang/tools/libclang/IndexingContext.cpp index befdce90459..1c58d23f54c 100644 --- a/clang/tools/libclang/IndexingContext.cpp +++ b/clang/tools/libclang/IndexingContext.cpp @@ -208,6 +208,10 @@ void IndexingContext::setASTContext(ASTContext &ctx) { static_cast<ASTUnit*>(CXTU->TUData)->setASTContext(&ctx); } +void IndexingContext::setPreprocessor(Preprocessor &PP) { + static_cast<ASTUnit*>(CXTU->TUData)->setPreprocessor(&PP); +} + bool IndexingContext::shouldAbort() { if (!CB.abortQuery) return false; diff --git a/clang/tools/libclang/IndexingContext.h b/clang/tools/libclang/IndexingContext.h index 26b8ecb75d0..bc33005e89d 100644 --- a/clang/tools/libclang/IndexingContext.h +++ b/clang/tools/libclang/IndexingContext.h @@ -319,6 +319,7 @@ public: ASTContext &getASTContext() const { return *Ctx; } void setASTContext(ASTContext &ctx); + void setPreprocessor(Preprocessor &PP); bool suppressRefs() const { return IndexOptions & CXIndexOpt_SuppressRedundantRefs; |

