Add support for getting a null pointer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97380 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Erick Tryzelaar 2010-02-28 09:46:27 +00:00
parent d80ce75687
commit 5b0a7741ad
3 changed files with 12 additions and 0 deletions

View File

@ -246,6 +246,7 @@ external replace_all_uses_with : llvalue -> llvalue -> unit
external is_constant : llvalue -> bool = "llvm_is_constant"
external const_null : lltype -> llvalue = "LLVMConstNull"
external const_all_ones : (*int|vec*)lltype -> llvalue = "LLVMConstAllOnes"
external const_pointer_null : lltype -> llvalue = "LLVMConstPointerNull"
external undef : lltype -> llvalue = "LLVMGetUndef"
external is_null : llvalue -> bool = "llvm_is_null"
external is_undef : llvalue -> bool = "llvm_is_undef"

View File

@ -527,6 +527,10 @@ external const_null : lltype -> llvalue = "LLVMConstNull"
[ty]. See the method [llvm::Constant::getAllOnesValue]. *)
external const_all_ones : (*int|vec*)lltype -> llvalue = "LLVMConstAllOnes"
(** [const_pointer_null ty] returns the constant null (zero) pointer of the type
[ty]. See the method [llvm::ConstantPointerNull::get]. *)
external const_pointer_null : lltype -> llvalue = "LLVMConstPointerNull"
(** [undef ty] returns the undefined value of the type [ty].
See the method [llvm::UndefValue::get]. *)
external undef : lltype -> llvalue = "LLVMGetUndef"

View File

@ -316,6 +316,13 @@ let test_constants () =
let c = const_all_ones i64_type in
ignore (define_global "const_all_ones" c m);
group "pointer null"; begin
(* RUN: grep {const_pointer_null = global i64\\* null} < %t.ll
*)
let c = const_pointer_null (pointer_type i64_type) in
ignore (define_global "const_pointer_null" c m);
end;
(* RUN: grep {const_undef.*undef} < %t.ll
*)
group "undef";