Manman Ren | 4e042a6 | 2013-02-05 21:52:47 +0000 | [diff] [blame] | 1 | ; RUN: llc -O0 %s -mtriple=x86_64-apple-darwin -filetype=obj -o %t |
| 2 | ; RUN: llvm-dwarfdump %t | FileCheck %s |
Eric Christopher | 33ff697 | 2013-11-21 23:46:41 +0000 | [diff] [blame] | 3 | ; RUN: llc -O0 %s -mtriple=x86_64-apple-darwin -filetype=obj -o %t -dwarf-version=3 |
| 4 | ; RUN: llvm-dwarfdump %t | FileCheck %s -check-prefix=DWARF3 |
Manman Ren | 9d4c735 | 2013-05-21 00:57:22 +0000 | [diff] [blame] | 5 | ; RUN: llc < %s -O0 -mtriple=x86_64-apple-macosx10.7 | FileCheck %s -check-prefix=ASM |
Manman Ren | 4e042a6 | 2013-02-05 21:52:47 +0000 | [diff] [blame] | 6 | |
| 7 | ; rdar://13067005 |
| 8 | ; CHECK: .debug_info contents: |
| 9 | ; CHECK: DW_TAG_compile_unit |
NAKAMURA Takumi | 17b7310 | 2013-12-30 09:26:10 +0000 | [diff] [blame] | 10 | ; CHECK: DW_AT_stmt_list [DW_FORM_sec_offset] (0x00000000) |
Eric Christopher | 8873ada | 2014-01-29 22:22:56 +0000 | [diff] [blame] | 11 | ; CHECK: DW_AT_low_pc [DW_FORM_addr] (0x0000000000000000) |
Eric Christopher | 384f3fe | 2014-03-20 19:16:16 +0000 | [diff] [blame] | 12 | ; CHECK: DW_AT_high_pc [DW_FORM_data4] (0x00000010) |
| 13 | ; CHECK: DW_TAG_subprogram |
| 14 | ; CHECK: DW_AT_low_pc [DW_FORM_addr] (0x0000000000000000) |
| 15 | ; CHECK: DW_AT_high_pc [DW_FORM_data4] (0x00000010) |
Manman Ren | 4e042a6 | 2013-02-05 21:52:47 +0000 | [diff] [blame] | 16 | |
| 17 | ; CHECK: DW_TAG_compile_unit |
NAKAMURA Takumi | 17b7310 | 2013-12-30 09:26:10 +0000 | [diff] [blame] | 18 | ; CHECK: DW_AT_stmt_list [DW_FORM_sec_offset] (0x0000003c) |
Eric Christopher | 384f3fe | 2014-03-20 19:16:16 +0000 | [diff] [blame] | 19 | ; CHECK: DW_AT_low_pc [DW_FORM_addr] (0x0000000000000010) |
| 20 | ; CHECK: DW_AT_high_pc [DW_FORM_data4] (0x00000009) |
| 21 | ; CHECK: DW_TAG_subprogram |
| 22 | ; CHECK: DW_AT_low_pc [DW_FORM_addr] (0x0000000000000010) |
| 23 | ; CHECK: DW_AT_high_pc [DW_FORM_data4] (0x00000009) |
| 24 | |
Manman Ren | 4e042a6 | 2013-02-05 21:52:47 +0000 | [diff] [blame] | 25 | |
| 26 | ; CHECK: .debug_line contents: |
| 27 | ; CHECK-NEXT: Line table prologue: |
Manman Ren | 1e42720 | 2013-03-07 01:42:00 +0000 | [diff] [blame] | 28 | ; CHECK-NEXT: total_length: 0x00000038 |
| 29 | ; CHECK: file_names[ 1] 0 0x00000000 0x00000000 simple.c |
Manman Ren | 4e042a6 | 2013-02-05 21:52:47 +0000 | [diff] [blame] | 30 | ; CHECK: Line table prologue: |
Manman Ren | 1e42720 | 2013-03-07 01:42:00 +0000 | [diff] [blame] | 31 | ; CHECK-NEXT: total_length: 0x00000039 |
| 32 | ; CHECK: file_names[ 1] 0 0x00000000 0x00000000 simple2.c |
| 33 | ; CHECK-NOT: file_names |
Manman Ren | 4e042a6 | 2013-02-05 21:52:47 +0000 | [diff] [blame] | 34 | |
Eric Christopher | 33ff697 | 2013-11-21 23:46:41 +0000 | [diff] [blame] | 35 | ; DWARF3: .debug_info contents: |
| 36 | ; DWARF3: DW_TAG_compile_unit |
Eric Christopher | fb8dd00 | 2014-01-29 22:06:27 +0000 | [diff] [blame] | 37 | ; DWARF3: DW_AT_stmt_list [DW_FORM_data4] (0x00000000) |
Eric Christopher | 33ff697 | 2013-11-21 23:46:41 +0000 | [diff] [blame] | 38 | |
| 39 | ; DWARF3: DW_TAG_compile_unit |
NAKAMURA Takumi | 17b7310 | 2013-12-30 09:26:10 +0000 | [diff] [blame] | 40 | ; DWARF3: DW_AT_stmt_list [DW_FORM_data4] (0x0000003c) |
Eric Christopher | 384f3fe | 2014-03-20 19:16:16 +0000 | [diff] [blame] | 41 | |
Eric Christopher | 33ff697 | 2013-11-21 23:46:41 +0000 | [diff] [blame] | 42 | |
| 43 | ; DWARF3: .debug_line contents: |
| 44 | ; DWARF3-NEXT: Line table prologue: |
| 45 | ; DWARF3-NEXT: total_length: 0x00000038 |
| 46 | ; DWARF3: file_names[ 1] 0 0x00000000 0x00000000 simple.c |
| 47 | ; DWARF3: Line table prologue: |
| 48 | ; DWARF3-NEXT: total_length: 0x00000039 |
| 49 | ; DWARF3: file_names[ 1] 0 0x00000000 0x00000000 simple2.c |
| 50 | ; DWARF3-NOT: file_names |
| 51 | |
Manman Ren | 9d4c735 | 2013-05-21 00:57:22 +0000 | [diff] [blame] | 52 | ; PR15408 |
| 53 | ; ASM: L__DWARF__debug_info_begin0: |
David Blaikie | 3464161 | 2014-04-01 08:07:52 +0000 | [diff] [blame] | 54 | ; ASM: Lset3 = Lline_table_start0-Lsection_line ## DW_AT_stmt_list |
| 55 | ; ASM-NEXT: .long Lset3 |
Manman Ren | 9d4c735 | 2013-05-21 00:57:22 +0000 | [diff] [blame] | 56 | ; ASM: L__DWARF__debug_info_begin1: |
David Blaikie | 3464161 | 2014-04-01 08:07:52 +0000 | [diff] [blame] | 57 | ; ASM: Lset13 = Lline_table_start0-Lsection_line ## DW_AT_stmt_list |
| 58 | ; ASM-NEXT: .long Lset13 |
Manman Ren | 4e042a6 | 2013-02-05 21:52:47 +0000 | [diff] [blame] | 59 | define i32 @test(i32 %a) nounwind uwtable ssp { |
| 60 | entry: |
| 61 | %a.addr = alloca i32, align 4 |
| 62 | store i32 %a, i32* %a.addr, align 4 |
Duncan P. N. Exon Smith | 786cd04 | 2014-10-02 22:15:31 +0000 | [diff] [blame] | 63 | call void @llvm.dbg.declare(metadata !{i32* %a.addr}, metadata !15, metadata !{i32 786690}), !dbg !16 |
Manman Ren | 4e042a6 | 2013-02-05 21:52:47 +0000 | [diff] [blame] | 64 | %0 = load i32* %a.addr, align 4, !dbg !17 |
| 65 | %call = call i32 @fn(i32 %0), !dbg !17 |
| 66 | ret i32 %call, !dbg !17 |
| 67 | } |
| 68 | |
Adrian Prantl | 87b7eb9 | 2014-10-01 18:55:02 +0000 | [diff] [blame] | 69 | declare void @llvm.dbg.declare(metadata, metadata, metadata) nounwind readnone |
Manman Ren | 4e042a6 | 2013-02-05 21:52:47 +0000 | [diff] [blame] | 70 | |
| 71 | define i32 @fn(i32 %a) nounwind uwtable ssp { |
| 72 | entry: |
| 73 | %a.addr = alloca i32, align 4 |
| 74 | store i32 %a, i32* %a.addr, align 4 |
Duncan P. N. Exon Smith | 786cd04 | 2014-10-02 22:15:31 +0000 | [diff] [blame] | 75 | call void @llvm.dbg.declare(metadata !{i32* %a.addr}, metadata !19, metadata !{i32 786690}), !dbg !20 |
Manman Ren | 4e042a6 | 2013-02-05 21:52:47 +0000 | [diff] [blame] | 76 | %0 = load i32* %a.addr, align 4, !dbg !21 |
| 77 | ret i32 %0, !dbg !21 |
| 78 | } |
| 79 | |
| 80 | !llvm.dbg.cu = !{!0, !10} |
Manman Ren | 409558f | 2013-11-22 21:49:45 +0000 | [diff] [blame] | 81 | !llvm.module.flags = !{!25} |
Duncan P. N. Exon Smith | 786cd04 | 2014-10-02 22:15:31 +0000 | [diff] [blame] | 82 | !0 = metadata !{i32 786449, metadata !23, i32 12, metadata !"clang version 3.3", i1 false, metadata !"", i32 0, metadata !1, metadata !1, metadata !3, metadata !1, metadata !1, metadata !"", i32 1} ; [ DW_TAG_compile_unit ] |
David Blaikie | 5e390e4 | 2014-02-04 01:23:52 +0000 | [diff] [blame] | 83 | !1 = metadata !{} |
Manman Ren | 4e042a6 | 2013-02-05 21:52:47 +0000 | [diff] [blame] | 84 | !3 = metadata !{metadata !5} |
Duncan P. N. Exon Smith | 786cd04 | 2014-10-02 22:15:31 +0000 | [diff] [blame] | 85 | !5 = metadata !{i32 786478, metadata !23, metadata !6, metadata !"test", metadata !"test", metadata !"", i32 2, metadata !7, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 false, i32 (i32)* @test, null, null, metadata !1, i32 3} ; [ DW_TAG_subprogram ] [line 2] [def] [scope 3] [test] |
| 86 | !6 = metadata !{i32 786473, metadata !23} ; [ DW_TAG_file_type ] |
| 87 | !7 = metadata !{i32 786453, i32 0, null, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !8, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ] |
Manman Ren | 4e042a6 | 2013-02-05 21:52:47 +0000 | [diff] [blame] | 88 | !8 = metadata !{metadata !9, metadata !9} |
Duncan P. N. Exon Smith | 786cd04 | 2014-10-02 22:15:31 +0000 | [diff] [blame] | 89 | !9 = metadata !{i32 786468, null, null, metadata !"int", i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ] [int] [line 0, size 32, align 32, offset 0, enc DW_ATE_signed] |
| 90 | !10 = metadata !{i32 786449, metadata !24, i32 12, metadata !"clang version 3.3 (trunk 172862)", i1 false, metadata !"", i32 0, metadata !1, metadata !1, metadata !11, metadata !1, metadata !1, metadata !"", i32 1} ; [ DW_TAG_compile_unit ] |
Manman Ren | 4e042a6 | 2013-02-05 21:52:47 +0000 | [diff] [blame] | 91 | !11 = metadata !{metadata !13} |
Duncan P. N. Exon Smith | 786cd04 | 2014-10-02 22:15:31 +0000 | [diff] [blame] | 92 | !13 = metadata !{i32 786478, metadata !24, metadata !14, metadata !"fn", metadata !"fn", metadata !"", i32 1, metadata !7, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 false, i32 (i32)* @fn, null, null, metadata !1, i32 1} ; [ DW_TAG_subprogram ] [line 1] [def] [fn] |
| 93 | !14 = metadata !{i32 786473, metadata !24} ; [ DW_TAG_file_type ] |
| 94 | !15 = metadata !{i32 786689, metadata !5, metadata !"a", metadata !6, i32 16777218, metadata !9, i32 0, i32 0} ; [ DW_TAG_arg_variable ] [a] [line 2] |
Manman Ren | 4e042a6 | 2013-02-05 21:52:47 +0000 | [diff] [blame] | 95 | !16 = metadata !{i32 2, i32 0, metadata !5, null} |
| 96 | !17 = metadata !{i32 4, i32 0, metadata !18, null} |
Duncan P. N. Exon Smith | 786cd04 | 2014-10-02 22:15:31 +0000 | [diff] [blame] | 97 | !18 = metadata !{i32 786443, metadata !23, metadata !5, i32 3, i32 0, i32 0} ; [ DW_TAG_lexical_block ] |
| 98 | !19 = metadata !{i32 786689, metadata !13, metadata !"a", metadata !14, i32 16777217, metadata !9, i32 0, i32 0} ; [ DW_TAG_arg_variable ] [a] [line 1] |
Manman Ren | 4e042a6 | 2013-02-05 21:52:47 +0000 | [diff] [blame] | 99 | !20 = metadata !{i32 1, i32 0, metadata !13, null} |
| 100 | !21 = metadata !{i32 2, i32 0, metadata !22, null} |
Duncan P. N. Exon Smith | 786cd04 | 2014-10-02 22:15:31 +0000 | [diff] [blame] | 101 | !22 = metadata !{i32 786443, metadata !24, metadata !13, i32 1, i32 0, i32 0} ; [ DW_TAG_lexical_block ] |
David Blaikie | 8fb8224 | 2013-03-17 21:13:55 +0000 | [diff] [blame] | 102 | !23 = metadata !{metadata !"simple.c", metadata !"/private/tmp"} |
| 103 | !24 = metadata !{metadata !"simple2.c", metadata !"/private/tmp"} |
Duncan P. N. Exon Smith | 786cd04 | 2014-10-02 22:15:31 +0000 | [diff] [blame] | 104 | !25 = metadata !{i32 1, metadata !"Debug Info Version", i32 1} |