Debug info: Add enumerators to the __apple_names accelerator table.
authorAdrian Prantl <aprantl@apple.com>
Mon, 23 Dec 2013 23:50:20 +0000 (23:50 +0000)
committerAdrian Prantl <aprantl@apple.com>
Mon, 23 Dec 2013 23:50:20 +0000 (23:50 +0000)
rdar://problem/11516681.

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

lib/CodeGen/AsmPrinter/DwarfUnit.cpp
test/DebugInfo/X86/enum-class.ll

index 69240f870f9e581661b7d18f8da9614d7005e5e9..df31099b8290ef09006f50626d9fa58336df9638 100644 (file)
@@ -1773,6 +1773,9 @@ void DwarfUnit::constructEnumTypeDIE(DIE &Buffer, DICompositeType CTy) {
       int64_t Value = Enum.getEnumValue();
       addSInt(Enumerator, dwarf::DW_AT_const_value, dwarf::DW_FORM_sdata,
               Value);
+
+      // Add the enumerator to the __apple_names accelerator table.
+      addAccelName(Name, Enumerator);
     }
   }
   DIType DTy = resolve(CTy.getTypeDerivedFrom());
index a31e254c24c883d9d256b4f3120695625ae60fd0..e027f9a1a1e9e424da483cb0e1e5f39dfada3ac3 100644 (file)
@@ -1,6 +1,17 @@
 ; RUN: llc -O0 -mtriple=x86_64-apple-darwin %s -o %t -filetype=obj
 ; RUN: llvm-dwarfdump -debug-dump=info %t | FileCheck %s
 
+; Also test that the enumerators show up in the __apple_names accelerator table.
+; RUN: llc -O0 -mtriple=x86_64-apple-darwin -filetype=asm < %s -o - | FileCheck --check-prefix=ACCEL-CHECK %s
+; ACCEL-CHECK: .section        __DWARF,__apple_names,regular,debug
+; ACCEL-CHECK-NOT: .section
+; ACCEL-CHECK: A1
+; ACCEL-CHECK-NOT: .section
+; ACCEL-CHECK: C1
+; ACCEL-CHECK-NOT: .section
+; ACCEL-CHECK: B1
+
+
 @a = global i32 0, align 4
 @b = global i64 0, align 8
 @c = global i32 0, align 4