blob: a1b0ce79260e2ca1ba69634c719cb3edbb8f4441 [file] [log] [blame]
Jyotsna Verma9dea0952013-04-10 19:53:26 +00001; REQUIRES: object-emission
2
Timur Iskhodzhanovf166f6c2014-01-30 01:39:17 +00003; RUN: %llc_dwarf -O0 -filetype=obj < %s > %t
David Blaikie2881da72013-03-20 19:39:15 +00004; RUN: llvm-dwarfdump %t | FileCheck %s
5; CHECK: debug_info contents
David Blaikie684fc532013-05-06 23:33:07 +00006; CHECK: [[NS1:0x[0-9a-f]*]]:{{ *}}DW_TAG_namespace
David Blaikie4f278f92013-03-20 06:27:06 +00007; CHECK-NEXT: DW_AT_name{{.*}} = "A"
Frederic Riss955724e2014-09-22 12:36:04 +00008; CHECK-NEXT: DW_AT_decl_file{{.*}}([[F1:".*debug-info-namespace.cpp"]])
Frederic Riss0982e692014-09-05 07:21:50 +00009; CHECK-NEXT: DW_AT_decl_line{{.*}}(3)
David Blaikiefdabd482013-03-20 05:15:37 +000010; CHECK-NOT: NULL
David Blaikief55abea2013-04-22 06:12:31 +000011; CHECK: [[NS2:0x[0-9a-f]*]]:{{ *}}DW_TAG_namespace
David Blaikiea354eed2013-03-20 19:14:16 +000012; CHECK-NEXT: DW_AT_name{{.*}} = "B"
Frederic Riss955724e2014-09-22 12:36:04 +000013; CHECK-NEXT: DW_AT_decl_file{{.*}}([[F2:".*foo.cpp"]])
Frederic Riss0982e692014-09-05 07:21:50 +000014; CHECK-NEXT: DW_AT_decl_line{{.*}}(1)
David Blaikiea354eed2013-03-20 19:14:16 +000015; CHECK-NOT: NULL
David Blaikie3b6038b2013-05-08 06:01:41 +000016; CHECK: [[I:0x[0-9a-f]*]]:{{ *}}DW_TAG_variable
David Blaikiefdabd482013-03-20 05:15:37 +000017; CHECK-NEXT: DW_AT_name{{.*}}= "i"
David Blaikie3b6038b2013-05-08 06:01:41 +000018; CHECK-NOT: NULL
David Blaikie3b6038b2013-05-08 06:01:41 +000019; CHECK: [[FOO:0x[0-9a-f]*]]:{{ *}}DW_TAG_structure_type
20; CHECK-NEXT: DW_AT_name{{.*}}= "foo"
21; CHECK-NEXT: DW_AT_declaration
22; CHECK-NOT: NULL
23; CHECK: [[BAR:0x[0-9a-f]*]]:{{ *}}DW_TAG_structure_type
24; CHECK-NEXT: DW_AT_name{{.*}}= "bar"
25; CHECK: NULL
David Blaikie3c2fff32014-05-27 18:37:48 +000026; CHECK: [[FUNC1:.*]]: DW_TAG_subprogram
27; CHECK-NOT: DW_TAG
28; CHECK: DW_AT_MIPS_linkage_name
29; CHECK-NOT: DW_TAG
30; CHECK: DW_AT_name{{.*}}= "f1"
31; CHECK: DW_TAG_subprogram
32; CHECK-NOT: DW_TAG
33; CHECK: DW_AT_MIPS_linkage_name
34; CHECK-NOT: DW_TAG
35; CHECK: DW_AT_name{{.*}}= "f1"
David Blaikie3b6038b2013-05-08 06:01:41 +000036; CHECK: NULL
37
38; CHECK-NOT: NULL
David Blaikie684fc532013-05-06 23:33:07 +000039; CHECK: DW_TAG_imported_module
40; This is a bug, it should be in F2 but it inherits the file from its
41; enclosing scope
Frederic Riss955724e2014-09-22 12:36:04 +000042; CHECK-NEXT: DW_AT_decl_file{{.*}}([[F1]])
Frederic Riss0982e692014-09-05 07:21:50 +000043; CHECK-NEXT: DW_AT_decl_line{{.*}}(8)
David Blaikie684fc532013-05-06 23:33:07 +000044; CHECK-NEXT: DW_AT_import{{.*}}=> {[[NS2]]})
David Blaikie6baa7762013-05-07 17:57:13 +000045; CHECK: NULL
46; CHECK-NOT: NULL
David Blaikie684fc532013-05-06 23:33:07 +000047
David Blaikie3c2fff32014-05-27 18:37:48 +000048; CHECK: DW_TAG_imported_module
49; Same bug as above, this should be F2, not F1
Frederic Riss955724e2014-09-22 12:36:04 +000050; CHECK-NEXT: DW_AT_decl_file{{.*}}([[F1]])
Frederic Riss0982e692014-09-05 07:21:50 +000051; CHECK-NEXT: DW_AT_decl_line{{.*}}(11)
David Blaikie3c2fff32014-05-27 18:37:48 +000052; CHECK-NEXT: DW_AT_import{{.*}}=> {[[NS1]]})
53; CHECK-NOT: NULL
54
David Blaikief55abea2013-04-22 06:12:31 +000055; CHECK: DW_TAG_subprogram
David Blaikie2f753512014-05-23 21:11:46 +000056; CHECK-NOT: DW_TAG
57; CHECK: DW_AT_MIPS_linkage_name
58; CHECK-NOT: DW_TAG
59; CHECK: DW_AT_name{{.*}}= "func"
David Blaikief55abea2013-04-22 06:12:31 +000060; CHECK-NOT: NULL
61; CHECK: DW_TAG_imported_module
Frederic Riss955724e2014-09-22 12:36:04 +000062; CHECK-NEXT: DW_AT_decl_file{{.*}}([[F2]])
Frederic Riss0982e692014-09-05 07:21:50 +000063; CHECK-NEXT: DW_AT_decl_line{{.*}}(18)
David Blaikie684fc532013-05-06 23:33:07 +000064; CHECK-NEXT: DW_AT_import{{.*}}=> {[[NS1]]})
65; CHECK-NOT: NULL
David Blaikie3b6038b2013-05-08 06:01:41 +000066; CHECK: DW_TAG_imported_declaration
Frederic Riss955724e2014-09-22 12:36:04 +000067; CHECK-NEXT: DW_AT_decl_file{{.*}}([[F2]])
Frederic Riss0982e692014-09-05 07:21:50 +000068; CHECK-NEXT: DW_AT_decl_line{{.*}}(19)
David Blaikie3b6038b2013-05-08 06:01:41 +000069; CHECK-NEXT: DW_AT_import{{.*}}=> {[[FOO]]})
70; CHECK-NOT: NULL
71; CHECK: DW_TAG_imported_declaration
Frederic Riss955724e2014-09-22 12:36:04 +000072; CHECK-NEXT: DW_AT_decl_file{{.*}}([[F2]])
Frederic Riss0982e692014-09-05 07:21:50 +000073; CHECK-NEXT: DW_AT_decl_line{{.*}}(20)
David Blaikie3b6038b2013-05-08 06:01:41 +000074; CHECK-NEXT: DW_AT_import{{.*}}=> {[[BAR]]})
75; CHECK-NOT: NULL
76; CHECK: DW_TAG_imported_declaration
Frederic Riss955724e2014-09-22 12:36:04 +000077; CHECK-NEXT: DW_AT_decl_file{{.*}}([[F2]])
Frederic Riss0982e692014-09-05 07:21:50 +000078; CHECK-NEXT: DW_AT_decl_line{{.*}}(21)
David Blaikie3b6038b2013-05-08 06:01:41 +000079; CHECK-NEXT: DW_AT_import{{.*}}=> {[[FUNC1]]})
80; CHECK-NOT: NULL
81; CHECK: DW_TAG_imported_declaration
Frederic Riss955724e2014-09-22 12:36:04 +000082; CHECK-NEXT: DW_AT_decl_file{{.*}}([[F2]])
Frederic Riss0982e692014-09-05 07:21:50 +000083; CHECK-NEXT: DW_AT_decl_line{{.*}}(22)
David Blaikie3b6038b2013-05-08 06:01:41 +000084; CHECK-NEXT: DW_AT_import{{.*}}=> {[[I]]})
85; CHECK-NOT: NULL
David Blaikie2a40c142014-04-06 06:29:01 +000086; CHECK: [[X:0x[0-9a-f]*]]:{{ *}}DW_TAG_imported_declaration
Frederic Riss955724e2014-09-22 12:36:04 +000087; CHECK-NEXT: DW_AT_decl_file{{.*}}([[F2]])
Frederic Riss0982e692014-09-05 07:21:50 +000088; CHECK-NEXT: DW_AT_decl_line{{.*}}(24)
David Blaikiee63d5d12013-05-20 22:50:35 +000089; CHECK-NEXT: DW_AT_import{{.*}}=> {[[NS1]]})
90; CHECK-NEXT: DW_AT_name{{.*}}"X"
91; CHECK-NOT: NULL
David Blaikie2a40c142014-04-06 06:29:01 +000092; CHECK: DW_TAG_imported_declaration
Frederic Riss955724e2014-09-22 12:36:04 +000093; CHECK-NEXT: DW_AT_decl_file{{.*}}([[F2]])
Frederic Riss0982e692014-09-05 07:21:50 +000094; CHECK-NEXT: DW_AT_decl_line{{.*}}(25)
David Blaikiee63d5d12013-05-20 22:50:35 +000095; CHECK-NEXT: DW_AT_import{{.*}}=> {[[X]]})
96; CHECK-NEXT: DW_AT_name{{.*}}"Y"
97; CHECK-NOT: NULL
David Blaikie684fc532013-05-06 23:33:07 +000098; CHECK: DW_TAG_lexical_block
99; CHECK-NOT: NULL
100; CHECK: DW_TAG_imported_module
Frederic Riss955724e2014-09-22 12:36:04 +0000101; CHECK-NEXT: DW_AT_decl_file{{.*}}([[F2]])
Frederic Riss0982e692014-09-05 07:21:50 +0000102; CHECK-NEXT: DW_AT_decl_line{{.*}}(15)
David Blaikief55abea2013-04-22 06:12:31 +0000103; CHECK-NEXT: DW_AT_import{{.*}}=> {[[NS2]]})
David Blaikie6baa7762013-05-07 17:57:13 +0000104; CHECK: NULL
105; CHECK: NULL
David Blaikie3c2fff32014-05-27 18:37:48 +0000106; CHECK: NULL
David Blaikie684fc532013-05-06 23:33:07 +0000107
David Blaikiefdabd482013-03-20 05:15:37 +0000108; IR generated from clang/test/CodeGenCXX/debug-info-namespace.cpp, file paths
David Blaikie3b6038b2013-05-08 06:01:41 +0000109; changed to protect the guilty. The C++ source code is:
David Blaikiefdabd482013-03-20 05:15:37 +0000110; namespace A {
David Blaikiea354eed2013-03-20 19:14:16 +0000111; #line 1 "foo.cpp"
112; namespace B {
David Blaikiefdabd482013-03-20 05:15:37 +0000113; int i;
David Blaikie3b6038b2013-05-08 06:01:41 +0000114; void f1() { }
115; void f1(int) { }
116; struct foo;
117; struct bar { };
David Blaikiefdabd482013-03-20 05:15:37 +0000118; }
David Blaikie684fc532013-05-06 23:33:07 +0000119; using namespace B;
David Blaikiea354eed2013-03-20 19:14:16 +0000120; }
David Blaikief55abea2013-04-22 06:12:31 +0000121;
David Blaikie684fc532013-05-06 23:33:07 +0000122; using namespace A;
David Blaikie3b6038b2013-05-08 06:01:41 +0000123;
David Blaikie684fc532013-05-06 23:33:07 +0000124; int func(bool b) {
125; if (b) {
126; using namespace A::B;
127; return i;
128; }
129; using namespace A;
David Blaikie3b6038b2013-05-08 06:01:41 +0000130; using B::foo;
131; using B::bar;
132; using B::f1;
133; using B::i;
134; bar x;
David Blaikiee63d5d12013-05-20 22:50:35 +0000135; namespace X = A;
136; namespace Y = X;
137; return i + X::B::i + Y::B::i;
David Blaikief55abea2013-04-22 06:12:31 +0000138; }
David Blaikiefdabd482013-03-20 05:15:37 +0000139
David Blaikie3b6038b2013-05-08 06:01:41 +0000140%"struct.A::B::bar" = type { i8 }
141
David Blaikiea354eed2013-03-20 19:14:16 +0000142@_ZN1A1B1iE = global i32 0, align 4
David Blaikiefdabd482013-03-20 05:15:37 +0000143
David Blaikie684fc532013-05-06 23:33:07 +0000144; Function Attrs: nounwind uwtable
David Blaikie3b6038b2013-05-08 06:01:41 +0000145define void @_ZN1A1B2f1Ev() #0 {
146entry:
David Blaikiee63d5d12013-05-20 22:50:35 +0000147 ret void, !dbg !41
David Blaikie3b6038b2013-05-08 06:01:41 +0000148}
149
150; Function Attrs: nounwind uwtable
151define void @_ZN1A1B2f1Ei(i32) #0 {
152entry:
153 %.addr = alloca i32, align 4
154 store i32 %0, i32* %.addr, align 4
Adrian Prantlb458dc22014-10-01 18:10:54 +0000155 call void @llvm.dbg.declare(metadata !{i32* %.addr}, metadata !42), !dbg !43
David Blaikiee63d5d12013-05-20 22:50:35 +0000156 ret void, !dbg !43
David Blaikie3b6038b2013-05-08 06:01:41 +0000157}
158
159; Function Attrs: nounwind readnone
Adrian Prantlb458dc22014-10-01 18:10:54 +0000160declare void @llvm.dbg.declare(metadata, metadata) #1
David Blaikie3b6038b2013-05-08 06:01:41 +0000161
162; Function Attrs: nounwind uwtable
David Blaikie684fc532013-05-06 23:33:07 +0000163define i32 @_Z4funcb(i1 zeroext %b) #0 {
David Blaikief55abea2013-04-22 06:12:31 +0000164entry:
David Blaikie684fc532013-05-06 23:33:07 +0000165 %retval = alloca i32, align 4
166 %b.addr = alloca i8, align 1
David Blaikie3b6038b2013-05-08 06:01:41 +0000167 %x = alloca %"struct.A::B::bar", align 1
David Blaikie684fc532013-05-06 23:33:07 +0000168 %frombool = zext i1 %b to i8
169 store i8 %frombool, i8* %b.addr, align 1
Adrian Prantlb458dc22014-10-01 18:10:54 +0000170 call void @llvm.dbg.declare(metadata !{i8* %b.addr}, metadata !44), !dbg !45
David Blaikiee63d5d12013-05-20 22:50:35 +0000171 %0 = load i8* %b.addr, align 1, !dbg !46
172 %tobool = trunc i8 %0 to i1, !dbg !46
173 br i1 %tobool, label %if.then, label %if.end, !dbg !46
David Blaikie684fc532013-05-06 23:33:07 +0000174
175if.then: ; preds = %entry
David Blaikiee63d5d12013-05-20 22:50:35 +0000176 %1 = load i32* @_ZN1A1B1iE, align 4, !dbg !47
177 store i32 %1, i32* %retval, !dbg !47
178 br label %return, !dbg !47
David Blaikie684fc532013-05-06 23:33:07 +0000179
180if.end: ; preds = %entry
Adrian Prantlb458dc22014-10-01 18:10:54 +0000181 call void @llvm.dbg.declare(metadata !{%"struct.A::B::bar"* %x}, metadata !48), !dbg !49
David Blaikiee63d5d12013-05-20 22:50:35 +0000182 %2 = load i32* @_ZN1A1B1iE, align 4, !dbg !50
183 %3 = load i32* @_ZN1A1B1iE, align 4, !dbg !50
184 %add = add nsw i32 %2, %3, !dbg !50
185 %4 = load i32* @_ZN1A1B1iE, align 4, !dbg !50
186 %add1 = add nsw i32 %add, %4, !dbg !50
187 store i32 %add1, i32* %retval, !dbg !50
188 br label %return, !dbg !50
David Blaikie684fc532013-05-06 23:33:07 +0000189
190return: ; preds = %if.end, %if.then
David Blaikiee63d5d12013-05-20 22:50:35 +0000191 %5 = load i32* %retval, !dbg !51
192 ret i32 %5, !dbg !51
David Blaikief55abea2013-04-22 06:12:31 +0000193}
194
Bill Wendling187d3dd2013-08-22 21:28:54 +0000195attributes #0 = { nounwind uwtable "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" }
David Blaikie684fc532013-05-06 23:33:07 +0000196attributes #1 = { nounwind readnone }
David Blaikief55abea2013-04-22 06:12:31 +0000197
David Blaikiefdabd482013-03-20 05:15:37 +0000198!llvm.dbg.cu = !{!0}
Manman Ren409558f2013-11-22 21:49:45 +0000199!llvm.module.flags = !{!52}
David Blaikiefdabd482013-03-20 05:15:37 +0000200
David Blaikie3b6038b2013-05-08 06:01:41 +0000201!0 = metadata !{i32 786449, metadata !1, i32 4, metadata !"clang version 3.4 ", i1 false, metadata !"", i32 0, metadata !2, metadata !2, metadata !3, metadata !19, metadata !21, metadata !""} ; [ DW_TAG_compile_unit ] [/usr/local/google/home/blaikie/dev/llvm/build/clang/debug//usr/local/google/home/blaikie/dev/llvm/src/tools/clang/test/CodeGenCXX/debug-info-namespace.cpp] [DW_LANG_C_plus_plus]
202!1 = metadata !{metadata !"/usr/local/google/home/blaikie/dev/llvm/src/tools/clang/test/CodeGenCXX/debug-info-namespace.cpp", metadata !"/usr/local/google/home/blaikie/dev/llvm/build/clang/debug"}
David Blaikie9ba72542014-05-14 21:52:46 +0000203!2 = metadata !{}
David Blaikie3b6038b2013-05-08 06:01:41 +0000204!3 = metadata !{metadata !4, metadata !10, metadata !14}
205!4 = metadata !{i32 786478, metadata !5, metadata !6, metadata !"f1", metadata !"f1", metadata !"_ZN1A1B2f1Ev", i32 3, metadata !8, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 false, void ()* @_ZN1A1B2f1Ev, null, null, metadata !2, i32 3} ; [ DW_TAG_subprogram ] [line 3] [def] [f1]
206!5 = metadata !{metadata !"foo.cpp", metadata !"/usr/local/google/home/blaikie/dev/llvm/build/clang/debug"}
207!6 = metadata !{i32 786489, metadata !5, metadata !7, metadata !"B", i32 1} ; [ DW_TAG_namespace ] [B] [line 1]
208!7 = metadata !{i32 786489, metadata !1, null, metadata !"A", i32 3} ; [ DW_TAG_namespace ] [A] [line 3]
Manman Rendeeafd82013-09-06 21:03:58 +0000209!8 = metadata !{i32 786453, i32 0, null, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !9, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
David Blaikie3b6038b2013-05-08 06:01:41 +0000210!9 = metadata !{null}
211!10 = metadata !{i32 786478, metadata !5, metadata !6, metadata !"f1", metadata !"f1", metadata !"_ZN1A1B2f1Ei", i32 4, metadata !11, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 false, void (i32)* @_ZN1A1B2f1Ei, null, null, metadata !2, i32 4} ; [ DW_TAG_subprogram ] [line 4] [def] [f1]
Manman Rendeeafd82013-09-06 21:03:58 +0000212!11 = metadata !{i32 786453, i32 0, null, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !12, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
David Blaikie3b6038b2013-05-08 06:01:41 +0000213!12 = metadata !{null, metadata !13}
214!13 = 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]
215!14 = metadata !{i32 786478, metadata !5, metadata !15, metadata !"func", metadata !"func", metadata !"_Z4funcb", i32 13, metadata !16, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 false, i32 (i1)* @_Z4funcb, null, null, metadata !2, i32 13} ; [ DW_TAG_subprogram ] [line 13] [def] [func]
216!15 = metadata !{i32 786473, metadata !5} ; [ DW_TAG_file_type ] [/usr/local/google/home/blaikie/dev/llvm/build/clang/debug/foo.cpp]
Manman Rendeeafd82013-09-06 21:03:58 +0000217!16 = metadata !{i32 786453, i32 0, null, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !17, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
David Blaikie3b6038b2013-05-08 06:01:41 +0000218!17 = metadata !{metadata !13, metadata !18}
219!18 = metadata !{i32 786468, null, null, metadata !"bool", i32 0, i64 8, i64 8, i64 0, i32 0, i32 2} ; [ DW_TAG_base_type ] [bool] [line 0, size 8, align 8, offset 0, enc DW_ATE_boolean]
220!19 = metadata !{metadata !20}
221!20 = metadata !{i32 786484, i32 0, metadata !6, metadata !"i", metadata !"i", metadata !"_ZN1A1B1iE", metadata !15, i32 2, metadata !13, i32 0, i32 1, i32* @_ZN1A1B1iE, null} ; [ DW_TAG_variable ] [i] [line 2] [def]
David Blaikiee63d5d12013-05-20 22:50:35 +0000222!21 = metadata !{metadata !22, metadata !23, metadata !24, metadata !26, metadata !27, metadata !29, metadata !37, metadata !38, metadata !39, metadata !40}
David Blaikie3b6038b2013-05-08 06:01:41 +0000223!22 = metadata !{i32 786490, metadata !7, metadata !6, i32 8} ; [ DW_TAG_imported_module ]
224!23 = metadata !{i32 786490, metadata !0, metadata !7, i32 11} ; [ DW_TAG_imported_module ]
225!24 = metadata !{i32 786490, metadata !25, metadata !6, i32 15} ; [ DW_TAG_imported_module ]
226!25 = metadata !{i32 786443, metadata !5, metadata !14, i32 14, i32 0, i32 0} ; [ DW_TAG_lexical_block ] [/usr/local/google/home/blaikie/dev/llvm/build/clang/debug/foo.cpp]
227!26 = metadata !{i32 786490, metadata !14, metadata !7, i32 18} ; [ DW_TAG_imported_module ]
228!27 = metadata !{i32 786440, metadata !14, metadata !28, i32 19} ; [ DW_TAG_imported_declaration ]
Manman Ren0ed70ae2013-08-26 22:39:55 +0000229!28 = metadata !{i32 786451, metadata !5, metadata !6, metadata !"foo", i32 5, i64 0, i64 0, i32 0, i32 4, null, null, i32 0, null, null, null} ; [ DW_TAG_structure_type ] [foo] [line 5, size 0, align 0, offset 0] [decl] [from ]
David Blaikie3b6038b2013-05-08 06:01:41 +0000230!29 = metadata !{i32 786440, metadata !14, metadata !30, i32 20} ; [ DW_TAG_imported_declaration ]
Manman Ren0ed70ae2013-08-26 22:39:55 +0000231!30 = metadata !{i32 786451, metadata !5, metadata !6, metadata !"bar", i32 6, i64 8, i64 8, i32 0, i32 0, null, metadata !31, i32 0, null, null, null} ; [ DW_TAG_structure_type ] [bar] [line 6, size 8, align 8, offset 0] [def] [from ]
David Blaikie3b6038b2013-05-08 06:01:41 +0000232!31 = metadata !{metadata !32}
233!32 = metadata !{i32 786478, metadata !5, metadata !30, metadata !"bar", metadata !"bar", metadata !"", i32 6, metadata !33, i1 false, i1 false, i32 0, i32 0, null, i32 320, i1 false, null, null, i32 0, metadata !36, i32 6} ; [ DW_TAG_subprogram ] [line 6] [bar]
Manman Rendeeafd82013-09-06 21:03:58 +0000234!33 = metadata !{i32 786453, i32 0, null, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !34, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
David Blaikie3b6038b2013-05-08 06:01:41 +0000235!34 = metadata !{null, metadata !35}
Manman Rendeeafd82013-09-06 21:03:58 +0000236!35 = metadata !{i32 786447, i32 0, null, metadata !"", i32 0, i64 64, i64 64, i64 0, i32 1088, metadata !30} ; [ DW_TAG_pointer_type ] [line 0, size 64, align 64, offset 0] [artificial] [from bar]
David Blaikie3b6038b2013-05-08 06:01:41 +0000237!36 = metadata !{i32 786468}
238!37 = metadata !{i32 786440, metadata !14, metadata !10, i32 21} ; [ DW_TAG_imported_declaration ]
239!38 = metadata !{i32 786440, metadata !14, metadata !20, i32 22} ; [ DW_TAG_imported_declaration ]
David Blaikie2a40c142014-04-06 06:29:01 +0000240!39 = metadata !{i32 786440, metadata !14, metadata !7, i32 24, metadata !"X"} ; [ DW_TAG_imported_declaration ]
241!40 = metadata !{i32 786440, metadata !14, metadata !39, i32 25, metadata !"Y"} ; [ DW_TAG_imported_declaration ]
David Blaikiee63d5d12013-05-20 22:50:35 +0000242!41 = metadata !{i32 3, i32 0, metadata !4, null}
243!42 = metadata !{i32 786689, metadata !10, metadata !"", metadata !15, i32 16777220, metadata !13, i32 0, i32 0} ; [ DW_TAG_arg_variable ] [line 4]
244!43 = metadata !{i32 4, i32 0, metadata !10, null}
245!44 = metadata !{i32 786689, metadata !14, metadata !"b", metadata !15, i32 16777229, metadata !18, i32 0, i32 0} ; [ DW_TAG_arg_variable ] [b] [line 13]
246!45 = metadata !{i32 13, i32 0, metadata !14, null}
247!46 = metadata !{i32 14, i32 0, metadata !14, null}
248!47 = metadata !{i32 16, i32 0, metadata !25, null}
249!48 = metadata !{i32 786688, metadata !14, metadata !"x", metadata !15, i32 23, metadata !30, i32 0, i32 0} ; [ DW_TAG_auto_variable ] [x] [line 23]
250!49 = metadata !{i32 23, i32 0, metadata !14, null}
251!50 = metadata !{i32 26, i32 0, metadata !14, null}
252!51 = metadata !{i32 27, i32 0, metadata !14, null}
Manman Ren409558f2013-11-22 21:49:45 +0000253!52 = metadata !{i32 1, metadata !"Debug Info Version", i32 1}