blob: 717794b4274b0ae233bdd8256970ea8a6d3f78b0 [file] [log] [blame]
Duncan P. N. Exon Smithf17f34e2015-04-15 22:15:46 +00001; RUN: not llvm-as -disable-output <%s 2>&1 | FileCheck %s
2define void @foo() {
3entry:
4 call void @llvm.dbg.value(
5 metadata i8* undef,
6 i64 0,
Duncan P. N. Exon Smitha9308c42015-04-29 16:38:44 +00007 metadata !DILocalVariable(tag: DW_TAG_arg_variable, scope: !1),
8 metadata !DIExpression())
Duncan P. N. Exon Smithf17f34e2015-04-15 22:15:46 +00009; CHECK-LABEL: llvm.dbg.value intrinsic requires a !dbg attachment
10; CHECK-NEXT: call void @llvm.dbg.value({{.*}})
11; CHECK-NEXT: label %entry
12; CHECK-NEXT: void ()* @foo
13
14 call void @llvm.dbg.declare(
15 metadata i8* undef,
Duncan P. N. Exon Smitha9308c42015-04-29 16:38:44 +000016 metadata !DILocalVariable(tag: DW_TAG_arg_variable, scope: !1),
17 metadata !DIExpression())
Duncan P. N. Exon Smithf17f34e2015-04-15 22:15:46 +000018; CHECK-LABEL: llvm.dbg.declare intrinsic requires a !dbg attachment
19; CHECK-NEXT: call void @llvm.dbg.declare({{.*}})
20; CHECK-NEXT: label %entry
21; CHECK-NEXT: void ()* @foo
22
23 call void @llvm.dbg.value(
24 metadata i8* undef,
25 i64 0,
Duncan P. N. Exon Smitha9308c42015-04-29 16:38:44 +000026 metadata !DILocalVariable(tag: DW_TAG_arg_variable, scope: !1),
27 metadata !DIExpression()),
28 !dbg !DILocation(scope: !2)
Duncan P. N. Exon Smithf17f34e2015-04-15 22:15:46 +000029; CHECK-LABEL: mismatched subprogram between llvm.dbg.value variable and !dbg attachment
30; CHECK-NEXT: call void @llvm.dbg.value({{[^,]+, [^,]+}}, metadata ![[VAR:[0-9]+]], {{[^,]+}}), !dbg ![[LOC:[0-9]+]]
31; CHECK-NEXT: label %entry
32; CHECK-NEXT: void ()* @foo
Duncan P. N. Exon Smitha9308c42015-04-29 16:38:44 +000033; CHECK-NEXT: ![[VAR]] = !DILocalVariable({{.*}}scope: ![[VARSP:[0-9]+]]
34; CHECK-NEXT: ![[VARSP]] = !DISubprogram(
35; CHECK-NEXT: ![[LOC]] = !DILocation({{.*}}scope: ![[LOCSP:[0-9]+]]
36; CHECK-NEXT: ![[LOCSP]] = !DISubprogram(
Duncan P. N. Exon Smithf17f34e2015-04-15 22:15:46 +000037
38 call void @llvm.dbg.declare(
39 metadata i8* undef,
Duncan P. N. Exon Smitha9308c42015-04-29 16:38:44 +000040 metadata !DILocalVariable(tag: DW_TAG_arg_variable, scope: !1),
41 metadata !DIExpression()),
42 !dbg !DILocation(scope: !2)
Duncan P. N. Exon Smithf17f34e2015-04-15 22:15:46 +000043; CHECK-LABEL: mismatched subprogram between llvm.dbg.declare variable and !dbg attachment
44; CHECK-NEXT: call void @llvm.dbg.declare({{[^,]+}}, metadata ![[VAR:[0-9]+]], {{.*[^,]+}}), !dbg ![[LOC:[0-9]+]]
45; CHECK-NEXT: label %entry
46; CHECK-NEXT: void ()* @foo
Duncan P. N. Exon Smitha9308c42015-04-29 16:38:44 +000047; CHECK-NEXT: ![[VAR]] = !DILocalVariable({{.*}}scope: ![[VARSP:[0-9]+]]
48; CHECK-NEXT: ![[VARSP]] = !DISubprogram(
49; CHECK-NEXT: ![[LOC]] = !DILocation({{.*}}scope: ![[LOCSP:[0-9]+]]
50; CHECK-NEXT: ![[LOCSP]] = !DISubprogram(
Duncan P. N. Exon Smithf17f34e2015-04-15 22:15:46 +000051
52 ret void
53}
54
55declare void @llvm.dbg.value(metadata, i64, metadata, metadata)
56declare void @llvm.dbg.declare(metadata, metadata, metadata)
57
58!llvm.module.flags = !{!0}
59!0 = !{i32 2, !"Debug Info Version", i32 3}
Duncan P. N. Exon Smitha9308c42015-04-29 16:38:44 +000060!1 = !DISubprogram(name: "foo")
61!2 = !DISubprogram(name: "bar")