[cfe-commits] r45223 - in /cfe/trunk: AST/TranslationUnit.cpp Driver/ASTConsumers.cpp Driver/ASTConsumers.h Driver/SerializationTest.cpp Driver/clang.cpp include/clang/AST/TranslationUnit.h

Ted Kremenek kremenek at apple.com
Wed Dec 19 14:24:35 PST 2007


Author: kremenek
Date: Wed Dec 19 16:24:34 2007
New Revision: 45223

URL: http://llvm.org/viewvc/llvm-project?rev=45223&view=rev
Log:
Removed "SourceFile" from TranslationUnit. This same information will (soon)
be available by querying the SourceManager within the ASTContext referenced by
the TranslationUnit.

Modified:
    cfe/trunk/AST/TranslationUnit.cpp
    cfe/trunk/Driver/ASTConsumers.cpp
    cfe/trunk/Driver/ASTConsumers.h
    cfe/trunk/Driver/SerializationTest.cpp
    cfe/trunk/Driver/clang.cpp
    cfe/trunk/include/clang/AST/TranslationUnit.h

Modified: cfe/trunk/AST/TranslationUnit.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/AST/TranslationUnit.cpp?rev=45223&r1=45222&r2=45223&view=diff

==============================================================================
--- cfe/trunk/AST/TranslationUnit.cpp (original)
+++ cfe/trunk/AST/TranslationUnit.cpp Wed Dec 19 16:24:34 2007
@@ -99,11 +99,7 @@
   // Block for SourceManager, LangOptions, and Target.  Allows easy skipping
   // around to the block for the Selectors during deserialization.
   Sezr.EnterBlock();
-  
-  // Emit the name of the source file.
-  Sezr.EmitCStr(SourceFile.c_str());
-  Sezr.FlushRecord();
-  
+    
   // Emit the SourceManager.
   Sezr.Emit(Context->getSourceManager());
   
@@ -186,12 +182,6 @@
   FoundBlock = Dezr.SkipToBlock(BasicMetadataBlock);
   assert (FoundBlock);
   
-  { // Read the SourceFile.
-    char* SName = Dezr.ReadCStr(NULL,0,true);
-    TU->SourceFile = SName;
-    delete [] SName;
-  }
-
   // Read the SourceManager.
   SourceManager::CreateAndRegister(Dezr,FMgr);
   

Modified: cfe/trunk/Driver/ASTConsumers.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/Driver/ASTConsumers.cpp?rev=45223&r1=45222&r2=45223&view=diff

==============================================================================
--- cfe/trunk/Driver/ASTConsumers.cpp (original)
+++ cfe/trunk/Driver/ASTConsumers.cpp Wed Dec 19 16:24:34 2007
@@ -614,10 +614,9 @@
     TranslationUnit TU;
     const llvm::sys::Path FName;
   public:
-    ASTSerializer(const std::string& SourceFile,
-                  const llvm::sys::Path& F, Diagnostic &diags,
+    ASTSerializer(const llvm::sys::Path& F, Diagnostic &diags,
                   const LangOptions &LO)
-    : Diags(diags), TU(SourceFile,LO), FName(F) {}
+    : Diags(diags), TU(LO), FName(F) {}
     
     virtual void Initialize(ASTContext &Context, unsigned MainFileID) {
       TU.setContext(&Context);
@@ -637,7 +636,7 @@
 } // end anonymous namespace
 
 
-ASTConsumer* clang::CreateASTSerializer(const std::string& SourceFile,
+ASTConsumer* clang::CreateASTSerializer(const std::string& InFile,
                                         Diagnostic &Diags,
                                         const LangOptions &Features) {
   // FIXME: If the translation unit we are serializing came was itself
@@ -646,15 +645,15 @@
   //        be completely replaced momentarily.
   
   // FIXME: This is a hack: "/" separator not portable.
-  std::string::size_type idx = SourceFile.rfind("/");
+  std::string::size_type idx = InFile.rfind("/");
   
-  if (idx != std::string::npos && idx == SourceFile.size()-1)
+  if (idx != std::string::npos && idx == InFile.size()-1)
     return NULL;
   
   std::string TargetPrefix( idx == std::string::npos ?
-                           SourceFile : SourceFile.substr(idx+1));
+                           InFile : InFile.substr(idx+1));
   
   llvm::sys::Path FName = llvm::sys::Path((TargetPrefix + ".ast").c_str());
   
-  return new ASTSerializer(SourceFile, FName, Diags, Features);
+  return new ASTSerializer(FName, Diags, Features);
 }

Modified: cfe/trunk/Driver/ASTConsumers.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/Driver/ASTConsumers.h?rev=45223&r1=45222&r2=45223&view=diff

==============================================================================
--- cfe/trunk/Driver/ASTConsumers.h (original)
+++ cfe/trunk/Driver/ASTConsumers.h Wed Dec 19 16:24:34 2007
@@ -26,20 +26,30 @@
 struct LangOptions;
 
 ASTConsumer *CreateASTPrinter(std::ostream* OS = NULL);
+
 ASTConsumer *CreateASTDumper();
+
 ASTConsumer *CreateASTViewer();
+
 ASTConsumer *CreateCFGDumper(bool ViewGraphs = false);
+
 ASTConsumer *CreateLiveVarAnalyzer();
+
 ASTConsumer *CreateDeadStoreChecker(Diagnostic &Diags);
+
 ASTConsumer *CreateUnitValsChecker(Diagnostic &Diags);
+
 ASTConsumer *CreateLLVMEmitter(Diagnostic &Diags, const LangOptions &Features);
+
 ASTConsumer *CreateCodeRewriterTest(Diagnostic &Diags);
-ASTConsumer *CreateSerializationTest(const std::string& SourceFile,
-                                     Diagnostic &Diags, FileManager& FMgr, 
+
+ASTConsumer *CreateSerializationTest(Diagnostic &Diags,
+                                     FileManager& FMgr, 
                                      const LangOptions &LOpts);
   
-ASTConsumer *CreateASTSerializer(const std::string& SourceFile,
-                                 Diagnostic &Diags, const LangOptions &LOpts);
+ASTConsumer *CreateASTSerializer(const std::string& InFile, 
+                                 Diagnostic &Diags,
+                                 const LangOptions &LOpts);
 
 } // end clang namespace
 

Modified: cfe/trunk/Driver/SerializationTest.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/Driver/SerializationTest.cpp?rev=45223&r1=45222&r2=45223&view=diff

==============================================================================
--- cfe/trunk/Driver/SerializationTest.cpp (original)
+++ cfe/trunk/Driver/SerializationTest.cpp Wed Dec 19 16:24:34 2007
@@ -37,9 +37,8 @@
   Diagnostic &Diags;
   FileManager &FMgr;  
 public:  
-  SerializationTest(const std::string& SourceFile, Diagnostic &d,
-                    FileManager& fmgr, const LangOptions& LOpts)
-                    : TU(SourceFile, LOpts), Diags(d), FMgr(fmgr) {}
+  SerializationTest(Diagnostic &d, FileManager& fmgr, const LangOptions& LOpts)
+                    : TU(LOpts), Diags(d), FMgr(fmgr) {}
   
   ~SerializationTest();
 
@@ -59,9 +58,10 @@
 } // end anonymous namespace
 
 ASTConsumer*
-clang::CreateSerializationTest(const std::string& SourceFile, Diagnostic &Diags,
-                               FileManager& FMgr, const LangOptions &LOpts) {  
-  return new SerializationTest(SourceFile,Diags,FMgr,LOpts);
+clang::CreateSerializationTest(Diagnostic &Diags, FileManager& FMgr,
+                               const LangOptions &LOpts) {
+  
+  return new SerializationTest(Diags,FMgr,LOpts);
 }
 
 

Modified: cfe/trunk/Driver/clang.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/Driver/clang.cpp?rev=45223&r1=45222&r2=45223&view=diff

==============================================================================
--- cfe/trunk/Driver/clang.cpp (original)
+++ cfe/trunk/Driver/clang.cpp Wed Dec 19 16:24:34 2007
@@ -894,7 +894,7 @@
 /// CreateASTConsumer - Create the ASTConsumer for the corresponding program
 ///  action.  These consumers can operate on both ASTs that are freshly
 ///  parsed from source files as well as those deserialized from Bitcode.
-static ASTConsumer* CreateASTConsumer(const std::string& SourceFile,
+static ASTConsumer* CreateASTConsumer(const std::string& InFile,
                                       Diagnostic& Diag, FileManager& FileMgr, 
                                       const LangOptions& LangOpts) {
   switch (ProgAction) {
@@ -924,14 +924,14 @@
       return CreateUnitValsChecker(Diag);
       
     case TestSerialization:
-      return CreateSerializationTest(SourceFile, Diag, FileMgr, LangOpts);
+      return CreateSerializationTest(Diag, FileMgr, LangOpts);
       
     case EmitLLVM:
       return CreateLLVMEmitter(Diag, LangOpts);
       
     case SerializeAST:
       // FIXME: Allow user to tailor where the file is written.
-      return CreateASTSerializer(SourceFile, Diag, LangOpts);
+      return CreateASTSerializer(InFile, Diag, LangOpts);
       
     case RewriteTest:
       return CreateCodeRewriterTest(Diag);
@@ -941,7 +941,7 @@
 /// ProcessInputFile - Process a single input file with the specified state.
 ///
 static void ProcessInputFile(Preprocessor &PP, unsigned MainFileID,
-                             const std::string &SourceFile,
+                             const std::string &InFile,
                              TextDiagnostics &OurDiagnosticClient) {
 
   ASTConsumer* Consumer = NULL;
@@ -949,7 +949,8 @@
   
   switch (ProgAction) {
   default:
-    Consumer = CreateASTConsumer(SourceFile, PP.getDiagnostics(),
+    Consumer = CreateASTConsumer(InFile,
+                                 PP.getDiagnostics(),
                                  PP.getFileManager(),
                                  PP.getLangOptions());
     
@@ -957,6 +958,7 @@
       fprintf(stderr, "Unexpected program action!\n");
       return;
     }
+
     break;
       
   case DumpTokens: {                 // Token dump mode.
@@ -1012,7 +1014,7 @@
   }
   
   if (Stats) {
-    fprintf(stderr, "\nSTATISTICS FOR '%s':\n", SourceFile.c_str());
+    fprintf(stderr, "\nSTATISTICS FOR '%s':\n", InFile.c_str());
     PP.PrintStats();
     PP.getIdentifierTable().PrintStats();
     PP.getHeaderSearchInfo().PrintStats();
@@ -1054,8 +1056,7 @@
   // Observe that we use the source file name stored in the deserialized
   // translation unit, rather than InFile.
   llvm::scoped_ptr<ASTConsumer>
-    Consumer(CreateASTConsumer(TU->getSourceFile(), Diag, FileMgr,
-                               TU->getLangOpts()));
+    Consumer(CreateASTConsumer(InFile, Diag, FileMgr, TU->getLangOpts()));
   
   if (!Consumer) {      
     fprintf(stderr, "Unsupported program action with serialized ASTs!\n");

Modified: cfe/trunk/include/clang/AST/TranslationUnit.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/TranslationUnit.h?rev=45223&r1=45222&r2=45223&view=diff

==============================================================================
--- cfe/trunk/include/clang/AST/TranslationUnit.h (original)
+++ cfe/trunk/include/clang/AST/TranslationUnit.h Wed Dec 19 16:24:34 2007
@@ -31,7 +31,6 @@
 class FileEntry;
   
 class TranslationUnit {
-  std::string SourceFile;
   LangOptions LangOpts;
   ASTContext* Context;
   std::vector<Decl*> TopLevelDecls;
@@ -40,15 +39,14 @@
   explicit TranslationUnit() : Context(NULL) {}
   
 public:
-  explicit TranslationUnit(const std::string& sourcefile, 
-                           const LangOptions& lopt)
-    : SourceFile(sourcefile), LangOpts(lopt), Context(NULL) {}
-  
-  
+  explicit TranslationUnit(const LangOptions& lopt)
+    : LangOpts(lopt), Context(NULL) {}
+
   void setContext(ASTContext* context) { Context = context; }
   ASTContext* getContext() const { return Context; }
+  
   const LangOptions& getLangOpts() const { return LangOpts; }
-  const std::string& getSourceFile() const { return SourceFile; }
+  const std::string& getSourceFile() const;
   
   /// Emit - Emit the translation unit to an arbitray bitcode stream.
   void Emit(llvm::Serializer& S) const;





More information about the cfe-commits mailing list