]> granicus.if.org Git - clang/commitdiff
Make isa part of objc_object at metadata generation time.
authorEric Christopher <echristo@apple.com>
Thu, 16 Aug 2012 23:50:35 +0000 (23:50 +0000)
committerEric Christopher <echristo@apple.com>
Thu, 16 Aug 2012 23:50:35 +0000 (23:50 +0000)
Noticed on inspection.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162062 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/CGDebugInfo.cpp

index 00127ac72f4d09fb1e4bee334713209c99b85066..eec3b57b94ce72d05d1db85bfe00d89dccce7df3 100644 (file)
@@ -366,17 +366,19 @@ llvm::DIType CGDebugInfo::CreateType(const BuiltinType *BT) {
     
     llvm::DIType ISATy = DBuilder.createPointerType(OCTy, Size);
 
-    SmallVector<llvm::Value *, 16> EltTys;
+    llvm::MDNode *ObjTy = DBuilder.createStructType(TheCU, "objc_object", 
+                                                    getOrCreateMainFile(),
+                                                    0, 0, 0, 0, llvm::DIArray());
+    SmallVector<llvm::Value *, 1> EltTys;
     llvm::DIType FieldTy = 
-      DBuilder.createMemberType(getOrCreateMainFile(), "isa",
+      DBuilder.createMemberType(llvm::DIDescriptor(ObjTy), "isa",
                                 getOrCreateMainFile(), 0, Size,
                                 0, 0, 0, ISATy);
     EltTys.push_back(FieldTy);
     llvm::DIArray Elements = DBuilder.getOrCreateArray(EltTys);
-    
-    return DBuilder.createStructType(TheCU, "objc_object", 
-                                     getOrCreateMainFile(),
-                                     0, 0, 0, 0, Elements);
+
+    ObjTy->replaceOperandWith(10, Elements);
+    return llvm::DIType(ObjTy);
   }
   case BuiltinType::ObjCSel: {
     return