Emit DW_AT_containing_type attribute for a class if containing type is known.
authorDevang Patel <dpatel@apple.com>
Tue, 26 Jan 2010 21:16:06 +0000 (21:16 +0000)
committerDevang Patel <dpatel@apple.com>
Tue, 26 Jan 2010 21:16:06 +0000 (21:16 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94587 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/AsmPrinter/DwarfDebug.cpp

index 532a68f5eaafb92bddb6aeaef50d933a8bf1cd77..0bc7f3286663b768bd8f74811a5d0446213bf01f 100644 (file)
@@ -949,6 +949,11 @@ void DwarfDebug::constructTypeDIE(DIE &Buffer, DICompositeType CTy) {
     if (RLang)
       addUInt(&Buffer, dwarf::DW_AT_APPLE_runtime_class,
               dwarf::DW_FORM_data1, RLang);
+
+    DICompositeType ContainingType = CTy.getContainingType();
+    if (!ContainingType.isNull())
+      addDIEEntry(&Buffer, dwarf::DW_AT_containing_type, dwarf::DW_FORM_ref4, 
+                  getOrCreateTypeDIE(DIType(ContainingType.getNode())));
     break;
   }
   default: