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