vmcore.ml revision 8ef426baa36639458f6777309db25c1768dc9c8a
19c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar(* RUN: %ocamlc llvm.cma llvm_bitwriter.cma %s -o %t 29c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar * RUN: ./%t %t.bc 39c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar * RUN: llvm-dis < %t.bc > %t.ll 49c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar *) 59c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar 69c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar(* Note: It takes several seconds for ocamlc to link an executable with 79c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar libLLVMCore.a, so it's better to write a big test than a bunch of 89c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar little ones. *) 99c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar 109c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbaropen Llvm 119c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbaropen Llvm_bitwriter 129c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar 139c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar 1440f1265ebd42ece3e7f7917319b56012e8e2bce2Daniel Dunbar(* Tiny unit test framework *) 15b488c1dac8e53206f07103d794a62a3f5012c0f4Daniel Dunbarlet exit_status = ref 0 169c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbarlet case_num = ref 0 179c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar 189c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbarlet all_done () = 199c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar prerr_endline ""; 209c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar exit !exit_status 21df91ef3d6c55692a0236f67b6c6b134a3bf84098Douglas Gregor 22df91ef3d6c55692a0236f67b6c6b134a3bf84098Douglas Gregorlet group name = 2302633b541b04ad5ffc1c70f4c2feeeb13e607057Daniel Dunbar prerr_endline ""; 24f395528158379e7ea9f6ff4bbb791abadca15aabDaniel Dunbar case_num := 0; 2502633b541b04ad5ffc1c70f4c2feeeb13e607057Daniel Dunbar prerr_string (" " ^ name ^ "... ") 2602633b541b04ad5ffc1c70f4c2feeeb13e607057Daniel Dunbar 27985b825eea7387be10478de0430815ed6a673326Daniel Dunbarlet insist cond = 289c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar incr case_num; 29985b825eea7387be10478de0430815ed6a673326Daniel Dunbar prerr_char ' '; 30df91ef3d6c55692a0236f67b6c6b134a3bf84098Douglas Gregor if not cond then begin 31df91ef3d6c55692a0236f67b6c6b134a3bf84098Douglas Gregor exit_status := 10; 32c21c485b4fb58ef5d55cf3e523263dd824a2ace4Daniel Dunbar prerr_char '!' 33c21c485b4fb58ef5d55cf3e523263dd824a2ace4Daniel Dunbar end; 34c21c485b4fb58ef5d55cf3e523263dd824a2ace4Daniel Dunbar prerr_int !case_num 35c21c485b4fb58ef5d55cf3e523263dd824a2ace4Daniel Dunbar 369c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbarlet suite name f = 3731b1e5437e7435879fc044afb77ff27096008e72Daniel Dunbar prerr_endline (name ^ ":"); 389c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar f () 399c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar 409c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar 419c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar(*===-- Fixture -----------------------------------------------------------===*) 4247ac7d27c44bd64a7d0fc03d4babc196cf2b8230Daniel Dunbar 4347ac7d27c44bd64a7d0fc03d4babc196cf2b8230Daniel Dunbarlet filename = Sys.argv.(1) 44871adcf4e41285e3f4c3b62eaa1b2e05b60b92daDaniel Dunbarlet m = create_module filename 451eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump 461eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump 471eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump(*===-- Types -------------------------------------------------------------===*) 4847ac7d27c44bd64a7d0fc03d4babc196cf2b8230Daniel Dunbar 499c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbarlet test_types () = 509c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar (* RUN: grep {Ty01.*void} < %t.ll 5131b1e5437e7435879fc044afb77ff27096008e72Daniel Dunbar *) 5231b1e5437e7435879fc044afb77ff27096008e72Daniel Dunbar group "void"; 53b488c1dac8e53206f07103d794a62a3f5012c0f4Daniel Dunbar insist (add_type_name "Ty01" void_type m); 549c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar insist (Void_type == classify_type void_type); 55b488c1dac8e53206f07103d794a62a3f5012c0f4Daniel Dunbar 5647ac7d27c44bd64a7d0fc03d4babc196cf2b8230Daniel Dunbar (* RUN: grep {Ty02.*i1} < %t.ll 5747ac7d27c44bd64a7d0fc03d4babc196cf2b8230Daniel Dunbar *) 58871adcf4e41285e3f4c3b62eaa1b2e05b60b92daDaniel Dunbar group "i1"; 591eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump insist (add_type_name "Ty02" i1_type m); 601eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump insist (Integer_type == classify_type i1_type); 611eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump 6247ac7d27c44bd64a7d0fc03d4babc196cf2b8230Daniel Dunbar (* RUN: grep {Ty03.*i32} < %t.ll 63b488c1dac8e53206f07103d794a62a3f5012c0f4Daniel Dunbar *) 64b488c1dac8e53206f07103d794a62a3f5012c0f4Daniel Dunbar group "i32"; 65b488c1dac8e53206f07103d794a62a3f5012c0f4Daniel Dunbar insist (add_type_name "Ty03" i32_type m); 66b488c1dac8e53206f07103d794a62a3f5012c0f4Daniel Dunbar 679c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar (* RUN: grep {Ty04.*i42} < %t.ll 689c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar *) 691eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump group "i42"; 70b488c1dac8e53206f07103d794a62a3f5012c0f4Daniel Dunbar let ty = make_integer_type 42 in 719c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar insist (add_type_name "Ty04" ty m); 72b488c1dac8e53206f07103d794a62a3f5012c0f4Daniel Dunbar 73b488c1dac8e53206f07103d794a62a3f5012c0f4Daniel Dunbar (* RUN: grep {Ty05.*float} < %t.ll 74b488c1dac8e53206f07103d794a62a3f5012c0f4Daniel Dunbar *) 75b488c1dac8e53206f07103d794a62a3f5012c0f4Daniel Dunbar group "float"; 76b488c1dac8e53206f07103d794a62a3f5012c0f4Daniel Dunbar insist (add_type_name "Ty05" float_type m); 77b488c1dac8e53206f07103d794a62a3f5012c0f4Daniel Dunbar insist (Float_type == classify_type float_type); 78b488c1dac8e53206f07103d794a62a3f5012c0f4Daniel Dunbar 79b488c1dac8e53206f07103d794a62a3f5012c0f4Daniel Dunbar (* RUN: grep {Ty06.*double} < %t.ll 80b488c1dac8e53206f07103d794a62a3f5012c0f4Daniel Dunbar *) 81b488c1dac8e53206f07103d794a62a3f5012c0f4Daniel Dunbar group "double"; 82b488c1dac8e53206f07103d794a62a3f5012c0f4Daniel Dunbar insist (add_type_name "Ty06" double_type m); 83b488c1dac8e53206f07103d794a62a3f5012c0f4Daniel Dunbar insist (Double_type == classify_type double_type); 849c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar 859c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar (* RUN: grep {Ty07.*i32.*i1, double} < %t.ll 869c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar *) 879c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar group "function"; 8847ac7d27c44bd64a7d0fc03d4babc196cf2b8230Daniel Dunbar let ty = make_function_type i32_type [| i1_type; double_type |] false in 89b488c1dac8e53206f07103d794a62a3f5012c0f4Daniel Dunbar insist (add_type_name "Ty07" ty m); 909c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar insist (Function_type = classify_type ty); 919c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar insist (not (is_var_arg ty)); 92b488c1dac8e53206f07103d794a62a3f5012c0f4Daniel Dunbar insist (i32_type == return_type ty); 939c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar insist (double_type == (param_types ty).(1)); 94b488c1dac8e53206f07103d794a62a3f5012c0f4Daniel Dunbar 959c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar (* RUN: grep {Ty08.*\.\.\.} < %t.ll 969c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar *) 979c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar group "vararg"; 989c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar let ty = make_function_type void_type [| i32_type |] true in 9947ac7d27c44bd64a7d0fc03d4babc196cf2b8230Daniel Dunbar insist (add_type_name "Ty08" ty m); 100b488c1dac8e53206f07103d794a62a3f5012c0f4Daniel Dunbar insist (is_var_arg ty); 1019c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar 1029c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar (* RUN: grep {Ty09.*\\\[7 x i8\\\]} < %t.ll 103b488c1dac8e53206f07103d794a62a3f5012c0f4Daniel Dunbar *) 1049c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar group "array"; 105b488c1dac8e53206f07103d794a62a3f5012c0f4Daniel Dunbar let ty = make_array_type i8_type 7 in 1069c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar insist (add_type_name "Ty09" ty m); 1079c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar insist (7 = array_length ty); 1089c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar insist (i8_type == element_type ty); 1099c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar insist (Array_type == classify_type ty); 11047ac7d27c44bd64a7d0fc03d4babc196cf2b8230Daniel Dunbar 111b488c1dac8e53206f07103d794a62a3f5012c0f4Daniel Dunbar (* RUN: grep {Ty10.*float\*} < %t.ll 1129c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar *) 1139c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar group "pointer"; 114b488c1dac8e53206f07103d794a62a3f5012c0f4Daniel Dunbar let ty = make_pointer_type float_type in 1159c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar insist (add_type_name "Ty10" ty m); 116b488c1dac8e53206f07103d794a62a3f5012c0f4Daniel Dunbar insist (float_type == element_type ty); 1179c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar insist (Pointer_type == classify_type ty); 1189c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar 1199c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar (* RUN: grep {Ty11.*\<4 x i16\>} < %t.ll 1209c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar *) 12147ac7d27c44bd64a7d0fc03d4babc196cf2b8230Daniel Dunbar group "vector"; 122b488c1dac8e53206f07103d794a62a3f5012c0f4Daniel Dunbar let ty = make_vector_type i16_type 4 in 1239c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar insist (add_type_name "Ty11" ty m); 12431b1e5437e7435879fc044afb77ff27096008e72Daniel Dunbar insist (i16_type == element_type ty); 1259c073ff462eb75ccbb1c4446e21c148f3fc618e1Daniel Dunbar insist (4 = vector_size ty); 126ff7488dc9a766f94daf54d81b03ab9160d0bfd88Daniel Dunbar 127fbefe6bd6f62a3361813498dc672ab0d6c0d4fd1Daniel Dunbar (* RUN: grep {Ty12.*opaque} < %t.ll 128fbefe6bd6f62a3361813498dc672ab0d6c0d4fd1Daniel Dunbar *) 129fbefe6bd6f62a3361813498dc672ab0d6c0d4fd1Daniel Dunbar group "opaque"; 130fbefe6bd6f62a3361813498dc672ab0d6c0d4fd1Daniel Dunbar let ty = make_opaque_type () in 131fbefe6bd6f62a3361813498dc672ab0d6c0d4fd1Daniel Dunbar insist (add_type_name "Ty12" ty m); 132fbefe6bd6f62a3361813498dc672ab0d6c0d4fd1Daniel Dunbar insist (ty == ty); 133fbefe6bd6f62a3361813498dc672ab0d6c0d4fd1Daniel Dunbar insist (ty <> make_opaque_type ()) 134fbefe6bd6f62a3361813498dc672ab0d6c0d4fd1Daniel Dunbar 135fbefe6bd6f62a3361813498dc672ab0d6c0d4fd1Daniel Dunbar 136fbefe6bd6f62a3361813498dc672ab0d6c0d4fd1Daniel Dunbar(*===-- Global Values -----------------------------------------------------===*) 137fbefe6bd6f62a3361813498dc672ab0d6c0d4fd1Daniel Dunbar 138fbefe6bd6f62a3361813498dc672ab0d6c0d4fd1Daniel Dunbarlet test_global_values () = 139fbefe6bd6f62a3361813498dc672ab0d6c0d4fd1Daniel Dunbar let (++) x f = f x; x in 140fbefe6bd6f62a3361813498dc672ab0d6c0d4fd1Daniel Dunbar let zero32 = make_null i32_type in 141a5a7bd0de7b6b80212095195a055a4a43f21d4b2Daniel Dunbar 1421eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump (* RUN: grep {GVal01} < %t.ll 143a5a7bd0de7b6b80212095195a055a4a43f21d4b2Daniel Dunbar *) 1441eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump group "naming"; 145a5a7bd0de7b6b80212095195a055a4a43f21d4b2Daniel Dunbar let g = define_global "TEMPORARY" zero32 m in 1461eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump prerr_endline ""; 147a5a7bd0de7b6b80212095195a055a4a43f21d4b2Daniel Dunbar prerr_endline (value_name g); 148a5a7bd0de7b6b80212095195a055a4a43f21d4b2Daniel Dunbar insist ("TEMPORARY" = value_name g); 14940f1265ebd42ece3e7f7917319b56012e8e2bce2Daniel Dunbar set_value_name "GVal01" g; 15040f1265ebd42ece3e7f7917319b56012e8e2bce2Daniel Dunbar insist ("GVal01" = value_name g); 151a3ec60e0cf2a1916f479288998d31bd980b1a306Daniel Dunbar 152a3ec60e0cf2a1916f479288998d31bd980b1a306Daniel Dunbar (* RUN: grep {GVal02.*linkonce} < %t.ll 15340f1265ebd42ece3e7f7917319b56012e8e2bce2Daniel Dunbar *) 15440f1265ebd42ece3e7f7917319b56012e8e2bce2Daniel Dunbar group "linkage"; 155a3ec60e0cf2a1916f479288998d31bd980b1a306Daniel Dunbar let g = define_global "GVal02" zero32 m ++ 15640f1265ebd42ece3e7f7917319b56012e8e2bce2Daniel Dunbar set_linkage Link_once_linkage in 15740f1265ebd42ece3e7f7917319b56012e8e2bce2Daniel Dunbar insist (Link_once_linkage = linkage g); 158a3ec60e0cf2a1916f479288998d31bd980b1a306Daniel Dunbar 1591eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump (* RUN: grep {GVal03.*Hanalei} < %t.ll 160a3ec60e0cf2a1916f479288998d31bd980b1a306Daniel Dunbar *) 161a3ec60e0cf2a1916f479288998d31bd980b1a306Daniel Dunbar group "section"; 162a3ec60e0cf2a1916f479288998d31bd980b1a306Daniel Dunbar let g = define_global "GVal03" zero32 m ++ 16340f1265ebd42ece3e7f7917319b56012e8e2bce2Daniel Dunbar set_section "Hanalei" in 16440f1265ebd42ece3e7f7917319b56012e8e2bce2Daniel Dunbar insist ("Hanalei" = section g); 165fbefe6bd6f62a3361813498dc672ab0d6c0d4fd1Daniel Dunbar 16640f1265ebd42ece3e7f7917319b56012e8e2bce2Daniel Dunbar (* RUN: grep {GVal04.*hidden} < %t.ll 16740f1265ebd42ece3e7f7917319b56012e8e2bce2Daniel Dunbar *) 16840f1265ebd42ece3e7f7917319b56012e8e2bce2Daniel Dunbar group "visibility"; 16940f1265ebd42ece3e7f7917319b56012e8e2bce2Daniel Dunbar let g = define_global "GVal04" zero32 m ++ 17040f1265ebd42ece3e7f7917319b56012e8e2bce2Daniel Dunbar set_visibility Hidden_visibility in 17140f1265ebd42ece3e7f7917319b56012e8e2bce2Daniel Dunbar insist (Hidden_visibility = visibility g); 17240f1265ebd42ece3e7f7917319b56012e8e2bce2Daniel Dunbar 17340f1265ebd42ece3e7f7917319b56012e8e2bce2Daniel Dunbar (* RUN: grep {GVal05.*align 128} < %t.ll 17440f1265ebd42ece3e7f7917319b56012e8e2bce2Daniel Dunbar *) 17540f1265ebd42ece3e7f7917319b56012e8e2bce2Daniel Dunbar group "alignment"; 17640f1265ebd42ece3e7f7917319b56012e8e2bce2Daniel Dunbar let g = define_global "GVal05" zero32 m ++ 17740f1265ebd42ece3e7f7917319b56012e8e2bce2Daniel Dunbar set_alignment 128 in 1781eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump insist (128 = alignment g) 1791eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump 1801eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump 18140f1265ebd42ece3e7f7917319b56012e8e2bce2Daniel Dunbar(*===-- Global Variables --------------------------------------------------===*) 18240f1265ebd42ece3e7f7917319b56012e8e2bce2Daniel Dunbar 18340f1265ebd42ece3e7f7917319b56012e8e2bce2Daniel Dunbarlet test_global_variables () = 18440f1265ebd42ece3e7f7917319b56012e8e2bce2Daniel Dunbar let (++) x f = f x; x in 18540f1265ebd42ece3e7f7917319b56012e8e2bce2Daniel Dunbar let fourty_two32 = make_int_constant i32_type 42 false in 18640f1265ebd42ece3e7f7917319b56012e8e2bce2Daniel Dunbar 18740f1265ebd42ece3e7f7917319b56012e8e2bce2Daniel Dunbar (* RUN: grep {GVar01.*external} < %t.ll 18840f1265ebd42ece3e7f7917319b56012e8e2bce2Daniel Dunbar *) 18940f1265ebd42ece3e7f7917319b56012e8e2bce2Daniel Dunbar group "declarations"; 1901eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump let g = declare_global i32_type "GVar01" m in 1911eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump insist (is_declaration g); 1921eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump 19340f1265ebd42ece3e7f7917319b56012e8e2bce2Daniel Dunbar (* RUN: grep {GVar02.*42} < %t.ll 19440f1265ebd42ece3e7f7917319b56012e8e2bce2Daniel Dunbar * RUN: grep {GVar03.*42} < %t.ll 19540f1265ebd42ece3e7f7917319b56012e8e2bce2Daniel Dunbar *) 196fbefe6bd6f62a3361813498dc672ab0d6c0d4fd1Daniel Dunbar group "definitions"; 1978cac5f7e1ce63dd77ee0fb4ef68f9fa804f41ea6Daniel Dunbar let g = define_global "GVar02" fourty_two32 m in 198fbefe6bd6f62a3361813498dc672ab0d6c0d4fd1Daniel Dunbar let g2 = declare_global i32_type "GVar03" m ++ 1998cac5f7e1ce63dd77ee0fb4ef68f9fa804f41ea6Daniel Dunbar set_initializer fourty_two32 in 2008cac5f7e1ce63dd77ee0fb4ef68f9fa804f41ea6Daniel Dunbar insist (not (is_declaration g)); 2018cac5f7e1ce63dd77ee0fb4ef68f9fa804f41ea6Daniel Dunbar insist (not (is_declaration g2)); 2028cac5f7e1ce63dd77ee0fb4ef68f9fa804f41ea6Daniel Dunbar insist ((global_initializer g) == (global_initializer g2)); 2038cac5f7e1ce63dd77ee0fb4ef68f9fa804f41ea6Daniel Dunbar 2048cac5f7e1ce63dd77ee0fb4ef68f9fa804f41ea6Daniel Dunbar (* RUN: grep {GVar04.*thread_local} < %t.ll 20502633b541b04ad5ffc1c70f4c2feeeb13e607057Daniel Dunbar *) 2061eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump group "threadlocal"; 2071eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump let g = define_global "GVar04" fourty_two32 m ++ 2081eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump set_thread_local true in 20902633b541b04ad5ffc1c70f4c2feeeb13e607057Daniel Dunbar insist (is_thread_local g); 21002633b541b04ad5ffc1c70f4c2feeeb13e607057Daniel Dunbar 21102633b541b04ad5ffc1c70f4c2feeeb13e607057Daniel Dunbar (* RUN: grep -v {GVar05} < %t.ll 212fbefe6bd6f62a3361813498dc672ab0d6c0d4fd1Daniel Dunbar *) 21302633b541b04ad5ffc1c70f4c2feeeb13e607057Daniel Dunbar let g = define_global "GVar05" fourty_two32 m in 21402633b541b04ad5ffc1c70f4c2feeeb13e607057Daniel Dunbar delete_global g 21502633b541b04ad5ffc1c70f4c2feeeb13e607057Daniel Dunbar 216fbefe6bd6f62a3361813498dc672ab0d6c0d4fd1Daniel Dunbar 21702633b541b04ad5ffc1c70f4c2feeeb13e607057Daniel Dunbar(*===-- Writer ------------------------------------------------------------===*) 21802633b541b04ad5ffc1c70f4c2feeeb13e607057Daniel Dunbar 21902633b541b04ad5ffc1c70f4c2feeeb13e607057Daniel Dunbarlet test_writer () = 22002633b541b04ad5ffc1c70f4c2feeeb13e607057Daniel Dunbar group "writer"; 22102633b541b04ad5ffc1c70f4c2feeeb13e607057Daniel Dunbar insist (write_bitcode_file m filename); 22202633b541b04ad5ffc1c70f4c2feeeb13e607057Daniel Dunbar 2238cac5f7e1ce63dd77ee0fb4ef68f9fa804f41ea6Daniel Dunbar dispose_module m 2241eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump 2251eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump 2261eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump(*===-- Driver ------------------------------------------------------------===*) 2278cac5f7e1ce63dd77ee0fb4ef68f9fa804f41ea6Daniel Dunbar 2288cac5f7e1ce63dd77ee0fb4ef68f9fa804f41ea6Daniel Dunbarlet _ = 2298cac5f7e1ce63dd77ee0fb4ef68f9fa804f41ea6Daniel Dunbar suite "types" test_types; 230fbefe6bd6f62a3361813498dc672ab0d6c0d4fd1Daniel Dunbar suite "global values" test_global_values; 231ff7488dc9a766f94daf54d81b03ab9160d0bfd88Daniel Dunbar suite "global variables" test_global_variables; 232fbefe6bd6f62a3361813498dc672ab0d6c0d4fd1Daniel Dunbar suite "writer" test_writer; 233ff7488dc9a766f94daf54d81b03ab9160d0bfd88Daniel Dunbar all_done () 234ff7488dc9a766f94daf54d81b03ab9160d0bfd88Daniel Dunbar