aboutsummaryrefslogtreecommitdiffstats
path: root/test/Bindings
diff options
context:
space:
mode:
authorGordon Henriksen <gordonhenriksen@mac.com>2008-03-19 01:11:35 +0000
committerGordon Henriksen <gordonhenriksen@mac.com>2008-03-19 01:11:35 +0000
commitdc1ce7bdc6e32e7a4c4a110caa32834730183c1b (patch)
tree9844c6c709f7e226211ac1b0178257a29780f262 /test/Bindings
parent94202018c51d662c793a77a5e8239f3a35e11e60 (diff)
downloadexternal_llvm-dc1ce7bdc6e32e7a4c4a110caa32834730183c1b.zip
external_llvm-dc1ce7bdc6e32e7a4c4a110caa32834730183c1b.tar.gz
external_llvm-dc1ce7bdc6e32e7a4c4a110caa32834730183c1b.tar.bz2
C and Objective Caml bindings for the various getParent methods of the IR.
Based on Erick Tryzelaar's patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48523 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Bindings')
-rw-r--r--test/Bindings/Ocaml/vmcore.ml45
1 files changed, 34 insertions, 11 deletions
diff --git a/test/Bindings/Ocaml/vmcore.ml b/test/Bindings/Ocaml/vmcore.ml
index 696157e..73b5b28 100644
--- a/test/Bindings/Ocaml/vmcore.ml
+++ b/test/Bindings/Ocaml/vmcore.ml
@@ -478,17 +478,19 @@ let test_functions () =
(* RUN: grep {declare i32 @Fn1\(i32, i64\)} < %t.ll
*)
- group "declare";
- insist (None = lookup_function "Fn1" m);
- let fn = declare_function "Fn1" ty m in
- insist (pointer_type ty = type_of fn);
- insist (is_declaration fn);
- insist (0 = Array.length (basic_blocks fn));
- insist (pointer_type ty2 == type_of (declare_function "Fn1" ty2 m));
- insist (fn == declare_function "Fn1" ty m);
- insist (None <> lookup_function "Fn1" m);
- insist (match lookup_function "Fn1" m with Some x -> x = fn
- | None -> false);
+ begin group "declare";
+ insist (None = lookup_function "Fn1" m);
+ let fn = declare_function "Fn1" ty m in
+ insist (pointer_type ty = type_of fn);
+ insist (is_declaration fn);
+ insist (0 = Array.length (basic_blocks fn));
+ insist (pointer_type ty2 == type_of (declare_function "Fn1" ty2 m));
+ insist (fn == declare_function "Fn1" ty m);
+ insist (None <> lookup_function "Fn1" m);
+ insist (match lookup_function "Fn1" m with Some x -> x = fn
+ | None -> false);
+ insist (m == global_parent fn)
+ end;
(* RUN: grep -v {Fn2} < %t.ll
*)
@@ -593,6 +595,27 @@ let test_basic_blocks () =
let test_builder () =
let (++) x f = f x; x in
+ begin group "parent";
+ insist (try
+ ignore (insertion_block (builder ()));
+ false
+ with Not_found ->
+ true);
+
+ let fty = function_type void_type [| i32_type |] in
+ let fn = define_function "BuilderParent" fty m in
+ let bb = entry_block fn in
+ let b = builder_at_end bb in
+ let p = param fn 0 in
+ let sum = build_add p p "sum" b in
+ ignore (build_ret_void b);
+
+ insist (fn = block_parent bb);
+ insist (fn = param_parent p);
+ insist (bb = instr_parent sum);
+ insist (bb = insertion_block b)
+ end;
+
group "ret void";
begin
(* RUN: grep {ret void} < %t.ll