blob: 165074e3002ccb4451379e1001c4fea99cb606f3 [file] [log] [blame]
Stephen Hines36b56882014-04-23 16:57:46 -07001; RUN: llc -mtriple=x86_64-apple-darwin -filetype=obj %s -o %t
Eli Bendersky767295f2013-01-25 21:44:53 +00002; RUN: llvm-dwarfdump -debug-dump=line %t | FileCheck %s
Eric Christopherfa5b0502012-04-03 17:55:42 +00003
Eric Christopher60b35f42012-04-05 20:39:05 +00004; Check that the line table starts at 7, not 4, but that the first
5; statement isn't until line 8.
Eric Christopherfa5b0502012-04-03 17:55:42 +00006
Stephen Hines36b56882014-04-23 16:57:46 -07007; CHECK-NOT: 0x0000000000000000 7 0 1 0 0 is_stmt
Eric Christopher60b35f42012-04-05 20:39:05 +00008; CHECK: 0x0000000000000000 7 0 1 0
Stephen Hines36b56882014-04-23 16:57:46 -07009; CHECK: 0x0000000000000004 8 18 1 0 0 is_stmt prologue_end
Eric Christopherfa5b0502012-04-03 17:55:42 +000010
11define i32 @callee(i32 %x) nounwind uwtable ssp {
12entry:
13 %x.addr = alloca i32, align 4
14 %y = alloca i32, align 4
15 store i32 %x, i32* %x.addr, align 4
16 call void @llvm.dbg.declare(metadata !{i32* %x.addr}, metadata !12), !dbg !13
17 call void @llvm.dbg.declare(metadata !{i32* %y}, metadata !14), !dbg !16
18 %0 = load i32* %x.addr, align 4, !dbg !17
19 %1 = load i32* %x.addr, align 4, !dbg !17
20 %mul = mul nsw i32 %0, %1, !dbg !17
21 store i32 %mul, i32* %y, align 4, !dbg !17
22 %2 = load i32* %y, align 4, !dbg !18
23 %sub = sub nsw i32 %2, 2, !dbg !18
24 ret i32 %sub, !dbg !18
25}
26
27declare void @llvm.dbg.declare(metadata, metadata) nounwind readnone
28
29!llvm.dbg.cu = !{!0}
Manman Ren41245b42013-12-09 20:58:24 +000030!llvm.module.flags = !{!20}
Eric Christopherfa5b0502012-04-03 17:55:42 +000031
David Blaikiec462db62013-04-22 06:12:31 +000032!0 = metadata !{i32 786449, metadata !19, i32 12, metadata !"clang version 3.1 (trunk 153921) (llvm/trunk 153916)", i1 false, metadata !"", i32 0, metadata !1, metadata !1, metadata !3, metadata !1, metadata !1, metadata !""} ; [ DW_TAG_compile_unit ]
Stephen Hines36b56882014-04-23 16:57:46 -070033!1 = metadata !{}
David Blaikiea8eefc72013-02-02 05:56:24 +000034!3 = metadata !{metadata !5}
Stephen Hinesdce4a402014-05-29 02:49:00 -070035!5 = metadata !{i32 786478, metadata !19, metadata !6, metadata !"callee", metadata !"callee", metadata !"", i32 4, metadata !7, i1 false, i1 true, i32 0, i32 0, null, i32 0, i1 false, i32 (i32)* @callee, null, null, null, i32 7} ; [ DW_TAG_subprogram ]
David Blaikie72dfb052013-03-28 02:44:59 +000036!6 = metadata !{i32 786473, metadata !19} ; [ DW_TAG_file_type ]
Manman Ren1ed2e1f2013-09-08 03:11:54 +000037!7 = metadata !{i32 786453, i32 0, null, i32 0, 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 ]
Eric Christopherfa5b0502012-04-03 17:55:42 +000038!8 = metadata !{metadata !9, metadata !9}
Manman Ren27ce44d2013-07-25 06:43:01 +000039!9 = metadata !{i32 786468, null, null, metadata !"int", i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
Eric Christopherfa5b0502012-04-03 17:55:42 +000040!12 = metadata !{i32 786689, metadata !5, metadata !"x", metadata !6, i32 16777221, metadata !9, i32 0, i32 0} ; [ DW_TAG_arg_variable ]
41!13 = metadata !{i32 5, i32 5, metadata !5, null}
42!14 = metadata !{i32 786688, metadata !15, metadata !"y", metadata !6, i32 8, metadata !9, i32 0, i32 0} ; [ DW_TAG_auto_variable ]
David Blaikie72dfb052013-03-28 02:44:59 +000043!15 = metadata !{i32 786443, metadata !19, metadata !5, i32 7, i32 1, i32 0} ; [ DW_TAG_lexical_block ]
Eric Christopherfa5b0502012-04-03 17:55:42 +000044!16 = metadata !{i32 8, i32 9, metadata !15, null}
45!17 = metadata !{i32 8, i32 18, metadata !15, null}
46!18 = metadata !{i32 9, i32 5, metadata !15, null}
David Blaikieb4cf0ab2013-03-17 21:13:55 +000047!19 = metadata !{metadata !"ending-run.c", metadata !"/Users/echristo/tmp"}
Manman Ren41245b42013-12-09 20:58:24 +000048!20 = metadata !{i32 1, metadata !"Debug Info Version", i32 1}