aboutsummaryrefslogtreecommitdiffstats
path: root/test/DebugInfo
diff options
context:
space:
mode:
authorEric Christopher <echristo@apple.com>2012-03-07 00:15:19 +0000
committerEric Christopher <echristo@apple.com>2012-03-07 00:15:19 +0000
commit8938895a8338e6084eb12a2bb4bf044928436173 (patch)
tree1b18c4ce20a60d198638abcf96e7e39da7d85ede /test/DebugInfo
parent03be3622aae67aa095bc047bcac88cdebebaafd6 (diff)
downloadexternal_llvm-8938895a8338e6084eb12a2bb4bf044928436173.zip
external_llvm-8938895a8338e6084eb12a2bb4bf044928436173.tar.gz
external_llvm-8938895a8338e6084eb12a2bb4bf044928436173.tar.bz2
Add the DW_AT_APPLE_runtime_class attribute to forward declarations
as well as completely defined classes. This fixes rdar://10956070 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152171 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/DebugInfo')
-rw-r--r--test/DebugInfo/objc-fwd-decl.ll27
1 files changed, 27 insertions, 0 deletions
diff --git a/test/DebugInfo/objc-fwd-decl.ll b/test/DebugInfo/objc-fwd-decl.ll
new file mode 100644
index 0000000..1a815f9
--- /dev/null
+++ b/test/DebugInfo/objc-fwd-decl.ll
@@ -0,0 +1,27 @@
+; RUN: llc -mtriple=x86_64-macosx %s -o %t -filetype=obj
+; RUN: llvm-dwarfdump %t | FileCheck %s
+
+; CHECK: 0x00000027: DW_TAG_structure_type
+; CHECK: 0x0000002c: DW_AT_declaration
+; CHECK: 0x0000002d: DW_AT_APPLE_runtime_class
+
+%0 = type opaque
+
+@a = common global %0* null, align 8
+
+!llvm.dbg.cu = !{!0}
+!llvm.module.flags = !{!9, !10, !11, !12}
+
+!0 = metadata !{i32 786449, i32 0, i32 16, metadata !"foo.m", metadata !"/Users/echristo", metadata !"clang version 3.1 (trunk 152054 trunk 152094)", i1 true, i1 false, metadata !"", i32 2, metadata !1, metadata !1, metadata !1, metadata !3} ; [ DW_TAG_compile_unit ]
+!1 = metadata !{metadata !2}
+!2 = metadata !{i32 0}
+!3 = metadata !{metadata !4}
+!4 = metadata !{metadata !5}
+!5 = metadata !{i32 786484, i32 0, null, metadata !"a", metadata !"a", metadata !"", metadata !6, i32 3, metadata !7, i32 0, i32 1, %0** @a} ; [ DW_TAG_variable ]
+!6 = metadata !{i32 786473, metadata !"foo.m", metadata !"/Users/echristo", null} ; [ DW_TAG_file_type ]
+!7 = metadata !{i32 786447, null, metadata !"", null, i32 0, i64 64, i64 64, i64 0, i32 0, metadata !8} ; [ DW_TAG_pointer_type ]
+!8 = metadata !{i32 786451, null, metadata !"FooBarBaz", metadata !6, i32 1, i32 0, i32 0, i32 0, i32 4, null, null, i32 16} ; [ DW_TAG_structure_type ]
+!9 = metadata !{i32 1, metadata !"Objective-C Version", i32 2}
+!10 = metadata !{i32 1, metadata !"Objective-C Image Info Version", i32 0}
+!11 = metadata !{i32 1, metadata !"Objective-C Image Info Section", metadata !"__DATA, __objc_imageinfo, regular, no_dead_strip"}
+!12 = metadata !{i32 4, metadata !"Objective-C Garbage Collection", i32 0}