r203881 - Refactor ASTReader::readInputFileInfo to return a struct containing the related information.
Argyrios Kyrtzidis
akyrtzi at gmail.com
Thu Mar 13 19:26:27 PDT 2014
Author: akirtzidis
Date: Thu Mar 13 21:26:27 2014
New Revision: 203881
URL: http://llvm.org/viewvc/llvm-project?rev=203881&view=rev
Log:
Refactor ASTReader::readInputFileInfo to return a struct containing the related information.
No functionality change.
Modified:
cfe/trunk/include/clang/Serialization/ASTReader.h
cfe/trunk/lib/Serialization/ASTReader.cpp
Modified: cfe/trunk/include/clang/Serialization/ASTReader.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Serialization/ASTReader.h?rev=203881&r1=203880&r2=203881&view=diff
==============================================================================
--- cfe/trunk/include/clang/Serialization/ASTReader.h (original)
+++ cfe/trunk/include/clang/Serialization/ASTReader.h Thu Mar 13 21:26:27 2014
@@ -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);
Modified: cfe/trunk/lib/Serialization/ASTReader.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/ASTReader.cpp?rev=203881&r1=203880&r2=203881&view=diff
==============================================================================
--- cfe/trunk/lib/Serialization/ASTReader.cpp (original)
+++ cfe/trunk/lib/Serialization/ASTReader.cpp Thu Mar 13 21:26:27 2014
@@ -1870,9 +1870,8 @@ void ASTReader::installImportedMacro(Ide
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(Module
"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(Module
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)
More information about the cfe-commits
mailing list