diff options
Diffstat (limited to 'lib/CodeGen')
-rw-r--r-- | lib/CodeGen/CodeGenTypes.cpp | 11 | ||||
-rw-r--r-- | lib/CodeGen/CodeGenTypes.h | 2 |
2 files changed, 6 insertions, 7 deletions
diff --git a/lib/CodeGen/CodeGenTypes.cpp b/lib/CodeGen/CodeGenTypes.cpp index 06fee78e2e..d5daad5192 100644 --- a/lib/CodeGen/CodeGenTypes.cpp +++ b/lib/CodeGen/CodeGenTypes.cpp @@ -333,16 +333,17 @@ const llvm::Type *CodeGenTypes::ConvertNewType(QualType T) { return ConvertTypeRecursive(QualType(cast<ExtQualType>(Ty).getBaseType(), 0)); + case Type::ObjCQualifiedInterface: { + // Lower foo<P1,P2> just like foo. + ObjCInterfaceDecl *ID = cast<ObjCQualifiedInterfaceType>(Ty).getDecl(); + return ConvertTypeRecursive(Context.getObjCInterfaceType(ID)); + } + case Type::ObjCInterface: { ObjCInterfaceDecl *ID = cast<ObjCInterfaceType>(Ty).getDecl(); return ConvertTagDeclType(Context.addRecordToClass(ID)); } - case Type::ObjCQualifiedInterface: { - ObjCInterfaceDecl *ID = cast<ObjCQualifiedInterfaceType>(Ty).getDecl(); - return ConvertTypeRecursive(Context.getObjCInterfaceType(ID)); - } - case Type::ObjCQualifiedId: case Type::ObjCQualifiedClass: // Protocols don't influence the LLVM type. diff --git a/lib/CodeGen/CodeGenTypes.h b/lib/CodeGen/CodeGenTypes.h index bdf0ac6d02..b408ff66a6 100644 --- a/lib/CodeGen/CodeGenTypes.h +++ b/lib/CodeGen/CodeGenTypes.h @@ -153,8 +153,6 @@ public: bool IsVariadic); const CGRecordLayout *getCGRecordLayout(const TagDecl*) const; - /// Returns a StructType representing an Objective-C object - const llvm::Type *ConvertObjCInterfaceToStruct(const ObjCInterfaceDecl *OID); /// getLLVMFieldNo - Return llvm::StructType element number /// that corresponds to the field FD. |