In the AST reader and writer, slide the preprocessed entity IDs by +1
so that we use ID zero as a sentinel for "no result". This matches the
convention set by all of the other global IDs.
llvm-svn: 136885
diff --git a/clang/lib/Serialization/ASTReader.cpp b/clang/lib/Serialization/ASTReader.cpp
index 1149d96..e651c38 100644
--- a/clang/lib/Serialization/ASTReader.cpp
+++ b/clang/lib/Serialization/ASTReader.cpp
@@ -1568,7 +1568,7 @@
switch (RecType) {
case PPD_MACRO_EXPANSION: {
PreprocessedEntityID GlobalID = getGlobalPreprocessedEntityID(F, Record[0]);
- if (PreprocessedEntity *PE = PPRec.getLoadedPreprocessedEntity(GlobalID))
+ if (PreprocessedEntity *PE = PPRec.getLoadedPreprocessedEntity(GlobalID-1))
return PE;
MacroExpansion *ME =
@@ -1576,13 +1576,13 @@
SourceRange(ReadSourceLocation(F, Record[1]),
ReadSourceLocation(F, Record[2])),
getLocalMacroDefinition(F, Record[4]));
- PPRec.setLoadedPreallocatedEntity(GlobalID, ME);
+ PPRec.setLoadedPreallocatedEntity(GlobalID - 1, ME);
return ME;
}
case PPD_MACRO_DEFINITION: {
PreprocessedEntityID GlobalID = getGlobalPreprocessedEntityID(F, Record[0]);
- if (PreprocessedEntity *PE = PPRec.getLoadedPreprocessedEntity(GlobalID))
+ if (PreprocessedEntity *PE = PPRec.getLoadedPreprocessedEntity(GlobalID-1))
return PE;
unsigned MacroDefID = getGlobalMacroDefinitionID(F, Record[1]);
@@ -1602,7 +1602,7 @@
ReadSourceLocation(F, Record[2]),
ReadSourceLocation(F, Record[3])));
- PPRec.setLoadedPreallocatedEntity(GlobalID, MD);
+ PPRec.setLoadedPreallocatedEntity(GlobalID - 1, MD);
MacroDefinitionsLoaded[MacroDefID - 1] = MD;
if (DeserializationListener)
@@ -1614,7 +1614,7 @@
case PPD_INCLUSION_DIRECTIVE: {
PreprocessedEntityID GlobalID = getGlobalPreprocessedEntityID(F, Record[0]);
- if (PreprocessedEntity *PE = PPRec.getLoadedPreprocessedEntity(GlobalID))
+ if (PreprocessedEntity *PE = PPRec.getLoadedPreprocessedEntity(GlobalID-1))
return PE;
const char *FullFileNameStart = BlobStart + Record[3];
@@ -1632,7 +1632,7 @@
File,
SourceRange(ReadSourceLocation(F, Record[1]),
ReadSourceLocation(F, Record[2])));
- PPRec.setLoadedPreallocatedEntity(GlobalID, ID);
+ PPRec.setLoadedPreallocatedEntity(GlobalID - 1, ID);
return ID;
}
}