diff options
author | Gordon Henriksen <gordonhenriksen@mac.com> | 2008-03-19 01:11:35 +0000 |
---|---|---|
committer | Gordon Henriksen <gordonhenriksen@mac.com> | 2008-03-19 01:11:35 +0000 |
commit | dc1ce7bdc6e32e7a4c4a110caa32834730183c1b (patch) | |
tree | 9844c6c709f7e226211ac1b0178257a29780f262 /test/Bindings | |
parent | 94202018c51d662c793a77a5e8239f3a35e11e60 (diff) | |
download | external_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.ml | 45 |
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 |