mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-11-04 05:17:07 +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"
 | 
			
		||||
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);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user