diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2013-03-05 20:21:14 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2013-03-05 20:21:14 +0000 |
commit | 44f65a587ee39c20e715c9df411c864d328c71b5 (patch) | |
tree | 45ab61a5b93023556ee56ed74f81187756f837e5 | |
parent | ca76bf8a935ef1da970fbc95869e899120883ba1 (diff) |
[libclang] When logging a CXTranslationUnit that came from an AST file, print out the filename.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176511 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/clang/Frontend/ASTUnit.h | 3 | ||||
-rw-r--r-- | lib/Frontend/ASTUnit.cpp | 9 | ||||
-rw-r--r-- | tools/libclang/CIndex.cpp | 2 |
3 files changed, 14 insertions, 0 deletions
diff --git a/include/clang/Frontend/ASTUnit.h b/include/clang/Frontend/ASTUnit.h index 9a02c0c2b8..108114dd67 100644 --- a/include/clang/Frontend/ASTUnit.h +++ b/include/clang/Frontend/ASTUnit.h @@ -485,6 +485,9 @@ public: StringRef getMainFileName() const; + /// \brief If this ASTUnit came from an AST file, returns the filename for it. + StringRef getASTFileName() const; + typedef std::vector<Decl *>::iterator top_level_iterator; top_level_iterator top_level_begin() { diff --git a/lib/Frontend/ASTUnit.cpp b/lib/Frontend/ASTUnit.cpp index 3dc6e2e607..4a956ff3ab 100644 --- a/lib/Frontend/ASTUnit.cpp +++ b/lib/Frontend/ASTUnit.cpp @@ -1711,6 +1711,15 @@ StringRef ASTUnit::getMainFileName() const { return StringRef(); } +StringRef ASTUnit::getASTFileName() const { + if (!isMainFileAST()) + return StringRef(); + + serialization::ModuleFile & + Mod = Reader->getModuleManager().getPrimaryModule(); + return Mod.FileName; +} + ASTUnit *ASTUnit::create(CompilerInvocation *CI, IntrusiveRefCntPtr<DiagnosticsEngine> Diags, bool CaptureDiagnostics, diff --git a/tools/libclang/CIndex.cpp b/tools/libclang/CIndex.cpp index 36224a8cff..2cfaea442b 100644 --- a/tools/libclang/CIndex.cpp +++ b/tools/libclang/CIndex.cpp @@ -6387,6 +6387,8 @@ Logger &cxindex::Logger::operator<<(CXTranslationUnit TU) { if (TU) { if (ASTUnit *Unit = cxtu::getASTUnit(TU)) { LogOS << '<' << Unit->getMainFileName() << '>'; + if (Unit->isMainFileAST()) + LogOS << " (" << Unit->getASTFileName() << ')'; return *this; } } |