Alexey Samsonov | c4b3ad8 | 2012-05-01 15:16:06 +0000 | [diff] [blame] | 1 | ; RUN: llc %s -mtriple=x86_64-pc-linux-gnu -O0 -filetype=obj -o %t |
Eli Bendersky | e6abe83 | 2013-01-25 21:44:53 +0000 | [diff] [blame] | 2 | ; RUN: llvm-dwarfdump -debug-dump=info %t | FileCheck %s |
Alexey Samsonov | c4b3ad8 | 2012-05-01 15:16:06 +0000 | [diff] [blame] | 3 | |
| 4 | ; If stack is realigned, we shouldn't describe locations of local |
| 5 | ; variables by giving offset from the frame pointer (%rbp): |
| 6 | ; push %rpb |
| 7 | ; mov %rsp,%rbp |
| 8 | ; and ALIGNMENT,%rsp ; (%rsp and %rbp are different now) |
| 9 | ; It's better to use offset from %rsp instead. |
| 10 | |
| 11 | ; DW_AT_location of variable "x" shouldn't be equal to |
| 12 | ; (DW_OP_fbreg: .*): DW_OP_fbreg has code 0x91 |
| 13 | |
| 14 | ; CHECK: {{0x.* DW_TAG_variable}} |
| 15 | ; CHECK-NOT: {{DW_AT_location.*DW_FORM_block1.*0x.*91}} |
| 16 | ; CHECK: NULL |
| 17 | |
| 18 | define void @_Z3runv() nounwind uwtable { |
| 19 | entry: |
| 20 | %x = alloca i32, align 32 |
| 21 | call void @llvm.dbg.declare(metadata !{i32* %x}, metadata !9), !dbg !12 |
| 22 | ret void, !dbg !13 |
| 23 | } |
| 24 | |
| 25 | declare void @llvm.dbg.declare(metadata, metadata) nounwind readnone |
| 26 | |
| 27 | !llvm.dbg.cu = !{!0} |
| 28 | |
David Blaikie | f55abea | 2013-04-22 06:12:31 +0000 | [diff] [blame] | 29 | !0 = metadata !{i32 786449, i32 4, metadata !6, metadata !"clang version 3.2 (trunk 155696:155697) (llvm/trunk 155696)", i1 false, metadata !"", i32 0, metadata !1, metadata !1, metadata !3, metadata !1, metadata !1, metadata !""} ; [ DW_TAG_compile_unit ] |
David Blaikie | 33111df | 2013-02-02 05:56:24 +0000 | [diff] [blame] | 30 | !1 = metadata !{i32 0} |
| 31 | !3 = metadata !{metadata !5} |
Manman Ren | e1fb943 | 2013-07-25 06:43:01 +0000 | [diff] [blame^] | 32 | !5 = metadata !{i32 786478, metadata !14, metadata !6, metadata !"run", metadata !"run", metadata !"_Z3runv", i32 1, metadata !7, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 false, void ()* @_Z3runv, null, null, metadata !1, i32 1} ; [ DW_TAG_subprogram ] |
| 33 | !6 = metadata !{i32 786473, metadata !14} ; [ DW_TAG_file_type ] |
David Blaikie | 5692e72 | 2013-03-28 02:44:59 +0000 | [diff] [blame] | 34 | !7 = metadata !{i32 786453, i32 0, metadata !"", i32 0, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !8, i32 0, i32 0} ; [ DW_TAG_subroutine_type ] |
Alexey Samsonov | c4b3ad8 | 2012-05-01 15:16:06 +0000 | [diff] [blame] | 35 | !8 = metadata !{null} |
| 36 | !9 = metadata !{i32 786688, metadata !10, metadata !"x", metadata !6, i32 2, metadata !11, i32 0, i32 0} ; [ DW_TAG_auto_variable ] |
Manman Ren | e1fb943 | 2013-07-25 06:43:01 +0000 | [diff] [blame^] | 37 | !10 = metadata !{i32 786443, metadata !14, metadata !5, i32 1, i32 12, i32 0} ; [ DW_TAG_lexical_block ] |
| 38 | !11 = metadata !{i32 786468, null, null, metadata !"int", i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ] |
Alexey Samsonov | c4b3ad8 | 2012-05-01 15:16:06 +0000 | [diff] [blame] | 39 | !12 = metadata !{i32 2, i32 7, metadata !10, null} |
| 40 | !13 = metadata !{i32 3, i32 1, metadata !10, null} |
Manman Ren | e1fb943 | 2013-07-25 06:43:01 +0000 | [diff] [blame^] | 41 | !14 = metadata !{metadata !"test.cc", metadata !"/home/samsonov/debuginfo"} |