xref: /llvm-project/llvm/test/Bitcode/DISubprogram-v4.ll (revision 7d0556fc137aa07347741b7750e50ecbc2b4c6e2)
1adcdc1bdSPaul Robinson; The .bc file was generated from this source using llvm-as from r347766.
2adcdc1bdSPaul Robinson; A 7.0 release version should work to recreate it if necessary.
3adcdc1bdSPaul Robinson; RUN: llvm-dis < %s.bc | FileCheck %s
4adcdc1bdSPaul Robinson
5adcdc1bdSPaul Robinson; CHECK: define void @_Z3foov() !dbg !9
6adcdc1bdSPaul Robinsondefine void @_Z3foov() !dbg !9 {
7adcdc1bdSPaul Robinson  ret void
8adcdc1bdSPaul Robinson}
9adcdc1bdSPaul Robinson
10adcdc1bdSPaul Robinson; CHECK: !named = !{!0, !1, !2, !3, !4, !5, !6, !7, !8, !9, !10, !11, !12, !13, !14, !15, !16, !17, !18}
11adcdc1bdSPaul Robinson!named = !{!0, !1, !2, !3, !4, !5, !6, !7, !8, !9, !10, !11, !12, !13, !14, !15, !16, !17, !18}
12adcdc1bdSPaul Robinson
13adcdc1bdSPaul Robinson!0 = !{null}
14adcdc1bdSPaul Robinson!1 = distinct !DICompositeType(tag: DW_TAG_structure_type)
15adcdc1bdSPaul Robinson!2 = !DIFile(filename: "path/to/file", directory: "/path/to/dir")
16adcdc1bdSPaul Robinson!3 = !DISubroutineType(types: !0)
17adcdc1bdSPaul Robinson!4 = distinct !DICompositeType(tag: DW_TAG_structure_type)
18adcdc1bdSPaul Robinson!5 = distinct !{}
19adcdc1bdSPaul Robinson!6 = distinct !{}
20adcdc1bdSPaul Robinson
21adcdc1bdSPaul Robinson; CHECK: !7 = distinct !DISubprogram(scope: null, spFlags: DISPFlagDefinition, unit: !8)
22adcdc1bdSPaul Robinson!7 = distinct !DISubprogram(unit: !8)
23adcdc1bdSPaul Robinson
24adcdc1bdSPaul Robinson!8 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang",
25adcdc1bdSPaul Robinson                             file: !2, isOptimized: true, flags: "-O2")
26adcdc1bdSPaul Robinson
27*7d0556fcSFangrui Song; CHECK: !9 = distinct !DISubprogram(scope: null, spFlags: 0)
28*7d0556fcSFangrui Song!9 = distinct !DISubprogram(isDefinition: false)
29adcdc1bdSPaul Robinson
30adcdc1bdSPaul Robinson; CHECK: !10 = distinct !DISubprogram({{.*}}, spFlags: DISPFlagPureVirtual | DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized,
31adcdc1bdSPaul Robinson!10 = distinct !DISubprogram(name: "foo", linkageName: "_Zfoov", scope: !1,
32adcdc1bdSPaul Robinson                            file: !2, line: 7, type: !3, containingType: !4,
33adcdc1bdSPaul Robinson							isLocal: true, isDefinition: true, isOptimized: true,
34adcdc1bdSPaul Robinson							virtuality: DW_VIRTUALITY_pure_virtual,
35adcdc1bdSPaul Robinson                            unit: !8)
36adcdc1bdSPaul Robinson
37adcdc1bdSPaul Robinson; CHECK: !11 = distinct !DISubprogram({{.*}}, spFlags: DISPFlagVirtual | DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized,
38adcdc1bdSPaul Robinson!11 = distinct !DISubprogram(name: "foo", linkageName: "_Zfoov", scope: !1,
39adcdc1bdSPaul Robinson                            file: !2, line: 7, type: !3, containingType: !4,
40adcdc1bdSPaul Robinson							isLocal: true, isDefinition: true, isOptimized: true,
41adcdc1bdSPaul Robinson							virtuality: DW_VIRTUALITY_virtual,
42adcdc1bdSPaul Robinson                            unit: !8)
43adcdc1bdSPaul Robinson
44adcdc1bdSPaul Robinson; CHECK: !12 = distinct !DISubprogram({{.*}}, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized,
45adcdc1bdSPaul Robinson!12 = distinct !DISubprogram(name: "foo", linkageName: "_Zfoov", scope: !1,
46adcdc1bdSPaul Robinson                            file: !2, line: 7, type: !3, containingType: !4,
47adcdc1bdSPaul Robinson							isLocal: true, isDefinition: true, isOptimized: true,
48adcdc1bdSPaul Robinson							virtuality: DW_VIRTUALITY_none,
49adcdc1bdSPaul Robinson                            unit: !8)
50adcdc1bdSPaul Robinson
51adcdc1bdSPaul Robinson; CHECK: !13 = distinct !DISubprogram({{.*}}, spFlags: DISPFlagDefinition | DISPFlagOptimized,
52adcdc1bdSPaul Robinson!13 = distinct !DISubprogram(name: "foo", linkageName: "_Zfoov", scope: !1,
53adcdc1bdSPaul Robinson                            file: !2, line: 7, type: !3, containingType: !4,
54adcdc1bdSPaul Robinson							isLocal: false, isDefinition: true, isOptimized: true,
55adcdc1bdSPaul Robinson                            unit: !8)
56adcdc1bdSPaul Robinson
57adcdc1bdSPaul Robinson; CHECK: !14 = distinct !DISubprogram({{.*}}, spFlags: DISPFlagLocalToUnit | DISPFlagOptimized)
58adcdc1bdSPaul Robinson!14 = distinct !DISubprogram(name: "foo", linkageName: "_Zfoov", scope: !1,
59adcdc1bdSPaul Robinson                            file: !2, line: 7, type: !3, containingType: !4,
60adcdc1bdSPaul Robinson							isLocal: true, isDefinition: false, isOptimized: true)
61adcdc1bdSPaul Robinson
62adcdc1bdSPaul Robinson; CHECK: !15 = distinct !DISubprogram({{.*}}, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition,
63adcdc1bdSPaul Robinson!15 = distinct !DISubprogram(name: "foo", linkageName: "_Zfoov", scope: !1,
64adcdc1bdSPaul Robinson                            file: !2, line: 7, type: !3, containingType: !4,
65adcdc1bdSPaul Robinson							isLocal: true, isDefinition: true, isOptimized: false,
66adcdc1bdSPaul Robinson                            unit: !8)
67adcdc1bdSPaul Robinson
68adcdc1bdSPaul Robinson; CHECK: !16 = distinct !DISubprogram({{.*}}, spFlags: DISPFlagLocalToUnit)
69adcdc1bdSPaul Robinson!16 = distinct !DISubprogram(name: "foo", linkageName: "_Zfoov", scope: !1,
70adcdc1bdSPaul Robinson                            file: !2, line: 7, type: !3, containingType: !4,
71adcdc1bdSPaul Robinson							isLocal: true, isDefinition: false, isOptimized: false)
72adcdc1bdSPaul Robinson
73adcdc1bdSPaul Robinson; CHECK: !17 = distinct !DISubprogram({{.*}}, spFlags: DISPFlagDefinition,
74adcdc1bdSPaul Robinson!17 = distinct !DISubprogram(name: "foo", linkageName: "_Zfoov", scope: !1,
75adcdc1bdSPaul Robinson                            file: !2, line: 7, type: !3, containingType: !4,
76adcdc1bdSPaul Robinson							isLocal: false, isDefinition: true, isOptimized: false,
77adcdc1bdSPaul Robinson                            unit: !8)
78adcdc1bdSPaul Robinson
79adcdc1bdSPaul Robinson; CHECK: !18 = distinct !DISubprogram({{.*}}, spFlags: DISPFlagOptimized)
80adcdc1bdSPaul Robinson!18 = distinct !DISubprogram(name: "foo", linkageName: "_Zfoov", scope: !1,
81adcdc1bdSPaul Robinson                            file: !2, line: 7, type: !3, containingType: !4,
82adcdc1bdSPaul Robinson							isLocal: false, isDefinition: false, isOptimized: true)
83adcdc1bdSPaul Robinson
84adcdc1bdSPaul Robinson!19 = !{i32 1, !"Debug Info Version", i32 3}
85adcdc1bdSPaul Robinson!llvm.module.flags = !{!19}
86adcdc1bdSPaul Robinson!llvm.dbg.cu = !{!8}
87