diff --git a/include/clang/Serialization/ASTReader.h b/include/clang/Serialization/ASTReader.h index 9f3973bc24..ce980f775b 100644 --- a/include/clang/Serialization/ASTReader.h +++ b/include/clang/Serialization/ASTReader.h @@ -1142,7 +1142,7 @@ public: unsigned &Idx); /// \brief Read a source location from raw form. - SourceLocation ReadSourceLocation(Module &Module, unsigned Raw) { + SourceLocation ReadSourceLocation(Module &Module, unsigned Raw) const { unsigned Flag = Raw & (1U << 31); unsigned Offset = Raw & ~(1U << 31); assert(Module.SLocRemap.find(Offset) != Module.SLocRemap.end() && @@ -1215,7 +1215,7 @@ public: /// \brief Determine the global preprocessed entity ID that corresponds to /// the given local ID within the given module. serialization::PreprocessedEntityID - getGlobalPreprocessedEntityID(Module &M, unsigned LocalID); + getGlobalPreprocessedEntityID(Module &M, unsigned LocalID) const; /// \brief Note that the identifier is a macro whose record will be loaded /// from the given AST file at the given (file-local) offset. diff --git a/lib/Serialization/ASTReader.cpp b/lib/Serialization/ASTReader.cpp index 6c0afb59b4..30e3c8cb92 100644 --- a/lib/Serialization/ASTReader.cpp +++ b/lib/Serialization/ASTReader.cpp @@ -1440,8 +1440,8 @@ PreprocessedEntity *ASTReader::LoadPreprocessedEntity(Module &F) { } PreprocessedEntityID -ASTReader::getGlobalPreprocessedEntityID(Module &M, unsigned LocalID) { - ContinuousRangeMap::iterator +ASTReader::getGlobalPreprocessedEntityID(Module &M, unsigned LocalID) const { + ContinuousRangeMap::const_iterator I = M.PreprocessedEntityRemap.find(LocalID - NUM_PREDEF_PP_ENTITY_IDS); assert(I != M.PreprocessedEntityRemap.end() && "Invalid index into preprocessed entity index remap");