diff options
Diffstat (limited to 'lib/Frontend/PCHReader.cpp')
-rw-r--r-- | lib/Frontend/PCHReader.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/Frontend/PCHReader.cpp b/lib/Frontend/PCHReader.cpp index 06a7258cda..d50ab8310b 100644 --- a/lib/Frontend/PCHReader.cpp +++ b/lib/Frontend/PCHReader.cpp @@ -298,7 +298,9 @@ void PCHDeclReader::VisitObjCCategoryDecl(ObjCCategoryDecl *CD) { for (unsigned I = 0; I != NumProtoRefs; ++I) ProtoRefs.push_back(cast<ObjCProtocolDecl>(Reader.GetDecl(Record[Idx++]))); CD->setProtocolList(&ProtoRefs[0], NumProtoRefs, Reader.getContext()); - CD->setNextClassCategory(cast<ObjCCategoryDecl>(Reader.GetDecl(Record[Idx++]))); + unsigned nextCat = Record[Idx++]; + CD->setNextClassCategory(nextCat ? + cast<ObjCCategoryDecl>(Reader.GetDecl(nextCat)) : 0); CD->setLocEnd(SourceLocation::getFromRawEncoding(Record[Idx++])); } |