From b8a316bfcbaa7322e254603545e9f5dcbd445a35 Mon Sep 17 00:00:00 2001 From: Adrian Prantl Date: Mon, 23 Dec 2013 23:50:20 +0000 Subject: [PATCH] Debug info: Add enumerators to the __apple_names accelerator table. 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 | 3 +++ test/DebugInfo/X86/enum-class.ll | 11 +++++++++++ 2 files changed, 14 insertions(+) diff --git a/lib/CodeGen/AsmPrinter/DwarfUnit.cpp b/lib/CodeGen/AsmPrinter/DwarfUnit.cpp index 69240f870f9..df31099b829 100644 --- a/lib/CodeGen/AsmPrinter/DwarfUnit.cpp +++ b/lib/CodeGen/AsmPrinter/DwarfUnit.cpp @@ -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()); diff --git a/test/DebugInfo/X86/enum-class.ll b/test/DebugInfo/X86/enum-class.ll index a31e254c24c..e027f9a1a1e 100644 --- a/test/DebugInfo/X86/enum-class.ll +++ b/test/DebugInfo/X86/enum-class.ll @@ -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 -- 2.11.0