Yaxun Liu | 1ac5a3d | 2018-01-23 16:11:15 +0000 | [diff] [blame] | 1 | ; RUN: llvm-as -disable-output <%s 2>&1 | FileCheck %s |
Duncan P. N. Exon Smith | 94255c8 | 2015-04-15 22:15:46 +0000 | [diff] [blame] | 2 | define void @foo() { |
| 3 | entry: |
| 4 | call void @llvm.dbg.value( |
| 5 | metadata i8* undef, |
Duncan P. N. Exon Smith | bf2040f | 2015-07-31 18:58:39 +0000 | [diff] [blame] | 6 | metadata !DILocalVariable(scope: !1), |
Duncan P. N. Exon Smith | e56023a | 2015-04-29 16:38:44 +0000 | [diff] [blame] | 7 | metadata !DIExpression()) |
Duncan P. N. Exon Smith | 94255c8 | 2015-04-15 22:15:46 +0000 | [diff] [blame] | 8 | ; CHECK-LABEL: llvm.dbg.value intrinsic requires a !dbg attachment |
| 9 | ; CHECK-NEXT: call void @llvm.dbg.value({{.*}}) |
| 10 | ; CHECK-NEXT: label %entry |
| 11 | ; CHECK-NEXT: void ()* @foo |
| 12 | |
| 13 | call void @llvm.dbg.declare( |
| 14 | metadata i8* undef, |
Duncan P. N. Exon Smith | bf2040f | 2015-07-31 18:58:39 +0000 | [diff] [blame] | 15 | metadata !DILocalVariable(scope: !1), |
Duncan P. N. Exon Smith | e56023a | 2015-04-29 16:38:44 +0000 | [diff] [blame] | 16 | metadata !DIExpression()) |
Duncan P. N. Exon Smith | 94255c8 | 2015-04-15 22:15:46 +0000 | [diff] [blame] | 17 | ; CHECK-LABEL: llvm.dbg.declare intrinsic requires a !dbg attachment |
| 18 | ; CHECK-NEXT: call void @llvm.dbg.declare({{.*}}) |
| 19 | ; CHECK-NEXT: label %entry |
| 20 | ; CHECK-NEXT: void ()* @foo |
| 21 | |
| 22 | call void @llvm.dbg.value( |
| 23 | metadata i8* undef, |
Duncan P. N. Exon Smith | bf2040f | 2015-07-31 18:58:39 +0000 | [diff] [blame] | 24 | metadata !DILocalVariable(scope: !1), |
Duncan P. N. Exon Smith | e56023a | 2015-04-29 16:38:44 +0000 | [diff] [blame] | 25 | metadata !DIExpression()), |
| 26 | !dbg !DILocation(scope: !2) |
Duncan P. N. Exon Smith | 94255c8 | 2015-04-15 22:15:46 +0000 | [diff] [blame] | 27 | ; CHECK-LABEL: mismatched subprogram between llvm.dbg.value variable and !dbg attachment |
Adrian Prantl | 5d0334a | 2017-07-28 20:21:02 +0000 | [diff] [blame] | 28 | ; CHECK-NEXT: call void @llvm.dbg.value({{[^,]+}}, metadata ![[VAR:[0-9]+]], {{[^,]+}}), !dbg ![[LOC:[0-9]+]] |
Duncan P. N. Exon Smith | 94255c8 | 2015-04-15 22:15:46 +0000 | [diff] [blame] | 29 | ; CHECK-NEXT: label %entry |
| 30 | ; CHECK-NEXT: void ()* @foo |
Duncan P. N. Exon Smith | e56023a | 2015-04-29 16:38:44 +0000 | [diff] [blame] | 31 | ; CHECK-NEXT: ![[VAR]] = !DILocalVariable({{.*}}scope: ![[VARSP:[0-9]+]] |
Duncan P. N. Exon Smith | a5ae7c1 | 2015-08-28 20:26:49 +0000 | [diff] [blame] | 32 | ; CHECK-NEXT: ![[VARSP]] = distinct !DISubprogram( |
Duncan P. N. Exon Smith | e56023a | 2015-04-29 16:38:44 +0000 | [diff] [blame] | 33 | ; CHECK-NEXT: ![[LOC]] = !DILocation({{.*}}scope: ![[LOCSP:[0-9]+]] |
Duncan P. N. Exon Smith | a5ae7c1 | 2015-08-28 20:26:49 +0000 | [diff] [blame] | 34 | ; CHECK-NEXT: ![[LOCSP]] = distinct !DISubprogram( |
Duncan P. N. Exon Smith | 94255c8 | 2015-04-15 22:15:46 +0000 | [diff] [blame] | 35 | |
| 36 | call void @llvm.dbg.declare( |
| 37 | metadata i8* undef, |
Duncan P. N. Exon Smith | bf2040f | 2015-07-31 18:58:39 +0000 | [diff] [blame] | 38 | metadata !DILocalVariable(scope: !1), |
Duncan P. N. Exon Smith | e56023a | 2015-04-29 16:38:44 +0000 | [diff] [blame] | 39 | metadata !DIExpression()), |
| 40 | !dbg !DILocation(scope: !2) |
Duncan P. N. Exon Smith | 94255c8 | 2015-04-15 22:15:46 +0000 | [diff] [blame] | 41 | ; CHECK-LABEL: mismatched subprogram between llvm.dbg.declare variable and !dbg attachment |
| 42 | ; CHECK-NEXT: call void @llvm.dbg.declare({{[^,]+}}, metadata ![[VAR:[0-9]+]], {{.*[^,]+}}), !dbg ![[LOC:[0-9]+]] |
| 43 | ; CHECK-NEXT: label %entry |
| 44 | ; CHECK-NEXT: void ()* @foo |
Duncan P. N. Exon Smith | e56023a | 2015-04-29 16:38:44 +0000 | [diff] [blame] | 45 | ; CHECK-NEXT: ![[VAR]] = !DILocalVariable({{.*}}scope: ![[VARSP:[0-9]+]] |
Duncan P. N. Exon Smith | a5ae7c1 | 2015-08-28 20:26:49 +0000 | [diff] [blame] | 46 | ; CHECK-NEXT: ![[VARSP]] = distinct !DISubprogram( |
Duncan P. N. Exon Smith | e56023a | 2015-04-29 16:38:44 +0000 | [diff] [blame] | 47 | ; CHECK-NEXT: ![[LOC]] = !DILocation({{.*}}scope: ![[LOCSP:[0-9]+]] |
Duncan P. N. Exon Smith | a5ae7c1 | 2015-08-28 20:26:49 +0000 | [diff] [blame] | 48 | ; CHECK-NEXT: ![[LOCSP]] = distinct !DISubprogram( |
Duncan P. N. Exon Smith | 94255c8 | 2015-04-15 22:15:46 +0000 | [diff] [blame] | 49 | |
| 50 | ret void |
| 51 | } |
| 52 | |
Adrian Prantl | 5d0334a | 2017-07-28 20:21:02 +0000 | [diff] [blame] | 53 | declare void @llvm.dbg.value(metadata, metadata, metadata) |
Duncan P. N. Exon Smith | 94255c8 | 2015-04-15 22:15:46 +0000 | [diff] [blame] | 54 | declare void @llvm.dbg.declare(metadata, metadata, metadata) |
| 55 | |
| 56 | !llvm.module.flags = !{!0} |
| 57 | !0 = !{i32 2, !"Debug Info Version", i32 3} |
Duncan P. N. Exon Smith | a5ae7c1 | 2015-08-28 20:26:49 +0000 | [diff] [blame] | 58 | !1 = distinct !DISubprogram(name: "foo") |
| 59 | !2 = distinct !DISubprogram(name: "bar") |