<!-- Creator : groff version 1.22.4 --> <!-- CreationDate: Tue May 12 16:45:48 2020 --> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta name="generator" content="groff -Thtml, see www.gnu.org"> <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> <meta name="Content-Style" content="text/css"> <style type="text/css"> p { margin-top: 0; margin-bottom: 0; vertical-align: top } pre { margin-top: 0; margin-bottom: 0; vertical-align: top } table { margin-top: 0; margin-bottom: 0; vertical-align: top } h1 { text-align: center } </style> <title>infer</title> </head> <body> <h1 align="center">infer</h1> <a href="#NAME">NAME</a><br> <a href="#SYNOPSIS">SYNOPSIS</a><br> <a href="#DESCRIPTION">DESCRIPTION</a><br> <a href="#OPTIONS">OPTIONS</a><br> <a href="#ENVIRONMENT">ENVIRONMENT</a><br> <a href="#FILES">FILES</a><br> <a href="#SEE ALSO">SEE ALSO</a><br> <hr> <h2>NAME <a name="NAME"></a> </h2> <p style="margin-left:11%; margin-top: 1em">infer - static analysis for Java and C/C++/Objective-C/Objective-C++</p> <h2>SYNOPSIS <a name="SYNOPSIS"></a> </h2> <p style="margin-left:11%; margin-top: 1em"><b>infer analyze</b> <i>[options]</i> <b><br> infer capture</b> <i>[options]</i> <b><br> infer compile</b> <i>[options]</i> <b><br> infer report</b> <i>[options]</i> <b><br> infer reportdiff</b> <i>[options]</i> <b><br> infer run</b> <i>[options]</i> <b><br> infer --compilation-database[-escaped]</b> <i>file [options]</i> <b><br> infer</b> <i>[options]</i> <b>-- compile command <br> infer</b> <i>[options]</i></p> <h2>DESCRIPTION <a name="DESCRIPTION"></a> </h2> <p style="margin-left:11%; margin-top: 1em">Infer is a static analyzer. Given a collection of source files written in Java or in languages of the C family, and a command to build them, infer produces a list of potential issues.</p> <p style="margin-left:11%; margin-top: 1em">Infer consists of a collection of tools referenced in the <i>SEE ALSO</i> section of this manual. See their respective manuals for more information.</p> <p style="margin-left:11%; margin-top: 1em">When run without a subcommand, and if a compilation command is specified via the <b>--</b> option or one of the <b>--clang-compilation-database[-escaped]</b> options, then <b>infer</b> behaves as <b>infer-run</b>(1). Otherwise, <b>infer</b> behaves as <b>infer-analyze</b>(1).</p> <h2>OPTIONS <a name="OPTIONS"></a> </h2> <p style="margin-left:11%; margin-top: 1em">Every infer command accepts the arguments from all the other infer commands.</p> <p style="margin-left:11%; margin-top: 1em">Options are read from the <b>.inferconfig</b> file, then from the <b>INFER_ARGS</b> environment variable, then from the command line. Options in <b>INFER_ARGS</b> take precedence over options in <b>.inferconfig</b>, and options passed on the command line take precedence over options in <b>INFER_ARGS</b>. See the <i>ENVIRONMENT</i> and <i>FILES</i> sections of this manual for more information.</p> <p style="margin-left:11%; margin-top: 1em">Options can be specified inside an argument file <i>file</i> by passing <b>@</b><i>file</i> as argument. The format is one option per line, and enclosing single ' and double " quotes are ignored.</p> <p style="margin-left:11%; margin-top: 1em">Options without a default value (e.g., <b>--linter</b>) and options with list-like values (e.g., <b>--Xbuck</b>) all have a corresponding <b>--option-reset</b> flag that resets their values to nothing or the empty list, respectively. For instance, <b>--Xbuck-reset</b> will cancel any previous <b>--Xbuck</b> option passed to infer.</p> <p style="margin-left:11%; margin-top: 1em">See the manuals of individual infer commands for details about their supported options. The following is a list of all the supported options (see also <b>--help-full</b> for options reserved for internal use). <b><br> --annotation-reachability</b></p> <p style="margin-left:17%;">Activates: the annotation reachability checker. Given a pair of source and sink annotation, e.g. @PerformanceCritical and @Expensive, this checker will warn whenever some method annotated with @PerformanceCritical calls, directly or indirectly, another method annotated with @Expensive (Conversely: <b>--no-annotation-reachability</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --annotation-reachability-custom-pairs</b> <i>json</i></p> <p style="margin-left:17%;">Specify custom sources/sink for the annotation reachability checker</p> <p style="margin-left:11%;">Example format: for custom annotations <br> com.my.annotation.{Source1,Source2,Sink1} <br> { "sources" : ["Source1", "Source2"], "sink" : "Sink1" } <br> See also <b>infer-analyze</b>(1). <b><br> --annotation-reachability-cxx</b> <i>json</i></p> <p style="margin-left:17%;">Specify annotation reachability analyses to be performed on C/C++/ObjC code. Each entry is a JSON object whose key is the issue name. "sources" and "sinks" can be specified either by symbol or path prefix. "sinks" optionally can specify "overrides" (by symbol or path prefix) that block the reachability analysis when hit. Example:</p> <p style="margin-left:11%;">{ <br> "ISOLATED_REACHING_CONNECT": { <br> "doc_url": "http:://optional/issue/doc/link.html", <br> "sources": { <br> "desc": "Code that should not call connect [optional]", <br> "paths": [ "isolated/" ] <br> }, <br> "sinks": { <br> "symbols": [ "connect" ], <br> "overrides": { "symbols": [ "Trusted::" ] } <br> } <br> } <br> } <br> This will cause us to create a new ISOLATED_REACHING_CONNECT <br> issue for every function whose source path starts with "isolated/" <br> that may reach the function named "connect", ignoring paths that <br> go through a symbol starting with "Trusted::". <br> See also <b>infer-analyze</b>(1). <b><br> --annotation-reachability-cxx-sources</b> <i>json</i></p> <p style="margin-left:17%;">Override sources in all cxx annotation reachability specs with the given sources spec</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --annotation-reachability-only</b></p> <p style="margin-left:17%;">Activates: Enable <b>--annotation-reachability</b> and disable all other checkers (Conversely: <b>--no-annotation-reachability-only</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --append-buck-flavors</b> <i>+string</i></p> <p style="margin-left:17%;">Additional Buck flavors to append to targets discovered by the <b>--buck-compilation-database</b> option.</p> <p style="margin-left:11%;">See also <b>infer-capture</b>(1). <b><br> --no-biabduction</b></p> <p style="margin-left:17%;">Deactivates: the separation logic based bi-abduction analysis using the checkers framework (Conversely: <b>--biabduction</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --biabduction-fallback-model-alloc-pattern</b> <i>string</i></p> <p style="margin-left:17%;">Regex of methods that should be modelled as allocs if definition is missing</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --biabduction-fallback-model-free-pattern</b> <i>string</i></p> <p style="margin-left:17%;">Regex of methods that should be modelled as free if definition is missing</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --biabduction-only</b></p> <p style="margin-left:17%;">Activates: Enable <b>--biabduction</b> and disable all other checkers (Conversely: <b>--no-biabduction-only</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --bo-debug</b> <i>int</i></p> <p style="margin-left:17%;">Debug level for buffer-overrun checker (0-4)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --bo-relational-domain</b> <i>{ oct | poly }</i></p> <p style="margin-left:17%;">Select a relational domain being used in the bufferoverrun checker (experimental)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --bootclasspath</b> <i>string</i></p> <p style="margin-left:17%;">Specify the Java bootclasspath</p> <p style="margin-left:11%;">See also <b>infer-capture</b>(1). <b><br> --buck-blacklist</b> <i>+regex</i></p> <p style="margin-left:17%;">Skip capture of files matched by the specified regular expression (only the "flavors (C++)" Buck integration is supported, not Java).</p> <p style="margin-left:11%;">See also <b>infer-capture</b>(1) and <b>infer-run</b>(1). <b><br> --buck-compilation-database</b> <i>{ no-deps | deps }</i></p> <p style="margin-left:17%;">Buck integration using the compilation database, with or without dependencies.</p> <p style="margin-left:11%;">See also <b>infer-capture</b>(1). <b><br> --buck-compilation-database-depth</b> <i>int</i></p> <p style="margin-left:17%;">Depth of dependencies used by the <b>--buck-compilation-database deps</b> option. By default, all recursive dependencies are captured.</p> <p style="margin-left:11%;">See also <b>infer-capture</b>(1). <b><br> --buck-out</b> <i>dir</i></p> <p style="margin-left:17%;">Specify the root directory of buck-out</p> <p style="margin-left:11%;">See also <b>infer-capture</b>(1). <b><br> --buck-targets-blacklist</b> <i>+regex</i></p> <p style="margin-left:17%;">Skip capture of buck targets matched by the specified regular expression.</p> <p style="margin-left:11%;">See also <b>infer-capture</b>(1) and <b>infer-run</b>(1). <b><br> --bufferoverrun</b></p> <p style="margin-left:17%;">Activates: the buffer overrun analysis (Conversely: <b>--no-bufferoverrun</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --bufferoverrun-only</b></p> <p style="margin-left:17%;">Activates: Enable <b>--bufferoverrun</b> and disable all other checkers (Conversely: <b>--no-bufferoverrun-only</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --capture-blacklist</b> <i>regex</i></p> <p style="margin-left:17%;">Skip capture of files matched by the specified OCaml regular expression (only supported by the javac integration for now).</p> <p style="margin-left:11%;">See also <b>infer-capture</b>(1) and <b>infer-run</b>(1). <b><br> --censor-report</b> <i>+string</i></p> <p style="margin-left:17%;">Specify a filter for issues to be censored by adding a 'censored_reason' field in the json report. Infer will not report censored issues on the console output and in bugs.txt, but tools that post-process the json report can take them into account. 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.</p> <p style="margin-left:11%;">See also <b>infer-report</b>(1) and <b>infer-run</b>(1). <b><br> --changed-files-index</b> <i>file</i></p> <p style="margin-left:17%;">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</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --clang-biniou-file</b> <i>file</i></p> <p style="margin-left:17%;">Specify a file containing the AST of the program, in biniou format</p> <p style="margin-left:11%;">See also <b>infer-capture</b>(1). <b><br> --clang-blacklisted-flags</b> <i>+string</i></p> <p style="margin-left:17%;">Clang flags to filter out</p> <p style="margin-left:11%;">See also <b>infer-capture</b>(1). <b><br> --clang-blacklisted-flags-with-arg</b> <i>+string</i></p> <p style="margin-left:17%;">Clang flags (taking args) to filter out</p> <p style="margin-left:11%;">See also <b>infer-capture</b>(1). <b><br> --class-loads</b></p> <p style="margin-left:17%;">Activates: Java class loading analysis (Conversely: <b>--no-class-loads</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --class-loads-only</b></p> <p style="margin-left:17%;">Activates: Enable <b>--class-loads</b> and disable all other checkers (Conversely: <b>--no-class-loads-only</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --compilation-database</b> <i>+path</i></p> <p style="margin-left:17%;">File that contain compilation commands (can be specified multiple times)</p> <p style="margin-left:11%;">See also <b>infer-capture</b>(1). <b><br> --compilation-database-escaped</b> <i>+path</i></p> <p style="margin-left:17%;">File that contain compilation commands where all entries are escaped for the shell, eg coming from Xcode (can be specified multiple times)</p> <p style="margin-left:11%;">See also <b>infer-capture</b>(1). <b><br> --compute-analytics</b></p> <p style="margin-left:17%;">Activates: Emit analytics as info-level issues, like component kit line count and component kit file cyclomatic complexity (Conversely: <b>--no-compute-analytics</b>)</p> <p style="margin-left:11%;">See also <b>infer-capture</b>(1) and <b>infer-run</b>(1). <b><br> --continue</b></p> <p style="margin-left:17%;">Activates: Continue the capture for the reactive analysis, increasing the changed files/procedures. (If a procedure was changed beforehand, keep the changed marking.) (Conversely: <b>--no-continue</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --cost</b></p> <p style="margin-left:17%;">Activates: checker for performance cost analysis (Conversely: <b>--no-cost</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --cost-only</b></p> <p style="margin-left:17%;">Activates: Enable <b>--cost</b> and disable all other checkers (Conversely: <b>--no-cost-only</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --costs-current</b> <i>path</i></p> <p style="margin-left:17%;">Costs report of the latest revision</p> <p style="margin-left:11%;">See also <b>infer-reportdiff</b>(1). <b><br> --costs-previous</b> <i>path</i></p> <p style="margin-left:17%;">Costs report of the base revision to use for comparison</p> <p style="margin-left:11%;">See also <b>infer-reportdiff</b>(1). <b><br> --custom-symbols</b> <i>json</i></p> <p style="margin-left:17%;">Specify named lists of symbols available to rules</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --no-cxx</b></p> <p style="margin-left:17%;">Deactivates: Analyze C++ methods (Conversely: <b>--cxx</b>)</p> <p style="margin-left:11%;">See also <b>infer-capture</b>(1). <b><br> --cxx-scope-guards</b> <i>json</i></p> <p style="margin-left:17%;">Specify scope guard classes that can be read only by destructors without being reported as dead stores.</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --debug</b>,<b>-g</b></p> <p style="margin-left:17%;">Activates: Debug mode (also sets <b>--debug-level 2</b>, <b>--developer-mode</b>, <b>--no-filtering</b>, <b>--print-buckets</b>, <b>--print-types</b>, <b>--reports-include-ml-loc</b>, <b>--no-only-cheap-debug</b>, <b>--trace-error</b>, <b>--write-dotty</b>, <b>--write-html</b>) (Conversely: <b>--no-debug</b> | <b>-G</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1), <b>infer-capture</b>(1), <b>infer-compile</b>(1), <b><br> infer-events</b>(1), <b>infer-report</b>(1), <b>infer-reportdiff</b>(1), and <b><br> infer-run</b>(1). <b><br> --debug-level</b> <i>level</i></p> <p style="margin-left:17%;">Debug level (sets <b>--bo-debug</b> <i>level</i>, <b>--debug-level-analysis</b> <i>level</i>, <b>--debug-level-capture</b> <i>level</i>, <b>--debug-level-linters</b> <i>level</i>):</p> <p style="margin-left:11%;">- 0: only basic debugging enabled <br> - 1: verbose debugging enabled <br> - 2: very verbose debugging enabled <br> See also <b>infer-analyze</b>(1), <b>infer-capture</b>(1), <b>infer-compile</b>(1), <b><br> infer-events</b>(1), <b>infer-report</b>(1), <b>infer-reportdiff</b>(1), and <b><br> infer-run</b>(1). <b><br> --debug-level-analysis</b> <i>int</i></p> <p style="margin-left:17%;">Debug level for the analysis. See <b>--debug-level</b> for accepted values.</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1), <b>infer-capture</b>(1), <b>infer-compile</b>(1), <b><br> infer-events</b>(1), <b>infer-report</b>(1), <b>infer-reportdiff</b>(1), and <b><br> infer-run</b>(1). <b><br> --debug-level-capture</b> <i>int</i></p> <p style="margin-left:17%;">Debug level for the capture. See <b>--debug-level</b> for accepted values.</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1), <b>infer-capture</b>(1), <b>infer-compile</b>(1), <b><br> infer-events</b>(1), <b>infer-report</b>(1), <b>infer-reportdiff</b>(1), and <b><br> infer-run</b>(1). <b><br> --debug-level-linters</b> <i>int</i></p> <p style="margin-left:17%;">Debug level for the linters. See <b>--debug-level</b> for accepted values.</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1), <b>infer-capture</b>(1), <b>infer-compile</b>(1), <b><br> infer-events</b>(1), <b>infer-report</b>(1), <b>infer-reportdiff</b>(1), and <b><br> infer-run</b>(1). <b><br> --no-default-checkers</b></p> <p style="margin-left:17%;">Deactivates: Default checkers: <b>--biabduction</b>, <b>--fragment-retains-view</b>, <b>--inefficient-keyset-iterator</b>, <b>--linters</b>, <b>--liveness</b>, <b>--racerd</b>, <b>--siof</b>, <b>--starvation</b>, <b>--uninit</b> (Conversely: <b>--default-checkers</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --no-default-linters</b></p> <p style="margin-left:17%;">Deactivates: Use the default linters for the analysis. (Conversely: <b>--default-linters</b>)</p> <p style="margin-left:11%;">See also <b>infer-capture</b>(1). <b><br> --dependencies</b></p> <p style="margin-left:17%;">Activates: Translate all the dependencies during the capture. The classes in the given jar file will be translated. No sources needed. (Conversely: <b>--no-dependencies</b>)</p> <p style="margin-left:11%;">See also <b>infer-capture</b>(1). <b><br> --differential-filter-files</b> <i>string</i></p> <p style="margin-left:17%;">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</p> <p style="margin-left:11%;">See also <b>infer-report</b>(1). <b><br> --disable-issue-type</b> <i>+issue_type</i></p> <p style="margin-left:17%;">Do not show reports coming from this type of issue. Each checker can report a range of issue types. This option provides fine-grained filtering over which types of issue should be reported once the checkers have run. In particular, note that disabling issue types does not make the corresponding checker not run.</p> <p style="margin-left:11%;">Available issue types are as follows: <br> ALLOCATION_COMPLEXITY_INCREASE (enabled by default), <br> ALLOCATION_COMPLEXITY_INCREASE_COLD_START (enabled by default), <br> ANALYSIS_STOPS (disabled by default), <br> ARRAY_OUT_OF_BOUNDS_L1 (disabled by default), <br> ARRAY_OUT_OF_BOUNDS_L2 (disabled by default), <br> ARRAY_OUT_OF_BOUNDS_L3 (disabled by default), <br> Abduction_case_not_implemented (enabled by default), <br> Array_of_pointsto (enabled by default), <br> Assert_failure (enabled by default), <br> BUFFER_OVERRUN_L1 (enabled by default), <br> BUFFER_OVERRUN_L2 (enabled by default), <br> BUFFER_OVERRUN_L3 (enabled by default), <br> BUFFER_OVERRUN_L4 (disabled by default), <br> BUFFER_OVERRUN_L5 (disabled by default), <br> BUFFER_OVERRUN_R2 (enabled by default), <br> BUFFER_OVERRUN_S2 (enabled by default), <br> BUFFER_OVERRUN_U5 (disabled by default), <br> Bad_footprint (enabled by default), <br> CHECKERS_ALLOCATES_MEMORY (enabled by default), <br> CHECKERS_ANNOTATION_REACHABILITY_ERROR (enabled by default), <br> CHECKERS_CALLS_EXPENSIVE_METHOD (enabled by default), <br> CHECKERS_EXPENSIVE_OVERRIDES_UNANNOTATED (enabled by default), <br> CHECKERS_FRAGMENT_RETAINS_VIEW (enabled by default), <br> CHECKERS_IMMUTABLE_CAST (enabled by default), <br> CHECKERS_PRINTF_ARGS (enabled by default), <br> CLASS_CAST_EXCEPTION (disabled by default), <br> CLASS_LOAD (enabled by default), <br> COMPARING_FLOAT_FOR_EQUALITY (enabled by default), <br> COMPONENT_FACTORY_FUNCTION (enabled by default), <br> COMPONENT_FILE_CYCLOMATIC_COMPLEXITY (enabled by default), <br> COMPONENT_FILE_LINE_COUNT (enabled by default), <br> COMPONENT_INITIALIZER_WITH_SIDE_EFFECTS (enabled by default), <br> COMPONENT_WITH_MULTIPLE_FACTORY_METHODS (enabled by default), <br> COMPONENT_WITH_UNCONVENTIONAL_SUPERCLASS (enabled by default), <br> CONDITION_ALWAYS_FALSE (disabled by default), <br> CONDITION_ALWAYS_TRUE (disabled by default), <br> CREATE_INTENT_FROM_URI (enabled by default), <br> CROSS_SITE_SCRIPTING (enabled by default), <br> Cannot_star (enabled by default), <br> Codequery (enabled by default), <br> DANGLING_POINTER_DEREFERENCE (disabled by default), <br> DEADLOCK (enabled by default), <br> DEAD_STORE (enabled by default), <br> DEALLOCATE_STACK_VARIABLE (enabled by default), <br> DEALLOCATE_STATIC_MEMORY (enabled by default), <br> DEALLOCATION_MISMATCH (enabled by default), <br> DIVIDE_BY_ZERO (disabled by default), <br> DO_NOT_REPORT (enabled by default), <br> EMPTY_VECTOR_ACCESS (enabled by default), <br> ERADICATE_CONDITION_REDUNDANT (enabled by default), <br> ERADICATE_CONDITION_REDUNDANT_NONNULL (enabled by default), <br> ERADICATE_FIELD_NOT_INITIALIZED (enabled by default), <br> ERADICATE_FIELD_NOT_MUTABLE (enabled by default), <br> ERADICATE_FIELD_NOT_NULLABLE (enabled by default), <br> ERADICATE_FIELD_OVER_ANNOTATED (enabled by default), <br> ERADICATE_FIELD_VALUE_ABSENT (enabled by default), <br> ERADICATE_INCONSISTENT_SUBCLASS_PARAMETER_ANNOTATION (enabled <br> by default), <br> ERADICATE_INCONSISTENT_SUBCLASS_RETURN_ANNOTATION (enabled by <br> default), <br> ERADICATE_NULLABLE_DEREFERENCE (enabled by default), <br> ERADICATE_PARAMETER_NOT_NULLABLE (enabled by default), <br> ERADICATE_PARAMETER_VALUE_ABSENT (enabled by default), <br> ERADICATE_RETURN_NOT_NULLABLE (enabled by default), <br> ERADICATE_RETURN_OVER_ANNOTATED (enabled by default), <br> ERADICATE_RETURN_VALUE_NOT_PRESENT (enabled by default), <br> ERADICATE_VALUE_NOT_PRESENT (enabled by default), <br> EXECUTION_TIME_COMPLEXITY_INCREASE (enabled by default), <br> EXECUTION_TIME_COMPLEXITY_INCREASE_COLD_START (enabled by <br> default), <br> EXPENSIVE_ALLOCATION (disabled by default), <br> EXPENSIVE_ALLOCATION_COLD_START (disabled by default), <br> EXPENSIVE_EXECUTION_TIME (disabled by default), <br> EXPENSIVE_EXECUTION_TIME_COLD_START (disabled by default), <br> EXPENSIVE_LOOP_INVARIANT_CALL (enabled by default), <br> EXPOSED_INSECURE_INTENT_HANDLING (enabled by default), <br> Failure_exe (enabled by default), <br> GLOBAL_VARIABLE_INITIALIZED_WITH_FUNCTION_OR_METHOD_CALL <br> (disabled by default), <br> GRAPHQL_FIELD_ACCESS (enabled by default), <br> GUARDEDBY_VIOLATION (enabled by default), <br> INEFFICIENT_KEYSET_ITERATOR (enabled by default), <br> INFERBO_ALLOC_IS_BIG (enabled by default), <br> INFERBO_ALLOC_IS_NEGATIVE (enabled by default), <br> INFERBO_ALLOC_IS_ZERO (enabled by default), <br> INFERBO_ALLOC_MAY_BE_BIG (enabled by default), <br> INFERBO_ALLOC_MAY_BE_NEGATIVE (enabled by default), <br> INFINITE_ALLOCATION (disabled by default), <br> INFINITE_EXECUTION_TIME (disabled by default), <br> INHERENTLY_DANGEROUS_FUNCTION (enabled by default), <br> INSECURE_INTENT_HANDLING (enabled by default), <br> INTEGER_OVERFLOW_L1 (enabled by default), <br> INTEGER_OVERFLOW_L2 (enabled by default), <br> INTEGER_OVERFLOW_L5 (disabled by default), <br> INTEGER_OVERFLOW_R2 (enabled by default), <br> INTEGER_OVERFLOW_U5 (disabled by default), <br> INTERFACE_NOT_THREAD_SAFE (enabled by default), <br> INVARIANT_CALL (enabled by default), <br> IVAR_NOT_NULL_CHECKED (enabled by default), <br> Internal_error (enabled by default), <br> JAVASCRIPT_INJECTION (enabled by default), <br> LOCK_CONSISTENCY_VIOLATION (enabled by default), <br> LOGGING_PRIVATE_DATA (enabled by default), <br> Leak_after_array_abstraction (enabled by default), <br> Leak_in_footprint (enabled by default), <br> MEMORY_LEAK (enabled by default), <br> MISSING_REQUIRED_PROP (enabled by default), <br> MUTABLE_LOCAL_VARIABLE_IN_COMPONENT_FILE (enabled by default), <br> Missing_fld (enabled by default), <br> NULLSAFE_FIELD_NOT_NULLABLE (enabled by default), <br> NULLSAFE_NULLABLE_DEREFERENCE (enabled by default), <br> NULL_DEREFERENCE (enabled by default), <br> NULL_TEST_AFTER_DEREFERENCE (disabled by default), <br> PARAMETER_NOT_NULL_CHECKED (enabled by default), <br> POINTER_SIZE_MISMATCH (enabled by default), <br> PRECONDITION_NOT_FOUND (enabled by default), <br> PRECONDITION_NOT_MET (enabled by default), <br> PREMATURE_NIL_TERMINATION_ARGUMENT (enabled by default), <br> PURE_FUNCTION (enabled by default), <br> QUANDARY_TAINT_ERROR (enabled by default), <br> REGISTERED_OBSERVER_BEING_DEALLOCATED (enabled by default), <br> RESOURCE_LEAK (enabled by default), <br> RETAIN_CYCLE (enabled by default), <br> RETURN_EXPRESSION_REQUIRED (enabled by default), <br> RETURN_STATEMENT_MISSING (enabled by default), <br> RETURN_VALUE_IGNORED (disabled by default), <br> SHELL_INJECTION (enabled by default), <br> SHELL_INJECTION_RISK (enabled by default), <br> SKIP_FUNCTION (enabled by default), <br> SKIP_POINTER_DEREFERENCE (enabled by default), <br> SQL_INJECTION (enabled by default), <br> SQL_INJECTION_RISK (enabled by default), <br> STACK_VARIABLE_ADDRESS_ESCAPE (disabled by default), <br> STARVATION (enabled by default), <br> STATIC_INITIALIZATION_ORDER_FIASCO (enabled by default), <br> STRICT_MODE_VIOLATION (enabled by default), <br> Symexec_memory_error (enabled by default), <br> TAINTED_BUFFER_ACCESS (enabled by default), <br> TAINTED_MEMORY_ALLOCATION (enabled by default), <br> THREAD_SAFETY_VIOLATION (enabled by default), <br> TOPL_ERROR (enabled by default), <br> UNARY_MINUS_APPLIED_TO_UNSIGNED_EXPRESSION (disabled by <br> default), <br> UNINITIALIZED_VALUE (enabled by default), <br> UNREACHABLE_CODE (enabled by default), <br> UNSAFE_GUARDED_BY_ACCESS (enabled by default), <br> UNTRUSTED_BUFFER_ACCESS (disabled by default), <br> UNTRUSTED_DESERIALIZATION (enabled by default), <br> UNTRUSTED_DESERIALIZATION_RISK (enabled by default), <br> UNTRUSTED_ENVIRONMENT_CHANGE_RISK (enabled by default), <br> UNTRUSTED_FILE (enabled by default), <br> UNTRUSTED_FILE_RISK (enabled by default), <br> UNTRUSTED_HEAP_ALLOCATION (disabled by default), <br> UNTRUSTED_INTENT_CREATION (enabled by default), <br> UNTRUSTED_URL_RISK (enabled by default), <br> UNTRUSTED_VARIABLE_LENGTH_ARRAY (enabled by default), <br> USER_CONTROLLED_SQL_RISK (enabled by default), <br> USE_AFTER_DELETE (enabled by default), <br> USE_AFTER_FREE (enabled by default), <br> USE_AFTER_LIFETIME (enabled by default), <br> Unknown_proc (enabled by default), <br> VECTOR_INVALIDATION (enabled by default), <br> Wrong_argument_number (enabled by default), <br> ZERO_ALLOCATION (disabled by default), <br> ZERO_EXECUTION_TIME (disabled by default). <br> See also <b>infer-report</b>(1). <b><br> --dump-duplicate-symbols</b></p> <p style="margin-left:17%;">Activates: Dump all symbols with the same name that are defined in more than one file. (Conversely: <b>--no-dump-duplicate-symbols</b>)</p> <p style="margin-left:11%;">See also <b>infer-capture</b>(1). <b><br> --enable-issue-type</b> <i>+issue_type</i></p> <p style="margin-left:17%;">Show reports coming from this type of issue. By default, all issue types are enabled except the ones listed in <b>--disable-issue-type</b>. Note that enabling issue types does not make the corresponding checker run; see individual checker options to turn them on or off.</p> <p style="margin-left:11%;">See also <b>infer-report</b>(1). <b><br> --eradicate</b></p> <p style="margin-left:17%;">Activates: the eradicate @Nullable checker for Java annotations (Conversely: <b>--no-eradicate</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --eradicate-only</b></p> <p style="margin-left:17%;">Activates: Enable <b>--eradicate</b> and disable all other checkers (Conversely: <b>--no-eradicate-only</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --external-java-packages</b> <i>+prefix</i></p> <p style="margin-left:17%;">Specify a list of Java package prefixes for external Java packages. If set, the analysis will not report non-actionable warnings on those packages.</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --fail-on-issue</b></p> <p style="margin-left:17%;">Activates: Exit with error code 2 if Infer found something to report (Conversely: <b>--no-fail-on-issue</b>)</p> <p style="margin-left:11%;">See also <b>infer-run</b>(1). <b><br> --file-renamings</b> <i>path</i></p> <p style="margin-left:17%;">JSON with a list of file renamings to use while computing differential reports</p> <p style="margin-left:11%;">See also <b>infer-reportdiff</b>(1). <b><br> --no-filtering</b>,<b>-F</b></p> <p style="margin-left:17%;">Deactivates: Do not show the experimental and blacklisted issue types (Conversely: <b>--filtering</b> | <b>-f</b>)</p> <p style="margin-left:11%;">See also <b>infer-report</b>(1). <b><br> --flavors</b></p> <p style="margin-left:17%;">Activates: Buck integration using Buck flavors (clang only), eg <i>’infer --flavors -- buck build //foo:bar#infer’</i> (Conversely: <b>--no-flavors</b>)</p> <p style="margin-left:11%;">See also <b>infer-capture</b>(1). <b><br> --force-delete-results-dir</b></p> <p style="margin-left:17%;">Activates: Do not refuse to delete the results directory if it doesn't look like an infer results directory. (Conversely: <b>--no-force-delete-results-dir</b>)</p> <p style="margin-left:11%;">See also <b>infer-capture</b>(1), <b>infer-compile</b>(1), and <b>infer-run</b>(1). <b><br> --force-integration</b> <i>command</i></p> <p style="margin-left:17%;">Proceed as if the first argument after <b>--</b> was <i>command</i>. Possible values: <i>ant</i>, <i>buck</i>, <i>gradle</i>, <i>gradlew</i>, <i>java</i>, <i>javac</i>, <i>cc</i>, <i>clang</i>, <i>gcc</i>, <i>clang++</i>, <i>c++</i>, <i>g++</i>, <i>make</i>, <i>configure</i>, <i>cmake</i>, <i>waf</i>, <i>mvn</i>, <i>mvnw</i>, <i>ndk-build</i>, <i>xcodebuild</i>.</p> <p style="margin-left:11%;">See also <b>infer-capture</b>(1) and <b>infer-run</b>(1). <b><br> --no-fragment-retains-view</b></p> <p style="margin-left:17%;">Deactivates: detects when Android fragments are not explicitly nullified before becoming unreabable (Conversely: <b>--fragment-retains-view</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --fragment-retains-view-only</b></p> <p style="margin-left:17%;">Activates: Enable <b>--fragment-retains-view</b> and disable all other checkers (Conversely: <b>--no-fragment-retains-view-only</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --from-json-report</b> <i>report.json</i></p> <p style="margin-left:17%;">Load analysis results from a report file (default is to load the results from the specs files generated by the analysis).</p> <p style="margin-left:11%;">See also <b>infer-report</b>(1). <b><br> --frontend-tests</b></p> <p style="margin-left:17%;">Activates: Save filename.ext.test.dot with the cfg in dotty format for frontend tests (also sets <b>--print-types</b>) (Conversely: <b>--no-frontend-tests</b>)</p> <p style="margin-left:11%;">See also <b>infer-capture</b>(1). <b><br> --generated-classes</b> <i>path</i></p> <p style="margin-left:17%;">Specify where to load the generated class files</p> <p style="margin-left:11%;">See also <b>infer-capture</b>(1). <b><br> --headers</b></p> <p style="margin-left:17%;">Activates: Analyze code in header files (Conversely: <b>--no-headers</b>)</p> <p style="margin-left:11%;">See also <b>infer-capture</b>(1). <b><br> --help</b></p> <p style="margin-left:17%;">Show this manual</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1), <b>infer-capture</b>(1), <b>infer-compile</b>(1), <b><br> infer-events</b>(1), <b>infer-explore</b>(1), <b>infer-report</b>(1), <b><br> infer-reportdiff</b>(1), and <b>infer-run</b>(1). <b><br> --help-format</b> <i>{ auto | groff | pager | plain }</i></p> <p style="margin-left:17%;">Show this help in the specified format. <b>auto</b> sets the format to <b>plain</b> if the environment variable <b>TERM</b> is "dumb" or undefined, and to <b>pager</b> otherwise.</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1), <b>infer-capture</b>(1), <b>infer-compile</b>(1), <b><br> infer-events</b>(1), <b>infer-explore</b>(1), <b>infer-report</b>(1), <b><br> infer-reportdiff</b>(1), and <b>infer-run</b>(1). <b><br> --help-full</b></p> <p style="margin-left:17%;">Show this manual with all internal options in the INTERNAL OPTIONS section</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1), <b>infer-capture</b>(1), <b>infer-compile</b>(1), <b><br> infer-events</b>(1), <b>infer-explore</b>(1), <b>infer-report</b>(1), <b><br> infer-reportdiff</b>(1), and <b>infer-run</b>(1). <b><br> --no-hoisting-report-only-expensive</b></p> <p style="margin-left:17%;">Deactivates: [Hoisting] Report loop-invariant calls only when the function is expensive, i.e. at least linear (Conversely: <b>--hoisting-report-only-expensive</b>)</p> <p style="margin-left:11%;">See also <b>infer-report</b>(1). <b><br> --html</b></p> <p style="margin-left:17%;">Activates: Generate html report. (Conversely: <b>--no-html</b>)</p> <p style="margin-left:11%;">See also <b>infer-explore</b>(1). <b><br> --immutable-cast</b></p> <p style="margin-left:17%;">Activates: the detection of object cast from immutable type to mutable type. For instance, it will detect cast from ImmutableList to List, ImmutableMap to Map, and ImmutableSet to Set. (Conversely: <b>--no-immutable-cast</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --immutable-cast-only</b></p> <p style="margin-left:17%;">Activates: Enable <b>--immutable-cast</b> and disable all other checkers (Conversely: <b>--no-immutable-cast-only</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --no-inefficient-keyset-iterator</b></p> <p style="margin-left:17%;">Deactivates: Check for inefficient uses of keySet iterator that access both the key and the value. (Conversely: <b>--inefficient-keyset-iterator</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --inefficient-keyset-iterator-only</b></p> <p style="margin-left:17%;">Activates: Enable <b>--inefficient-keyset-iterator</b> and disable all other checkers (Conversely: <b>--no-inefficient-keyset-iterator-only</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --iphoneos-target-sdk-version</b> <i>string</i></p> <p style="margin-left:17%;">Specify the target SDK version to use for iphoneos</p> <p style="margin-left:11%;">See also <b>infer-capture</b>(1). <b><br> --iphoneos-target-sdk-version-path-regex</b> <i>+string</i></p> <p style="margin-left:17%;">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)</p> <p style="margin-left:11%;">See also <b>infer-capture</b>(1). <b><br> --issues-fields</b> <i>,-separated sequence of { bug_type | bucket | qualifier <br> | severity | line | column | procedure | procedure_start_line | file | <br> bug_trace | key | hash | line_offset | <br> qualifier_contains_potential_exception_note }</i></p> <p style="margin-left:17%;">Fields to emit with <b>--issues-tests</b></p> <p style="margin-left:11%;">See also <b>infer-report</b>(1). <b><br> --issues-tests</b> <i>file</i></p> <p style="margin-left:17%;">Write a list of issues in a format suitable for tests to <i>file</i></p> <p style="margin-left:11%;">See also <b>infer-report</b>(1). <b><br> --issues-txt</b> <i>file</i></p> <p style="margin-left:17%;">Write a list of issues in text format to <i>file</i> (default: infer-out/bugs.txt)</p> <p style="margin-left:11%;">See also <b>infer-report</b>(1). <b><br> --java-jar-compiler</b> <i>path</i></p> <p style="margin-left:17%;">Specify the Java compiler jar used to generate the bytecode</p> <p style="margin-left:11%;">See also <b>infer-capture</b>(1). <b><br> --java-version</b> <i>int</i></p> <p style="margin-left:17%;">The version of Java being used. Set it to your Java version if mvn is failing.</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1) and <b>infer-capture</b>(1). <b><br> --jobs</b>,<b>-j</b> <i>int</i></p> <p style="margin-left:17%;">Run the specified number of analysis jobs simultaneously</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --keep-going</b></p> <p style="margin-left:17%;">Activates: Keep going when the analysis encounters a failure (Conversely: <b>--no-keep-going</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --linter</b> <i>string</i></p> <p style="margin-left:17%;">From the linters available, only run this one linter. (Useful together with <b>--linters-developer-mode</b>)</p> <p style="margin-left:11%;">See also <b>infer-capture</b>(1). <b><br> --no-linters</b></p> <p style="margin-left:17%;">Deactivates: syntactic linters (Conversely: <b>--linters</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --linters-def-file</b> <i>+file</i></p> <p style="margin-left:17%;">Specify the file containing linters definition (e.g. 'linters.al')</p> <p style="margin-left:11%;">See also <b>infer-capture</b>(1). <b><br> --linters-def-folder</b> <i>+dir</i></p> <p style="margin-left:17%;">Specify the folder containing linters files with extension .al</p> <p style="margin-left:11%;">See also <b>infer-capture</b>(1). <b><br> --linters-developer-mode</b></p> <p style="margin-left:17%;">Activates: Debug mode for developing new linters. (Sets the analyzer to <b>linters</b>; also sets <b>--debug</b>, <b>--debug-level-linters 2</b>, <b>--developer-mode</b>, and unsets <b>--allowed-failures</b> and <b>--default-linters</b>. (Conversely: <b>--no-linters-developer-mode</b>)</p> <p style="margin-left:11%;">See also <b>infer-capture</b>(1). <b><br> --linters-doc-url</b> <i>+string</i></p> <p style="margin-left:17%;">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.</p> <p style="margin-left:11%;">See also <b>infer-capture</b>(1). <b><br> --linters-ignore-clang-failures</b></p> <p style="margin-left:17%;">Activates: Continue linting files even if some compilation fails. (Conversely: <b>--no-linters-ignore-clang-failures</b>)</p> <p style="margin-left:11%;">See also <b>infer-capture</b>(1). <b><br> --linters-only</b></p> <p style="margin-left:17%;">Activates: Enable <b>--linters</b> and disable all other checkers (Conversely: <b>--no-linters-only</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --linters-validate-syntax-only</b></p> <p style="margin-left:17%;">Activates: Validate syntax of AL files, then emit possible errors in JSON format to stdout (Conversely: <b>--no-linters-validate-syntax-only</b>)</p> <p style="margin-left:11%;">See also <b>infer-capture</b>(1). <b><br> --litho</b></p> <p style="margin-left:17%;">Activates: Experimental checkers supporting the Litho framework (Conversely: <b>--no-litho</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --litho-only</b></p> <p style="margin-left:17%;">Activates: Enable <b>--litho</b> and disable all other checkers (Conversely: <b>--no-litho-only</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --no-liveness</b></p> <p style="margin-left:17%;">Deactivates: the detection of dead stores and unused variables (Conversely: <b>--liveness</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --liveness-dangerous-classes</b> <i>json</i></p> <p style="margin-left:17%;">Specify classes where the destructor should be ignored when computing liveness. In other words, assignement to variables of these types (or common wrappers around these types such as <i>unique_ptr<type></i>) will count as dead stores when the variables are not read explicitly by the program.</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --liveness-only</b></p> <p style="margin-left:17%;">Activates: Enable <b>--liveness</b> and disable all other checkers (Conversely: <b>--no-liveness-only</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --load-average</b>,<b>-l</b> <i>float</i></p> <p style="margin-left:17%;">Do not start new parallel jobs if the load average is greater than that specified (Buck and make only)</p> <p style="margin-left:11%;">See also <b>infer-capture</b>(1). <b><br> --log-events</b></p> <p style="margin-left:17%;">Activates: Turn on the feature that logs events in a machine-readable format (Conversely: <b>--no-log-events</b>)</p> <p style="margin-left:11%;">See also <b>infer-run</b>(1). <b><br> --log-skipped</b></p> <p style="margin-left:17%;">Activates: Turn on the feature that logs skipped functions (one per file) in a machine-readable format (Conversely: <b>--no-log-skipped</b>)</p> <p style="margin-left:11%;">See also <b>infer-run</b>(1). <b><br> --loop-hoisting</b></p> <p style="margin-left:17%;">Activates: checker for loop-hoisting (Conversely: <b>--no-loop-hoisting</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --loop-hoisting-only</b></p> <p style="margin-left:17%;">Activates: Enable <b>--loop-hoisting</b> and disable all other checkers (Conversely: <b>--no-loop-hoisting-only</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --max-nesting</b> <i>int</i></p> <p style="margin-left:17%;">Level of nested procedure calls to show. Trace elements beyond the maximum nesting level are skipped. If omitted, all levels are shown.</p> <p style="margin-left:11%;">See also <b>infer-explore</b>(1). <b><br> --merge</b></p> <p style="margin-left:17%;">Activates: Merge the captured results directories specified in the dependency file (Conversely: <b>--no-merge</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --ml-buckets</b> <i>,-separated sequence of { all | cf | arc | narc | cpp | <br> unknown_origin }</i></p> <p style="margin-left:17%;">Specify the memory leak buckets to be checked in C++:</p> <p style="margin-left:11%;">- <b>cpp</b> from C++ code <br> See also <b>infer-analyze</b>(1). <b><br> --nullsafe</b></p> <p style="margin-left:17%;">Activates: [EXPERIMENTAL] Nullable type checker (incomplete: use --eradicate for now) (Conversely: <b>--no-nullsafe</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --nullsafe-only</b></p> <p style="margin-left:17%;">Activates: Enable <b>--nullsafe</b> and disable all other checkers (Conversely: <b>--no-nullsafe-only</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --only-show</b></p> <p style="margin-left:17%;">Activates: Show the list of reports and exit (Conversely: <b>--no-only-show</b>)</p> <p style="margin-left:11%;">See also <b>infer-explore</b>(1). <b><br> --perf-profiler-data-file</b> <i>file</i></p> <p style="margin-left:17%;">Specify the file containing perf profiler data to read</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --pmd-xml</b></p> <p style="margin-left:17%;">Activates: Output issues in (PMD) XML format (Conversely: <b>--no-pmd-xml</b>)</p> <p style="margin-left:11%;">See also <b>infer-run</b>(1). <b><br> --print-active-checkers</b></p> <p style="margin-left:17%;">Activates: Print the active checkers before starting the analysis (Conversely: <b>--no-print-active-checkers</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --print-log-identifier</b></p> <p style="margin-left:17%;">Activates: Print the unique identifier that is common to all logged events (Conversely: <b>--no-print-log-identifier</b>)</p> <p style="margin-left:11%;">See also <b>infer-run</b>(1). <b><br> --print-logs</b></p> <p style="margin-left:17%;">Activates: Also log messages to stdout and stderr (Conversely: <b>--no-print-logs</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1), <b>infer-capture</b>(1), <b>infer-report</b>(1), and <b><br> infer-run</b>(1). <b><br> --printf-args</b></p> <p style="margin-left:17%;">Activates: the detection of mismatch between the Java printf format strings and the argument types For, example, this checker will warn about the type error in ’printf("Hello %d", "world")’ (Conversely: <b>--no-printf-args</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --printf-args-only</b></p> <p style="margin-left:17%;">Activates: Enable <b>--printf-args</b> and disable all other checkers (Conversely: <b>--no-printf-args-only</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --procedures</b></p> <p style="margin-left:17%;">Activates: Print functions and methods discovered by infer (Conversely: <b>--no-procedures</b>)</p> <p style="margin-left:11%;">See also <b>infer-explore</b>(1). <b><br> --procedures-attributes</b></p> <p style="margin-left:17%;">Activates: Print the attributes of each procedure in the output of <b>--procedures</b> (Conversely: <b>--no-procedures-attributes</b>)</p> <p style="margin-left:11%;">See also <b>infer-explore</b>(1). <b><br> --no-procedures-definedness</b></p> <p style="margin-left:17%;">Deactivates: Include procedures definedness in the output of <b>--procedures</b>, i.e. whether the procedure definition was found, or only the procedure declaration, or the procedure is an auto-generated Objective-C accessor (Conversely: <b>--procedures-definedness</b>)</p> <p style="margin-left:11%;">See also <b>infer-explore</b>(1). <b><br> --procedures-filter</b> <i>filter</i></p> <p style="margin-left:17%;">With <b>--procedures</b>, only print functions and methods (procedures) matching the specified <i>filter</i>. A procedure filter is of the form <i>path_pattern:procedure_name</i>. Patterns are interpreted as OCaml Str regular expressions. For instance, to keep only methods named "foo", one can use the filter ".*:foo", or "foo" for short.</p> <p style="margin-left:11%;">See also <b>infer-explore</b>(1). <b><br> --procedures-name</b></p> <p style="margin-left:17%;">Activates: Include procedures names in the output of <b>--procedures</b> (Conversely: <b>--no-procedures-name</b>)</p> <p style="margin-left:11%;">See also <b>infer-explore</b>(1). <b><br> --no-procedures-source-file</b></p> <p style="margin-left:17%;">Deactivates: Include the source file in which the procedure definition or declaration was found in the output of <b>--procedures</b> (Conversely: <b>--procedures-source-file</b>)</p> <p style="margin-left:11%;">See also <b>infer-explore</b>(1). <b><br> --no-progress-bar</b>,<b>-P</b></p> <p style="margin-left:17%;">Deactivates: Show a progress bar (Conversely: <b>--progress-bar</b> | <b>-p</b>)</p> <p style="margin-left:11%;">See also <b>infer-run</b>(1). <b><br> --progress-bar-style</b> <i>{ auto | plain | multiline }</i></p> <p style="margin-left:17%;">Style of the progress bar. <b>auto</b> selects <b>multiline</b> if connected to a tty, otherwise <b>plain</b>.</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1) and <b>infer-capture</b>(1). <b><br> --project-root</b>,<b>-C</b> <i>dir</i></p> <p style="margin-left:17%;">Specify the root directory of the project</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1), <b>infer-capture</b>(1), <b>infer-report</b>(1), and <b><br> infer-run</b>(1). <b><br> --pulse</b></p> <p style="margin-left:17%;">Activates: [EXPERIMENTAL] C++ lifetime analysis (Conversely: <b>--no-pulse</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --pulse-only</b></p> <p style="margin-left:17%;">Activates: Enable <b>--pulse</b> and disable all other checkers (Conversely: <b>--no-pulse-only</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --purity</b></p> <p style="margin-left:17%;">Activates: [EXPERIMENTAL] Purity analysis (Conversely: <b>--no-purity</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --purity-only</b></p> <p style="margin-left:17%;">Activates: Enable <b>--purity</b> and disable all other checkers (Conversely: <b>--no-purity-only</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --quandary</b></p> <p style="margin-left:17%;">Activates: the quandary taint analysis (Conversely: <b>--no-quandary</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --quandary-endpoints</b> <i>json</i></p> <p style="margin-left:17%;">Specify endpoint classes for Quandary</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --quandary-only</b></p> <p style="margin-left:17%;">Activates: Enable <b>--quandary</b> and disable all other checkers (Conversely: <b>--no-quandary-only</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --quandary-sanitizers</b> <i>json</i></p> <p style="margin-left:17%;">Specify custom sanitizers for Quandary</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --quandary-sinks</b> <i>json</i></p> <p style="margin-left:17%;">Specify custom sinks for Quandary</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --quandary-sources</b> <i>json</i></p> <p style="margin-left:17%;">Specify custom sources for Quandary</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --quandaryBO</b></p> <p style="margin-left:17%;">Activates: [EXPERIMENTAL] The quandaryBO tainted buffer access analysis (Conversely: <b>--no-quandaryBO</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --quandaryBO-only</b></p> <p style="margin-left:17%;">Activates: Enable <b>--quandaryBO</b> and disable all other checkers (Conversely: <b>--no-quandaryBO-only</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --quiet</b>,<b>-q</b></p> <p style="margin-left:17%;">Activates: Do not print specs on standard output (default: only print for the <b>report</b> command) (Conversely: <b>--no-quiet</b> | <b>-Q</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1) and <b>infer-report</b>(1). <b><br> --no-racerd</b></p> <p style="margin-left:17%;">Deactivates: the RacerD thread safety analysis (Conversely: <b>--racerd</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --racerd-guardedby</b></p> <p style="margin-left:17%;">Activates: Check @GuardedBy annotations with RacerD (Conversely: <b>--no-racerd-guardedby</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --racerd-only</b></p> <p style="margin-left:17%;">Activates: Enable <b>--racerd</b> and disable all other checkers (Conversely: <b>--no-racerd-only</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --reactive</b>,<b>-r</b></p> <p style="margin-left:17%;">Activates: Reactive mode: the analysis starts from the files captured since the <i>infer</i> command started (Conversely: <b>--no-reactive</b> | <b>-R</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --no-report</b></p> <p style="margin-left:17%;">Deactivates: Run the reporting phase once the analysis has completed (Conversely: <b>--report</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1) and <b>infer-run</b>(1). <b><br> --report-blacklist-files-containing</b> <i>+string</i></p> <p style="margin-left:17%;">blacklist files containing the specified string for the given analyzer (see <b>--analyzer</b> for valid values)</p> <p style="margin-left:11%;">See also <b>infer-report</b>(1) and <b>infer-run</b>(1). <b><br> --report-blacklist-path-regex</b> <i>+path_regex</i></p> <p style="margin-left:17%;">blacklist the analysis of files whose relative path matches the specified OCaml-style regex (to whitelist: <b>--<analyzer>-whitelist-path-regex</b>)</p> <p style="margin-left:11%;">See also <b>infer-report</b>(1) and <b>infer-run</b>(1). <b><br> --report-current</b> <i>path</i></p> <p style="margin-left:17%;">report of the latest revision</p> <p style="margin-left:11%;">See also <b>infer-reportdiff</b>(1). <b><br> --report-force-relative-path</b></p> <p style="margin-left:17%;">Activates: Force converting an absolute path to a relative path to the root directory (Conversely: <b>--no-report-force-relative-path</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1) and <b>infer-run</b>(1). <b><br> --report-formatter</b> <i>{ none | phabricator }</i></p> <p style="margin-left:17%;">Which formatter to use when emitting the report</p> <p style="margin-left:11%;">See also <b>infer-report</b>(1). <b><br> --report-hook</b> <i>script</i></p> <p style="margin-left:17%;">Specify a script to be executed after the analysis results are written. This script will be passed, <b>--issues-json</b>, <b>--issues-txt</b>, <b>--issues-xml</b>, <b>--project-root</b>, and <b>--results-dir</b>.</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1) and <b>infer-run</b>(1). <b><br> --report-previous</b> <i>path</i></p> <p style="margin-left:17%;">Report of the base revision to use for comparison</p> <p style="margin-left:11%;">See also <b>infer-reportdiff</b>(1). <b><br> --report-suppress-errors</b> <i>+error_name</i></p> <p style="margin-left:17%;">do not report a type of errors</p> <p style="margin-left:11%;">See also <b>infer-report</b>(1) and <b>infer-run</b>(1). <b><br> --results-dir</b>,<b>-o</b> <i>dir</i></p> <p style="margin-left:17%;">Write results and internal files in the specified directory</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1), <b>infer-capture</b>(1), <b>infer-explore</b>(1), <b><br> infer-report</b>(1), and <b>infer-run</b>(1). <b><br> --select</b> <i>N</i></p> <p style="margin-left:17%;">Select bug number <i>N</i>. If omitted, prompt for input.</p> <p style="margin-left:11%;">See also <b>infer-explore</b>(1). <b><br> --no-siof</b></p> <p style="margin-left:17%;">Deactivates: the Static Initialization Order Fiasco analysis (C++ only) (Conversely: <b>--siof</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --siof-check-iostreams</b></p> <p style="margin-left:17%;">Activates: Do not assume that iostreams (cout, cerr, ...) are always initialized. The default is to assume they are always initialized to avoid false positives. However, if your program compiles against a recent libstdc++ then it is safe to turn this option on. (Conversely: <b>--no-siof-check-iostreams</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --siof-only</b></p> <p style="margin-left:17%;">Activates: Enable <b>--siof</b> and disable all other checkers (Conversely: <b>--no-siof-only</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --siof-safe-methods</b> <i>+string</i></p> <p style="margin-left:17%;">Methods that are SIOF-safe; "foo::bar" will match "foo::bar()", "foo<int>::bar()", etc. (can be specified multiple times)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --skip-analysis-in-path</b> <i>+path_prefix_OCaml_regex</i></p> <p style="margin-left:17%;">Ignore files whose path matches the given prefix (can be specified multiple times)</p> <p style="margin-left:11%;">See also <b>infer-capture</b>(1) and <b>infer-run</b>(1). <b><br> --skip-analysis-in-path-skips-compilation</b></p> <p style="margin-left:17%;">Activates: Whether paths in --skip-analysis-in-path should be compiled or not (Conversely: <b>--no-skip-analysis-in-path-skips-compilation</b>)</p> <p style="margin-left:11%;">See also <b>infer-report</b>(1). <b><br> --no-skip-duplicated-types</b></p> <p style="margin-left:17%;">Deactivates: Skip fixed-then-introduced duplicated types while computing differential reports (Conversely: <b>--skip-duplicated-types</b>)</p> <p style="margin-left:11%;">See also <b>infer-reportdiff</b>(1). <b><br> --skip-translation-headers</b> <i>+path_prefix</i></p> <p style="margin-left:17%;">Ignore headers whose path matches the given prefix</p> <p style="margin-left:11%;">See also <b>infer-capture</b>(1). <b><br> --source-files</b></p> <p style="margin-left:17%;">Activates: Print source files discovered by infer (Conversely: <b>--no-source-files</b>)</p> <p style="margin-left:11%;">See also <b>infer-explore</b>(1). <b><br> --source-files-cfg</b></p> <p style="margin-left:17%;">Activates: Output a dotty file in infer-out/captured for each source file in the output of <b>--source-files</b> (Conversely: <b>--no-source-files-cfg</b>)</p> <p style="margin-left:11%;">See also <b>infer-explore</b>(1). <b><br> --source-files-filter</b> <i>filter</i></p> <p style="margin-left:17%;">With <b>--source-files</b>, only print source files matching the specified <i>filter</i>. The filter is a pattern that should match the file path. Patterns are interpreted as OCaml Str regular expressions.</p> <p style="margin-left:11%;">See also <b>infer-explore</b>(1). <b><br> --source-files-freshly-captured</b></p> <p style="margin-left:17%;">Activates: Print whether the source file has been captured in the most recent capture phase in the output of <b>--source-files</b>. (Conversely: <b>--no-source-files-freshly-captured</b>)</p> <p style="margin-left:11%;">See also <b>infer-explore</b>(1). <b><br> --source-files-procedure-names</b></p> <p style="margin-left:17%;">Activates: Print the names of procedure of each source file in the output of <b>--source-files</b> (Conversely: <b>--no-source-files-procedure-names</b>)</p> <p style="margin-left:11%;">See also <b>infer-explore</b>(1). <b><br> --source-files-type-environment</b></p> <p style="margin-left:17%;">Activates: Print the type environment of each source file in the output of <b>--source-files</b> (Conversely: <b>--no-source-files-type-environment</b>)</p> <p style="margin-left:11%;">See also <b>infer-explore</b>(1). <b><br> --no-source-preview</b></p> <p style="margin-left:17%;">Deactivates: print code excerpts around trace elements (Conversely: <b>--source-preview</b>)</p> <p style="margin-left:11%;">See also <b>infer-explore</b>(1). <b><br> --sqlite-lock-timeout</b> <i>int</i></p> <p style="margin-left:17%;">Timeout for SQLite results database operations, in milliseconds.</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1), <b>infer-capture</b>(1), and <b>infer-run</b>(1). <b><br> --no-starvation</b></p> <p style="margin-left:17%;">Deactivates: starvation analysis (Conversely: <b>--starvation</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --starvation-only</b></p> <p style="margin-left:17%;">Activates: Enable <b>--starvation</b> and disable all other checkers (Conversely: <b>--no-starvation-only</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --threadsafe-aliases</b> <i>json</i></p> <p style="margin-left:17%;">Specify custom annotations that should be considered aliases of @ThreadSafe</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --no-uninit</b></p> <p style="margin-left:17%;">Deactivates: checker for use of uninitialized values (Conversely: <b>--uninit</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --uninit-only</b></p> <p style="margin-left:17%;">Activates: Enable <b>--uninit</b> and disable all other checkers (Conversely: <b>--no-uninit-only</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --unsafe-malloc</b></p> <p style="margin-left:17%;">Activates: Assume that malloc(3) never returns null. (Conversely: <b>--no-unsafe-malloc</b>)</p> <p style="margin-left:11%;">See also <b>infer-analyze</b>(1). <b><br> --version</b></p> <p style="margin-left:17%;">Print version information and exit</p> <p style="margin-left:11%;">See also <b>infer-run</b>(1). <b><br> --version-json</b></p> <p style="margin-left:17%;">Print version information in json format and exit</p> <p style="margin-left:11%;">See also <b>infer-run</b>(1). <b><br> --Xbuck</b> <i>+string</i></p> <p style="margin-left:17%;">Pass values as command-line arguments to invocations of <i>’buck build’</i></p> <p style="margin-left:11%;">See also <b>infer-capture</b>(1). <b><br> --Xbuck-no-inline</b> <i>+string</i></p> <p style="margin-left:17%;">Pass values as command-line arguments to invocations of <i>’buck build’</i>, don't inline any args starting with '@'</p> <p style="margin-left:11%;">See also <b>infer-capture</b>(1). <b><br> --Xclang</b> <i>+string</i></p> <p style="margin-left:17%;">Pass values as command-line arguments to invocations of clang</p> <p style="margin-left:11%;">See also <b>infer-capture</b>(1). <b><br> --xcode-developer-dir</b> <i>XCODE_DEVELOPER_DIR</i></p> <p style="margin-left:17%;">Specify the path to Xcode developer directory</p> <p style="margin-left:11%;">See also <b>infer-capture</b>(1). <b><br> --xcpretty</b></p> <p style="margin-left:17%;">Activates: 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>’</i>. (Conversely: <b>--no-xcpretty</b>)</p> <p style="margin-left:11%;">See also <b>infer-capture</b>(1).</p> <table width="100%" border="0" rules="none" frame="void" cellspacing="0" cellpadding="0"> <tr valign="top" align="left"> <td width="11%"></td> <td width="3%"> <p><b>--</b></p></td> <td width="3%"></td> <td width="83%"> <p>Stop argument processing, use remaining arguments as a build command</p></td></tr> </table> <p style="margin-left:11%;">See also <b>infer-capture</b>(1) and <b>infer-run</b>(1).</p> <h2>ENVIRONMENT <a name="ENVIRONMENT"></a> </h2> <p style="margin-left:11%; margin-top: 1em">Extra arguments may be passed to all infer commands using the <b>INFER_ARGS</b> environment variable (see the <i>OPTIONS</i> section). <b>INFER_ARGS</b> is expected to contain a string of ^-separated options. For instance, calling ’INFER_ARGS=--debug^--print-logs infer’ is equivalent to calling ’infer --debug --print-logs’.</p> <p style="margin-left:11%; margin-top: 1em"><b>INFERCONFIG</b>: Tells infer where to find the .inferconfig file. (See the FILES section)</p> <p style="margin-left:11%; margin-top: 1em">If <b>INFER_STRICT_MODE</b> is set to "1", then infer commands will exit with an error code in some cases when otherwise a simple warning would be emitted on stderr, for instance if a deprecated form of an option is used.</p> <h2>FILES <a name="FILES"></a> </h2> <p style="margin-left:11%; margin-top: 1em"><b>.inferconfig</b> can be used to store infer options. Its format is that of a JSON record, where fields are infer long-form options, without their leading "--", and values depend on the type of the option: <br> - for switches options, the value is a JSON boolean (true or false, without quotes) <br> - for integers, the value is a JSON integer (without quotes) <br> - string options have string values <br> - path options have string values, and are interpreted relative to the location of the .inferconfig file <br> - cumulative options are JSON arrays of the appropriate type</p> <p style="margin-left:11%; margin-top: 1em">Infer will look for an <b>.inferconfig</b> file in the current directory, then its parent, etc., stopping at the first <b>.inferconfig</b> file found.</p> <p style="margin-left:11%; margin-top: 1em">Example:</p> <p style="margin-left:11%; margin-top: 1em">{ <br> "cxx": false, <br> "infer-blacklist-files-containing": ["@gen","/* no infer */"] <br> }</p> <h2>SEE ALSO <a name="SEE ALSO"></a> </h2> <p style="margin-left:11%; margin-top: 1em"><b>infer-analyze</b>(1), <b>infer-capture</b>(1), <b>infer-compile</b>(1), <b>infer-events</b>(1), <b>infer-explore</b>(1), <b>infer-report</b>(1), <b>infer-reportdiff</b>(1), <b>infer-run</b>(1)</p> <hr> </body> </html>