@ -423,7 +423,7 @@ let exe_basename =
 
			
		
	
		
		
			
				
					
					let  infer_is_clang  =  List . mem  ~ equal : String . equal  clang_exe_aliases  exe_basename let  infer_is_clang  =  List . mem  ~ equal : String . equal  clang_exe_aliases  exe_basename  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					let  initial_command  = let  initial_command  =  
			
		
	
		
		
			
				
					
					  match  CLOpt. command_  of_exe_name exe_basename  with  Some  _  as  command  ->  command  |  None  ->  None 
  match  InferCommand.  of_exe_name exe_basename  with  Some  _  as  command  ->  command  |  None  ->  None 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					let  bin_dir  = let  bin_dir  =  
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -496,7 +496,7 @@ let exe_usage =
 
			
		
	
		
		
			
				
					
					  let  exe_command_name  = 
  let  exe_command_name  = 
 
			
		
	
		
		
			
				
					
					    match  initial_command  with 
    match  initial_command  with 
 
			
		
	
		
		
			
				
					
					    |  Some  command  -> 
    |  Some  command  -> 
 
			
		
	
		
		
			
				
					
					        Some  ( CLOpt. name_of_command   command ) 
        Some  ( InferCommand. to_string   command ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    |  None  -> 
    |  None  -> 
 
			
		
	
		
		
			
				
					
					        None 
        None 
 
			
		
	
		
		
			
				
					
					  in 
  in 
 
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -541,7 +541,7 @@ let all_checkers = ref []
 
			
		
	
		
		
			
				
					
					let  disable_all_checkers  ()  =  List . iter  ! all_checkers  ~ f : ( fun  ( var ,  _ ,  _ ,  _ )  ->  var  :=  false ) let  disable_all_checkers  ()  =  List . iter  ! all_checkers  ~ f : ( fun  ( var ,  _ ,  _ ,  _ )  ->  var  :=  false )  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					let  ()  = let  ()  =  
			
		
	
		
		
			
				
					
					  let  on_unknown_arg_from_command  ( cmd :  LOpt. c  ommand)  = 
  let  on_unknown_arg_from_command  ( cmd :  Infer Command. t )  = 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    match  cmd  with 
    match  cmd  with 
 
			
		
	
		
		
			
				
					
					    |  Report  -> 
    |  Report  -> 
 
			
		
	
		
		
			
				
					
					        ` Add 
        ` Add 
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -549,10 +549,10 @@ let () =
 
			
		
	
		
		
			
				
					
					        ` Reject 
        ` Reject 
 
			
		
	
		
		
			
				
					
					  in 
  in 
 
			
		
	
		
		
			
				
					
					  (*  make sure we generate doc for all the commands we know about  *) 
  (*  make sure we generate doc for all the commands we know about  *) 
 
			
		
	
		
		
			
				
					
					  List . iter  CLOpt . all_commands  ~ f : ( fun  cmd  -> 
  List . iter  InferCommand . all_commands  ~ f : ( fun  cmd  -> 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					      let  { CommandDoc . name ;  command_doc }  =  CommandDoc . data_of_command  cmd  in 
      let  { CommandDoc . name ;  command_doc }  =  CommandDoc . data_of_command  cmd  in 
 
			
		
	
		
		
			
				
					
					      let  on_unknown_arg  =  on_unknown_arg_from_command  cmd  in 
      let  on_unknown_arg  =  on_unknown_arg_from_command  cmd  in 
 
			
		
	
		
		
			
				
					
					      let  deprecated_long  =  if  CLOpt. ( equal_command   ReportDiff )  cmd  then  Some  " diff "  else  None  in 
      let  deprecated_long  =  if  InferCommand. ( equal   ReportDiff )  cmd  then  Some  " diff "  else  None  in 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					      CLOpt . mk_subcommand  cmd  ~ name  ? deprecated_long  ~ on_unknown_arg  ( Some  command_doc )  ) 
      CLOpt . mk_subcommand  cmd  ~ name  ? deprecated_long  ~ on_unknown_arg  ( Some  command_doc )  ) 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -613,7 +613,7 @@ and ( analysis_blacklist_files_containing_options
 
			
		
	
		
		
			
				
					
					      ( let  long  =  " <analyzer>- "  ^  suffix  in 
      ( let  long  =  " <analyzer>- "  ^  suffix  in 
 
			
		
	
		
		
			
				
					
					       CLOpt . mk_string_list  ~ long  ~ meta 
       CLOpt . mk_string_list  ~ long  ~ meta 
 
			
		
	
		
		
			
				
					
					         ~ f : ( fun  _  ->  raise  ( Arg . Bad  " invalid option " ) ) 
         ~ f : ( fun  _  ->  raise  ( Arg . Bad  " invalid option " ) ) 
 
			
		
	
		
		
			
				
					
					         ~ in_help : CLOpt . ( [ ( Report ,  manual_generic ) ;  ( Run ,  manual_generic ) ] ) 
         ~ in_help : InferCommand . ( [ ( Report ,  manual_generic ) ;  ( Run ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					         help )  ; 
         help )  ; 
 
			
		
	
		
		
			
				
					
					    List . map  ~ f : ( fun  ( name ,  analyzer )  ->  ( analyzer ,  mk_option  analyzer  name ) )  string_to_analyzer 
    List . map  ~ f : ( fun  ( name ,  analyzer )  ->  ( analyzer ,  mk_option  analyzer  name ) )  string_to_analyzer 
 
			
		
	
		
		
			
				
					
					  in 
  in 
 
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -650,7 +650,7 @@ and analyzer =
 
			
		
	
		
		
			
				
					
					        () 
        () 
 
			
		
	
		
		
			
				
					
					  in 
  in 
 
			
		
	
		
		
			
				
					
					  CLOpt . mk_symbol_opt  ~ deprecated : [ " analyzer " ]  ~ long : " analyzer "  ~ short : 'a' 
  CLOpt . mk_symbol_opt  ~ deprecated : [ " analyzer " ]  ~ long : " analyzer "  ~ short : 'a' 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Analyze ,  manual_generic ) ;  ( Run ,  manual_generic ) ] ) 
    ~ in_help : InferCommand . ( [ ( Analyze ,  manual_generic ) ;  ( Run ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    { | Specify  which  analyzer  to  run  ( only  one  at  a  time  is  supported ) : 
    { | Specify  which  analyzer  to  run  ( only  one  at  a  time  is  supported ) : 
 
			
		
	
		
		
			
				
					
					-  $ ( b , biabduction ) :  run  the  bi - abduction  based  checker  only ,  in  particular  to  check  for  memory  errors -  $ ( b , biabduction ) :  run  the  bi - abduction  based  checker  only ,  in  particular  to  check  for  memory  errors  
			
		
	
		
		
			
				
					
					-  $ ( b , checkers ) :  run  the  default  checkers ,  including  the  bi - abduction  based  checker  for  memory  errors  ( default ) -  $ ( b , checkers ) :  run  the  default  checkers ,  including  the  bi - abduction  based  checker  for  memory  errors  ( default )  
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -694,7 +694,9 @@ and ( annotation_reachability
 
			
		
	
		
		
			
				
					
					    ,  uninit  )  = 
    ,  uninit  )  = 
 
			
		
	
		
		
			
				
					
					  let  mk_checker  ? ( default =  false )  ? ( deprecated =  [] )  ~ long  doc  = 
  let  mk_checker  ? ( default =  false )  ? ( deprecated =  [] )  ~ long  doc  = 
 
			
		
	
		
		
			
				
					
					    let  var  = 
    let  var  = 
 
			
		
	
		
		
			
				
					
					      CLOpt . mk_bool  ~ long  ~ in_help : CLOpt . ( [ ( Analyze ,  manual_generic ) ] )  ~ default  ~ deprecated  doc 
      CLOpt . mk_bool  ~ long 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					        ~ in_help : InferCommand . ( [ ( Analyze ,  manual_generic ) ] ) 
 
			
		
	
		
		
			
				
					
					        ~ default  ~ deprecated  doc 
 
			
		
	
		
		
			
				
					
					    in 
    in 
 
			
		
	
		
		
			
				
					
					    all_checkers  :=  ( var ,  long ,  doc ,  default )  ::  ! all_checkers  ; 
    all_checkers  :=  ( var ,  long ,  doc ,  default )  ::  ! all_checkers  ; 
 
			
		
	
		
		
			
				
					
					    var 
    var 
 
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -741,7 +743,7 @@ and ( annotation_reachability
 
			
		
	
		
		
			
				
					
					  let  mk_only  ( var ,  long ,  doc ,  _ )  = 
  let  mk_only  ( var ,  long ,  doc ,  _ )  = 
 
			
		
	
		
		
			
				
					
					    let  _  :  bool  ref  = 
    let  _  :  bool  ref  = 
 
			
		
	
		
		
			
				
					
					      CLOpt . mk_bool_group  ~ long : ( long  ^  " -only " ) 
      CLOpt . mk_bool_group  ~ long : ( long  ^  " -only " ) 
 
			
		
	
		
		
			
				
					
					        ~ in_help : CLOpt . ( [ ( Analyze ,  manual_generic ) ] ) 
        ~ in_help : InferCommand . ( [ ( Analyze ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					        ~ f : ( fun  b  -> 
        ~ f : ( fun  b  -> 
 
			
		
	
		
		
			
				
					
					          disable_all_checkers  ()  ; 
          disable_all_checkers  ()  ; 
 
			
		
	
		
		
			
				
					
					          var  :=  b  ; 
          var  :=  b  ; 
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -757,7 +759,7 @@ and ( annotation_reachability
 
			
		
	
		
		
			
				
					
					  List . iter  ~ f : mk_only  ! all_checkers  ; 
  List . iter  ~ f : mk_only  ! all_checkers  ; 
 
			
		
	
		
		
			
				
					
					  let  _ default_checkers  :  bool  ref  = 
  let  _ default_checkers  :  bool  ref  = 
 
			
		
	
		
		
			
				
					
					    CLOpt . mk_bool_group  ~ long : " default-checkers " 
    CLOpt . mk_bool_group  ~ long : " default-checkers " 
 
			
		
	
		
		
			
				
					
					      ~ in_help : CLOpt . ( [ ( Analyze ,  manual_generic ) ] ) 
      ~ in_help : InferCommand . ( [ ( Analyze ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					      ~ default : true 
      ~ default : true 
 
			
		
	
		
		
			
				
					
					      (  " Default checkers:  " 
      (  " Default checkers:  " 
 
			
		
	
		
		
			
				
					
					      ^  (  List . rev_filter_map 
      ^  (  List . rev_filter_map 
 
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -796,7 +798,7 @@ and ( annotation_reachability
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  annotation_reachability_custom_pairs  = and  annotation_reachability_custom_pairs  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_json  ~ long : " annotation-reachability-custom-pairs " 
  CLOpt . mk_json  ~ long : " annotation-reachability-custom-pairs " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Analyze ,  manual_java ) ] ) 
    ~ in_help : InferCommand . ( [ ( Analyze ,  manual_java ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    { | Specify  custom  sources / sink  for  the  annotation  reachability  checker 
    { | Specify  custom  sources / sink  for  the  annotation  reachability  checker 
 
			
		
	
		
		
			
				
					
					Example  format :  for  custom  annotations  com . my . annotation . { Source1 , Source2 , Sink1 } Example  format :  for  custom  annotations  com . my . annotation . { Source1 , Source2 , Sink1 }  
			
		
	
		
		
			
				
					
					{  " sources "  :  [ " Source1 " ,  " Source2 " ] ,  " sink "  :  " Sink1 "  } | } {  " sources "  :  [ " Source1 " ,  " Source2 " ] ,  " sink "  :  " Sink1 "  } | }  
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -804,7 +806,7 @@ Example format: for custom annotations com.my.annotation.{Source1,Source2,Sink1}
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  append_buck_flavors  = and  append_buck_flavors  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_string_list  ~ long : " append-buck-flavors " 
  CLOpt . mk_string_list  ~ long : " append-buck-flavors " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Capture ,  manual_buck_flavors ) ] ) 
    ~ in_help : InferCommand . ( [ ( Capture ,  manual_buck_flavors ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " Additional Buck flavors to append to targets discovered by the $(b,--buck-compilation-database) option. " 
    " Additional Buck flavors to append to targets discovered by the $(b,--buck-compilation-database) option. " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -819,13 +821,13 @@ and array_level =
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  blacklist  = and  blacklist  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_string_opt  ~ deprecated : [ " -blacklist-regex " ;  " -blacklist " ]  ~ long : " buck-blacklist " 
  CLOpt . mk_string_opt  ~ deprecated : [ " -blacklist-regex " ;  " -blacklist " ]  ~ long : " buck-blacklist " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Run ,  manual_buck_flavors ) ;  ( Capture ,  manual_buck_flavors ) ] ) 
    ~ in_help : InferCommand . ( [ ( Run ,  manual_buck_flavors ) ;  ( Capture ,  manual_buck_flavors ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    ~ meta : " regex "  " Skip analysis of files matched by the specified regular expression " 
    ~ meta : " regex "  " Skip analysis of files matched by the specified regular expression " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  bootclasspath  = and  bootclasspath  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_string_opt  ~ long : " bootclasspath " 
  CLOpt . mk_string_opt  ~ long : " bootclasspath " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Capture ,  manual_java ) ] ) 
    ~ in_help : InferCommand . ( [ ( Capture ,  manual_java ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " Specify the Java bootclasspath " 
    " Specify the Java bootclasspath " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -834,33 +836,33 @@ and buck = CLOpt.mk_bool ~long:"buck" ""
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  buck_build_args  = and  buck_build_args  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_string_list  ~ long : " Xbuck " 
  CLOpt . mk_string_list  ~ long : " Xbuck " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Capture ,  manual_buck_flavors ) ] ) 
    ~ in_help : InferCommand . ( [ ( Capture ,  manual_buck_flavors ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " Pass values as command-line arguments to invocations of $(i,`buck build`) " 
    " Pass values as command-line arguments to invocations of $(i,`buck build`) " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  buck_compilation_database_depth  = and  buck_compilation_database_depth  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_int_opt  ~ long : " buck-compilation-database-depth " 
  CLOpt . mk_int_opt  ~ long : " buck-compilation-database-depth " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Capture ,  manual_buck_compilation_db ) ] ) 
    ~ in_help : InferCommand . ( [ ( Capture ,  manual_buck_compilation_db ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " Depth of dependencies used by the $(b,--buck-compilation-database deps) option. By default, all recursive dependencies are captured. " 
    " Depth of dependencies used by the $(b,--buck-compilation-database deps) option. By default, all recursive dependencies are captured. " 
 
			
		
	
		
		
			
				
					
					    ~ meta : " int " 
    ~ meta : " int " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  buck_compilation_database  = and  buck_compilation_database  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_symbol_opt  ~ long : " buck-compilation-database "  ~ deprecated : [ " -use-compilation-database " ] 
  CLOpt . mk_symbol_opt  ~ long : " buck-compilation-database "  ~ deprecated : [ " -use-compilation-database " ] 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Capture ,  manual_buck_compilation_db ) ] ) 
    ~ in_help : InferCommand . ( [ ( Capture ,  manual_buck_compilation_db ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " Buck integration using the compilation database, with or without dependencies. " 
    " Buck integration using the compilation database, with or without dependencies. " 
 
			
		
	
		
		
			
				
					
					    ~ symbols : [ ( " no-deps " ,  ` NoDeps ) ;  ( " deps " ,  ` DepsTmp ) ] 
    ~ symbols : [ ( " no-deps " ,  ` NoDeps ) ;  ( " deps " ,  ` DepsTmp ) ] 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  buck_out  = and  buck_out  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_path_opt  ~ long : " buck-out " 
  CLOpt . mk_path_opt  ~ long : " buck-out " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Capture ,  manual_buck_java ) ] ) 
    ~ in_help : InferCommand . ( [ ( Capture ,  manual_buck_java ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    ~ meta : " dir "  " Specify the root directory of buck-out " 
    ~ meta : " dir "  " Specify the root directory of buck-out " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  calls_csv  = and  calls_csv  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_path_opt  ~ deprecated : [ " calls " ]  ~ long : " calls-csv " 
  CLOpt . mk_path_opt  ~ deprecated : [ " calls " ]  ~ long : " calls-csv " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Report ,  manual_generic ) ] ) 
    ~ in_help : InferCommand . ( [ ( Report ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    ~ meta : " file "  " Write individual calls in CSV format to $(i,file) " 
    ~ meta : " file "  " Write individual calls in CSV format to $(i,file) " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -871,14 +873,14 @@ and capture =
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  changed_files_index  = and  changed_files_index  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_path_opt  ~ long : " changed-files-index " 
  CLOpt . mk_path_opt  ~ long : " changed-files-index " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Analyze ,  manual_generic ) ;  ( Diff ,  manual_generic ) ] ) 
    ~ in_help : InferCommand . ( [ ( Analyze ,  manual_generic ) ;  ( Diff ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    ~ meta : " file " 
    ~ meta : " file " 
 
			
		
	
		
		
			
				
					
					    " Specify the file containing the list of source files from which reactive analysis should start. Source files should be specified relative to project root or be absolute " 
    " Specify the file containing the list of source files from which reactive analysis should start. Source files should be specified relative to project root or be absolute " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  clang_biniou_file  = and  clang_biniou_file  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_path_opt  ~ long : " clang-biniou-file " 
  CLOpt . mk_path_opt  ~ long : " clang-biniou-file " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Capture ,  manual_clang ) ] ) 
    ~ in_help : InferCommand . ( [ ( Capture ,  manual_clang ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    ~ meta : " file "  " Specify a file containing the AST of the program, in biniou format " 
    ~ meta : " file "  " Specify a file containing the AST of the program, in biniou format " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -886,7 +888,7 @@ and clang_compilation_dbs = ref []
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  clang_frontend_action  = and  clang_frontend_action  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_symbol_opt  ~ long : " "  ~ deprecated : [ " -clang-frontend-action " ] 
  CLOpt . mk_symbol_opt  ~ long : " "  ~ deprecated : [ " -clang-frontend-action " ] 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Capture ,  manual_clang ) ;  ( Run ,  manual_clang ) ] ) 
    ~ in_help : InferCommand . ( [ ( Capture ,  manual_clang ) ;  ( Run ,  manual_clang ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    (*  doc only shows up in deprecation warnings  *) 
    (*  doc only shows up in deprecation warnings  *) 
 
			
		
	
		
		
			
				
					
					    " use --capture and --linters instead "  ~ symbols : clang_frontend_action_symbols 
    " use --capture and --linters instead "  ~ symbols : clang_frontend_action_symbols 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -911,20 +913,20 @@ and cluster =
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  compilation_database  = and  compilation_database  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_path_list  ~ long : " compilation-database "  ~ deprecated : [ " -clang-compilation-db-files " ] 
  CLOpt . mk_path_list  ~ long : " compilation-database "  ~ deprecated : [ " -clang-compilation-db-files " ] 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Capture ,  manual_clang ) ] ) 
    ~ in_help : InferCommand . ( [ ( Capture ,  manual_clang ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " File that contain compilation commands (can be specified multiple times) " 
    " File that contain compilation commands (can be specified multiple times) " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  compilation_database_escaped  = and  compilation_database_escaped  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_path_list  ~ long : " compilation-database-escaped " 
  CLOpt . mk_path_list  ~ long : " compilation-database-escaped " 
 
			
		
	
		
		
			
				
					
					    ~ deprecated : [ " -clang-compilation-db-files-escaped " ] 
    ~ deprecated : [ " -clang-compilation-db-files-escaped " ] 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Capture ,  manual_clang ) ] ) 
    ~ in_help : InferCommand . ( [ ( Capture ,  manual_clang ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " File that contain compilation commands where all entries are escaped for the shell, eg coming from Xcode (can be specified multiple times) " 
    " File that contain compilation commands where all entries are escaped for the shell, eg coming from Xcode (can be specified multiple times) " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  compute_analytics  = and  compute_analytics  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_bool  ~ long : " compute-analytics "  ~ default : false 
  CLOpt . mk_bool  ~ long : " compute-analytics "  ~ default : false 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Capture ,  manual_clang ) ;  ( Run ,  manual_clang ) ] ) 
    ~ in_help : InferCommand . ( [ ( Capture ,  manual_clang ) ;  ( Run ,  manual_clang ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " Emit analytics as info-level issues, like component kit line count and component kit file cyclomatic complexity " 
    " Emit analytics as info-level issues, like component kit line count and component kit file cyclomatic complexity " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -932,32 +934,32 @@ and compute_analytics =
 
			
		
	
		
		
			
				
					
					    If  a  procedure  was  changed  beforehand ,  keep  the  changed  marking .  * ) 
    If  a  procedure  was  changed  beforehand ,  keep  the  changed  marking .  * ) 
 
			
		
	
		
		
			
				
					
					and  continue  = and  continue  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_bool  ~ deprecated : [ " continue " ]  ~ long : " continue " 
  CLOpt . mk_bool  ~ deprecated : [ " continue " ]  ~ long : " continue " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Analyze ,  manual_generic ) ] ) 
    ~ in_help : InferCommand . ( [ ( Analyze ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " Continue the capture for the reactive analysis, increasing the changed files/procedures. (If a procedure was changed beforehand, keep the changed marking.) " 
    " Continue the capture for the reactive analysis, increasing the changed files/procedures. (If a procedure was changed beforehand, keep the changed marking.) " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  current_to_previous_script  = and  current_to_previous_script  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_string_opt  ~ long : " current-to-previous-script " 
  CLOpt . mk_string_opt  ~ long : " current-to-previous-script " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Diff ,  manual_generic ) ] ) 
    ~ in_help : InferCommand . ( [ ( Diff ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    ~ meta : " shell " 
    ~ meta : " shell " 
 
			
		
	
		
		
			
				
					
					    " Specify a script to checkout a previous version of the project to compare against, assuming we are on the current version already. " 
    " Specify a script to checkout a previous version of the project to compare against, assuming we are on the current version already. " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  cxx_infer_headers  = and  cxx_infer_headers  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_bool  ~ long : " cxx-infer-headers "  ~ default : true 
  CLOpt . mk_bool  ~ long : " cxx-infer-headers "  ~ default : true 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Capture ,  manual_clang ) ] ) 
    ~ in_help : InferCommand . ( [ ( Capture ,  manual_clang ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " Include C++ header models during compilation. Infer swaps some C++ headers for its own in order to get a better model of, eg, the standard library. This can sometimes cause compilation failures. " 
    " Include C++ header models during compilation. Infer swaps some C++ headers for its own in order to get a better model of, eg, the standard library. This can sometimes cause compilation failures. " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  cxx_scope_guards  = and  cxx_scope_guards  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_json  ~ long : " cxx-scope-guards " 
  CLOpt . mk_json  ~ long : " cxx-scope-guards " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Analyze ,  manual_clang ) ] ) 
    ~ in_help : InferCommand . ( [ ( Analyze ,  manual_clang ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " Specify scope guard classes that can be read only by destructors without being reported as dead stores. " 
    " Specify scope guard classes that can be read only by destructors without being reported as dead stores. " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  cxx  = and  cxx  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_bool  ~ long : " cxx "  ~ default : true 
  CLOpt . mk_bool  ~ long : " cxx "  ~ default : true 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Capture ,  manual_clang ) ] ) 
    ~ in_help : InferCommand . ( [ ( Capture ,  manual_clang ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " Analyze C++ methods " 
    " Analyze C++ methods " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -984,12 +986,12 @@ and ( bo_debug
 
			
		
	
		
		
			
				
					
					    ,  write_html_whitelist_regex 
    ,  write_html_whitelist_regex 
 
			
		
	
		
		
			
				
					
					    ,  write_dotty  )  = 
    ,  write_dotty  )  = 
 
			
		
	
		
		
			
				
					
					  let  all_generic_manuals  = 
  let  all_generic_manuals  = 
 
			
		
	
		
		
			
				
					
					    List . filter_map  CLOpt . all_commands  ~ f : ( fun  cmd  -> 
    List . filter_map  InferCommand . all_commands  ~ f : ( fun  cmd  -> 
 
			
				
				
			
		
	
		
		
			
				
					
					        if  CLOpt. equal_command   Explore  cmd  then  None  else  Some  ( cmd ,  manual_generic )  ) 
        if  InferCommand. equal   Explore  cmd  then  None  else  Some  ( cmd ,  manual_generic )  ) 
 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					  in 
  in 
 
			
		
	
		
		
			
				
					
					  let  bo_debug  = 
  let  bo_debug  = 
 
			
		
	
		
		
			
				
					
					    CLOpt . mk_int  ~ default : 0  ~ long : " bo-debug " 
    CLOpt . mk_int  ~ default : 0  ~ long : " bo-debug " 
 
			
		
	
		
		
			
				
					
					      ~ in_help : CLOpt . ( [ ( Analyze ,  manual_buffer_overrun ) ] ) 
      ~ in_help : InferCommand . ( [ ( Analyze ,  manual_buffer_overrun ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					      " Debug level for buffer-overrun checker (0-4) " 
      " Debug level for buffer-overrun checker (0-4) " 
 
			
		
	
		
		
			
				
					
					  and  debug_level_analysis  = 
  and  debug_level_analysis  = 
 
			
		
	
		
		
			
				
					
					    CLOpt . mk_int  ~ long : " debug-level-analysis "  ~ default : 0  ~ in_help : all_generic_manuals 
    CLOpt . mk_int  ~ long : " debug-level-analysis "  ~ default : 0  ~ in_help : all_generic_manuals 
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -999,15 +1001,15 @@ and ( bo_debug
 
			
		
	
		
		
			
				
					
					      " Debug level for the capture. See $(b,--debug-level) for accepted values. " 
      " Debug level for the capture. See $(b,--debug-level) for accepted values. " 
 
			
		
	
		
		
			
				
					
					  and  debug_level_linters  = 
  and  debug_level_linters  = 
 
			
		
	
		
		
			
				
					
					    CLOpt . mk_int  ~ long : " debug-level-linters "  ~ default : 0 
    CLOpt . mk_int  ~ long : " debug-level-linters "  ~ default : 0 
 
			
		
	
		
		
			
				
					
					      ~ in_help : ( CLOpt . ( Capture ,  manual_clang_linters )  ::  all_generic_manuals ) 
      ~ in_help : ( InferCommand . ( Capture ,  manual_clang_linters )  ::  all_generic_manuals ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					      " Debug level for the linters. See $(b,--debug-level) for accepted values. " 
      " Debug level for the linters. See $(b,--debug-level) for accepted values. " 
 
			
		
	
		
		
			
				
					
					  and  developer_mode  = 
  and  developer_mode  = 
 
			
		
	
		
		
			
				
					
					    CLOpt . mk_bool  ~ long : " developer-mode " 
    CLOpt . mk_bool  ~ long : " developer-mode " 
 
			
		
	
		
		
			
				
					
					      ~ default : ( Option . value_map  ~ default : false  ~ f : CLOpt. ( equal_command   Report )  initial_command ) 
      ~ default : ( Option . value_map  ~ default : false  ~ f : InferCommand. ( equal   Report )  initial_command ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					      " Show internal exceptions " 
      " Show internal exceptions " 
 
			
		
	
		
		
			
				
					
					  and  filtering  = 
  and  filtering  = 
 
			
		
	
		
		
			
				
					
					    CLOpt . mk_bool  ~ deprecated_no : [ " nf " ]  ~ long : " filtering "  ~ short : 'f'  ~ default : true 
    CLOpt . mk_bool  ~ deprecated_no : [ " nf " ]  ~ long : " filtering "  ~ short : 'f'  ~ default : true 
 
			
		
	
		
		
			
				
					
					      ~ in_help : CLOpt . ( [ ( Report ,  manual_generic ) ] ) 
      ~ in_help : InferCommand . ( [ ( Report ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					      " Do not show the experimental and blacklisted issue types " 
      " Do not show the experimental and blacklisted issue types " 
 
			
		
	
		
		
			
				
					
					  and  only_cheap_debug  = 
  and  only_cheap_debug  = 
 
			
		
	
		
		
			
				
					
					    CLOpt . mk_bool  ~ long : " only-cheap-debug "  ~ default : true  " Disable expensive debugging output " 
    CLOpt . mk_bool  ~ long : " only-cheap-debug "  ~ default : true  " Disable expensive debugging output " 
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -1018,7 +1020,7 @@ and ( bo_debug
 
			
		
	
		
		
			
				
					
					    CLOpt . mk_bool  ~ long : " print-types "  ~ default : false  " Print types in symbolic heaps " 
    CLOpt . mk_bool  ~ long : " print-types "  ~ default : false  " Print types in symbolic heaps " 
 
			
		
	
		
		
			
				
					
					  and  keep_going  = 
  and  keep_going  = 
 
			
		
	
		
		
			
				
					
					    CLOpt . mk_bool  ~ deprecated_no : [ " -no-failures-allowed " ]  ~ long : " keep-going " 
    CLOpt . mk_bool  ~ deprecated_no : [ " -no-failures-allowed " ]  ~ long : " keep-going " 
 
			
		
	
		
		
			
				
					
					      ~ in_help : CLOpt . ( [ ( Analyze ,  manual_generic ) ] ) 
      ~ in_help : InferCommand . ( [ ( Analyze ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					      " Keep going when the analysis encounters a failure " 
      " Keep going when the analysis encounters a failure " 
 
			
		
	
		
		
			
				
					
					  and  reports_include_ml_loc  = 
  and  reports_include_ml_loc  = 
 
			
		
	
		
		
			
				
					
					    CLOpt . mk_bool  ~ deprecated : [ " with_infer_src_loc " ]  ~ long : " reports-include-ml-loc " 
    CLOpt . mk_bool  ~ deprecated : [ " with_infer_src_loc " ]  ~ long : " reports-include-ml-loc " 
 
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -1067,11 +1069,11 @@ and ( bo_debug
 
			
		
	
		
		
			
				
					
					      [ developer_mode ;  print_buckets ;  reports_include_ml_loc ]  [ filtering ;  keep_going ] 
      [ developer_mode ;  print_buckets ;  reports_include_ml_loc ]  [ filtering ;  keep_going ] 
 
			
		
	
		
		
			
				
					
					  and  default_linters  = 
  and  default_linters  = 
 
			
		
	
		
		
			
				
					
					    CLOpt . mk_bool  ~ long : " default-linters " 
    CLOpt . mk_bool  ~ long : " default-linters " 
 
			
		
	
		
		
			
				
					
					      ~ in_help : CLOpt . ( [ ( Capture ,  manual_clang_linters ) ] ) 
      ~ in_help : InferCommand . ( [ ( Capture ,  manual_clang_linters ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					      ~ default : true  " Use the default linters for the analysis. " 
      ~ default : true  " Use the default linters for the analysis. " 
 
			
		
	
		
		
			
				
					
					  and  frontend_tests  = 
  and  frontend_tests  = 
 
			
		
	
		
		
			
				
					
					    CLOpt . mk_bool_group  ~ long : " frontend-tests " 
    CLOpt . mk_bool_group  ~ long : " frontend-tests " 
 
			
		
	
		
		
			
				
					
					      ~ in_help : CLOpt . ( [ ( Capture ,  manual_clang ) ] ) 
      ~ in_help : InferCommand . ( [ ( Capture ,  manual_clang ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					      " Save filename.ext.test.dot with the cfg in dotty format for frontend tests (also sets $(b,--print-types)) " 
      " Save filename.ext.test.dot with the cfg in dotty format for frontend tests (also sets $(b,--print-types)) " 
 
			
		
	
		
		
			
				
					
					      [ print_types ]  [] 
      [ print_types ]  [] 
 
			
		
	
		
		
			
				
					
					  and  models_mode  = 
  and  models_mode  = 
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -1079,7 +1081,7 @@ and ( bo_debug
 
			
		
	
		
		
			
				
					
					  and  print_logs  = 
  and  print_logs  = 
 
			
		
	
		
		
			
				
					
					    CLOpt . mk_bool  ~ long : " print-logs " 
    CLOpt . mk_bool  ~ long : " print-logs " 
 
			
		
	
		
		
			
				
					
					      ~ in_help : 
      ~ in_help : 
 
			
		
	
		
		
			
				
					
					        CLOpt . ( 
        InferCommand . ( 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					          [  ( Analyze ,  manual_generic ) 
          [  ( Analyze ,  manual_generic ) 
 
			
		
	
		
		
			
				
					
					          ;  ( Capture ,  manual_generic ) 
          ;  ( Capture ,  manual_generic ) 
 
			
		
	
		
		
			
				
					
					          ;  ( Run ,  manual_generic ) 
          ;  ( Run ,  manual_generic ) 
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -1088,7 +1090,7 @@ and ( bo_debug
 
			
		
	
		
		
			
				
					
					  in 
  in 
 
			
		
	
		
		
			
				
					
					  let  linters_developer_mode  = 
  let  linters_developer_mode  = 
 
			
		
	
		
		
			
				
					
					    CLOpt . mk_bool_group  ~ long : " linters-developer-mode " 
    CLOpt . mk_bool_group  ~ long : " linters-developer-mode " 
 
			
		
	
		
		
			
				
					
					      ~ in_help : CLOpt . ( [ ( Capture ,  manual_clang_linters ) ] ) 
      ~ in_help : InferCommand . ( [ ( Capture ,  manual_clang_linters ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					      " Debug mode for developing new linters. (Sets the analyzer to $(b,linters); also sets $(b,--debug), $(b,--debug-level-linters 2), $(b,--developer-mode), and unsets $(b,--allowed-failures) and $(b,--default-linters). " 
      " Debug mode for developing new linters. (Sets the analyzer to $(b,linters); also sets $(b,--debug), $(b,--debug-level-linters 2), $(b,--developer-mode), and unsets $(b,--allowed-failures) and $(b,--default-linters). " 
 
			
		
	
		
		
			
				
					
					      ~ f : ( fun  debug  -> 
      ~ f : ( fun  debug  -> 
 
			
		
	
		
		
			
				
					
					        debug_level_linters  :=  if  debug  then  2  else  0  ; 
        debug_level_linters  :=  if  debug  then  2  else  0  ; 
 
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -1121,13 +1123,13 @@ and ( bo_debug
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  dependencies  = and  dependencies  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_bool  ~ deprecated : [ " dependencies " ]  ~ long : " dependencies " 
  CLOpt . mk_bool  ~ deprecated : [ " dependencies " ]  ~ long : " dependencies " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Capture ,  manual_java ) ] ) 
    ~ in_help : InferCommand . ( [ ( Capture ,  manual_java ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " Translate all the dependencies during the capture. The classes in the given jar file will be translated. No sources needed. " 
    " Translate all the dependencies during the capture. The classes in the given jar file will be translated. No sources needed. " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  differential_filter_files  = and  differential_filter_files  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_string_opt  ~ long : " differential-filter-files " 
  CLOpt . mk_string_opt  ~ long : " differential-filter-files " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Report ,  manual_generic ) ] ) 
    ~ in_help : InferCommand . ( [ ( Report ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " Specify the file containing the list of source files for which a differential report is desired. Source files should be specified relative to project root or be absolute " 
    " Specify the file containing the list of source files for which a differential report is desired. Source files should be specified relative to project root or be absolute " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -1146,7 +1148,7 @@ and () =
 
			
		
	
		
		
			
				
					
					          let  issue  =  IssueType . from_string  issue_id  in 
          let  issue  =  IssueType . from_string  issue_id  in 
 
			
		
	
		
		
			
				
					
					          IssueType . set_enabled  issue  b  ;  issue_id  ) 
          IssueType . set_enabled  issue  b  ;  issue_id  ) 
 
			
		
	
		
		
			
				
					
					        ? default  ~ meta : " issue_type " 
        ? default  ~ meta : " issue_type " 
 
			
		
	
		
		
			
				
					
					        ~ in_help : CLOpt . ( [ ( Report ,  manual_generic ) ] ) 
        ~ in_help : InferCommand . ( [ ( Report ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					        doc 
        doc 
 
			
		
	
		
		
			
				
					
					    in 
    in 
 
			
		
	
		
		
			
				
					
					    () 
    () 
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -1172,7 +1174,7 @@ and dotty_cfg_libs =
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  dump_duplicate_symbols  = and  dump_duplicate_symbols  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_bool  ~ long : " dump-duplicate-symbols " 
  CLOpt . mk_bool  ~ long : " dump-duplicate-symbols " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Capture ,  manual_clang ) ] ) 
    ~ in_help : InferCommand . ( [ ( Capture ,  manual_clang ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " Dump all symbols with the same name that are defined in more than one file. " 
    " Dump all symbols with the same name that are defined in more than one file. " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -1206,7 +1208,7 @@ and eradicate_verbose =
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  fail_on_bug  = and  fail_on_bug  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_bool  ~ deprecated : [ " -fail-on-bug " ]  ~ long : " fail-on-issue "  ~ default : false 
  CLOpt . mk_bool  ~ deprecated : [ " -fail-on-bug " ]  ~ long : " fail-on-issue "  ~ default : false 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Run ,  manual_generic ) ] ) 
    ~ in_help : InferCommand . ( [ ( Run ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    ( Printf . sprintf  " Exit with error code %d if Infer found something to report " 
    ( Printf . sprintf  " Exit with error code %d if Infer found something to report " 
 
			
		
	
		
		
			
				
					
					       fail_on_issue_exit_code ) 
       fail_on_issue_exit_code ) 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -1219,7 +1221,7 @@ and fcp_syntax_only = CLOpt.mk_bool ~long:"fcp-syntax-only" "Skip creation of ob
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  file_renamings  = and  file_renamings  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_path_opt  ~ long : " file-renamings " 
  CLOpt . mk_path_opt  ~ long : " file-renamings " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( ReportDiff ,  manual_generic ) ] ) 
    ~ in_help : InferCommand . ( [ ( ReportDiff ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " JSON with a list of file renamings to use while computing differential reports " 
    " JSON with a list of file renamings to use while computing differential reports " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -1229,20 +1231,20 @@ and filter_paths =
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  filter_report  = and  filter_report  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_string_list  ~ long : " filter-report " 
  CLOpt . mk_string_list  ~ long : " filter-report " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Report ,  manual_generic ) ;  ( Run ,  manual_generic ) ] ) 
    ~ in_help : InferCommand . ( [ ( Report ,  manual_generic ) ;  ( Run ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " Specify a filter for issues to report. If multiple filters are specified, they are applied in the order in which they are specified. Each filter is applied to each issue detected, and only issues which are accepted by all filters are reported. Each filter is of the form: `<issue_type_regex>:<filename_regex>:<reason_string>`. The first two components are OCaml Str regular expressions, with an optional `!` character prefix. If a regex has a `!` prefix, the polarity is inverted, and the filter becomes a  \" blacklist \"  instead of a  \" whitelist \" . Each filter is interpreted as an implication: an issue matches if it does not match the `issue_type_regex` or if it does match the `filename_regex`. The filenames that are tested by the regex are relative to the `--project-root` directory. The `<reason_string>` is a non-empty string used to explain why the issue was filtered. " 
    " Specify a filter for issues to report. If multiple filters are specified, they are applied in the order in which they are specified. Each filter is applied to each issue detected, and only issues which are accepted by all filters are reported. Each filter is of the form: `<issue_type_regex>:<filename_regex>:<reason_string>`. The first two components are OCaml Str regular expressions, with an optional `!` character prefix. If a regex has a `!` prefix, the polarity is inverted, and the filter becomes a  \" blacklist \"  instead of a  \" whitelist \" . Each filter is interpreted as an implication: an issue matches if it does not match the `issue_type_regex` or if it does match the `filename_regex`. The filenames that are tested by the regex are relative to the `--project-root` directory. The `<reason_string>` is a non-empty string used to explain why the issue was filtered. " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  flavors  = and  flavors  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_bool  ~ deprecated : [ " -use-flavors " ]  ~ long : " flavors " 
  CLOpt . mk_bool  ~ deprecated : [ " -use-flavors " ]  ~ long : " flavors " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Capture ,  manual_buck_flavors ) ] ) 
    ~ in_help : InferCommand . ( [ ( Capture ,  manual_buck_flavors ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " Buck integration using Buck flavors (clang only), eg $(i,`infer --flavors -- buck build //foo:bar#infer`) " 
    " Buck integration using Buck flavors (clang only), eg $(i,`infer --flavors -- buck build //foo:bar#infer`) " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  force_delete_results_dir  = and  force_delete_results_dir  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_bool  ~ long : " force-delete-results-dir "  ~ default : false 
  CLOpt . mk_bool  ~ long : " force-delete-results-dir "  ~ default : false 
 
			
		
	
		
		
			
				
					
					    ~ in_help : 
    ~ in_help : 
 
			
		
	
		
		
			
				
					
					      CLOpt . ( 
      InferCommand . ( 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					        [  ( Capture ,  manual_generic ) 
        [  ( Capture ,  manual_generic ) 
 
			
		
	
		
		
			
				
					
					        ;  ( Compile ,  manual_generic ) 
        ;  ( Compile ,  manual_generic ) 
 
			
		
	
		
		
			
				
					
					        ;  ( Diff ,  manual_generic ) 
        ;  ( Diff ,  manual_generic ) 
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -1253,7 +1255,7 @@ and force_delete_results_dir =
 
			
		
	
		
		
			
				
					
					and  force_integration  = and  force_integration  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_symbol_opt  ~ long : " force-integration "  ~ meta : " command " 
  CLOpt . mk_symbol_opt  ~ long : " force-integration "  ~ meta : " command " 
 
			
		
	
		
		
			
				
					
					    ~ symbols : ( List . Assoc . inverse  build_system_exe_assoc ) 
    ~ symbols : ( List . Assoc . inverse  build_system_exe_assoc ) 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Capture ,  manual_generic ) ;  ( Run ,  manual_generic ) ] ) 
    ~ in_help : InferCommand . ( [ ( Capture ,  manual_generic ) ;  ( Run ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    ( Printf . sprintf 
    ( Printf . sprintf 
 
			
		
	
		
		
			
				
					
					       " Proceed as if the first argument after $(b,--) was $(i,command). Possible values: %s. " 
       " Proceed as if the first argument after $(b,--) was $(i,command). Possible values: %s. " 
 
			
		
	
		
		
			
				
					
					       (  List . map  build_system_exe_assoc  ~ f : ( fun  ( _ ,  s )  ->  Printf . sprintf  " $(i,%s) "  s ) 
       (  List . map  build_system_exe_assoc  ~ f : ( fun  ( _ ,  s )  ->  Printf . sprintf  " $(i,%s) "  s ) 
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -1262,7 +1264,7 @@ and force_integration =
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  from_json_report  = and  from_json_report  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_path_opt  ~ long : " from-json-report " 
  CLOpt . mk_path_opt  ~ long : " from-json-report " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Report ,  manual_generic ) ] ) 
    ~ in_help : InferCommand . ( [ ( Report ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    ~ meta : " report.json " 
    ~ meta : " report.json " 
 
			
		
	
		
		
			
				
					
					    " Load analysis results from a report file (default is to load the results from the specs files generated by the analysis). " 
    " Load analysis results from a report file (default is to load the results from the specs files generated by the analysis). " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -1274,30 +1276,30 @@ and frontend_stats =
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  gen_previous_build_command_script  = and  gen_previous_build_command_script  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_string_opt  ~ long : " gen-previous-build-command-script " 
  CLOpt . mk_string_opt  ~ long : " gen-previous-build-command-script " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Diff ,  manual_generic ) ] ) 
    ~ in_help : InferCommand . ( [ ( Diff ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    ~ meta : " shell " 
    ~ meta : " shell " 
 
			
		
	
		
		
			
				
					
					    " Specify a script that outputs the build command to capture in the previous version of the project. The script should output the command on stdout. For example  \" echo make \" . " 
    " Specify a script that outputs the build command to capture in the previous version of the project. The script should output the command on stdout. For example  \" echo make \" . " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  generated_classes  = and  generated_classes  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_path_opt  ~ long : " generated-classes " 
  CLOpt . mk_path_opt  ~ long : " generated-classes " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Capture ,  manual_java ) ] ) 
    ~ in_help : InferCommand . ( [ ( Capture ,  manual_java ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " Specify where to load the generated class files " 
    " Specify where to load the generated class files " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  headers  = and  headers  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_bool  ~ deprecated : [ " headers " ;  " hd " ]  ~ deprecated_no : [ " no_headers " ;  " nhd " ]  ~ long : " headers " 
  CLOpt . mk_bool  ~ deprecated : [ " headers " ;  " hd " ]  ~ deprecated_no : [ " no_headers " ;  " nhd " ]  ~ long : " headers " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Capture ,  manual_clang ) ] ) 
    ~ in_help : InferCommand . ( [ ( Capture ,  manual_clang ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " Analyze code in header files " 
    " Analyze code in header files " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  help  = and  help  =  
			
		
	
		
		
			
				
					
					  let  var  =  ref  ` None  in 
  let  var  =  ref  ` None  in 
 
			
		
	
		
		
			
				
					
					  CLOpt . mk_set  var  ` Help  ~ long : " help " 
  CLOpt . mk_set  var  ` Help  ~ long : " help " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : ( List . map  CLOpt . all_commands  ~ f : ( fun  command  ->  ( command ,  manual_generic ) ) ) 
    ~ in_help : ( List . map  InferCommand . all_commands  ~ f : ( fun  command  ->  ( command ,  manual_generic ) ) ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " Show this manual "  ; 
    " Show this manual "  ; 
 
			
		
	
		
		
			
				
					
					  CLOpt . mk_set  var  ` HelpFull  ~ long : " help-full " 
  CLOpt . mk_set  var  ` HelpFull  ~ long : " help-full " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : ( List . map  CLOpt . all_commands  ~ f : ( fun  command  ->  ( command ,  manual_generic ) ) ) 
    ~ in_help : ( List . map  InferCommand . all_commands  ~ f : ( fun  command  ->  ( command ,  manual_generic ) ) ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    ( Printf . sprintf  " Show this manual with all internal options in the %s section "  manual_internal )  ; 
    ( Printf . sprintf  " Show this manual with all internal options in the %s section "  manual_internal )  ; 
 
			
		
	
		
		
			
				
					
					  var 
  var 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -1306,12 +1308,14 @@ and help_format =
 
			
		
	
		
		
			
				
					
					  CLOpt . mk_symbol  ~ long : " help-format " 
  CLOpt . mk_symbol  ~ long : " help-format " 
 
			
		
	
		
		
			
				
					
					    ~ symbols : [ ( " auto " ,  ` Auto ) ;  ( " groff " ,  ` Groff ) ;  ( " pager " ,  ` Pager ) ;  ( " plain " ,  ` Plain ) ] 
    ~ symbols : [ ( " auto " ,  ` Auto ) ;  ( " groff " ,  ` Groff ) ;  ( " pager " ,  ` Pager ) ;  ( " plain " ,  ` Plain ) ] 
 
			
		
	
		
		
			
				
					
					    ~ eq : PVariant . (  =  )  ~ default : ` Auto 
    ~ eq : PVariant . (  =  )  ~ default : ` Auto 
 
			
		
	
		
		
			
				
					
					    ~ in_help : ( List . map  CLOpt . all_commands  ~ f : ( fun  command  ->  ( command ,  manual_generic ) ) ) 
    ~ in_help : ( List . map  InferCommand . all_commands  ~ f : ( fun  command  ->  ( command ,  manual_generic ) ) ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " Show this help in the specified format. $(b,auto) sets the format to $(b,plain) if the environment variable $(b,TERM) is  \" dumb \"  or undefined, and to $(b,pager) otherwise. " 
    " Show this help in the specified format. $(b,auto) sets the format to $(b,plain) if the environment variable $(b,TERM) is  \" dumb \"  or undefined, and to $(b,pager) otherwise. " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  html  = and  html  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_bool  ~ long : " html "  ~ in_help : CLOpt . ( [ ( Explore ,  manual_generic ) ] )  " Generate html report. " 
  CLOpt . mk_bool  ~ long : " html " 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    ~ in_help : InferCommand . ( [ ( Explore ,  manual_generic ) ] ) 
 
			
		
	
		
		
			
				
					
					    " Generate html report. " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  icfg_dotty_outfile  = and  icfg_dotty_outfile  =  
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -1331,19 +1335,19 @@ and infer_cache =
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  iphoneos_target_sdk_version  = and  iphoneos_target_sdk_version  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_string_opt  ~ long : " iphoneos-target-sdk-version " 
  CLOpt . mk_string_opt  ~ long : " iphoneos-target-sdk-version " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Capture ,  manual_clang_linters ) ] ) 
    ~ in_help : InferCommand . ( [ ( Capture ,  manual_clang_linters ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " Specify the target SDK version to use for iphoneos " 
    " Specify the target SDK version to use for iphoneos " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  iphoneos_target_sdk_version_path_regex  = and  iphoneos_target_sdk_version_path_regex  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_string_list  ~ long : " iphoneos-target-sdk-version-path-regex " 
  CLOpt . mk_string_list  ~ long : " iphoneos-target-sdk-version-path-regex " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Capture ,  manual_clang_linters ) ] ) 
    ~ in_help : InferCommand . ( [ ( Capture ,  manual_clang_linters ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " To pass a specific target SDK version to use for iphoneos in a particular path, with the format path:version (can be specified multiple times) " 
    " To pass a specific target SDK version to use for iphoneos in a particular path, with the format path:version (can be specified multiple times) " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  issues_fields  = and  issues_fields  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_symbol_seq  ~ long : " issues-fields " 
  CLOpt . mk_symbol_seq  ~ long : " issues-fields " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Report ,  manual_generic ) ] ) 
    ~ in_help : InferCommand . ( [ ( Report ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    ~ default : 
    ~ default : 
 
			
		
	
		
		
			
				
					
					      [  ` Issue_field_file 
      [  ` Issue_field_file 
 
			
		
	
		
		
			
				
					
					      ;  ` Issue_field_procedure 
      ;  ` Issue_field_procedure 
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -1355,13 +1359,13 @@ and issues_fields =
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  issues_tests  = and  issues_tests  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_path_opt  ~ long : " issues-tests " 
  CLOpt . mk_path_opt  ~ long : " issues-tests " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Report ,  manual_generic ) ] ) 
    ~ in_help : InferCommand . ( [ ( Report ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    ~ meta : " file "  " Write a list of issues in a format suitable for tests to $(i,file) " 
    ~ meta : " file "  " Write a list of issues in a format suitable for tests to $(i,file) " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  issues_txt  = and  issues_txt  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_path_opt  ~ deprecated : [ " bugs_txt " ]  ~ long : " issues-txt " 
  CLOpt . mk_path_opt  ~ deprecated : [ " bugs_txt " ]  ~ long : " issues-txt " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Report ,  manual_generic ) ] ) 
    ~ in_help : InferCommand . ( [ ( Report ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    ~ meta : " file "  " Write a list of issues in text format to $(i,file) (default: infer-out/bugs.txt) " 
    ~ meta : " file "  " Write a list of issues in text format to $(i,file) (default: infer-out/bugs.txt) " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -1372,13 +1376,13 @@ and iterations =
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  java_jar_compiler  = and  java_jar_compiler  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_path_opt  ~ long : " java-jar-compiler " 
  CLOpt . mk_path_opt  ~ long : " java-jar-compiler " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Capture ,  manual_java ) ] ) 
    ~ in_help : InferCommand . ( [ ( Capture ,  manual_java ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    ~ meta : " path "  " Specify the Java compiler jar used to generate the bytecode " 
    ~ meta : " path "  " Specify the Java compiler jar used to generate the bytecode " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  jobs  = and  jobs  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_int  ~ deprecated : [ " -multicore " ]  ~ long : " jobs "  ~ short : 'j'  ~ default : ncpu 
  CLOpt . mk_int  ~ deprecated : [ " -multicore " ]  ~ long : " jobs "  ~ short : 'j'  ~ default : ncpu 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Analyze ,  manual_generic ) ] ) 
    ~ in_help : InferCommand . ( [ ( Analyze ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    ~ meta : " int "  " Run the specified number of analysis jobs simultaneously " 
    ~ meta : " int "  " Run the specified number of analysis jobs simultaneously " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -1392,7 +1396,7 @@ and join_cond =
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  log_events  = and  log_events  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_bool  ~ long : " log-events " 
  CLOpt . mk_bool  ~ long : " log-events " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Run ,  manual_generic ) ] ) 
    ~ in_help : InferCommand . ( [ ( Run ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " Turn on the feature that logs events in a machine-readable format " 
    " Turn on the feature that logs events in a machine-readable format " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -1403,20 +1407,20 @@ and log_file =
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  linter  = and  linter  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_string_opt  ~ long : " linter " 
  CLOpt . mk_string_opt  ~ long : " linter " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Capture ,  manual_clang_linters ) ] ) 
    ~ in_help : InferCommand . ( [ ( Capture ,  manual_clang_linters ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " From the linters available, only run this one linter. (Useful together with $(b,--linters-developer-mode)) " 
    " From the linters available, only run this one linter. (Useful together with $(b,--linters-developer-mode)) " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  linters_def_file  = and  linters_def_file  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_path_list  ~ default : []  ~ long : " linters-def-file " 
  CLOpt . mk_path_list  ~ default : []  ~ long : " linters-def-file " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Capture ,  manual_clang_linters ) ] ) 
    ~ in_help : InferCommand . ( [ ( Capture ,  manual_clang_linters ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    ~ meta : " file "  " Specify the file containing linters definition (e.g. 'linters.al') " 
    ~ meta : " file "  " Specify the file containing linters definition (e.g. 'linters.al') " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  linters_def_folder  = and  linters_def_folder  =  
			
		
	
		
		
			
				
					
					  let  linters_def_folder  = 
  let  linters_def_folder  = 
 
			
		
	
		
		
			
				
					
					    CLOpt . mk_path_list  ~ default : []  ~ long : " linters-def-folder " 
    CLOpt . mk_path_list  ~ default : []  ~ long : " linters-def-folder " 
 
			
		
	
		
		
			
				
					
					      ~ in_help : CLOpt . ( [ ( Capture ,  manual_clang_linters ) ] ) 
      ~ in_help : InferCommand . ( [ ( Capture ,  manual_clang_linters ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					      ~ meta : " dir "  " Specify the folder containing linters files with extension .al " 
      ~ meta : " dir "  " Specify the folder containing linters files with extension .al " 
 
			
		
	
		
		
			
				
					
					  in 
  in 
 
			
		
	
		
		
			
				
					
					  let  ()  = 
  let  ()  = 
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -1428,33 +1432,33 @@ and linters_def_folder =
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  linters_doc_url  = and  linters_doc_url  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_string_list  ~ long : " linters-doc-url " 
  CLOpt . mk_string_list  ~ long : " linters-doc-url " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Capture ,  manual_clang_linters ) ] ) 
    ~ in_help : InferCommand . ( [ ( Capture ,  manual_clang_linters ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " Specify custom documentation URL for some linter that overrides the default one. Useful if your project has specific ways of fixing a lint error that is not true in general or public info. Format: linter_name:doc_url. " 
    " Specify custom documentation URL for some linter that overrides the default one. Useful if your project has specific ways of fixing a lint error that is not true in general or public info. Format: linter_name:doc_url. " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  linters_ignore_clang_failures  = and  linters_ignore_clang_failures  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_bool  ~ long : " linters-ignore-clang-failures " 
  CLOpt . mk_bool  ~ long : " linters-ignore-clang-failures " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Capture ,  manual_clang_linters ) ] ) 
    ~ in_help : InferCommand . ( [ ( Capture ,  manual_clang_linters ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    ~ default : false  " Continue linting files even if some compilation fails. " 
    ~ default : false  " Continue linting files even if some compilation fails. " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  linters_validate_syntax_only  = and  linters_validate_syntax_only  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_bool  ~ long : " linters-validate-syntax-only " 
  CLOpt . mk_bool  ~ long : " linters-validate-syntax-only " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Capture ,  manual_clang_linters ) ] ) 
    ~ in_help : InferCommand . ( [ ( Capture ,  manual_clang_linters ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    ~ default : false 
    ~ default : false 
 
			
		
	
		
		
			
				
					
					    " Validate syntax of AL files, then emit possible errors in JSON format to stdout " 
    " Validate syntax of AL files, then emit possible errors in JSON format to stdout " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  load_average  = and  load_average  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_float_opt  ~ long : " load-average "  ~ short : 'l' 
  CLOpt . mk_float_opt  ~ long : " load-average "  ~ short : 'l' 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Capture ,  manual_generic ) ] ) 
    ~ in_help : InferCommand . ( [ ( Capture ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    ~ meta : " float " 
    ~ meta : " float " 
 
			
		
	
		
		
			
				
					
					    " Do not start new parallel jobs if the load average is greater than that specified (Buck and make only) " 
    " Do not start new parallel jobs if the load average is greater than that specified (Buck and make only) " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  load_results  = and  load_results  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_path_opt  ~ deprecated : [ " load_results " ]  ~ long : " load-results " 
  CLOpt . mk_path_opt  ~ deprecated : [ " load_results " ]  ~ long : " load-results " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Report ,  manual_generic ) ] ) 
    ~ in_help : InferCommand . ( [ ( Report ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    ~ meta : " file.iar "  " Load analysis results from Infer Analysis Results file file.iar " 
    ~ meta : " file.iar "  " Load analysis results from Infer Analysis Results file file.iar " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -1465,20 +1469,20 @@ and margin =
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  max_nesting  = and  max_nesting  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_int_opt  ~ long : " max-nesting " 
  CLOpt . mk_int_opt  ~ long : " max-nesting " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Explore ,  manual_generic ) ] ) 
    ~ in_help : InferCommand . ( [ ( Explore ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " Level of nested procedure calls to show. Trace elements beyond the maximum nesting level are skipped. If omitted, all levels are shown. " 
    " Level of nested procedure calls to show. Trace elements beyond the maximum nesting level are skipped. If omitted, all levels are shown. " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  merge  = and  merge  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_bool  ~ deprecated : [ " merge " ]  ~ long : " merge " 
  CLOpt . mk_bool  ~ deprecated : [ " merge " ]  ~ long : " merge " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Analyze ,  manual_buck_flavors ) ] ) 
    ~ in_help : InferCommand . ( [ ( Analyze ,  manual_buck_flavors ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " Merge the captured results directories specified in the dependency file " 
    " Merge the captured results directories specified in the dependency file " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  ml_buckets  = and  ml_buckets  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_symbol_seq  ~ deprecated : [ " ml_buckets " ;  " -ml_buckets " ]  ~ long : " ml-buckets " 
  CLOpt . mk_symbol_seq  ~ deprecated : [ " ml_buckets " ;  " -ml_buckets " ]  ~ long : " ml-buckets " 
 
			
		
	
		
		
			
				
					
					    ~ default : [ ` MLeak_cf ] 
    ~ default : [ ` MLeak_cf ] 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Analyze ,  manual_clang ) ] ) 
    ~ in_help : InferCommand . ( [ ( Analyze ,  manual_clang ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    { | Specify  the  memory  leak  buckets  to  be  checked  in  C + + : 
    { | Specify  the  memory  leak  buckets  to  be  checked  in  C + + : 
 
			
		
	
		
		
			
				
					
					-  $ ( b , cpp )  from  C + +  code -  $ ( b , cpp )  from  C + +  code  
			
		
	
		
		
			
				
					
					| } | }  
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -1507,7 +1511,7 @@ and only_footprint =
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  only_show  = and  only_show  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_bool  ~ long : " only-show " 
  CLOpt . mk_bool  ~ long : " only-show " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Explore ,  manual_generic ) ] ) 
    ~ in_help : InferCommand . ( [ ( Explore ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " Show the list of reports and exit " 
    " Show the list of reports and exit " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -1553,7 +1557,7 @@ and per_procedure_parallelism =
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  pmd_xml  = and  pmd_xml  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_bool  ~ long : " pmd-xml " 
  CLOpt . mk_bool  ~ long : " pmd-xml " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Run ,  manual_generic ) ] ) 
    ~ in_help : InferCommand . ( [ ( Run ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " Output issues in (PMD) XML format " 
    " Output issues in (PMD) XML format " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -1564,14 +1568,14 @@ and precondition_stats =
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  previous_to_current_script  = and  previous_to_current_script  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_string_opt  ~ long : " previous-to-current-script " 
  CLOpt . mk_string_opt  ~ long : " previous-to-current-script " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Diff ,  manual_generic ) ] ) 
    ~ in_help : InferCommand . ( [ ( Diff ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    ~ meta : " shell " 
    ~ meta : " shell " 
 
			
		
	
		
		
			
				
					
					    " Specify a script to checkout the current version of the project. The project is supposed to already be at that current version when running $(b,infer diff); the script is used after having analyzed the current and previous versions of the project, to restore the project to the current version. " 
    " Specify a script to checkout the current version of the project. The project is supposed to already be at that current version when running $(b,infer diff); the script is used after having analyzed the current and previous versions of the project, to restore the project to the current version. " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  print_active_checkers  = and  print_active_checkers  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_bool  ~ long : " print-active-checkers " 
  CLOpt . mk_bool  ~ long : " print-active-checkers " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Analyze ,  manual_generic ) ] ) 
    ~ in_help : InferCommand . ( [ ( Analyze ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " Print the active checkers before starting the analysis " 
    " Print the active checkers before starting the analysis " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -1582,7 +1586,7 @@ and print_builtins =
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  print_log_identifier  = and  print_log_identifier  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_bool  ~ long : " print-log-identifier " 
  CLOpt . mk_bool  ~ long : " print-log-identifier " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Run ,  manual_generic ) ] ) 
    ~ in_help : InferCommand . ( [ ( Run ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " Print the unique identifier that is common to all logged events " 
    " Print the unique identifier that is common to all logged events " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -1604,7 +1608,7 @@ and procs_csv =
 
			
		
	
		
		
			
				
					
					and  progress_bar  = and  progress_bar  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_bool  ~ deprecated : [ " pb " ]  ~ deprecated_no : [ " no_progress_bar " ;  " npb " ]  ~ short : 'p' 
  CLOpt . mk_bool  ~ deprecated : [ " pb " ]  ~ deprecated_no : [ " no_progress_bar " ;  " npb " ]  ~ short : 'p' 
 
			
		
	
		
		
			
				
					
					    ~ long : " progress-bar "  ~ default : true 
    ~ long : " progress-bar "  ~ default : true 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Run ,  manual_generic ) ] ) 
    ~ in_help : InferCommand . ( [ ( Run ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " Show a progress bar " 
    " Show a progress bar " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -1612,7 +1616,7 @@ and project_root =
 
			
		
	
		
		
			
				
					
					  CLOpt . mk_path  ~ deprecated : [ " project_root " ;  " -project_root " ;  " pr " ]  ~ long : " project-root "  ~ short : 'C' 
  CLOpt . mk_path  ~ deprecated : [ " project_root " ;  " -project_root " ;  " pr " ]  ~ long : " project-root "  ~ short : 'C' 
 
			
		
	
		
		
			
				
					
					    ~ default : CLOpt . init_work_dir 
    ~ default : CLOpt . init_work_dir 
 
			
		
	
		
		
			
				
					
					    ~ in_help : 
    ~ in_help : 
 
			
		
	
		
		
			
				
					
					      CLOpt . ( 
      InferCommand . ( 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					        [  ( Analyze ,  manual_generic ) 
        [  ( Analyze ,  manual_generic ) 
 
			
		
	
		
		
			
				
					
					        ;  ( Capture ,  manual_generic ) 
        ;  ( Capture ,  manual_generic ) 
 
			
		
	
		
		
			
				
					
					        ;  ( Run ,  manual_generic ) 
        ;  ( Run ,  manual_generic ) 
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -1622,37 +1626,37 @@ and project_root =
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  quandary_endpoints  = and  quandary_endpoints  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_json  ~ long : " quandary-endpoints " 
  CLOpt . mk_json  ~ long : " quandary-endpoints " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Analyze ,  manual_quandary ) ] ) 
    ~ in_help : InferCommand . ( [ ( Analyze ,  manual_quandary ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " Specify endpoint classes for Quandary " 
    " Specify endpoint classes for Quandary " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  quandary_sanitizers  = and  quandary_sanitizers  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_json  ~ long : " quandary-sanitizers " 
  CLOpt . mk_json  ~ long : " quandary-sanitizers " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Analyze ,  manual_quandary ) ] ) 
    ~ in_help : InferCommand . ( [ ( Analyze ,  manual_quandary ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " Specify custom sanitizers for Quandary " 
    " Specify custom sanitizers for Quandary " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  quandary_sources  = and  quandary_sources  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_json  ~ long : " quandary-sources " 
  CLOpt . mk_json  ~ long : " quandary-sources " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Analyze ,  manual_quandary ) ] ) 
    ~ in_help : InferCommand . ( [ ( Analyze ,  manual_quandary ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " Specify custom sources for Quandary " 
    " Specify custom sources for Quandary " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  quandary_sinks  = and  quandary_sinks  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_json  ~ long : " quandary-sinks " 
  CLOpt . mk_json  ~ long : " quandary-sinks " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Analyze ,  manual_quandary ) ] ) 
    ~ in_help : InferCommand . ( [ ( Analyze ,  manual_quandary ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " Specify custom sinks for Quandary " 
    " Specify custom sinks for Quandary " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  quiet  = and  quiet  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_bool  ~ long : " quiet "  ~ short : 'q'  ~ default : false 
  CLOpt . mk_bool  ~ long : " quiet "  ~ short : 'q'  ~ default : false 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Analyze ,  manual_generic ) ;  ( Report ,  manual_generic ) ] ) 
    ~ in_help : InferCommand . ( [ ( Analyze ,  manual_generic ) ;  ( Report ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " Do not print specs on standard output (default: only print for the $(b,report) command) " 
    " Do not print specs on standard output (default: only print for the $(b,report) command) " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  reactive  = and  reactive  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_bool  ~ deprecated : [ " reactive " ]  ~ long : " reactive "  ~ short : 'r' 
  CLOpt . mk_bool  ~ deprecated : [ " reactive " ]  ~ long : " reactive "  ~ short : 'r' 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Analyze ,  manual_generic ) ] ) 
    ~ in_help : InferCommand . ( [ ( Analyze ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " Reactive mode: the analysis starts from the files captured since the $(i,infer) command started " 
    " Reactive mode: the analysis starts from the files captured since the $(i,infer) command started " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -1663,13 +1667,13 @@ and reactive_capture =
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  report  = and  report  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_bool  ~ long : " report "  ~ default : true 
  CLOpt . mk_bool  ~ long : " report "  ~ default : true 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Analyze ,  manual_generic ) ;  ( Run ,  manual_generic ) ] ) 
    ~ in_help : InferCommand . ( [ ( Analyze ,  manual_generic ) ;  ( Run ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " Run the reporting phase once the analysis has completed " 
    " Run the reporting phase once the analysis has completed " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  report_current  = and  report_current  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_path_opt  ~ long : " report-current " 
  CLOpt . mk_path_opt  ~ long : " report-current " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( ReportDiff ,  manual_generic ) ] ) 
    ~ in_help : InferCommand . ( [ ( ReportDiff ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " report of the latest revision " 
    " report of the latest revision " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -1677,7 +1681,7 @@ and report_custom_error = CLOpt.mk_bool ~long:"report-custom-error" ""
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  report_formatter  = and  report_formatter  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_symbol  ~ long : " report-formatter " 
  CLOpt . mk_symbol  ~ long : " report-formatter " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Report ,  manual_generic ) ] ) 
    ~ in_help : InferCommand . ( [ ( Report ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    ~ default : ` Phabricator_formatter 
    ~ default : ` Phabricator_formatter 
 
			
		
	
		
		
			
				
					
					    ~ symbols : [ ( " none " ,  ` No_formatter ) ;  ( " phabricator " ,  ` Phabricator_formatter ) ]  ~ eq : PVariant . (  =  ) 
    ~ symbols : [ ( " none " ,  ` No_formatter ) ;  ( " phabricator " ,  ` Phabricator_formatter ) ]  ~ eq : PVariant . (  =  ) 
 
			
		
	
		
		
			
				
					
					    " Which formatter to use when emitting the report " 
    " Which formatter to use when emitting the report " 
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -1685,7 +1689,7 @@ and report_formatter =
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  report_hook  = and  report_hook  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_string_opt  ~ long : " report-hook " 
  CLOpt . mk_string_opt  ~ long : " report-hook " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Analyze ,  manual_generic ) ;  ( Run ,  manual_generic ) ] ) 
    ~ in_help : InferCommand . ( [ ( Analyze ,  manual_generic ) ;  ( Run ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    ~ default : ( lib_dir  ^/  " python "  ^/  " report.py " ) 
    ~ default : ( lib_dir  ^/  " python "  ^/  " report.py " ) 
 
			
		
	
		
		
			
				
					
					    ~ meta : " script " 
    ~ meta : " script " 
 
			
		
	
		
		
			
				
					
					    " Specify a script to be executed after the analysis results are written.  This script will be passed, $(b,--issues-json), $(b,--issues-txt), $(b,--issues-xml), $(b,--project-root), and $(b,--results-dir). " 
    " Specify a script to be executed after the analysis results are written.  This script will be passed, $(b,--issues-json), $(b,--issues-txt), $(b,--issues-xml), $(b,--project-root), and $(b,--results-dir). " 
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -1693,13 +1697,13 @@ and report_hook =
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  report_previous  = and  report_previous  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_path_opt  ~ long : " report-previous " 
  CLOpt . mk_path_opt  ~ long : " report-previous " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( ReportDiff ,  manual_generic ) ] ) 
    ~ in_help : InferCommand . ( [ ( ReportDiff ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " Report of the base revision to use for comparison " 
    " Report of the base revision to use for comparison " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  rest  = and  rest  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_rest_actions 
  CLOpt . mk_rest_actions 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Capture ,  manual_generic ) ;  ( Run ,  manual_generic ) ] ) 
    ~ in_help : InferCommand . ( [ ( Capture ,  manual_generic ) ;  ( Run ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " Stop argument processing, use remaining arguments as a build command "  ~ usage : exe_usage 
    " Stop argument processing, use remaining arguments as a build command "  ~ usage : exe_usage 
 
			
		
	
		
		
			
				
					
					    ( fun  build_exe  -> 
    ( fun  build_exe  -> 
 
			
		
	
		
		
			
				
					
					      match  Filename . basename  build_exe  with  " java "  |  " javac "  ->  CLOpt . Javac  |  _  ->  CLOpt . NoParse 
      match  Filename . basename  build_exe  with  " java "  |  " javac "  ->  CLOpt . Javac  |  _  ->  CLOpt . NoParse 
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -1710,7 +1714,7 @@ and results_dir =
 
			
		
	
		
		
			
				
					
					  CLOpt . mk_path  ~ deprecated : [ " results_dir " ;  " -out " ]  ~ long : " results-dir "  ~ short : 'o' 
  CLOpt . mk_path  ~ deprecated : [ " results_dir " ;  " -out " ]  ~ long : " results-dir "  ~ short : 'o' 
 
			
		
	
		
		
			
				
					
					    ~ default : ( CLOpt . init_work_dir  ^/  " infer-out " ) 
    ~ default : ( CLOpt . init_work_dir  ^/  " infer-out " ) 
 
			
		
	
		
		
			
				
					
					    ~ in_help : 
    ~ in_help : 
 
			
		
	
		
		
			
				
					
					      CLOpt . ( 
      InferCommand . ( 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					        [  ( Analyze ,  manual_generic ) 
        [  ( Analyze ,  manual_generic ) 
 
			
		
	
		
		
			
				
					
					        ;  ( Capture ,  manual_generic ) 
        ;  ( Capture ,  manual_generic ) 
 
			
		
	
		
		
			
				
					
					        ;  ( Explore ,  manual_generic ) 
        ;  ( Explore ,  manual_generic ) 
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -1721,7 +1725,7 @@ and results_dir =
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  save_results  = and  save_results  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_path_opt  ~ deprecated : [ " save_results " ]  ~ long : " save-results " 
  CLOpt . mk_path_opt  ~ deprecated : [ " save_results " ]  ~ long : " save-results " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Report ,  manual_generic ) ] ) 
    ~ in_help : InferCommand . ( [ ( Report ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    ~ meta : " file.iar "  " Save analysis results to Infer Analysis Results file file.iar " 
    ~ meta : " file.iar "  " Save analysis results to Infer Analysis Results file file.iar " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -1732,44 +1736,44 @@ and seconds_per_iteration =
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  select  = and  select  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_int_opt  ~ long : " select "  ~ meta : " N " 
  CLOpt . mk_int_opt  ~ long : " select "  ~ meta : " N " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Explore ,  manual_generic ) ] ) 
    ~ in_help : InferCommand . ( [ ( Explore ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " Select bug number $(i,N). If omitted, prompt for input. " 
    " Select bug number $(i,N). If omitted, prompt for input. " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  siof_safe_methods  = and  siof_safe_methods  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_string_list  ~ long : " siof-safe-methods " 
  CLOpt . mk_string_list  ~ long : " siof-safe-methods " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Analyze ,  manual_siof ) ] ) 
    ~ in_help : InferCommand . ( [ ( Analyze ,  manual_siof ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " Methods that are SIOF-safe;  \" foo::bar \"  will match  \" foo::bar() \" ,  \" foo<int>::bar() \" , etc. (can be specified multiple times) " 
    " Methods that are SIOF-safe;  \" foo::bar \"  will match  \" foo::bar() \" ,  \" foo<int>::bar() \" , etc. (can be specified multiple times) " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  skip_analysis_in_path  = and  skip_analysis_in_path  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_string_list  ~ deprecated : [ " -skip-clang-analysis-in-path " ]  ~ long : " skip-analysis-in-path " 
  CLOpt . mk_string_list  ~ deprecated : [ " -skip-clang-analysis-in-path " ]  ~ long : " skip-analysis-in-path " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Capture ,  manual_generic ) ;  ( Run ,  manual_generic ) ] ) 
    ~ in_help : InferCommand . ( [ ( Capture ,  manual_generic ) ;  ( Run ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    ~ meta : " path_prefix_OCaml_regex " 
    ~ meta : " path_prefix_OCaml_regex " 
 
			
		
	
		
		
			
				
					
					    " Ignore files whose path matches the given prefix (can be specified multiple times) " 
    " Ignore files whose path matches the given prefix (can be specified multiple times) " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  skip_analysis_in_path_skips_compilation  = and  skip_analysis_in_path_skips_compilation  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_bool  ~ long : " skip-analysis-in-path-skips-compilation " 
  CLOpt . mk_bool  ~ long : " skip-analysis-in-path-skips-compilation " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Report ,  manual_generic ) ] ) 
    ~ in_help : InferCommand . ( [ ( Report ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    ~ default : false  " Whether paths in --skip-analysis-in-path should be compiled or not " 
    ~ default : false  " Whether paths in --skip-analysis-in-path should be compiled or not " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  skip_duplicated_types  = and  skip_duplicated_types  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_bool  ~ long : " skip-duplicated-types "  ~ default : true 
  CLOpt . mk_bool  ~ long : " skip-duplicated-types "  ~ default : true 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( ReportDiff ,  manual_generic ) ] ) 
    ~ in_help : InferCommand . ( [ ( ReportDiff ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " Skip fixed-then-introduced duplicated types while computing differential reports " 
    " Skip fixed-then-introduced duplicated types while computing differential reports " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  skip_translation_headers  = and  skip_translation_headers  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_string_list  ~ deprecated : [ " skip_translation_headers " ]  ~ long : " skip-translation-headers " 
  CLOpt . mk_string_list  ~ deprecated : [ " skip_translation_headers " ]  ~ long : " skip-translation-headers " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Capture ,  manual_clang ) ] ) 
    ~ in_help : InferCommand . ( [ ( Capture ,  manual_clang ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    ~ meta : " path_prefix "  " Ignore headers whose path matches the given prefix " 
    ~ meta : " path_prefix "  " Ignore headers whose path matches the given prefix " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  source_preview  = and  source_preview  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_bool  ~ long : " source-preview "  ~ default : true 
  CLOpt . mk_bool  ~ long : " source-preview "  ~ default : true 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Explore ,  manual_generic ) ] ) 
    ~ in_help : InferCommand . ( [ ( Explore ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " print code excerpts around trace elements " 
    " print code excerpts around trace elements " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -1807,7 +1811,7 @@ and specs_library =
 
			
		
	
		
		
			
				
					
					      ~ f : ( fun  file  -> 
      ~ f : ( fun  file  -> 
 
			
		
	
		
		
			
				
					
					        specs_library  :=  read_specs_dir_list_file  file  @  ! specs_library  ; 
        specs_library  :=  read_specs_dir_list_file  file  @  ! specs_library  ; 
 
			
		
	
		
		
			
				
					
					        " "  ) 
        " "  ) 
 
			
		
	
		
		
			
				
					
					      ~ in_help : CLOpt . ( [ ( Analyze ,  manual_generic ) ] ) 
      ~ in_help : InferCommand . ( [ ( Analyze ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					      ~ meta : " file "  " " 
      ~ meta : " file "  " " 
 
			
		
	
		
		
			
				
					
					  in 
  in 
 
			
		
	
		
		
			
				
					
					  specs_library 
  specs_library 
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -1828,14 +1832,14 @@ and sqlite_vfs =
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  stacktrace  = and  stacktrace  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_path_opt  ~ deprecated : [ " st " ]  ~ long : " stacktrace " 
  CLOpt . mk_path_opt  ~ deprecated : [ " st " ]  ~ long : " stacktrace " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Analyze ,  manual_crashcontext ) ] ) 
    ~ in_help : InferCommand . ( [ ( Analyze ,  manual_crashcontext ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    ~ meta : " file " 
    ~ meta : " file " 
 
			
		
	
		
		
			
				
					
					    " File path containing a json-encoded Java crash stacktrace. Used to guide the analysis (only with '-a crashcontext').  See tests/codetoanalyze/java/crashcontext/*.json for examples of the expected format. " 
    " File path containing a json-encoded Java crash stacktrace. Used to guide the analysis (only with '-a crashcontext').  See tests/codetoanalyze/java/crashcontext/*.json for examples of the expected format. " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  stacktraces_dir  = and  stacktraces_dir  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_path_opt  ~ long : " stacktraces-dir " 
  CLOpt . mk_path_opt  ~ long : " stacktraces-dir " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Analyze ,  manual_crashcontext ) ] ) 
    ~ in_help : InferCommand . ( [ ( Analyze ,  manual_crashcontext ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    ~ meta : " dir " 
    ~ meta : " dir " 
 
			
		
	
		
		
			
				
					
					    " Directory path containing multiple json-encoded Java crash stacktraces. Used to guide the  analysis (only with '-a crashcontext').  See tests/codetoanalyze/java/crashcontext/*.json for examples of the expected format. " 
    " Directory path containing multiple json-encoded Java crash stacktraces. Used to guide the  analysis (only with '-a crashcontext').  See tests/codetoanalyze/java/crashcontext/*.json for examples of the expected format. " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -1868,7 +1872,7 @@ and testing_mode =
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  threadsafe_aliases  = and  threadsafe_aliases  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_json  ~ long : " threadsafe-aliases " 
  CLOpt . mk_json  ~ long : " threadsafe-aliases " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Analyze ,  manual_racerd ) ] ) 
    ~ in_help : InferCommand . ( [ ( Analyze ,  manual_racerd ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " Specify custom annotations that should be considered aliases of @ThreadSafe " 
    " Specify custom annotations that should be considered aliases of @ThreadSafe " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -1915,17 +1919,17 @@ and uninit_interproc =
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  unsafe_malloc  = and  unsafe_malloc  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_bool  ~ long : " unsafe-malloc " 
  CLOpt . mk_bool  ~ long : " unsafe-malloc " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Analyze ,  manual_clang ) ] ) 
    ~ in_help : InferCommand . ( [ ( Analyze ,  manual_clang ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " Assume that malloc(3) never returns null. " 
    " Assume that malloc(3) never returns null. " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  version  = and  version  =  
			
		
	
		
		
			
				
					
					  let  var  =  ref  ` None  in 
  let  var  =  ref  ` None  in 
 
			
		
	
		
		
			
				
					
					  CLOpt . mk_set  var  ` Full  ~ deprecated : [ " version " ]  ~ long : " version " 
  CLOpt . mk_set  var  ` Full  ~ deprecated : [ " version " ]  ~ long : " version " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Run ,  manual_generic ) ] ) 
    ~ in_help : InferCommand . ( [ ( Run ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " Print version information and exit "  ; 
    " Print version information and exit "  ; 
 
			
		
	
		
		
			
				
					
					  CLOpt . mk_set  var  ` Json  ~ deprecated : [ " version_json " ]  ~ long : " version-json " 
  CLOpt . mk_set  var  ` Json  ~ deprecated : [ " version_json " ]  ~ long : " version-json " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Run ,  manual_generic ) ] ) 
    ~ in_help : InferCommand . ( [ ( Run ,  manual_generic ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " Print version information in json format and exit "  ; 
    " Print version information in json format and exit "  ; 
 
			
		
	
		
		
			
				
					
					  CLOpt . mk_set  var  ` Vcs  ~ long : " version-vcs "  " Print version control system commit and exit "  ; 
  CLOpt . mk_set  var  ` Vcs  ~ long : " version-vcs "  " Print version control system commit and exit "  ; 
 
			
		
	
		
		
			
				
					
					  var 
  var 
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -1947,13 +1951,13 @@ and worklist_mode =
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  xcode_developer_dir  = and  xcode_developer_dir  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_path_opt  ~ long : " xcode-developer-dir " 
  CLOpt . mk_path_opt  ~ long : " xcode-developer-dir " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Capture ,  manual_buck_flavors ) ] ) 
    ~ in_help : InferCommand . ( [ ( Capture ,  manual_buck_flavors ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    ~ meta : " XCODE_DEVELOPER_DIR "  " Specify the path to Xcode developer directory " 
    ~ meta : " XCODE_DEVELOPER_DIR "  " Specify the path to Xcode developer directory " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  xcpretty  = and  xcpretty  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_bool  ~ long : " xcpretty "  ~ default : false 
  CLOpt . mk_bool  ~ long : " xcpretty "  ~ default : false 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Capture ,  manual_clang ) ] ) 
    ~ in_help : InferCommand . ( [ ( Capture ,  manual_clang ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    " Infer will use xcpretty together with xcodebuild to analyze an iOS app. xcpretty just needs to be in the path, infer command is still just $(i,`infer -- <xcodebuild command>`). " 
    " Infer will use xcpretty together with xcodebuild to analyze an iOS app. xcpretty just needs to be in the path, infer command is still just $(i,`infer -- <xcodebuild command>`). " 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -2147,7 +2151,7 @@ let post_parsing_initialization command_opt =
 
			
		
	
		
		
			
				
					
					  if  ! linters_developer_mode  then  linters  :=  true  ; 
  if  ! linters_developer_mode  then  linters  :=  true  ; 
 
			
		
	
		
		
			
				
					
					  if  ! default_linters  then  linters_def_file  :=  linters_def_default_file  ::  ! linters_def_file  ; 
  if  ! default_linters  then  linters_def_file  :=  linters_def_default_file  ::  ! linters_def_file  ; 
 
			
		
	
		
		
			
				
					
					  (  if  Option . is_none  ! analyzer  then 
  (  if  Option . is_none  ! analyzer  then 
 
			
		
	
		
		
			
				
					
					      match  ( command_opt  :  LOpt. c  ommand option )  with 
      match  ( command_opt  :  Infer Command. t option )  with 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					      |  Some  Compile  -> 
      |  Some  Compile  -> 
 
			
		
	
		
		
			
				
					
					          analyzer  :=  Some  CompileOnly 
          analyzer  :=  Some  CompileOnly 
 
			
		
	
		
		
			
				
					
					      |  Some  Capture  -> 
      |  Some  Capture  -> 
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -2164,7 +2168,7 @@ let post_parsing_initialization command_opt =
 
			
		
	
		
		
			
				
					
					      linters  :=  true 
      linters  :=  true 
 
			
		
	
		
		
			
				
					
					  |  Some  ( CaptureOnly  |  Checkers  |  CompileOnly )  |  None  -> 
  |  Some  ( CaptureOnly  |  Checkers  |  CompileOnly )  |  None  -> 
 
			
		
	
		
		
			
				
					
					      ()  )  ; 
      ()  )  ; 
 
			
		
	
		
		
			
				
					
					  Option . value  ~ default : CLOpt . Run  command_opt 
  Option . value  ~ default : InferCommand . Run  command_opt 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					let  command ,  parse_args_and_return_usage_exit  = let  command ,  parse_args_and_return_usage_exit  =  
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -2546,7 +2550,7 @@ and quiet = !quiet
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  racerd  =  ! racerd and  racerd  =  ! racerd  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  reactive_mode  =  ! reactive  | |  CLOpt. ( equal_command   Diff )  command and  reactive_mode  =  ! reactive  | |  InferCommand. ( equal   Diff )  command  
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					and  reactive_capture  =  ! reactive_capture and  reactive_capture  =  ! reactive_capture  
			
		
	
		
		
			
				
					
					
 
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -2684,7 +2688,7 @@ let clang_frontend_action_string =
 
			
		
	
		
		
			
				
					
					let  dynamic_dispatch  = let  dynamic_dispatch  =  
			
		
	
		
		
			
				
					
					  CLOpt . mk_bool  ~ long : " dynamic-dispatch "  ~ default : biabduction 
  CLOpt . mk_bool  ~ long : " dynamic-dispatch "  ~ default : biabduction 
 
			
		
	
		
		
			
				
					
					    " Specify treatment of dynamic dispatch in Java code: false 'none' treats dynamic dispatch as a call to unknown code and true triggers lazy dynamic dispatch. The latter mode follows the JVM semantics and creates procedure descriptions during symbolic execution using the type information found in the abstract state " 
    " Specify treatment of dynamic dispatch in Java code: false 'none' treats dynamic dispatch as a call to unknown code and true triggers lazy dynamic dispatch. The latter mode follows the JVM semantics and creates procedure descriptions during symbolic execution using the type information found in the abstract state " 
 
			
		
	
		
		
			
				
					
					    ~ in_help : CLOpt . ( [ ( Analyze ,  manual_java ) ] ) 
    ~ in_help : InferCommand . ( [ ( Analyze ,  manual_java ) ] ) 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					let  dynamic_dispatch  =  ! dynamic_dispatch let  dynamic_dispatch  =  ! dynamic_dispatch