mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-04-13 15:37:24 +00:00
[OCaml] Expose Llvm.parse_command_line_options.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@220847 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
57d796af1f
commit
e0129b55d2
@ -286,6 +286,8 @@ external reset_fatal_error_handler : unit -> unit
|
||||
= "llvm_reset_fatal_error_handler"
|
||||
external enable_pretty_stacktrace : unit -> unit
|
||||
= "llvm_enable_pretty_stacktrace"
|
||||
external parse_command_line_options : ?overview:string -> string array -> unit
|
||||
= "llvm_parse_command_line_options"
|
||||
|
||||
type ('a, 'b) llpos =
|
||||
| At_end of 'a
|
||||
|
@ -381,6 +381,14 @@ val install_fatal_error_handler : (string -> unit) -> unit
|
||||
(** [reset_fatal_error_handler ()] resets LLVM's fatal error handler. *)
|
||||
val reset_fatal_error_handler : unit -> unit
|
||||
|
||||
(** [parse_command_line_options ?overview args] parses [args] using
|
||||
the LLVM command line parser. Note that the only stable thing about this
|
||||
function is its signature; you cannot rely on any particular set of command
|
||||
line arguments being interpreted the same way across LLVM versions.
|
||||
|
||||
See the function [llvm::cl::ParseCommandLineOptions()]. *)
|
||||
val parse_command_line_options : ?overview:string -> string array -> unit
|
||||
|
||||
(** {6 Contexts} *)
|
||||
|
||||
(** [create_context ()] creates a context for storing the "global" state in
|
||||
|
@ -60,6 +60,17 @@ CAMLprim value llvm_enable_pretty_stacktrace(value Unit) {
|
||||
return Val_unit;
|
||||
}
|
||||
|
||||
CAMLprim value llvm_parse_command_line_options(value Overview, value Args) {
|
||||
char *COverview;
|
||||
if (Overview == Val_int(0)) {
|
||||
COverview = NULL;
|
||||
} else {
|
||||
COverview = String_val(Field(Overview, 0));
|
||||
}
|
||||
LLVMParseCommandLineOptions(Wosize_val(Args), (const char* const*) Op_val(Args), COverview);
|
||||
return Val_unit;
|
||||
}
|
||||
|
||||
static value alloc_variant(int tag, void *Value) {
|
||||
value Iter = alloc_small(1, tag);
|
||||
Field(Iter, 0) = Val_op(Value);
|
||||
|
Loading…
x
Reference in New Issue
Block a user