mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-11-06 04:18:00 +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:
@@ -286,6 +286,8 @@ external reset_fatal_error_handler : unit -> unit
|
|||||||
= "llvm_reset_fatal_error_handler"
|
= "llvm_reset_fatal_error_handler"
|
||||||
external enable_pretty_stacktrace : unit -> unit
|
external enable_pretty_stacktrace : unit -> unit
|
||||||
= "llvm_enable_pretty_stacktrace"
|
= "llvm_enable_pretty_stacktrace"
|
||||||
|
external parse_command_line_options : ?overview:string -> string array -> unit
|
||||||
|
= "llvm_parse_command_line_options"
|
||||||
|
|
||||||
type ('a, 'b) llpos =
|
type ('a, 'b) llpos =
|
||||||
| At_end of 'a
|
| 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. *)
|
(** [reset_fatal_error_handler ()] resets LLVM's fatal error handler. *)
|
||||||
val reset_fatal_error_handler : unit -> unit
|
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} *)
|
(** {6 Contexts} *)
|
||||||
|
|
||||||
(** [create_context ()] creates a context for storing the "global" state in
|
(** [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;
|
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) {
|
static value alloc_variant(int tag, void *Value) {
|
||||||
value Iter = alloc_small(1, tag);
|
value Iter = alloc_small(1, tag);
|
||||||
Field(Iter, 0) = Val_op(Value);
|
Field(Iter, 0) = Val_op(Value);
|
||||||
|
|||||||
Reference in New Issue
Block a user