"-err_file",Arg.Set_stringerr_file_cmdline,Some"file","use file for the err channel";
"-err_file",
"-exclude",Arg.Stringexclude,Some"file","exclude from analysis the files and directories specified in file";
Arg.Set_stringerr_file_cmdline,
"-incremental_changed_only",Arg.Unitincremental_changed_only,None,"only analyze files captured since the last analysis";
Some"file",
"-incremental",Arg.Unitincremental,None,"analyze files captured since the last analysis plus any dependencies";
"use file for the err channel"
"-iterations",Arg.Set_intiterations_cmdline,Some"n","set the max number of operations for each function, expressed as a multiple of symbolic operations (default n=1)";
;
"-nonstop",Arg.SetConfig.nonstop,None,"activate the nonstop mode: the analysis continues after finding errors. With this option the analysis can become less precise.";
"-exclude",
"-out_file",Arg.Set_stringout_file_cmdline,Some"file","use file for the out channel";
Arg.Stringexclude,
"-print_builtins",Arg.UnitSymExec.print_builtins,None,"print the builtin functions and exit";
Some"file",
"-source_path",Arg.Stringsource_path,Some"path","specify the absolute path to the root of the source files. Used to interpret relative paths when using option -exclude.";
"exclude from analysis the files and directories specified in file"
;
"-incremental_changed_only",
Arg.Unitincremental_changed_only,
None,
"only analyze files captured since the last analysis"
;
"-incremental",
Arg.Unitincremental,
None,
"analyze files captured since the last analysis plus any dependencies"
;
"-iterations",
Arg.Set_intiterations_cmdline,
Some"n",
"set the max number of operations for each function,
"-analysis_stops",Arg.SetConfig.analysis_stops,None,"issue a warning when the analysis stops";
"-analysis_stops",
"-angelic_execution",Arg.SetConfig.angelic_execution,None,"activate angelic execution: the analysis ignores errors caused by unknown procedure calls.";
Arg.SetConfig.analysis_stops,
"-checkers",Arg.Setcheckers,None," run only the checkers instead of the full analysis";
None,
"-cluster",Arg.String(funs->cluster_cmdline:=Somes),Some"fname","specify a .cluster file to be analyzed";
"issue a warning when the analysis stops"
"-codequery",Arg.String(funs->CodeQuery.query:=Somes),Some"query"," execute the code query";
;
"-eradicate",Arg.SetConfig.eradicate,None," activate the eradicate checker for java annotations";
"-angelic_execution",
"-file",Arg.String(funs->only_files_cmdline:=s::!only_files_cmdline),Some"fname","specify one file to be analyzed (without path); the option can be repeated";
Arg.SetConfig.angelic_execution,
"-intraprocedural",Arg.SetConfig.intraprocedural,None,"perform an intraprocedural analysis only";
None,
"-makefile",Arg.Set_stringmakefile_cmdline,Some"file","create a makefile to perform the analysis";
"activate angelic execution:
"-max_cluster",Arg.Set_intConfig.max_cluster_size,Some"n","set the max number of procedures in each cluster (default n=2000)";
"-only_nospecs",Arg.SetConfig.only_nospecs,None," only analyze procedures which were analyzed before but have no specs";
;
"-only_skips",Arg.SetConfig.only_skips,None," only analyze procedures dependent on previous skips which now have a .specs file";
"-checkers",
"-seconds_per_iteration",Arg.Set_intseconds_per_iteration,Some"n","set the number of seconds per iteration (default n=30)";
Arg.Setcheckers,
"-simulate",Arg.Setsimulate,None," run a simulation of the analysis only";
None,
"-subtype_multirange",Arg.SetConfig.subtype_multirange,None,"use the multirange subtyping domain";
" run only the checkers instead of the full analysis"
"-optimistic_cast",Arg.SetConfig.optimistic_cast,None,"allow cast of undefined values";
;
"-select_proc",Arg.String(funs->select_proc:=Somes),Some"string","only consider procedures whose name contains the given string";
"-cluster",
"-symops_per_iteration",Arg.Set_intsymops_per_iteration,Some"n","set the number of symbolic operations per iteration (default n="^(string_of_int!symops_per_iteration)^")";
Arg.String(funs->cluster_cmdline:=Somes),
"-type_size",Arg.SetConfig.type_size,None,"consider the size of types during analysis";
"-bugs",Arg.String(funs->bugs_csv:=create_outfiles),Some"bugs.csv","create file bugs.csv containing a list of bugs in CSV format";
"-bugs",
"-bugs_json",Arg.String(funs->bugs_json:=create_outfiles),Some"bugs.json","create file bugs.json containing a list of bugs in JSON format";
Arg.String(funs->bugs_csv:=create_outfiles),
"-bugs_txt",Arg.String(funs->bugs_txt:=create_outfiles),Some"bugs.txt","create file bugs.txt containing a list of bugs in text format";
Some"bugs.csv",
"-bugs_xml",Arg.String(funs->bugs_xml:=create_outfiles),Some"bugs.xml","create file bugs.xml containing a list of bugs in XML format";
"create file bugs.csv containing a list of bugs in CSV format"
"-calls",Arg.String(funs->calls_csv:=create_outfiles),Some"calls.csv","write individual calls in csv format to file.csv";
;
"-load_results",Arg.String(funs->load_analysis_results:=Somes),Some"file.iar","load analysis results from Infer Analysis Results file file.iar";
"-bugs_json",
"-procs",Arg.String(funs->procs_csv:=create_outfiles),Some"procs.csv","create file procs.csv containing statistics for each procedure in CSV format";
Arg.String(funs->bugs_json:=create_outfiles),
"-procs_xml",Arg.String(funs->procs_xml:=create_outfiles),Some"procs.xml","create file procs.xml containing statistics for each procedure in XML format";
Some"bugs.json",
"-results_dir",Arg.String(funs->results_dir_cmdline:=true;Config.results_dir:=s),Some"dir","read all the .specs files in the results dir";
"create file bugs.json containing a list of bugs in JSON format"
"-lib",Arg.String(funs->Config.specs_library:=filename_to_absolutes::!Config.specs_library),Some"dir","add dir to the list of directories to be searched for spec files";
;
"-q",Arg.Setquiet,None,"quiet: do not print specs on standard output";
"-bugs_txt",
"-save_results",Arg.String(funs->save_analysis_results:=Somes),Some"file.iar","save analysis results to Infer Analysis Results file file.iar";
Arg.String(funs->bugs_txt:=create_outfiles),
"-unit_test",Arg.Setunit_test,None,"print unit test code";
Some"bugs.txt",
"-xml",Arg.Setxml_specs,None,"export specs into XML files file1.xml ... filen.xml";
"create file bugs.txt containing a list of bugs in text format"
"-test_filtering",Arg.Settest_filtering,None,
;
"list all the files Infer can report on (should be call at the root of the procject, where
"include the location (in the Infer source code) from where reports are generated"
;
]in
]in
Arg.create_options_descfalse"Options"descin
Arg.create_options_descfalse"Options"descin
letreserved_arg=
letreserved_arg=
letdesc=
letdesc=
[
[
"-latex",Arg.String(funs->latex:=create_outfiles),Some"file.tex","print latex report to file.tex";
"-latex",
"-print_types",Arg.SetConfig.print_types,None,"print types in symbolic heaps";
Arg.String(funs->latex:=create_outfiles),
"-precondition_stats",Arg.Setprecondition_stats,None,"print stats about preconditions to standard output";
Some"file.tex",
"-report",Arg.String(funs->report:=create_outfiles),Some"report_file","create file report_file containing a report of the analysis results";
"print latex report to file.tex"
"-source_file_copy",Arg.String(funs->source_file_copy:=Some(DB.abs_source_file_from_paths)),Some"source_file","print the path of the copy of source_file in the results directory";