]> granicus.if.org Git - clang/commitdiff
do not *copy* objc interface types, just use their reference.
authorChris Lattner <sabre@nondot.org>
Tue, 31 Mar 2009 08:55:07 +0000 (08:55 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 31 Mar 2009 08:55:07 +0000 (08:55 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68102 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/CodeGenTypes.cpp

index 5367c71b2cf6900ff52bf7d9fc508cc572d77078..62a77448bea73b8404616f1f2a6f4985c0663d06 100644 (file)
@@ -322,12 +322,11 @@ const llvm::Type *CodeGenTypes::ConvertNewType(QualType T) {
     }
     // The function type can be built; call the appropriate routines to
     // build it.
-    if (const FunctionProtoType *FPT = dyn_cast<FunctionProtoType>(&Ty)) {
+    if (const FunctionProtoType *FPT = dyn_cast<FunctionProtoType>(&Ty))
       return GetFunctionType(getFunctionInfo(FPT), FPT->isVariadic());
-    } else {
-      const FunctionNoProtoType *FNPT = cast<FunctionNoProtoType>(&Ty);
-      return GetFunctionType(getFunctionInfo(FNPT), true);
-    }
+
+    const FunctionNoProtoType *FNPT = cast<FunctionNoProtoType>(&Ty);
+    return GetFunctionType(getFunctionInfo(FNPT), true);
   }
   
   case Type::ExtQual:
@@ -341,16 +340,13 @@ const llvm::Type *CodeGenTypes::ConvertNewType(QualType T) {
     // previously checked that the ObjCRuntime subclass in use does not support
     // late-bound ivars.
     // We are issuing warnings elsewhere!
-    ObjCInterfaceType OIT = cast<ObjCInterfaceType>(Ty);
-    ObjCInterfaceDecl *ID = OIT.getDecl();
-    const RecordDecl *RD = Context.addRecordToClass(ID);
-    return ConvertTagDeclType(cast<TagDecl>(RD));
+    ObjCInterfaceDecl *ID = cast<ObjCInterfaceType>(Ty).getDecl();
+    return ConvertTagDeclType(Context.addRecordToClass(ID));
   }
       
   case Type::ObjCQualifiedInterface: {
-    ObjCQualifiedInterfaceType QIT = cast<ObjCQualifiedInterfaceType>(Ty);
-    
-    return ConvertTypeRecursive(Context.getObjCInterfaceType(QIT.getDecl()));
+    ObjCInterfaceDecl *ID = cast<ObjCQualifiedInterfaceType>(Ty).getDecl();
+    return ConvertTypeRecursive(Context.getObjCInterfaceType(ID));
   }
 
   case Type::ObjCQualifiedId: