diff options
Diffstat (limited to 'clang/lib')
| -rw-r--r-- | clang/lib/AST/DeclObjC.cpp | 1 | ||||
| -rw-r--r-- | clang/lib/Frontend/PCHReader.cpp | 4 | ||||
| -rw-r--r-- | clang/lib/Frontend/PCHWriter.cpp | 3 |
3 files changed, 6 insertions, 2 deletions
diff --git a/clang/lib/AST/DeclObjC.cpp b/clang/lib/AST/DeclObjC.cpp index 3bffbf54ac5..49ff6d53c00 100644 --- a/clang/lib/AST/DeclObjC.cpp +++ b/clang/lib/AST/DeclObjC.cpp @@ -543,6 +543,7 @@ ObjCCategoryImplDecl::Create(ASTContext &C, DeclContext *DC, void ObjCImplDecl::addPropertyImplementation(ASTContext &Context, ObjCPropertyImplDecl *property) { + // FIXME: The context should be correct before we get here. property->setLexicalDeclContext(this); addDecl(Context, property); } diff --git a/clang/lib/Frontend/PCHReader.cpp b/clang/lib/Frontend/PCHReader.cpp index e2cffb54543..c3d4bcfa529 100644 --- a/clang/lib/Frontend/PCHReader.cpp +++ b/clang/lib/Frontend/PCHReader.cpp @@ -322,7 +322,9 @@ void PCHDeclReader::VisitObjCPropertyDecl(ObjCPropertyDecl *D) { void PCHDeclReader::VisitObjCImplDecl(ObjCImplDecl *D) { VisitDecl(D); - // FIXME: Implement. + D->setClassInterface( + cast_or_null<ObjCInterfaceDecl>(Reader.GetDecl(Record[Idx++]))); + D->setLocEnd(SourceLocation::getFromRawEncoding(Record[Idx++])); } void PCHDeclReader::VisitObjCCategoryImplDecl(ObjCCategoryImplDecl *D) { diff --git a/clang/lib/Frontend/PCHWriter.cpp b/clang/lib/Frontend/PCHWriter.cpp index a3b1253a665..36d9170f38a 100644 --- a/clang/lib/Frontend/PCHWriter.cpp +++ b/clang/lib/Frontend/PCHWriter.cpp @@ -493,7 +493,8 @@ void PCHDeclWriter::VisitObjCPropertyDecl(ObjCPropertyDecl *D) { void PCHDeclWriter::VisitObjCImplDecl(ObjCImplDecl *D) { VisitDecl(D); - // FIXME: Implement. + Writer.AddDeclRef(D->getClassInterface(), Record); + Writer.AddSourceLocation(D->getLocEnd(), Record); // Abstract class (no need to define a stable pch::DECL code). } |

