diff options
Diffstat (limited to 'llvm/test')
-rw-r--r-- | llvm/test/DebugInfo/gmlt.ll | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/llvm/test/DebugInfo/gmlt.ll b/llvm/test/DebugInfo/gmlt.ll index 3912134b2d1..a643931927f 100644 --- a/llvm/test/DebugInfo/gmlt.ll +++ b/llvm/test/DebugInfo/gmlt.ll @@ -1,5 +1,7 @@ ; REQUIRES: object-emission ; RUN: %llc_dwarf -O0 -filetype=obj < %s | llvm-dwarfdump - | FileCheck %s +; RUN: %llc_dwarf -O0 -filetype=obj < %s -mtriple x86_64-apple-darwin | llvm-dwarfdump - \ +; RUN: | FileCheck --check-prefix=CHECK --check-prefix=DARWIN %s ; Generated from the following source compiled with clang++ -gmlt: ; void f1() {} @@ -17,6 +19,25 @@ ; CHECK: DW_AT_ranges [DW_FORM_sec_offset] (0x00000000) ; CHECK-NOT: {{DW_TAG|NULL}} +; Omitting the subprograms without inlined subroutines is not possible +; currently on Darwin as dsymutil will drop the whole CU if it has no subprograms +; (which happens with this optimization if there are no inlined subroutines). + +; DARWIN: DW_TAG_subprogram +; DARWIN-NOT: DW_TAG +; DARWIN: DW_AT_name {{.*}} "f1" +; DARWIN-NOT: {{DW_TAG|NULL}} +; DARWIN: DW_TAG_subprogram +; DARWIN-NOT: DW_TAG +; DARWIN: DW_AT_name {{.*}} "f2" +; DARWIN-NOT: {{DW_TAG|NULL}} +; DARWIN: DW_TAG_subprogram +; DARWIN-NOT: DW_TAG +; Can't check the abstract_origin value across the DARWIN/CHECK checking and +; ordering, so don't bother - just trust me, it refers to f3 down there. +; DARWIN: DW_AT_abstract_origin +; DARWIN-NOT: {{DW_TAG|NULL}} + ; FIXME: Emitting separate abstract definitions is inefficient when we could ; just attach the DW_AT_name to the inlined_subroutine directly. Except that |