diff options
Diffstat (limited to 'include/clang')
-rw-r--r-- | include/clang/Serialization/ASTBitCodes.h | 5 | ||||
-rw-r--r-- | include/clang/Serialization/ASTReader.h | 3 | ||||
-rw-r--r-- | include/clang/Serialization/ContinuousRangeMap.h | 3 |
3 files changed, 10 insertions, 1 deletions
diff --git a/include/clang/Serialization/ASTBitCodes.h b/include/clang/Serialization/ASTBitCodes.h index fbaf587ad5..55d0ddbbc5 100644 --- a/include/clang/Serialization/ASTBitCodes.h +++ b/include/clang/Serialization/ASTBitCodes.h @@ -141,7 +141,10 @@ namespace clang { /// \brief An ID number that refers to an entity in the detailed /// preprocessing record. typedef uint32_t PreprocessedEntityID; - + + /// \brief The number of predefined preprocessed entity IDs. + const unsigned int NUM_PREDEF_PP_ENTITY_IDS = 1; + /// \brief Describes the various kinds of blocks that occur within /// an AST file. enum BlockIDs { diff --git a/include/clang/Serialization/ASTReader.h b/include/clang/Serialization/ASTReader.h index d862501c4f..ceb0d2837b 100644 --- a/include/clang/Serialization/ASTReader.h +++ b/include/clang/Serialization/ASTReader.h @@ -290,6 +290,9 @@ public: /// this module. serialization::PreprocessedEntityID BasePreprocessedEntityID; + /// \brief Remapping table for preprocessed entity IDs in this module. + ContinuousRangeMap<uint32_t, int, 2> PreprocessedEntityRemap; + /// \brief The number of macro definitions in this file. unsigned LocalNumMacroDefinitions; diff --git a/include/clang/Serialization/ContinuousRangeMap.h b/include/clang/Serialization/ContinuousRangeMap.h index 42b8954b54..7f78320410 100644 --- a/include/clang/Serialization/ContinuousRangeMap.h +++ b/include/clang/Serialization/ContinuousRangeMap.h @@ -61,6 +61,9 @@ private: public: void insert(const value_type &Val) { + if (!Rep.empty() && Rep.back() == Val) + return; + assert((Rep.empty() || Rep.back().first < Val.first) && "Must insert keys in order."); Rep.push_back(Val); |