From b6441ef9b7285bd1aa77b05b10f473f7a3f413e7 Mon Sep 17 00:00:00 2001 From: Argyrios Kyrtzidis Date: Mon, 19 Sep 2011 20:40:42 +0000 Subject: [PATCH] Introduce local_begin()/local_end() methods in PreprocessingRecord which return iterators for local, non-loaded, preprocessed entities. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140062 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/Lex/PreprocessingRecord.h | 23 ++++++++++++++++++++--- lib/Frontend/ASTUnit.cpp | 2 +- lib/Lex/PreprocessingRecord.cpp | 12 ------------ lib/Serialization/ASTWriter.cpp | 6 +++--- 4 files changed, 24 insertions(+), 19 deletions(-) diff --git a/include/clang/Lex/PreprocessingRecord.h b/include/clang/Lex/PreprocessingRecord.h index b348c4e7c7..00b93c0158 100644 --- a/include/clang/Lex/PreprocessingRecord.h +++ b/include/clang/Lex/PreprocessingRecord.h @@ -483,9 +483,26 @@ namespace clang { } }; friend class iterator; - - iterator begin(bool OnlyLocalEntities = false); - iterator end(bool OnlyLocalEntities = false); + + /// \brief Begin iterator for all preprocessed entities. + iterator begin() { + return iterator(this, -(int)LoadedPreprocessedEntities.size()); + } + + /// \brief End iterator for all preprocessed entities. + iterator end() { + return iterator(this, PreprocessedEntities.size()); + } + + /// \brief Begin iterator for local, non-loaded, preprocessed entities. + iterator local_begin() { + return iterator(this, 0); + } + + /// \brief End iterator for local, non-loaded, preprocessed entities. + iterator local_end() { + return iterator(this, PreprocessedEntities.size()); + } /// \brief Returns a pair of [Begin, End) iterators of preprocessed entities /// that source range \arg R encompasses. diff --git a/lib/Frontend/ASTUnit.cpp b/lib/Frontend/ASTUnit.cpp index 53e0412750..60e1c3bab6 100644 --- a/lib/Frontend/ASTUnit.cpp +++ b/lib/Frontend/ASTUnit.cpp @@ -1534,7 +1534,7 @@ void ASTUnit::RealizePreprocessedEntitiesFromPreamble() { return; PreprocessedEntities.insert(PreprocessedEntities.end(), - PPRec->begin(true), PPRec->end(true)); + PPRec->local_begin(), PPRec->local_end()); } ASTUnit::pp_entity_iterator ASTUnit::pp_entity_begin() { diff --git a/lib/Lex/PreprocessingRecord.cpp b/lib/Lex/PreprocessingRecord.cpp index 1fc8230763..b1c0c716c1 100644 --- a/lib/Lex/PreprocessingRecord.cpp +++ b/lib/Lex/PreprocessingRecord.cpp @@ -44,18 +44,6 @@ PreprocessingRecord::PreprocessingRecord(SourceManager &SM, { } -PreprocessingRecord::iterator -PreprocessingRecord::begin(bool OnlyLocalEntities) { - if (OnlyLocalEntities) - return iterator(this, 0); - - return iterator(this, -(int)LoadedPreprocessedEntities.size()); -} - -PreprocessingRecord::iterator PreprocessingRecord::end(bool OnlyLocalEntities) { - return iterator(this, PreprocessedEntities.size()); -} - /// \brief Returns a pair of [Begin, End) iterators of preprocessed entities /// that source range \arg R encompasses. std::pair diff --git a/lib/Serialization/ASTWriter.cpp b/lib/Serialization/ASTWriter.cpp index 3227476ee9..ac961c78f9 100644 --- a/lib/Serialization/ASTWriter.cpp +++ b/lib/Serialization/ASTWriter.cpp @@ -1711,7 +1711,7 @@ void ASTWriter::WritePreprocessor(const Preprocessor &PP, bool IsModule) { } void ASTWriter::WritePreprocessorDetail(PreprocessingRecord &PPRec) { - if (PPRec.begin(Chain) == PPRec.end(Chain)) + if (PPRec.local_begin() == PPRec.local_end()) return; SmallVector PreprocessedEntityOffsets; @@ -1744,8 +1744,8 @@ void ASTWriter::WritePreprocessorDetail(PreprocessingRecord &PPRec) { unsigned NextPreprocessorEntityID = FirstPreprocessorEntityID; RecordData Record; uint64_t BitsInChain = Chain? Chain->TotalModulesSizeInBits : 0; - for (PreprocessingRecord::iterator E = PPRec.begin(Chain), - EEnd = PPRec.end(Chain); + for (PreprocessingRecord::iterator E = PPRec.local_begin(), + EEnd = PPRec.local_end(); E != EEnd; (void)++E, ++NumPreprocessingRecords, ++NextPreprocessorEntityID) { Record.clear(); -- 2.40.0