]> granicus.if.org Git - clang/commitdiff
Add ASTUnit::getOriginalSourceFileName() and use in clang_getTranslationUnitSpelling().
authorSteve Naroff <snaroff@apple.com>
Thu, 3 Sep 2009 18:19:54 +0000 (18:19 +0000)
committerSteve Naroff <snaroff@apple.com>
Thu, 3 Sep 2009 18:19:54 +0000 (18:19 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80932 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Frontend/ASTUnit.h
lib/Frontend/ASTUnit.cpp
tools/CIndex/CIndex.cpp

index 5eb7f494d736989c854825164f3c2a7a2310b5c7..2b410ca1c8f18e27555c32deabf9f4113c035a83 100644 (file)
@@ -58,6 +58,8 @@ public:
 
   const Diagnostic &getDiagnostic() const { return *Diags.get(); }
         Diagnostic &getDiagnostic()       { return *Diags.get(); }
+        
+  const std::string &getOriginalSourceFileName();
 
   /// \brief Create a ASTUnit from a PCH file.
   ///
index 8143263ca2f94ee881104424774e048a26fbf154..d04f785ebe3b5e88bd2b45ffbc6fd476b86202a8 100644 (file)
@@ -77,6 +77,9 @@ public:
 
 } // anonymous namespace
 
+const std::string &ASTUnit::getOriginalSourceFileName() {
+  return dyn_cast<PCHReader>(Ctx->getExternalSource())->getOriginalSourceFile();
+}
 
 ASTUnit *ASTUnit::LoadFromPCHFile(const std::string &Filename,
                                   FileManager &FileMgr,
index 5d1ee9684fd2f8b5da0fab036577423bc1813f8a..ef285e0778699ecdb4187513067b3431d906671b 100644 (file)
@@ -194,9 +194,8 @@ CXTranslationUnit clang_createTranslationUnit(
 const char *clang_getTranslationUnitSpelling(CXTranslationUnit CTUnit)
 {
   assert(CTUnit && "Passed null CXTranslationUnit");
-  //ASTUnit *CXXUnit = static_cast<ASTUnit *>(CTUnit);
-  //return CXXUnit->getOriginalSourceFileName().c_str();
-  return "<unimplemented>";
+  ASTUnit *CXXUnit = static_cast<ASTUnit *>(CTUnit);
+  return CXXUnit->getOriginalSourceFileName().c_str();
 }
 
 void clang_loadTranslationUnit(CXTranslationUnit CTUnit,