diff options
Diffstat (limited to 'test/Verifier')
-rw-r--r-- | test/Verifier/2008-01-11-VarargAttrs.ll | 2 | ||||
-rw-r--r-- | test/Verifier/dbg-typerefs.ll | 32 | ||||
-rw-r--r-- | test/Verifier/frameescape.ll | 10 | ||||
-rw-r--r-- | test/Verifier/inalloca-vararg.ll | 2 | ||||
-rw-r--r-- | test/Verifier/invalid-statepoint.ll | 2 | ||||
-rw-r--r-- | test/Verifier/invalid-statepoint2.ll | 2 | ||||
-rw-r--r-- | test/Verifier/llvm.dbg.declare-address.ll | 3 | ||||
-rw-r--r-- | test/Verifier/llvm.dbg.declare-expression.ll | 3 | ||||
-rw-r--r-- | test/Verifier/llvm.dbg.declare-variable.ll | 3 | ||||
-rw-r--r-- | test/Verifier/llvm.dbg.intrinsic-dbg-attachment.ll | 61 | ||||
-rw-r--r-- | test/Verifier/llvm.dbg.value-expression.ll | 3 | ||||
-rw-r--r-- | test/Verifier/llvm.dbg.value-value.ll | 3 | ||||
-rw-r--r-- | test/Verifier/llvm.dbg.value-variable.ll | 3 | ||||
-rw-r--r-- | test/Verifier/mdcompositetype-templateparams-tuple.ll | 11 | ||||
-rw-r--r-- | test/Verifier/mdcompositetype-templateparams.ll | 12 | ||||
-rw-r--r-- | test/Verifier/musttail-invalid.ll | 2 | ||||
-rw-r--r-- | test/Verifier/musttail-valid.ll | 6 | ||||
-rw-r--r-- | test/Verifier/statepoint.ll | 4 | ||||
-rw-r--r-- | test/Verifier/varargs-intrinsic.ll | 2 |
19 files changed, 144 insertions, 22 deletions
diff --git a/test/Verifier/2008-01-11-VarargAttrs.ll b/test/Verifier/2008-01-11-VarargAttrs.ll index b6ce625..af97ce6 100644 --- a/test/Verifier/2008-01-11-VarargAttrs.ll +++ b/test/Verifier/2008-01-11-VarargAttrs.ll @@ -5,6 +5,6 @@ declare void @foo(...) define void @bar() { - call void (...)* @foo(%struct* sret null ) + call void (...) @foo(%struct* sret null ) ret void } diff --git a/test/Verifier/dbg-typerefs.ll b/test/Verifier/dbg-typerefs.ll new file mode 100644 index 0000000..55ee03e --- /dev/null +++ b/test/Verifier/dbg-typerefs.ll @@ -0,0 +1,32 @@ +; RUN: not llvm-as -disable-output <%s 2>&1 | FileCheck %s +; Check that the debug info verifier gives nice errors for bad type refs +; (rather than crashing). +!llvm.module.flags = !{!0} +!0 = !{i32 2, !"Debug Info Version", i32 3} + +; Make a bunch of type references. Note that !4 references !"0.bad" (instead +; of !"4.bad") to test error ordering. +!typerefs = !{!1, !2, !3, !4} +!1 = !MDDerivedType(tag: DW_TAG_pointer_type, size: 32, align: 32, baseType: !"1.good") +!2 = !MDDerivedType(tag: DW_TAG_pointer_type, size: 32, align: 32, baseType: !"2.bad") +!3 = !MDDerivedType(tag: DW_TAG_pointer_type, size: 32, align: 32, baseType: !"3.good") +!4 = !MDDerivedType(tag: DW_TAG_pointer_type, size: 32, align: 32, baseType: !"0.bad") + +; Add a minimal compile unit to resolve some of the type references. +!llvm.dbg.cu = !{!5} +!5 = !MDCompileUnit(file: !6, language: DW_LANG_C99, retainedTypes: !7) +!6 = !MDFile(filename: "file.c", directory: "/path/to/dir") +!7 = !{!8, !9} +!8 = !MDCompositeType(tag: DW_TAG_structure_type, identifier: "1.good") +!9 = !MDCompositeType(tag: DW_TAG_structure_type, identifier: "3.good") + +; CHECK: assembly parsed, but does not verify +; CHECK-NEXT: unresolved type ref +; CHECK-NEXT: !"0.bad" +; CHECK-NEXT: !MDDerivedType(tag: DW_TAG_pointer_type +; CHECK-SAME: baseType: !"0.bad" +; CHECK-NEXT: unresolved type ref +; CHECK-NEXT: !"2.bad" +; CHECK-NEXT: !MDDerivedType(tag: DW_TAG_pointer_type +; CHECK-SAME: baseType: !"2.bad" +; CHECK-NOT: unresolved diff --git a/test/Verifier/frameescape.ll b/test/Verifier/frameescape.ll index 54e0db4..1fb9387 100644 --- a/test/Verifier/frameescape.ll +++ b/test/Verifier/frameescape.ll @@ -5,8 +5,8 @@ declare i8* @llvm.framerecover(i8*, i8*, i32) define internal void @f() { %a = alloca i8 - call void (...)* @llvm.frameescape(i8* %a) - call void (...)* @llvm.frameescape(i8* %a) + call void (...) @llvm.frameescape(i8* %a) + call void (...) @llvm.frameescape(i8* %a) ret void } ; CHECK: multiple calls to llvm.frameescape in one function @@ -16,7 +16,7 @@ entry: %a = alloca i8 br label %not_entry not_entry: - call void (...)* @llvm.frameescape(i8* %a) + call void (...) @llvm.frameescape(i8* %a) ret void } ; CHECK: llvm.frameescape used outside of entry block @@ -51,14 +51,14 @@ define internal void @k(i32 %n) { define internal void @l(i8* %b) { %a = alloca i8 - call void (...)* @llvm.frameescape(i8* %a, i8* %b) + call void (...) @llvm.frameescape(i8* %a, i8* %b) ret void } ; CHECK: llvm.frameescape only accepts static allocas define internal void @m() { %a = alloca i8 - call void (...)* @llvm.frameescape(i8* %a) + call void (...) @llvm.frameescape(i8* %a) ret void } diff --git a/test/Verifier/inalloca-vararg.ll b/test/Verifier/inalloca-vararg.ll index 5099fd1..428f89e 100644 --- a/test/Verifier/inalloca-vararg.ll +++ b/test/Verifier/inalloca-vararg.ll @@ -3,7 +3,7 @@ declare void @h(i32, ...) define void @i() { %args = alloca inalloca i32 - call void (i32, ...)* @h(i32 1, i32* inalloca %args, i32 3) + call void (i32, ...) @h(i32 1, i32* inalloca %args, i32 3) ; CHECK: inalloca isn't on the last argument! ret void } diff --git a/test/Verifier/invalid-statepoint.ll b/test/Verifier/invalid-statepoint.ll index 7000973..d3a5bb8 100644 --- a/test/Verifier/invalid-statepoint.ll +++ b/test/Verifier/invalid-statepoint.ll @@ -12,7 +12,7 @@ declare i32 addrspace(1)* @llvm.experimental.gc.relocate.p1i32(i32, i32, i32) #0 define i32 addrspace(1)* @0(i32 addrspace(1)* %dparam) { %a00 = load i32, i32 addrspace(1)* %dparam - %to0 = call i32 (i1 ()*, i32, i32, ...)* @llvm.experimental.gc.statepoint.p0f0i1f(i1 ()* @return0i1, i32 9, i32 0, i2 0, i32 addrspace(1)* %dparam) + %to0 = call i32 (i1 ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f0i1f(i1 ()* @return0i1, i32 9, i32 0, i2 0, i32 addrspace(1)* %dparam) %relocate = call i32 addrspace(1)* @llvm.experimental.gc.relocate.p1i32(i32 %to0, i32 0, i32 4) ret i32 addrspace(1)* %relocate } diff --git a/test/Verifier/invalid-statepoint2.ll b/test/Verifier/invalid-statepoint2.ll index 0d8b2a8..e3dd922 100644 --- a/test/Verifier/invalid-statepoint2.ll +++ b/test/Verifier/invalid-statepoint2.ll @@ -12,7 +12,7 @@ declare i32 @"personality_function"() define i64 addrspace(1)* @test1(i8 addrspace(1)* %arg, i32 %val) gc "statepoint-example" { entry: %cast = bitcast i8 addrspace(1)* %arg to i64 addrspace(1)* - %safepoint_token = call i32 (void ()*, i32, i32, ...)* @llvm.experimental.gc.statepoint.p0f_isVoidf(void ()* undef, i32 0, i32 0, i32 %val, i32 0, i32 0, i32 0, i32 10, i32 0, i8 addrspace(1)* %arg, i64 addrspace(1)* %cast, i8 addrspace(1)* %arg, i8 addrspace(1)* %arg) + %safepoint_token = call i32 (void ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidf(void ()* undef, i32 0, i32 0, i32 %val, i32 0, i32 0, i32 0, i32 10, i32 0, i8 addrspace(1)* %arg, i64 addrspace(1)* %cast, i8 addrspace(1)* %arg, i8 addrspace(1)* %arg) %reloc = call i64 addrspace(1)* @llvm.experimental.gc.relocate.p1i64(i32 %safepoint_token, i32 9, i32 10) ret i64 addrspace(1)* %reloc } diff --git a/test/Verifier/llvm.dbg.declare-address.ll b/test/Verifier/llvm.dbg.declare-address.ll index f4a9366..0c23d6e 100644 --- a/test/Verifier/llvm.dbg.declare-address.ll +++ b/test/Verifier/llvm.dbg.declare-address.ll @@ -6,7 +6,7 @@ define void @foo(i32 %a) { entry: %s = alloca i32 - call void @llvm.dbg.declare(metadata !"", metadata !MDLocalVariable(tag: DW_TAG_arg_variable), metadata !MDExpression()) + call void @llvm.dbg.declare(metadata !"", metadata !MDLocalVariable(tag: DW_TAG_arg_variable, scope: !1), 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/test/Verifier/llvm.dbg.declare-expression.ll b/test/Verifier/llvm.dbg.declare-expression.ll index 1121e43..0491fdc 100644 --- a/test/Verifier/llvm.dbg.declare-expression.ll +++ b/test/Verifier/llvm.dbg.declare-expression.ll @@ -6,7 +6,7 @@ define void @foo(i32 %a) { entry: %s = alloca i32 - call void @llvm.dbg.declare(metadata i32* %s, metadata !MDLocalVariable(tag: DW_TAG_arg_variable), metadata !"") + call void @llvm.dbg.declare(metadata i32* %s, metadata !MDLocalVariable(tag: DW_TAG_arg_variable, scope: !1), metadata !"") 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/test/Verifier/llvm.dbg.declare-variable.ll b/test/Verifier/llvm.dbg.declare-variable.ll index e038243..763f463 100644 --- a/test/Verifier/llvm.dbg.declare-variable.ll +++ b/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/test/Verifier/llvm.dbg.intrinsic-dbg-attachment.ll b/test/Verifier/llvm.dbg.intrinsic-dbg-attachment.ll new file mode 100644 index 0000000..3615960 --- /dev/null +++ b/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/test/Verifier/llvm.dbg.value-expression.ll b/test/Verifier/llvm.dbg.value-expression.ll index c0d14a5..18350a1 100644 --- a/test/Verifier/llvm.dbg.value-expression.ll +++ b/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), 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 } @@ -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() diff --git a/test/Verifier/llvm.dbg.value-value.ll b/test/Verifier/llvm.dbg.value-value.ll index b64febe..3d82be7 100644 --- a/test/Verifier/llvm.dbg.value-value.ll +++ b/test/Verifier/llvm.dbg.value-value.ll @@ -6,7 +6,7 @@ define void @foo(i32 %a) { entry: %s = alloca i32 - call void @llvm.dbg.value(metadata !"", i64 0, metadata !MDLocalVariable(tag: DW_TAG_arg_variable), metadata !MDExpression()) + call void @llvm.dbg.value(metadata !"", i64 0, metadata !MDLocalVariable(tag: DW_TAG_arg_variable, scope: !1), 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() diff --git a/test/Verifier/llvm.dbg.value-variable.ll b/test/Verifier/llvm.dbg.value-variable.ll index a87a15c..ba6a687 100644 --- a/test/Verifier/llvm.dbg.value-variable.ll +++ b/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() diff --git a/test/Verifier/mdcompositetype-templateparams-tuple.ll b/test/Verifier/mdcompositetype-templateparams-tuple.ll new file mode 100644 index 0000000..a2e2c78 --- /dev/null +++ b/test/Verifier/mdcompositetype-templateparams-tuple.ll @@ -0,0 +1,11 @@ +; RUN: not llvm-as < %s -disable-output 2>&1 | FileCheck %s + +; CHECK: invalid template params +; CHECK-NEXT: !2 = !MDCompositeType( +; CHECK-SAME: templateParams: !1 +; CHECK-NEXT: !1 = !MDTemplateTypeParameter( + +!named = !{!0, !1, !2} +!0 = !MDBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed) +!1 = !MDTemplateTypeParameter(name: "T", type: !0) +!2 = !MDCompositeType(tag: DW_TAG_structure_type, name: "IntTy", size: 32, align: 32, templateParams: !1) diff --git a/test/Verifier/mdcompositetype-templateparams.ll b/test/Verifier/mdcompositetype-templateparams.ll new file mode 100644 index 0000000..72909e3 --- /dev/null +++ b/test/Verifier/mdcompositetype-templateparams.ll @@ -0,0 +1,12 @@ +; RUN: not llvm-as < %s -disable-output 2>&1 | FileCheck %s + +; CHECK: invalid template parameter +; CHECK-NEXT: !2 = !MDCompositeType( +; CHECK-SAME: templateParams: !1 +; CHECK-NEXT: !1 = !{!0} +; CHECK-NEXT: !0 = !MDBasicType( + +!named = !{!0, !1, !2} +!0 = !MDBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed) +!1 = !{!0} +!2 = !MDCompositeType(tag: DW_TAG_structure_type, name: "IntTy", size: 32, align: 32, templateParams: !1) diff --git a/test/Verifier/musttail-invalid.ll b/test/Verifier/musttail-invalid.ll index e5f9a40..78017db 100644 --- a/test/Verifier/musttail-invalid.ll +++ b/test/Verifier/musttail-invalid.ll @@ -26,7 +26,7 @@ define void @mismatched_intty(i32) { declare void @mismatched_vararg_callee(i8*, ...) define void @mismatched_vararg(i8*) { ; CHECK: mismatched varargs - musttail call void (i8*, ...)* @mismatched_vararg_callee(i8* null) + musttail call void (i8*, ...) @mismatched_vararg_callee(i8* null) ret void } diff --git a/test/Verifier/musttail-valid.ll b/test/Verifier/musttail-valid.ll index bdc0c8c..150e949 100644 --- a/test/Verifier/musttail-valid.ll +++ b/test/Verifier/musttail-valid.ll @@ -17,13 +17,13 @@ define i32* @similar_ret_ptrty() { declare x86_thiscallcc void @varargs_thiscall(i8*, ...) define x86_thiscallcc void @varargs_thiscall_thunk(i8* %this, ...) { - musttail call x86_thiscallcc void (i8*, ...)* @varargs_thiscall(i8* %this, ...) + musttail call x86_thiscallcc void (i8*, ...) @varargs_thiscall(i8* %this, ...) ret void } declare x86_fastcallcc void @varargs_fastcall(i8*, ...) define x86_fastcallcc void @varargs_fastcall_thunk(i8* %this, ...) { - musttail call x86_fastcallcc void (i8*, ...)* @varargs_fastcall(i8* %this, ...) + musttail call x86_fastcallcc void (i8*, ...) @varargs_fastcall(i8* %this, ...) ret void } @@ -32,7 +32,7 @@ define x86_thiscallcc void @varargs_thiscall_unreachable(i8* %this, ...) { } define x86_thiscallcc void @varargs_thiscall_ret_unreachable(i8* %this, ...) { - musttail call x86_thiscallcc void (i8*, ...)* @varargs_thiscall(i8* %this, ...) + musttail call x86_thiscallcc void (i8*, ...) @varargs_thiscall(i8* %this, ...) ret void bb1: ret void diff --git a/test/Verifier/statepoint.ll b/test/Verifier/statepoint.ll index 9342309..61d8b77 100644 --- a/test/Verifier/statepoint.ll +++ b/test/Verifier/statepoint.ll @@ -10,7 +10,7 @@ declare i32 @"personality_function"() define i64 addrspace(1)* @test1(i8 addrspace(1)* %arg) gc "statepoint-example" { entry: %cast = bitcast i8 addrspace(1)* %arg to i64 addrspace(1)* - %safepoint_token = call i32 (void ()*, i32, i32, ...)* @llvm.experimental.gc.statepoint.p0f_isVoidf(void ()* undef, i32 0, i32 0, i32 5, i32 0, i32 0, i32 0, i32 10, i32 0, i8 addrspace(1)* %arg, i64 addrspace(1)* %cast, i8 addrspace(1)* %arg, i8 addrspace(1)* %arg) + %safepoint_token = call i32 (void ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidf(void ()* undef, i32 0, i32 0, i32 5, i32 0, i32 0, i32 0, i32 10, i32 0, i8 addrspace(1)* %arg, i64 addrspace(1)* %cast, i8 addrspace(1)* %arg, i8 addrspace(1)* %arg) %reloc = call i64 addrspace(1)* @llvm.experimental.gc.relocate.p1i64(i32 %safepoint_token, i32 9, i32 10) ;; It is perfectly legal to relocate the same value multiple times... %reloc2 = call i64 addrspace(1)* @llvm.experimental.gc.relocate.p1i64(i32 %safepoint_token, i32 9, i32 10) @@ -39,7 +39,7 @@ notequal: ret void equal: - %safepoint_token = call i32 (void ()*, i32, i32, ...)* @llvm.experimental.gc.statepoint.p0f_isVoidf(void ()* undef, i32 0, i32 0, i32 5, i32 0, i32 0, i32 0, i32 10, i32 0, i8 addrspace(1)* %arg, i64 addrspace(1)* %cast, i8 addrspace(1)* %arg, i8 addrspace(1)* %arg) + %safepoint_token = call i32 (void ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_isVoidf(void ()* undef, i32 0, i32 0, i32 5, i32 0, i32 0, i32 0, i32 10, i32 0, i8 addrspace(1)* %arg, i64 addrspace(1)* %cast, i8 addrspace(1)* %arg, i8 addrspace(1)* %arg) %reloc = call i64 addrspace(1)* @llvm.experimental.gc.relocate.p1i64(i32 %safepoint_token, i32 9, i32 10) call void undef(i64 addrspace(1)* %reloc) ret void diff --git a/test/Verifier/varargs-intrinsic.ll b/test/Verifier/varargs-intrinsic.ll index 2fff1db..26fe61f 100644 --- a/test/Verifier/varargs-intrinsic.ll +++ b/test/Verifier/varargs-intrinsic.ll @@ -10,7 +10,7 @@ define void @foo1() { } define void @foo2() { - call void (...)* @llvm.donothing(i64 0, i64 1) + call void (...) @llvm.donothing(i64 0, i64 1) ; CHECK: Intrinsic was not defined with variable arguments! ret void } |