diff options
Diffstat (limited to 'llvm/test/Verifier')
4 files changed, 66 insertions, 3 deletions
diff --git a/llvm/test/Verifier/llvm.dbg.declare-variable.ll b/llvm/test/Verifier/llvm.dbg.declare-variable.ll index e038243bdd6..763f4637366 100644 --- a/llvm/test/Verifier/llvm.dbg.declare-variable.ll +++ b/llvm/test/Verifier/llvm.dbg.declare-variable.ll @@ -6,7 +6,7 @@ define void @foo(i32 %a) { entry: %s = alloca i32 - call void @llvm.dbg.declare(metadata i32* %s, metadata !"", metadata !MDExpression()) + call void @llvm.dbg.declare(metadata i32* %s, metadata !"", metadata !MDExpression()), !dbg !MDLocation(scope: !1) ret void } @@ -14,3 +14,4 @@ declare void @llvm.dbg.declare(metadata, metadata, metadata) !llvm.module.flags = !{!0} !0 = !{i32 2, !"Debug Info Version", i32 3} +!1 = !MDSubprogram() diff --git a/llvm/test/Verifier/llvm.dbg.intrinsic-dbg-attachment.ll b/llvm/test/Verifier/llvm.dbg.intrinsic-dbg-attachment.ll new file mode 100644 index 00000000000..3615960df63 --- /dev/null +++ b/llvm/test/Verifier/llvm.dbg.intrinsic-dbg-attachment.ll @@ -0,0 +1,61 @@ +; RUN: not llvm-as -disable-output <%s 2>&1 | FileCheck %s +define void @foo() { +entry: + call void @llvm.dbg.value( + metadata i8* undef, + i64 0, + metadata !MDLocalVariable(tag: DW_TAG_arg_variable, scope: !1), + metadata !MDExpression()) +; CHECK-LABEL: llvm.dbg.value intrinsic requires a !dbg attachment +; CHECK-NEXT: call void @llvm.dbg.value({{.*}}) +; CHECK-NEXT: label %entry +; CHECK-NEXT: void ()* @foo + + call void @llvm.dbg.declare( + metadata i8* undef, + metadata !MDLocalVariable(tag: DW_TAG_arg_variable, scope: !1), + metadata !MDExpression()) +; CHECK-LABEL: llvm.dbg.declare intrinsic requires a !dbg attachment +; CHECK-NEXT: call void @llvm.dbg.declare({{.*}}) +; CHECK-NEXT: label %entry +; CHECK-NEXT: void ()* @foo + + call void @llvm.dbg.value( + metadata i8* undef, + i64 0, + metadata !MDLocalVariable(tag: DW_TAG_arg_variable, scope: !1), + metadata !MDExpression()), + !dbg !MDLocation(scope: !2) +; CHECK-LABEL: mismatched subprogram between llvm.dbg.value variable and !dbg attachment +; CHECK-NEXT: call void @llvm.dbg.value({{[^,]+, [^,]+}}, metadata ![[VAR:[0-9]+]], {{[^,]+}}), !dbg ![[LOC:[0-9]+]] +; CHECK-NEXT: label %entry +; CHECK-NEXT: void ()* @foo +; CHECK-NEXT: ![[VAR]] = !MDLocalVariable({{.*}}scope: ![[VARSP:[0-9]+]] +; CHECK-NEXT: ![[VARSP]] = !MDSubprogram( +; CHECK-NEXT: ![[LOC]] = !MDLocation({{.*}}scope: ![[LOCSP:[0-9]+]] +; CHECK-NEXT: ![[LOCSP]] = !MDSubprogram( + + call void @llvm.dbg.declare( + metadata i8* undef, + metadata !MDLocalVariable(tag: DW_TAG_arg_variable, scope: !1), + metadata !MDExpression()), + !dbg !MDLocation(scope: !2) +; CHECK-LABEL: mismatched subprogram between llvm.dbg.declare variable and !dbg attachment +; CHECK-NEXT: call void @llvm.dbg.declare({{[^,]+}}, metadata ![[VAR:[0-9]+]], {{.*[^,]+}}), !dbg ![[LOC:[0-9]+]] +; CHECK-NEXT: label %entry +; CHECK-NEXT: void ()* @foo +; CHECK-NEXT: ![[VAR]] = !MDLocalVariable({{.*}}scope: ![[VARSP:[0-9]+]] +; CHECK-NEXT: ![[VARSP]] = !MDSubprogram( +; CHECK-NEXT: ![[LOC]] = !MDLocation({{.*}}scope: ![[LOCSP:[0-9]+]] +; CHECK-NEXT: ![[LOCSP]] = !MDSubprogram( + + ret void +} + +declare void @llvm.dbg.value(metadata, i64, metadata, metadata) +declare void @llvm.dbg.declare(metadata, metadata, metadata) + +!llvm.module.flags = !{!0} +!0 = !{i32 2, !"Debug Info Version", i32 3} +!1 = !MDSubprogram(name: "foo") +!2 = !MDSubprogram(name: "bar") diff --git a/llvm/test/Verifier/llvm.dbg.value-expression.ll b/llvm/test/Verifier/llvm.dbg.value-expression.ll index b60c4722fac..18350a144e6 100644 --- a/llvm/test/Verifier/llvm.dbg.value-expression.ll +++ b/llvm/test/Verifier/llvm.dbg.value-expression.ll @@ -6,7 +6,7 @@ define void @foo(i32 %a) { entry: %s = alloca i32 - call void @llvm.dbg.value(metadata i32* %s, i64 0, metadata !MDLocalVariable(tag: DW_TAG_arg_variable, scope: !1), metadata !"") + call void @llvm.dbg.value(metadata i32* %s, i64 0, metadata !MDLocalVariable(tag: DW_TAG_arg_variable, scope: !1), metadata !""), !dbg !MDLocation(scope: !1) ret void } diff --git a/llvm/test/Verifier/llvm.dbg.value-variable.ll b/llvm/test/Verifier/llvm.dbg.value-variable.ll index a87a15cdfa2..ba6a687e0ab 100644 --- a/llvm/test/Verifier/llvm.dbg.value-variable.ll +++ b/llvm/test/Verifier/llvm.dbg.value-variable.ll @@ -6,7 +6,7 @@ define void @foo(i32 %a) { entry: %s = alloca i32 - call void @llvm.dbg.value(metadata i32* %s, i64 0, metadata !"", metadata !MDExpression()) + call void @llvm.dbg.value(metadata i32* %s, i64 0, metadata !"", metadata !MDExpression()), !dbg !MDLocation(scope: !1) ret void } @@ -14,3 +14,4 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) !llvm.module.flags = !{!0} !0 = !{i32 2, !"Debug Info Version", i32 3} +!1 = !MDSubprogram() |