diff options
author | Douglas Gregor <dgregor@apple.com> | 2009-08-21 00:27:50 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2009-08-21 00:27:50 +0000 |
commit | d1571acc700b652a52c766e36a6c688d9bf6f3a1 (patch) | |
tree | f16f9653c5268ad156514d875d6b2b9a4cb0e742 | |
parent | 6b906869527be40b0d38d755e9ef51b331b88162 (diff) |
Make the new Objective-C "id" and "Class" redefinition types special
types that are preloaded by the PCH file. Fixes PCH breakage
introduced in r79248.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79583 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/clang/Frontend/PCHBitCodes.h | 6 | ||||
-rw-r--r-- | lib/Frontend/PCHReader.cpp | 6 | ||||
-rw-r--r-- | lib/Frontend/PCHWriter.cpp | 2 |
3 files changed, 13 insertions, 1 deletions
diff --git a/include/clang/Frontend/PCHBitCodes.h b/include/clang/Frontend/PCHBitCodes.h index 6e2e8c4511..a0adfd4cf9 100644 --- a/include/clang/Frontend/PCHBitCodes.h +++ b/include/clang/Frontend/PCHBitCodes.h @@ -427,7 +427,11 @@ namespace clang { /// \brief C jmp_buf typedef type SPECIAL_TYPE_jmp_buf = 8, /// \brief C sigjmp_buf typedef type - SPECIAL_TYPE_sigjmp_buf = 9 + SPECIAL_TYPE_sigjmp_buf = 9, + /// \brief Objective-C "id" redefinition type + SPECIAL_TYPE_OBJC_ID_REDEFINITION = 10, + /// \brief Objective-C "Class" redefinition type + SPECIAL_TYPE_OBJC_CLASS_REDEFINITION = 11, }; /// \brief Record codes for each kind of declaration. diff --git a/lib/Frontend/PCHReader.cpp b/lib/Frontend/PCHReader.cpp index aab5dd8783..b368124f4f 100644 --- a/lib/Frontend/PCHReader.cpp +++ b/lib/Frontend/PCHReader.cpp @@ -1562,6 +1562,12 @@ void PCHReader::InitializeContext(ASTContext &Ctx) { Context->setsigjmp_bufDecl(Tag->getDecl()); } } + if (unsigned ObjCIdRedef + = SpecialTypes[pch::SPECIAL_TYPE_OBJC_ID_REDEFINITION]) + Context->ObjCIdRedefinitionType = GetType(ObjCIdRedef); + if (unsigned ObjCClassRedef + = SpecialTypes[pch::SPECIAL_TYPE_OBJC_CLASS_REDEFINITION]) + Context->ObjCClassRedefinitionType = GetType(ObjCClassRedef); } /// \brief Retrieve the name of the original source file name diff --git a/lib/Frontend/PCHWriter.cpp b/lib/Frontend/PCHWriter.cpp index d9c6b1bb7d..48a1c9d5e3 100644 --- a/lib/Frontend/PCHWriter.cpp +++ b/lib/Frontend/PCHWriter.cpp @@ -1846,6 +1846,8 @@ void PCHWriter::WritePCH(Sema &SemaRef, MemorizeStatCalls *StatCalls, AddTypeRef(Context.getFILEType(), Record); AddTypeRef(Context.getjmp_bufType(), Record); AddTypeRef(Context.getsigjmp_bufType(), Record); + AddTypeRef(Context.ObjCIdRedefinitionType, Record); + AddTypeRef(Context.ObjCClassRedefinitionType, Record); Stream.EmitRecord(pch::SPECIAL_TYPES, Record); // Keep writing types and declarations until all types and |