summaryrefslogtreecommitdiffstats
path: root/clang/lib/Frontend/PCHReader.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-04-22 06:40:03 +0000
committerChris Lattner <sabre@nondot.org>2009-04-22 06:40:03 +0000
commit6e054afc9ef43736f7ad273641938c3bac3a5338 (patch)
tree1bf2803b39e773b91a66fbbb405534d9c1dc673e /clang/lib/Frontend/PCHReader.cpp
parent8f0734972bf2af69ad4cc14583fd7f1deece9253 (diff)
downloadbcm5719-llvm-6e054afc9ef43736f7ad273641938c3bac3a5338.tar.gz
bcm5719-llvm-6e054afc9ef43736f7ad273641938c3bac3a5338.zip
pch support for protocol qualified id's.
llvm-svn: 69781
Diffstat (limited to 'clang/lib/Frontend/PCHReader.cpp')
-rw-r--r--clang/lib/Frontend/PCHReader.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/clang/lib/Frontend/PCHReader.cpp b/clang/lib/Frontend/PCHReader.cpp
index beb8ce88198..f29a0ba5787 100644
--- a/clang/lib/Frontend/PCHReader.cpp
+++ b/clang/lib/Frontend/PCHReader.cpp
@@ -2090,10 +2090,14 @@ QualType PCHReader::ReadTypeRecord(uint64_t Offset) {
assert(false && "Cannot de-serialize ObjC qualified interface types yet");
return QualType();
- case pch::TYPE_OBJC_QUALIFIED_ID:
- // FIXME: Deserialize ObjCQualifiedIdType
- assert(false && "Cannot de-serialize ObjC qualified id types yet");
- return QualType();
+ case pch::TYPE_OBJC_QUALIFIED_ID: {
+ unsigned Idx = 0;
+ unsigned NumProtos = Record[Idx++];
+ llvm::SmallVector<ObjCProtocolDecl*, 4> Protos;
+ for (unsigned I = 0; I != NumProtos; ++I)
+ Protos.push_back(cast<ObjCProtocolDecl>(GetDecl(Record[Idx++])));
+ return Context.getObjCQualifiedIdType(&Protos[0], NumProtos);
+ }
case pch::TYPE_OBJC_QUALIFIED_CLASS:
// FIXME: Deserialize ObjCQualifiedClassType
OpenPOWER on IntegriCloud