(* RUN: %ocamlopt -warn-error A llvm.cmxa llvm_target.cmxa %s -o %t * RUN: %t %t.bc * XFAIL: vg_leak *) (* Note: It takes several seconds for ocamlopt to link an executable with libLLVMCore.a, so it's better to write a big test than a bunch of little ones. *) open Llvm open Llvm_target let context = global_context () let i32_type = Llvm.i32_type context let i64_type = Llvm.i64_type context (* Tiny unit test framework - really just to help find which line is busted *) let print_checkpoints = false let suite name f = if print_checkpoints then prerr_endline (name ^ ":"); f () (*===-- Fixture -----------------------------------------------------------===*) let filename = Sys.argv.(1) let m = create_module context filename (*===-- Target Data -------------------------------------------------------===*) let test_target_data () = let td = TargetData.create (target_triple m) in let sty = struct_type context [| i32_type; i64_type |] in ignore (TargetData.as_string td); ignore (byte_order td); ignore (pointer_size td); ignore (intptr_type td); ignore (size_in_bits td sty); ignore (store_size td sty); ignore (abi_size td sty); ignore (stack_align td sty); ignore (preferred_align td sty); ignore (preferred_align_of_global td (declare_global sty "g" m)); ignore (element_at_offset td sty (Int64.of_int 1)); ignore (offset_of_element td sty 1); TargetData.dispose td (*===-- Driver ------------------------------------------------------------===*) let _ = suite "target data" test_target_data; dispose_module m