blob: 5fc4a939a6e58e896455dd9cf1afd3d9dd2ef1b4 [file] [log] [blame]
Manman Rened696c32013-07-24 22:23:00 +00001; RUN: llc -mtriple=x86_64-pc-linux-gnu %s -o %t -filetype=obj
Eli Benderskye6abe832013-01-25 21:44:53 +00002; RUN: llvm-dwarfdump -debug-dump=info %t | FileCheck %s
James Molloy0ceb8ca2011-09-26 17:40:42 +00003
4; ModuleID = 'test.c'
5
Nick Lewyckyd59c0ca2011-10-27 06:44:11 +00006@GLB = common global i32 0, align 4
James Molloy0ceb8ca2011-09-26 17:40:42 +00007
8define i32 @f() nounwind {
Nick Lewyckyd59c0ca2011-10-27 06:44:11 +00009 %LOC = alloca i32, align 4
Adrian Prantl87b7eb92014-10-01 18:55:02 +000010 call void @llvm.dbg.declare(metadata !{i32* %LOC}, metadata !15, metadata !{i32 786690}), !dbg !17
Nick Lewyckyd59c0ca2011-10-27 06:44:11 +000011 %1 = load i32* @GLB, align 4, !dbg !18
12 store i32 %1, i32* %LOC, align 4, !dbg !18
13 %2 = load i32* @GLB, align 4, !dbg !19
James Molloy0ceb8ca2011-09-26 17:40:42 +000014 ret i32 %2, !dbg !19
15}
16
Adrian Prantl87b7eb92014-10-01 18:55:02 +000017declare void @llvm.dbg.declare(metadata, metadata, metadata) nounwind readnone
James Molloy0ceb8ca2011-09-26 17:40:42 +000018
19!llvm.dbg.cu = !{!0}
Manman Ren409558f2013-11-22 21:49:45 +000020!llvm.module.flags = !{!21}
James Molloy0ceb8ca2011-09-26 17:40:42 +000021
David Blaikie5e390e42014-02-04 01:23:52 +000022!0 = metadata !{i32 786449, metadata !20, i32 12, metadata !"clang version 3.0 (trunk)", i1 false, metadata !"", i32 0, metadata !1, metadata !1, metadata !3, metadata !12, metadata !1, metadata !""} ; [ DW_TAG_compile_unit ]
23!1 = metadata !{}
David Blaikie33111df2013-02-02 05:56:24 +000024!3 = metadata !{metadata !5}
David Blaikie9ba72542014-05-14 21:52:46 +000025!5 = metadata !{i32 720942, metadata !6, metadata !6, metadata !"f", metadata !"f", metadata !"", i32 3, metadata !7, i1 false, i1 true, i32 0, i32 0, null, i32 0, i1 false, i32 ()* @f, null, null, null, i32 0} ; [ DW_TAG_subprogram ] [line 3] [def] [scope 0] [f]
David Blaikie5692e722013-03-28 02:44:59 +000026!6 = metadata !{i32 720937, metadata !20} ; [ DW_TAG_file_type ]
Manman Renf2a88f32013-09-08 03:11:54 +000027!7 = metadata !{i32 720917, i32 0, null, i32 0, i32 0, i64 0, i64 0, i32 0, i32 0, null, metadata !8, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
James Molloy0ceb8ca2011-09-26 17:40:42 +000028!8 = metadata !{metadata !9}
David Blaikie5692e722013-03-28 02:44:59 +000029!9 = metadata !{i32 720932, null, null, metadata !"int", i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
David Blaikie33111df2013-02-02 05:56:24 +000030!12 = metadata !{metadata !14}
David Blaikie47922fb2013-03-11 22:37:40 +000031!14 = metadata !{i32 720948, i32 0, null, metadata !"GLB", metadata !"GLB", metadata !"", metadata !6, i32 1, metadata !9, i32 0, i32 1, i32* @GLB, null} ; [ DW_TAG_variable ]
32!15 = metadata !{i32 786688, metadata !16, metadata !"LOC", metadata !6, i32 4, metadata !9, i32 0, i32 0} ; [ DW_TAG_auto_variable ]
David Blaikie5692e722013-03-28 02:44:59 +000033!16 = metadata !{i32 786443, metadata !20, metadata !5, i32 3, i32 9, i32 0} ; [ DW_TAG_lexical_block ]
James Molloy0ceb8ca2011-09-26 17:40:42 +000034!17 = metadata !{i32 4, i32 9, metadata !16, null}
35!18 = metadata !{i32 4, i32 23, metadata !16, null}
36!19 = metadata !{i32 5, i32 5, metadata !16, null}
David Blaikie8fb82242013-03-17 21:13:55 +000037!20 = metadata !{metadata !"test.c", metadata !"/work/llvm/vanilla/test/DebugInfo"}
James Molloy0ceb8ca2011-09-26 17:40:42 +000038
Manman Renf6b936b2013-10-29 05:49:41 +000039; CHECK: DW_TAG_variable
David Blaikie04ed1d12014-06-13 21:52:33 +000040; CHECK-NOT: DW_TAG
41; CHECK: DW_AT_name [DW_FORM_strp] ( .debug_str[0x{{[0-9a-f]*}}] = "GLB")
42; CHECK-NOT: DW_TAG
Frederic Riss220fa482014-09-22 16:17:32 +000043; CHECK: DW_AT_decl_file [DW_FORM_data1] ("/work/llvm/vanilla/test/DebugInfo{{[/\\]}}test.c")
David Blaikie04ed1d12014-06-13 21:52:33 +000044; CHECK-NOT: DW_TAG
Frederic Riss0982e692014-09-05 07:21:50 +000045; CHECK: DW_AT_decl_line [DW_FORM_data1] (1)
James Molloy0ceb8ca2011-09-26 17:40:42 +000046
Manman Renf6b936b2013-10-29 05:49:41 +000047; CHECK: DW_TAG_variable
David Blaikie04ed1d12014-06-13 21:52:33 +000048; CHECK-NOT: DW_TAG
49; CHECK: DW_AT_name [DW_FORM_strp] ( .debug_str[0x{{[0-9a-f]*}}] = "LOC")
50; CHECK-NOT: DW_TAG
Frederic Riss220fa482014-09-22 16:17:32 +000051; CHECK: DW_AT_decl_file [DW_FORM_data1] ("/work/llvm/vanilla/test/DebugInfo{{[/\\]}}test.c")
David Blaikie04ed1d12014-06-13 21:52:33 +000052; CHECK-NOT: DW_TAG
Frederic Riss0982e692014-09-05 07:21:50 +000053; CHECK: DW_AT_decl_line [DW_FORM_data1] (4)
Eric Christopherd6152aa2012-12-27 02:13:55 +000054
Manman Ren409558f2013-11-22 21:49:45 +000055!21 = metadata !{i32 1, metadata !"Debug Info Version", i32 1}