blob: d881d43a32a544b988a7ed8deee5dcca31ce89ce [file] [log] [blame]
Manman Ren409558f2013-11-22 21:49:45 +00001; RUN: opt -analyze -module-debuginfo < %s | FileCheck %s
2
3; Produced from linking:
4; /tmp/test1.c containing f()
5; /tmp/test2.c containing g()
6
7; Verify that both compile units and both their contained functions are
8; listed by DebugInfoFinder:
Duncan P. N. Exon Smithe2741802015-03-03 17:24:31 +00009;CHECK: Compile unit: DW_LANG_C99 from /tmp/test1.c
10;CHECK: Compile unit: DW_LANG_C99 from /tmp/test2.c
11;CHECK: Subprogram: f from /tmp/test1.c:1
12;CHECK: Subprogram: g from /tmp/test2.c:1
Manman Ren409558f2013-11-22 21:49:45 +000013
14define void @f() {
15 ret void, !dbg !14
16}
17
18define void @g() {
19 ret void, !dbg !15
20}
21
22!llvm.dbg.cu = !{!0, !8}
23!llvm.module.flags = !{!13, !16}
24
Duncan P. N. Exon Smithe2741802015-03-03 17:24:31 +000025!0 = !MDCompileUnit(language: DW_LANG_C99, producer: "clang version 3.4 (192092)", isOptimized: false, emissionKind: 0, file: !1, enums: !2, retainedTypes: !2, subprograms: !3, globals: !2, imports: !2)
26!1 = !MDFile(filename: "test1.c", directory: "/tmp")
Duncan P. N. Exon Smith988a7f82015-03-27 20:46:33 +000027!2 = !{}
Duncan P. N. Exon Smithbe7ea192014-12-15 19:07:53 +000028!3 = !{!4}
Duncan P. N. Exon Smithe2741802015-03-03 17:24:31 +000029!4 = !MDSubprogram(name: "f", line: 1, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, scopeLine: 1, file: !1, scope: !5, type: !6, function: void ()* @f, variables: !2)
30!5 = !MDFile(filename: "test1.c", directory: "/tmp")
31!6 = !MDSubroutineType(types: !7)
Duncan P. N. Exon Smithbe7ea192014-12-15 19:07:53 +000032!7 = !{null}
Duncan P. N. Exon Smithe2741802015-03-03 17:24:31 +000033!8 = !MDCompileUnit(language: DW_LANG_C99, producer: "clang version 3.4 (192092)", isOptimized: false, emissionKind: 0, file: !9, enums: !2, retainedTypes: !2, subprograms: !10, globals: !2, imports: !2)
34!9 = !MDFile(filename: "test2.c", directory: "/tmp")
Duncan P. N. Exon Smithbe7ea192014-12-15 19:07:53 +000035!10 = !{!11}
Duncan P. N. Exon Smithe2741802015-03-03 17:24:31 +000036!11 = !MDSubprogram(name: "g", line: 1, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, scopeLine: 1, file: !9, scope: !12, type: !6, function: void ()* @g, variables: !2)
37!12 = !MDFile(filename: "test2.c", directory: "/tmp")
Duncan P. N. Exon Smithbe7ea192014-12-15 19:07:53 +000038!13 = !{i32 2, !"Dwarf Version", i32 4}
Duncan P. N. Exon Smith98854692015-01-14 22:27:36 +000039!14 = !MDLocation(line: 1, scope: !4)
40!15 = !MDLocation(line: 1, scope: !11)
Duncan P. N. Exon Smithe2741802015-03-03 17:24:31 +000041!16 = !{i32 1, !"Debug Info Version", i32 3}