diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/CodeGen/Generic/GC/lower_gcroot.ll | 3 | ||||
-rw-r--r-- | test/Verifier/gcread-ptrptr.ll | 13 | ||||
-rw-r--r-- | test/Verifier/gcroot-alloca.ll | 14 | ||||
-rw-r--r-- | test/Verifier/gcroot-meta.ll | 16 | ||||
-rw-r--r-- | test/Verifier/gcroot-ptrptr.ll | 14 | ||||
-rw-r--r-- | test/Verifier/gcwrite-ptrptr.ll | 13 |
6 files changed, 72 insertions, 1 deletions
diff --git a/test/CodeGen/Generic/GC/lower_gcroot.ll b/test/CodeGen/Generic/GC/lower_gcroot.ll index 3a3abac258..2dbbc83569 100644 --- a/test/CodeGen/Generic/GC/lower_gcroot.ll +++ b/test/CodeGen/Generic/GC/lower_gcroot.ll @@ -3,7 +3,8 @@ %Env = type opaque* define void @.main(%Env) { - call void @llvm.gcroot( %Env* null, %Env null ) + %Root = alloca %Env + call void @llvm.gcroot( %Env* %Root, %Env null ) unreachable } diff --git a/test/Verifier/gcread-ptrptr.ll b/test/Verifier/gcread-ptrptr.ll new file mode 100644 index 0000000000..bcfc6eb4f7 --- /dev/null +++ b/test/Verifier/gcread-ptrptr.ll @@ -0,0 +1,13 @@ +; RUN: not llvm-as < %s +; PR1633 + +%meta = type { i8* } +%obj = type { %meta* } + +declare %obj* @llvm.gcread(%obj*, %obj*) + +define %obj* @f() { +entry: + %x = call %obj* @llvm.gcread(%obj* null, %obj* null) + ret %obj* %x +} diff --git a/test/Verifier/gcroot-alloca.ll b/test/Verifier/gcroot-alloca.ll new file mode 100644 index 0000000000..c44321a065 --- /dev/null +++ b/test/Verifier/gcroot-alloca.ll @@ -0,0 +1,14 @@ +; RUN: not llvm-as < %s +; PR1633 + +%meta = type { i8* } +%obj = type { %meta* } + +declare void @llvm.gcroot(%obj**, %meta*) + +define void @f() { +entry: + call void @llvm.gcroot(%obj** null, %meta* null) + + ret void +} diff --git a/test/Verifier/gcroot-meta.ll b/test/Verifier/gcroot-meta.ll new file mode 100644 index 0000000000..51d19515af --- /dev/null +++ b/test/Verifier/gcroot-meta.ll @@ -0,0 +1,16 @@ +; RUN: not llvm-as < %s +; PR1633 + +%meta = type { i8* } +%obj = type { %meta* } + +declare void @llvm.gcroot(%obj**, %meta*) + +define void @f() { +entry: + %local.obj = alloca %obj* + %local.meta = alloca %meta + call void @llvm.gcroot(%obj** %local.obj, %meta* %local.meta) + + ret void +} diff --git a/test/Verifier/gcroot-ptrptr.ll b/test/Verifier/gcroot-ptrptr.ll new file mode 100644 index 0000000000..0a7738d866 --- /dev/null +++ b/test/Verifier/gcroot-ptrptr.ll @@ -0,0 +1,14 @@ +; RUN: not llvm-as < %s +; PR1633 + +%meta = type { i8* } +%obj = type { %meta* } + +declare void @llvm.gcroot(%obj*, %meta*) + +define void @f() { +entry: + %local.obj = alloca %obj + call void @llvm.gcroot(%obj* %local.obj, %meta* null) + ret void +} diff --git a/test/Verifier/gcwrite-ptrptr.ll b/test/Verifier/gcwrite-ptrptr.ll new file mode 100644 index 0000000000..b1e96c8aa6 --- /dev/null +++ b/test/Verifier/gcwrite-ptrptr.ll @@ -0,0 +1,13 @@ +; RUN: not llvm-as < %s +; PR1633 + +%meta = type { i8* } +%obj = type { %meta* } + +declare void @llvm.gcwrite(%obj*, %obj*, %obj*) + +define void @f() { +entry: + call void @llvm.gcwrite(%obj* null, %obj* null, %obj* null) + ret void +} |