]> granicus.if.org Git - clang/commitdiff
Refactor ASTReader::readInputFileInfo to return a struct containing the related infor...
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>
Fri, 14 Mar 2014 02:26:27 +0000 (02:26 +0000)
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>
Fri, 14 Mar 2014 02:26:27 +0000 (02:26 +0000)
No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203881 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Serialization/ASTReader.h
lib/Serialization/ASTReader.cpp

index 13909dbbd38b7019807c1f2adadbe23c8cfefde6..92b2172f51dd10d8307038adc4d0764c739ee6f2 100644 (file)
@@ -1022,10 +1022,15 @@ private:
   /// \brief Reads a statement from the specified cursor.
   Stmt *ReadStmtFromStream(ModuleFile &F);
 
+  struct InputFileInfo {
+    std::string Filename;
+    off_t StoredSize;
+    time_t StoredTime;
+    bool Overridden;
+  };
+
   /// \brief Reads the stored information about an input file.
-  void readInputFileInfo(ModuleFile &F, unsigned ID, std::string &Filename,
-                         off_t &StoredSize, time_t &StoredTime,
-                         bool &Overridden);
+  InputFileInfo readInputFileInfo(ModuleFile &F, unsigned ID);
   /// \brief A convenience method to read the filename from an input file.
   std::string getInputFileName(ModuleFile &F, unsigned ID);
 
index 62bc2246d28e8b03feed0af4f625b89a15e7dd98..595edfc4c5b84ad5a4e41aaf54db15f15acb1670 100644 (file)
@@ -1870,9 +1870,8 @@ void ASTReader::installImportedMacro(IdentifierInfo *II, ModuleMacroInfo *MMI,
   PP.appendMacroDirective(II, MD);
 }
 
-void ASTReader::readInputFileInfo(ModuleFile &F, unsigned ID,
-                                 std::string &Filename, off_t &StoredSize,
-                                 time_t &StoredTime, bool &Overridden) {
+ASTReader::InputFileInfo
+ASTReader::readInputFileInfo(ModuleFile &F, unsigned ID) {
   // Go find this input file.
   BitstreamCursor &Cursor = F.InputFilesCursor;
   SavedStreamPosition SavedPosition(Cursor);
@@ -1887,21 +1886,23 @@ void ASTReader::readInputFileInfo(ModuleFile &F, unsigned ID,
          "invalid record type for input file");
   (void)Result;
 
+  std::string Filename;
+  off_t StoredSize;
+  time_t StoredTime;
+  bool Overridden;
+  
   assert(Record[0] == ID && "Bogus stored ID or offset");
   StoredSize = static_cast<off_t>(Record[1]);
   StoredTime = static_cast<time_t>(Record[2]);
   Overridden = static_cast<bool>(Record[3]);
   Filename = Blob;
   MaybeAddSystemRootToFilename(F, Filename);
+  
+  return { std::move(Filename), StoredSize, StoredTime, Overridden };
 }
 
 std::string ASTReader::getInputFileName(ModuleFile &F, unsigned int ID) {
-  off_t StoredSize;
-  time_t StoredTime;
-  bool Overridden;
-  std::string Filename;
-  readInputFileInfo(F, ID, Filename, StoredSize, StoredTime, Overridden);
-  return Filename;
+  return readInputFileInfo(F, ID).Filename;
 }
 
 InputFile ASTReader::getInputFile(ModuleFile &F, unsigned ID, bool Complain) {
@@ -1921,11 +1922,11 @@ InputFile ASTReader::getInputFile(ModuleFile &F, unsigned ID, bool Complain) {
   SavedStreamPosition SavedPosition(Cursor);
   Cursor.JumpToBit(F.InputFileOffsets[ID-1]);
   
-  off_t StoredSize;
-  time_t StoredTime;
-  bool Overridden;
-  std::string Filename;
-  readInputFileInfo(F, ID, Filename, StoredSize, StoredTime, Overridden);
+  InputFileInfo FI = readInputFileInfo(F, ID);
+  off_t StoredSize = FI.StoredSize;
+  time_t StoredTime = FI.StoredTime;
+  bool Overridden = FI.Overridden;
+  StringRef Filename = FI.Filename;
 
   const FileEntry *File
     = Overridden? FileMgr.getVirtualFile(Filename, StoredSize, StoredTime)