(* L.err "Warning: procedure %a is defined in both %s and %s@." Procname.pp pname (DB.source_file_to_string source)(DB.source_file_to_string old_source); *)
(* L.err "Warning: procedure %a is defined in both %s and %s@." Procname.pp pname (DB.source_file_to_string source)(DB.source_file_to_string old_source); *)
source<old_source(* when a procedure is defined in several files, map to the first alphabetically *)
source<old_source(* when a procedure is defined in several files, map to the first alphabetically *)
"-err_file",Arg.Set_stringerr_file_cmdline,Some"file","use file for the err channel";
"-err_file",Arg.Set_stringerr_file_cmdline,Some"file","use file for the err channel";
"-exclude",Arg.Stringexclude,Some"file","exclude from analysis the files and directories specified in file";
"-exclude",Arg.Stringexclude,Some"file","exclude from analysis the files and directories specified in file";
"-incremental_ignore_dependencies",Arg.Unit(fun()->incremental_mode:=ANALYZE_CHANGED_ONLY),None,"only analyze files captured since the last analysis";
"-incremental_ignore_dependencies",Arg.Unit(fun()->incremental_mode:=ANALYZE_CHANGED_ONLY),None,"only analyze files captured since the last analysis";
"-incremental",Arg.Unit(fun()->incremental_mode:=ANALYZE_CHANGED_AND_DEPENDENCIES),None,"analyze files captured since the last analysis plus any dependencies";
"-incremental",Arg.Unit(fun()->incremental_mode:=ANALYZE_CHANGED_AND_DEPENDENCIES),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, expressed as a multiple of symbolic operations (default n=1)";
"-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.";
"-nonstop",Arg.SetConfig.nonstop,None,"activate the nonstop mode: the analysis continues after finding errors. With this option the analysis can become less precise.";
"-out_file",Arg.Set_stringout_file_cmdline,Some"file","use file for the out channel";
"-out_file",Arg.Set_stringout_file_cmdline,Some"file","use file for the out channel";
"-print_builtins",Arg.UnitSymExec.print_builtins,None,"print the builtin functions and exit";
"-print_builtins",Arg.UnitSymExec.print_builtins,None,"print the builtin functions and exit";
"-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.";
"-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.";
(* TODO: merge with the -project_root option *)
(* TODO: merge with the -project_root option *)
"-java",Arg.Unit(fun()->Sil.curr_language:=Sil.Java),None,"Set language to Java";
"-java",Arg.Unit(fun()->Sil.curr_language:=Sil.Java),None,"Set language to Java";
"-version",Arg.Unitprint_version,None,"print version information and exit";
"-version",Arg.Unitprint_version,None,"print version information and exit";
"-version_json",Arg.Unitprint_version_json,None,"print version json formatted";
"-version_json",Arg.Unitprint_version_json,None,"print version json formatted";
"-analysis_stops",Arg.SetConfig.analysis_stops,None,"issue a warning when the analysis stops";
"-analysis_stops",Arg.SetConfig.analysis_stops,None,"issue a warning when the analysis stops";
"-angelic_execution",Arg.SetConfig.angelic_execution,None,"activate angelic execution: the analysis ignores errors caused by unknown procedure calls.";
"-angelic_execution",Arg.SetConfig.angelic_execution,None,"activate angelic execution: the analysis ignores errors caused by unknown procedure calls.";
"-checkers",Arg.Setcheckers,None," run only the checkers instead of the full analysis";
"-checkers",Arg.Setcheckers,None," run only the checkers instead of the full analysis";
"-cluster",Arg.String(funs->cluster_cmdline:=Somes),Some"fname","specify a .cluster file to be analyzed";
"-cluster",Arg.String(funs->cluster_cmdline:=Somes),Some"fname","specify a .cluster file to be analyzed";
"-codequery",Arg.String(funs->CodeQuery.query:=Somes),Some"query"," execute the code query";
"-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";
"-eradicate",Arg.SetConfig.eradicate,None," activate the eradicate checker for java annotations";
"-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";
"-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";
"-intraprocedural",Arg.SetConfig.intraprocedural,None,"perform an intraprocedural analysis only";
"-intraprocedural",Arg.SetConfig.intraprocedural,None,"perform an intraprocedural analysis only";
"-makefile",Arg.Set_stringmakefile_cmdline,Some"file","create a makefile to perform the analysis";
"-makefile",Arg.Set_stringmakefile_cmdline,Some"file","create a makefile to perform the analysis";
"-max_cluster",Arg.Set_intConfig.max_cluster_size,Some"n","set the max number of procedures in each cluster (default n=2000)";
"-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_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";
"-only_skips",Arg.SetConfig.only_skips,None," only analyze procedures dependent on previous skips which now have a .specs file";
"-seconds_per_iteration",Arg.Set_intseconds_per_iteration,Some"n","set the number of seconds per iteration (default n=30)";
"-seconds_per_iteration",Arg.Set_intseconds_per_iteration,Some"n","set the number of seconds per iteration (default n=30)";
"-simulate",Arg.Setsimulate,None," run a simulation of the analysis only";
"-simulate",Arg.Setsimulate,None," run a simulation of the analysis only";
"-subtype_multirange",Arg.SetConfig.subtype_multirange,None,"use the multirange subtyping domain";
"-subtype_multirange",Arg.SetConfig.subtype_multirange,None,"use the multirange subtyping domain";
"-optimistic_cast",Arg.SetConfig.optimistic_cast,None,"allow cast of undefined values";
"-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";
"-select_proc",Arg.String(funs->select_proc:=Somes),Some"string","only consider procedures whose name contains the given string";
"-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)^")";
"-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)^")";
"-type_size",Arg.SetConfig.type_size,None,"consider the size of types during analysis";
"-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",Arg.String(funs->bugs_csv:=create_outfiles),Some"bugs.csv","create file bugs.csv containing a list of bugs in CSV format";
"-bugs_json",Arg.String(funs->bugs_json:=create_outfiles),Some"bugs.json","create file bugs.json containing a list of bugs in JSON format";
"-bugs_json",Arg.String(funs->bugs_json:=create_outfiles),Some"bugs.json","create file bugs.json containing a list of bugs in JSON format";
"-bugs_txt",Arg.String(funs->bugs_txt:=create_outfiles),Some"bugs.txt","create file bugs.txt containing a list of bugs in text format";
"-bugs_txt",Arg.String(funs->bugs_txt:=create_outfiles),Some"bugs.txt","create file bugs.txt containing a list of bugs in text format";
"-bugs_xml",Arg.String(funs->bugs_xml:=create_outfiles),Some"bugs.xml","create file bugs.xml containing a list of bugs in XML format";
"-bugs_xml",Arg.String(funs->bugs_xml:=create_outfiles),Some"bugs.xml","create file bugs.xml containing a list of bugs in XML format";
"-calls",Arg.String(funs->calls_csv:=create_outfiles),Some"calls.csv","write individual calls in csv format to file.csv";
"-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";
"-load_results",Arg.String(funs->load_analysis_results:=Somes),Some"file.iar","load analysis results from Infer Analysis Results file file.iar";
"-procs",Arg.String(funs->procs_csv:=create_outfiles),Some"procs.csv","create file procs.csv containing statistics for each procedure in CSV format";
"-procs",Arg.String(funs->procs_csv:=create_outfiles),Some"procs.csv","create file procs.csv containing statistics for each procedure in CSV format";
"-procs_xml",Arg.String(funs->procs_xml:=create_outfiles),Some"procs.xml","create file procs.xml containing statistics for each procedure in XML format";
"-procs_xml",Arg.String(funs->procs_xml:=create_outfiles),Some"procs.xml","create file procs.xml containing statistics for each procedure in XML format";
"-results_dir",Arg.String(funs->results_dir_cmdline:=true;Config.results_dir:=s),Some"dir","read all the .specs files in the results dir";
"-results_dir",Arg.String(funs->results_dir_cmdline:=true;Config.results_dir:=s),Some"dir","read all the .specs files in the results dir";
"-q",Arg.Setquiet,None,"quiet: do not print specs on standard output";
"-q",Arg.Setquiet,None,"quiet: do not print specs on standard output";
"-save_results",Arg.String(funs->save_analysis_results:=Somes),Some"file.iar","save analysis results to Infer Analysis Results file file.iar";
"-save_results",Arg.String(funs->save_analysis_results:=Somes),Some"file.iar","save analysis results to Infer Analysis Results file file.iar";
"-unit_test",Arg.Setunit_test,None,"print unit test code";
"-unit_test",Arg.Setunit_test,None,"print unit test code";
"-xml",Arg.Setxml_specs,None,"export specs into XML files file1.xml ... filen.xml";
"-xml",Arg.Setxml_specs,None,"export specs into XML files file1.xml ... filen.xml";
"-test_filtering",Arg.Settest_filtering,None,
"-test_filtering",Arg.Settest_filtering,None,
"list all the files Infer can report on (should be call at the root of the procject, where
"list all the files Infer can report on (should be call at the root of the procject, where
"-latex",Arg.String(funs->latex:=create_outfiles),Some"file.tex","print latex report to file.tex";
"-latex",Arg.String(funs->latex:=create_outfiles),Some"file.tex","print latex report to file.tex";
"-print_types",Arg.SetConfig.print_types,None,"print types in symbolic heaps";
"-print_types",Arg.SetConfig.print_types,None,"print types in symbolic heaps";
"-precondition_stats",Arg.Setprecondition_stats,None,"print stats about preconditions to standard output";
"-precondition_stats",Arg.Setprecondition_stats,None,"print stats about preconditions to standard output";
"-report",Arg.String(funs->report:=create_outfiles),Some"report_file","create file report_file containing a report of the analysis results";
"-report",Arg.String(funs->report:=create_outfiles),Some"report_file","create file report_file containing a report of the analysis results";
"-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";
"-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";
|Tstructofstruct_fields*struct_fields*csu*Mangled.toption*(csu*Mangled.t)list*Procname.tlist*item_annotation(** structure type with class/struct/union flag and name and list of superclasses *)
|Tstructofstruct_fields*struct_fields*csu*Mangled.toption*(csu*Mangled.t)list*Procname.tlist*item_annotation(** structure type with class/struct/union flag and name and list of superclasses *)
(** Structure type with nonstatic and static fields, class/struct/union flag, name, list of superclasses,
(** Structure type with nonstatic and static fields, class/struct/union flag, name, list of superclasses,