Skip to content

Commit

Permalink
[OCaml] Expose Llvm.{set_,}unnamed_addr.
Browse files Browse the repository at this point in the history
Patch by Jacques-Pascal Deplaix <[email protected]>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@250912 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
whitequark committed Oct 21, 2015
1 parent 8b64b61 commit 7d30a2e
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 0 deletions.
2 changes: 2 additions & 0 deletions bindings/ocaml/llvm/llvm.ml
Original file line number Diff line number Diff line change
Expand Up @@ -579,6 +579,8 @@ external global_parent : llvalue -> llmodule = "LLVMGetGlobalParent"
external is_declaration : llvalue -> bool = "llvm_is_declaration"
external linkage : llvalue -> Linkage.t = "llvm_linkage"
external set_linkage : Linkage.t -> llvalue -> unit = "llvm_set_linkage"
external unnamed_addr : llvalue -> bool = "llvm_unnamed_addr"
external set_unnamed_addr : bool -> llvalue -> unit = "llvm_set_unnamed_addr"
external section : llvalue -> string = "llvm_section"
external set_section : string -> llvalue -> unit = "llvm_set_section"
external visibility : llvalue -> Visibility.t = "llvm_visibility"
Expand Down
10 changes: 10 additions & 0 deletions bindings/ocaml/llvm/llvm.mli
Original file line number Diff line number Diff line change
Expand Up @@ -1255,6 +1255,16 @@ val linkage : llvalue -> Linkage.t
See the method [llvm::GlobalValue::setLinkage]. *)
val set_linkage : Linkage.t -> llvalue -> unit

(** [unnamed_addr g] returns [true] if the global value [g] has the unnamed_addr
attribute. Returns [false] otherwise.
See the method [llvm::GlobalValue::getUnnamedAddr]. *)
val unnamed_addr : llvalue -> bool

(** [set_unnamed_addr b g] if [b] is [true], sets the unnamed_addr attribute of
the global value [g]. Unset it otherwise.
See the method [llvm::GlobalValue::setUnnamedAddr]. *)
val set_unnamed_addr : bool -> llvalue -> unit

(** [section g] returns the linker section of the global value [g].
See the method [llvm::GlobalValue::getSection]. *)
val section : llvalue -> string
Expand Down
11 changes: 11 additions & 0 deletions bindings/ocaml/llvm/llvm_ocaml.c
Original file line number Diff line number Diff line change
Expand Up @@ -940,6 +940,17 @@ CAMLprim value llvm_set_linkage(value Linkage, LLVMValueRef Global) {
return Val_unit;
}

/* llvalue -> bool */
CAMLprim value llvm_unnamed_addr(LLVMValueRef Global) {
return Val_bool(LLVMHasUnnamedAddr(Global));
}

/* bool -> llvalue -> unit */
CAMLprim value llvm_set_unnamed_addr(value UseUnnamedAddr, LLVMValueRef Global) {
LLVMSetUnnamedAddr(Global, Bool_val(UseUnnamedAddr));
return Val_unit;
}

/* llvalue -> string */
CAMLprim value llvm_section(LLVMValueRef Global) {
return caml_copy_string(LLVMGetSection(Global));
Expand Down

0 comments on commit 7d30a2e

Please sign in to comment.