[website] docs for current master

Summary:
Run `make doc-publish` and adjust links in
website/docs/04-internal-API.md to point to odoc/next/infer/infer.html as the
starting point of the docs has changed (was: odoc/index.html but now
this also contains dead links to sledge and ppx_trace... also infer.mld
is a me-written exposé of the various libraries and index.mld is an
auto-generated list of all the modules now).

Reviewed By: ngorogiannis

Differential Revision: D21552864

fbshipit-source-id: c3977f645
master
Jules Villard 5 years ago committed by Facebook GitHub Bot
parent 5f2eb41df8
commit 3854c4efa6

@ -5,11 +5,11 @@ title: Infer Manuals
Here are the man pages for all the infer commands: Here are the man pages for all the infer commands:
- [infer](/man/infer.1.html) - [infer](/man/next/infer.1.html)
- [infer analyze](/man/infer-analyze.1.html) - [infer analyze](/man/next/infer-analyze.1.html)
- [infer capture](/man/infer-capture.1.html) - [infer capture](/man/next/infer-capture.1.html)
- [infer compile](/man/infer-compile.1.html) - [infer compile](/man/next/infer-compile.1.html)
- [infer explore](/man/infer-explore.1.html) - [infer explore](/man/next/infer-explore.1.html)
- [infer report](/man/infer-report.1.html) - [infer report](/man/next/infer-report.1.html)
- [infer reportdiff](/man/infer-reportdiff.1.html) - [infer reportdiff](/man/next/infer-reportdiff.1.html)
- [infer run](/man/infer-run.1.html) - [infer run](/man/next/infer-run.1.html)

@ -3,6 +3,6 @@ id: internal-API
title: Infer Internal OCaml Modules API title: Infer Internal OCaml Modules API
--- ---
Browse the generated documentation for Infer's OCaml code [here](/odoc/index.html). Browse the generated documentation for Infer's OCaml code [here](/odoc/next/infer/infer.html).
You can also generate these pages from within an Infer repository with `make doc`. You can also generate these pages from within an Infer repository with `make doc`.

@ -0,0 +1,860 @@
<!-- Creator : groff version 1.22.4 -->
<!-- CreationDate: Wed May 13 17:23:54 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-analyze</title>
</head>
<body>
<h1 align="center">infer-analyze</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="#BUCK OPTIONS">BUCK OPTIONS</a><br>
<a href="#BUFFER OVERRUN OPTIONS">BUFFER OVERRUN OPTIONS</a><br>
<a href="#CLANG OPTIONS">CLANG OPTIONS</a><br>
<a href="#JAVA OPTIONS">JAVA OPTIONS</a><br>
<a href="#QUANDARY CHECKER OPTIONS">QUANDARY CHECKER OPTIONS</a><br>
<a href="#RACERD CHECKER OPTIONS">RACERD CHECKER OPTIONS</a><br>
<a href="#SIOF CHECKER OPTIONS">SIOF CHECKER 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-analyze -
analyze the files captured by infer</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</b> <i>[options]</i></p>
<h2>DESCRIPTION
<a name="DESCRIPTION"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em">Analyze the
files captured in the project results directory and
report.</p>
<h2>OPTIONS
<a name="OPTIONS"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>--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%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--bufferoverrun</b></p>
<p style="margin-left:17%;">Activates: the buffer overrun
analysis (Conversely: <b>--no-bufferoverrun</b>)</p>
<p style="margin-left:11%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--continue-analysis</b></p>
<p style="margin-left:17%;">Activates: Continue the
analysis after more targets are captured by
<b>--continue</b>. The other analysis options should be
given the same before. Not compatible with
<b>--reanalyze</b> and <b>--incremental-analysis</b>.
(Conversely: <b>--no-continue-analysis</b>)</p>
<p style="margin-left:11%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--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>--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%;"><b>--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 <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%;"><b>--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%;"><b>--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%;"><b>--no-deduplicate</b></p>
<p style="margin-left:17%;">Deactivates: Apply
issue-specific deduplication during analysis and/or
reporting. (Conversely: <b>--deduplicate</b>)</p>
<p style="margin-left:11%;"><b>--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>--self_in_block</b>, <b>--starvation</b>, <b>--uninit</b>
(Conversely: <b>--default-checkers</b>)</p>
<p style="margin-left:11%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--help</b></p>
<p style="margin-left:17%;">Show this manual</p>
<p style="margin-left:11%;"><b>--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 &quot;dumb&quot; or
undefined, and to <b>pager</b> otherwise.</p>
<p style="margin-left:11%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--impurity</b></p>
<p style="margin-left:17%;">Activates: [EXPERIMENTAL]
Impurity analysis (Conversely: <b>--no-impurity</b>)</p>
<p style="margin-left:11%;"><b>--impurity-only</b></p>
<p style="margin-left:17%;">Activates: Enable
<b>--impurity</b> and disable all other checkers
(Conversely: <b>--no-impurity-only</b>)</p>
<p style="margin-left:11%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--no-linters</b></p>
<p style="margin-left:17%;">Deactivates: syntactic linters
(Conversely: <b>--linters</b>)</p>
<p style="margin-left:11%;"><b>--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%;"><b>--litho-required-props</b></p>
<p style="margin-left:17%;">Activates: [EXPERIMENTAL]
Required Prop check for Litho (Conversely:
<b>--no-litho-required-props</b>)</p>
<p style="margin-left:11%;"><b>--litho-required-props-only</b></p>
<p style="margin-left:17%;">Activates: Enable
<b>--litho-required-props</b> and disable all other checkers
(Conversely: <b>--no-litho-required-props-only</b>)</p>
<p style="margin-left:11%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--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 &rsquo;printf(&quot;Hello %d&quot;,
&quot;world&quot;)&rsquo; (Conversely:
<b>--no-printf-args</b>)</p>
<p style="margin-left:11%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--pulse</b></p>
<p style="margin-left:17%;">Activates: [EXPERIMENTAL] C++
lifetime analysis (Conversely: <b>--no-pulse</b>)</p>
<p style="margin-left:11%;"><b>--pulse-cut-to-one-path-procedures-pattern</b>
<i>string</i></p>
<p style="margin-left:17%;">Regex of methods for which
pulse will only explore one path. Can be used on
pathologically large procedures to prevent too-big states
from being produced.</p>
<p style="margin-left:11%;"><b>--pulse-model-alloc-pattern</b>
<i>string</i></p>
<p style="margin-left:17%;">Regex of methods that should be
modelled as allocs in Pulse</p>
<p style="margin-left:11%;"><b>--pulse-model-release-pattern</b>
<i>string</i></p>
<p style="margin-left:17%;">Regex of methods that should be
modelled as release in Pulse</p>
<p style="margin-left:11%;"><b>--pulse-model-transfer-ownership</b>
<i>+string</i></p>
<p style="margin-left:17%;">Methods that should be modelled
as transfering memory ownership in Pulse. Accepted formats
are method or namespace::method</p>
<p style="margin-left:11%;"><b>--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%;"><b>--purity</b></p>
<p style="margin-left:17%;">Activates: [EXPERIMENTAL]
Purity analysis (Conversely: <b>--no-purity</b>)</p>
<p style="margin-left:11%;"><b>--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%;"><b>--quandary</b></p>
<p style="margin-left:17%;">Activates: the quandary taint
analysis (Conversely: <b>--no-quandary</b>)</p>
<p style="margin-left:11%;"><b>--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%;"><b>--quiet</b>,<b>-q</b></p>
<p style="margin-left:17%;">Activates: Do not print
anything on standard output. (Conversely: <b>--no-quiet</b>
| <b>-Q</b>)</p>
<p style="margin-left:11%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--no-self_in_block</b></p>
<p style="margin-left:17%;">Deactivates: checker to flag
incorrect uses of when Objective-C blocks capture self
(Conversely: <b>--self_in_block</b>)</p>
<p style="margin-left:11%;"><b>--self_in_block-only</b></p>
<p style="margin-left:17%;">Activates: Enable
<b>--self_in_block</b> and disable all other checkers
(Conversely: <b>--no-self_in_block-only</b>)</p>
<p style="margin-left:11%;"><b>--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%;"><b>--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%;"><b>--sqlite-cache-size</b>
<i>int</i></p>
<p style="margin-left:17%;">SQLite cache size in pages (if
positive) or kB (if negative), follows formal of
corresponding SQLite PRAGMA.</p>
<p style="margin-left:11%;"><b>--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%;"><b>--sqlite-page-size</b>
<i>int</i></p>
<p style="margin-left:17%;">SQLite page size in bytes, must
be a power of two between 512 and 65536.</p>
<p style="margin-left:11%;"><b>--no-starvation</b></p>
<p style="margin-left:17%;">Deactivates: starvation
analysis (Conversely: <b>--starvation</b>)</p>
<p style="margin-left:11%;"><b>--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%;"><b>--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%;"><b>--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>
<h2>BUCK OPTIONS
<a name="BUCK OPTIONS"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>--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>
<h2>BUFFER OVERRUN OPTIONS
<a name="BUFFER OVERRUN OPTIONS"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>--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%;"><b>--bo-field-depth-limit</b>
<i>int</i></p>
<p style="margin-left:17%;">Limit of field depth of
abstract location in buffer-overrun checker</p>
<p style="margin-left:11%;"><b>--bo-service-handler-request</b></p>
<p style="margin-left:17%;">Activates: [EXPERIMENTAL] Use
taint flow of service handler requests in buffer overflow
checking. (Conversely:
<b>--no-bo-service-handler-request</b>)</p>
<h2>CLANG OPTIONS
<a name="CLANG OPTIONS"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>--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. &quot;sources&quot;
and &quot;sinks&quot; can be specified either by symbol
(including regexps) or path prefix. &quot;sinks&quot;
optionally can specify &quot;overrides&quot; (by symbol or
path prefix) that block the reachability analysis when hit.
Example:</p>
<p style="margin-left:11%;">{ <br>
&quot;ISOLATED_REACHING_CONNECT&quot;: { <br>
&quot;doc_url&quot;: <br>
&quot;http:://example.com/issue/doc/optional_link.html&quot;,
<br>
&quot;sources&quot;: { <br>
&quot;desc&quot;: &quot;Code that should not call connect
[optional]&quot;, <br>
&quot;paths&quot;: [ &quot;isolated/&quot; ] <br>
}, <br>
&quot;sinks&quot;: { <br>
&quot;symbols&quot;: [ &quot;connect&quot; ], <br>
&quot;overrides&quot;: { &quot;symbol_regexps&quot;: [
&quot;.*::Trusted::.*&quot; ] } <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
&quot;isolated/&quot; <br>
that may reach the function named &quot;connect&quot;,
ignoring paths that <br>
go through a symbol matching the OCaml regexp
&quot;.*::Trusted::.*&quot;. <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%;"><b>--clang-compound-literal-init-limit</b>
<i>int</i></p>
<p style="margin-left:17%;">Limit after which
initialization of compound types (structs and arrays) is not
done element by element but using a builtin function that
each analysis has to model.</p>
<p style="margin-left:11%;"><b>--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%;"><b>--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&lt;type&gt;</i>) will count as dead stores
when the variables are not read explicitly by the
program.</p>
<p style="margin-left:11%;"><b>--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
<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>
<h2>JAVA OPTIONS
<a name="JAVA OPTIONS"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>--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>
{ &quot;sources&quot; : [&quot;Source1&quot;,
&quot;Source2&quot;], &quot;sink&quot; : &quot;Sink1&quot; }
<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%;"><b>--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>
<h2>QUANDARY CHECKER OPTIONS
<a name="QUANDARY CHECKER OPTIONS"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>--quandary-endpoints</b>
<i>json</i></p>
<p style="margin-left:17%;">Specify endpoint classes for
Quandary</p>
<p style="margin-left:11%;"><b>--quandary-sanitizers</b>
<i>json</i></p>
<p style="margin-left:17%;">Specify custom sanitizers for
Quandary</p>
<p style="margin-left:11%;"><b>--quandary-sinks</b>
<i>json</i></p>
<p style="margin-left:17%;">Specify custom sinks for
Quandary</p>
<p style="margin-left:11%;"><b>--quandary-sources</b>
<i>json</i></p>
<p style="margin-left:17%;">Specify custom sources for
Quandary</p>
<h2>RACERD CHECKER OPTIONS
<a name="RACERD CHECKER OPTIONS"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>--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%;"><b>--no-racerd-unknown-returns-owned</b></p>
<p style="margin-left:17%;">Deactivates: DEPRECATED, does
nothing. (Conversely:
<b>--racerd-unknown-returns-owned</b>)</p>
<p style="margin-left:11%;"><b>--threadsafe-aliases</b>
<i>json</i></p>
<p style="margin-left:17%;">Specify custom annotations that
should be considered aliases of @ThreadSafe</p>
<h2>SIOF CHECKER OPTIONS
<a name="SIOF CHECKER OPTIONS"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>--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%;"><b>--siof-safe-methods</b>
<i>+string</i></p>
<p style="margin-left:17%;">Methods that are SIOF-safe;
&quot;foo::bar&quot; will match &quot;foo::bar()&quot;,
&quot;foo&lt;int&gt;::bar()&quot;, etc. (can be specified
multiple times)</p>
<h2>ENVIRONMENT
<a name="ENVIRONMENT"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>INFER_ARGS</b>,
<b>INFERCONFIG</b>, <b>INFER_STRICT_MODE</b></p>
<p style="margin-left:17%;">See the ENVIRONMENT section in
the manual of <b>infer</b>(1).</p>
<h2>FILES
<a name="FILES"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>.inferconfig</b></p>
<p style="margin-left:17%;">See the FILES section in the
manual of <b>infer</b>(1).</p>
<h2>SEE ALSO
<a name="SEE ALSO"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>infer-report</b>(1),
<b>infer-run</b>(1)</p>
<hr>
</body>
</html>

@ -0,0 +1,605 @@
<!-- Creator : groff version 1.22.4 -->
<!-- CreationDate: Wed May 13 17:23:54 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-capture</title>
</head>
<body>
<h1 align="center">infer-capture</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="#BUCK OPTIONS">BUCK OPTIONS</a><br>
<a href="#CLANG LINTERS OPTIONS">CLANG LINTERS OPTIONS</a><br>
<a href="#CLANG OPTIONS">CLANG OPTIONS</a><br>
<a href="#JAVA OPTIONS">JAVA 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-capture -
capture source files for later analysis</p>
<h2>SYNOPSIS
<a name="SYNOPSIS"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>infer
capture --buck-java</b> <i>[options]</i> <b>-- buck</b>
<i>...</i> <b><br>
infer capture --buck-clang</b> <i>[options]</i> <b>--
buck</b> <i>...</i> <b><br>
infer capture --buck-compilation-database</b> <i>[no-]deps
[options]</i> <b>-- buck</b> <i>...</i> <b><br>
infer capture</b> <i>[options]</i>
<b>--compilation-database</b> <i>file</i> <b><br>
infer capture</b> <i>[options]</i>
<b>--compilation-database-escaped</b> <i>file</i> <b><br>
infer capture</b> <i>[options]</i> <b>--
gradle</b>/<b>gradlew</b> <i>...</i> <b><br>
infer capture</b> <i>[options]</i> <b>-- javac</b>
<i>...</i> <b><br>
infer capture</b> <i>[options]</i> <b>--
make</b>/<b>clang</b>/<b>gcc</b> <i>...</i> <b><br>
infer capture</b> <i>[options]</i> <b>-- mvn</b>/<b>mvnw</b>
<i>...</i> <b><br>
infer capture</b> <i>[options]</i> <b>-- ndk-build</b>
<i>...</i> <b><br>
infer capture</b> <i>[--no-xcpretty] [options]</i> <b>--
xcodebuild</b> <i>...</i></p>
<h2>DESCRIPTION
<a name="DESCRIPTION"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em">Capture the
build command or compilation database specified on the
command line: infer intercepts calls to the compiler to read
source files, translate them into infer's intermediate
representation, and store the result of the translation in
the results directory.</p>
<h2>OPTIONS
<a name="OPTIONS"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>--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%;"><b>--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>--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%;"><b>--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 <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%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--help</b></p>
<p style="margin-left:17%;">Show this manual</p>
<p style="margin-left:11%;"><b>--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 &quot;dumb&quot; or
undefined, and to <b>pager</b> otherwise.</p>
<p style="margin-left:11%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--sqlite-cache-size</b>
<i>int</i></p>
<p style="margin-left:17%;">SQLite cache size in pages (if
positive) or kB (if negative), follows formal of
corresponding SQLite PRAGMA.</p>
<p style="margin-left:11%;"><b>--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%;"><b>--sqlite-page-size</b>
<i>int</i></p>
<p style="margin-left:17%;">SQLite page size in bytes, must
be a power of two between 512 and 65536.</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>
<h2>BUCK OPTIONS
<a name="BUCK OPTIONS"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>--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%;"><b>--buck-blacklist</b>
<i>+regex</i></p>
<p style="margin-left:17%;">Skip capture of files matched
by the specified regular expression. Only the clang,
non-compilation-database</p>
<p style="margin-left:11%;">Buck integration is supported,
not Java. <b><br>
--buck-clang</b></p>
<p style="margin-left:17%;">Activates: Buck integration for
clang-based targets (C/C++/Objective-C/Objective-C++).
(Conversely: <b>--no-buck-clang</b>)</p>
<p style="margin-left:11%;"><b>--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. Only
includes clang targets, as per Buck's
<i>#compilation-database</i> flavor.</p>
<p style="margin-left:11%;"><b>--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%;"><b>--buck-java</b></p>
<p style="margin-left:17%;">Activates: Buck integration for
Java targets. (Conversely: <b>--no-buck-java</b>)</p>
<p style="margin-left:11%;"><b>--buck-merge-all-deps</b></p>
<p style="margin-left:17%;">Activates: Find and merge all
infer dependencies produced by buck. Use this flag if infer
doesn't find any files to analyze after a successful
capture. Only valid for <b>--buck-clang</b>. (Conversely:
<b>--no-buck-merge-all-deps</b>)</p>
<p style="margin-left:11%;"><b>--buck-targets-blacklist</b>
<i>+regex</i></p>
<p style="margin-left:17%;">Skip capture of buck targets
matched by the specified regular expression. Only valid for
<b>--buck-compilation-database</b>.</p>
<p style="margin-left:11%;"><b>--Xbuck</b>
<i>+string</i></p>
<p style="margin-left:17%;">Pass values as command-line
arguments to invocations of <i>&rsquo;buck build&rsquo;</i>.
Only valid for <b>--buck-clang</b>.</p>
<p style="margin-left:11%;"><b>--Xbuck-no-inline</b>
<i>+string</i></p>
<p style="margin-left:17%;">Pass values as command-line
arguments to invocations of <i>&rsquo;buck build&rsquo;</i>,
don't inline any args starting with '@'. Only valid for
<b>--buck-clang</b>.</p>
<p style="margin-left:11%;"><b>--xcode-developer-dir</b>
<i>XCODE_DEVELOPER_DIR</i></p>
<p style="margin-left:17%;">Specify the path to Xcode
developer directory, to use for Buck clang targets</p>
<h2>CLANG LINTERS OPTIONS
<a name="CLANG LINTERS OPTIONS"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>--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%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--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>
<h2>CLANG OPTIONS
<a name="CLANG OPTIONS"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>--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%;"><b>--clang-blacklisted-flags</b>
<i>+string</i></p>
<p style="margin-left:17%;">Clang flags to filter out</p>
<p style="margin-left:11%;"><b>--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%;"><b>--clang-compound-literal-init-limit</b>
<i>int</i></p>
<p style="margin-left:17%;">Limit after which
initialization of compound types (structs and arrays) is not
done element by element but using a builtin function that
each analysis has to model.</p>
<p style="margin-left:11%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--no-cxx</b></p>
<p style="margin-left:17%;">Deactivates: Analyze C++
methods (Conversely: <b>--cxx</b>)</p>
<p style="margin-left:11%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--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>&rsquo;infer -- &lt;xcodebuild
command&gt;&rsquo;</i>. (Conversely:
<b>--no-xcpretty</b>)</p>
<h2>JAVA OPTIONS
<a name="JAVA OPTIONS"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>--bootclasspath</b>
<i>string</i></p>
<p style="margin-left:17%;">Specify the Java
bootclasspath</p>
<p style="margin-left:11%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--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>
<h2>ENVIRONMENT
<a name="ENVIRONMENT"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>INFER_ARGS</b>,
<b>INFERCONFIG</b>, <b>INFER_STRICT_MODE</b></p>
<p style="margin-left:17%;">See the ENVIRONMENT section in
the manual of <b>infer</b>(1).</p>
<h2>FILES
<a name="FILES"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>.inferconfig</b></p>
<p style="margin-left:17%;">See the FILES section in the
manual of <b>infer</b>(1).</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-compile</b>(1), <b>infer-run</b>(1)</p>
<hr>
</body>
</html>

@ -0,0 +1,202 @@
<!-- Creator : groff version 1.22.4 -->
<!-- CreationDate: Wed May 13 17:23:54 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-compile</title>
</head>
<body>
<h1 align="center">infer-compile</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="#EXAMPLES">EXAMPLES</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-compile -
compile project from within the infer environment</p>
<h2>SYNOPSIS
<a name="SYNOPSIS"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>infer
compile --</b> <i>[compile command]</i></p>
<h2>DESCRIPTION
<a name="DESCRIPTION"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em">Intercepts
compilation commands similarly to <b>infer-capture</b>, but
simply execute these compilation commands and do not perform
any translation of the source files. This can be useful to
configure build systems or for debugging purposes.</p>
<h2>OPTIONS
<a name="OPTIONS"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>--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>--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%;"><b>--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 <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%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--help</b></p>
<p style="margin-left:17%;">Show this manual</p>
<p style="margin-left:11%;"><b>--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 &quot;dumb&quot; or
undefined, and to <b>pager</b> otherwise.</p>
<p style="margin-left:11%;"><b>--help-full</b></p>
<p style="margin-left:17%;">Show this manual with all
internal options in the INTERNAL OPTIONS section</p>
<h2>ENVIRONMENT
<a name="ENVIRONMENT"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>INFER_ARGS</b>,
<b>INFERCONFIG</b>, <b>INFER_STRICT_MODE</b></p>
<p style="margin-left:17%;">See the ENVIRONMENT section in
the manual of <b>infer</b>(1).</p>
<h2>FILES
<a name="FILES"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>.inferconfig</b></p>
<p style="margin-left:17%;">See the FILES section in the
manual of <b>infer</b>(1).</p>
<h2>EXAMPLES
<a name="EXAMPLES"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>cmake</b>(1)
hardcodes the absolute paths to the compiler inside the
Makefiles it generates, which defeats the later capture of
compilation commands by infer. Thus, to capture a CMake
project, one should configure the project from within the
infer build environment, for instance:</p>
<p style="margin-left:11%; margin-top: 1em">mkdir build
&amp;&amp; cd build <br>
infer compile -- cmake .. <br>
infer capture -- make</p>
<p style="margin-left:11%; margin-top: 1em">The same
solution can be used for projects whose
&quot;./configure&quot; script hardcodes the paths to the
compilers, for instance:</p>
<p style="margin-left:11%; margin-top: 1em">infer compile
-- ./configure <br>
infer capture -- make</p>
<p style="margin-left:11%; margin-top: 1em">Another
solution for CMake projects is to use CMake's compilation
databases, for instance:</p>
<p style="margin-left:11%; margin-top: 1em">mkdir build
&amp;&amp; cd build <br>
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1 .. <br>
infer capture --compilation-database
compile_commands.json</p>
<h2>SEE ALSO
<a name="SEE ALSO"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>infer-capture</b>(1)</p>
<hr>
</body>
</html>

@ -0,0 +1,277 @@
<!-- Creator : groff version 1.22.4 -->
<!-- CreationDate: Wed May 13 17:23:54 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-explore</title>
</head>
<body>
<h1 align="center">infer-explore</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="#EXPLORE BUGS">EXPLORE BUGS</a><br>
<a href="#EXPLORE PROCEDURES">EXPLORE PROCEDURES</a><br>
<a href="#EXPLORE SOURCE FILES">EXPLORE SOURCE FILES</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-explore -
explore the error traces in infer reports</p>
<h2>SYNOPSIS
<a name="SYNOPSIS"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>infer
explore</b> <i>[options]</i> <b><br>
infer explore --procedures</b> <i>[options]</i> <b><br>
infer explore --source-files</b> <i>[options]</i></p>
<h2>DESCRIPTION
<a name="DESCRIPTION"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em">If
<b>--procedures</b> is passed, print information about each
procedure captured by infer.</p>
<p style="margin-left:11%; margin-top: 1em">If
<b>--source-files</b> is passed, print information about
captured source files.</p>
<p style="margin-left:11%; margin-top: 1em">Otherwise, show
the list of bugs on the console and explore symbolic program
traces emitted by infer to explain a report. Can also
generate an HTML report from a JSON report.</p>
<h2>OPTIONS
<a name="OPTIONS"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>--help</b></p>
<p style="margin-left:17%;">Show this manual</p>
<p style="margin-left:11%;"><b>--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 &quot;dumb&quot; or
undefined, and to <b>pager</b> otherwise.</p>
<p style="margin-left:11%;"><b>--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%;"><b>--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>
<h2>EXPLORE BUGS
<a name="EXPLORE BUGS"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>--html</b></p>
<p style="margin-left:17%;">Activates: Generate html
report. (Conversely: <b>--no-html</b>)</p>
<p style="margin-left:11%;"><b>--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%;"><b>--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%;"><b>--no-source-preview</b></p>
<p style="margin-left:17%;">Deactivates: print code
excerpts around trace elements (Conversely:
<b>--source-preview</b>)</p>
<h2>EXPLORE PROCEDURES
<a name="EXPLORE PROCEDURES"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>--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%;"><b>--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%;"><b>--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%;"><b>--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 &quot;foo&quot;, one can use the filter
&quot;.*:foo&quot;, or &quot;foo&quot; for short.</p>
<p style="margin-left:11%;"><b>--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%;"><b>--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%;"><b>--procedures-summary</b></p>
<p style="margin-left:17%;">Activates: Print the summaries
of each procedure in the output of <b>--procedures</b>
(Conversely: <b>--no-procedures-summary</b>)</p>
<h2>EXPLORE SOURCE FILES
<a name="EXPLORE SOURCE FILES"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>--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%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--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>
<h2>ENVIRONMENT
<a name="ENVIRONMENT"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>INFER_ARGS</b>,
<b>INFERCONFIG</b>, <b>INFER_STRICT_MODE</b></p>
<p style="margin-left:17%;">See the ENVIRONMENT section in
the manual of <b>infer</b>(1).</p>
<h2>FILES
<a name="FILES"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>.inferconfig</b></p>
<p style="margin-left:17%;">See the FILES section in the
manual of <b>infer</b>(1).</p>
<h2>SEE ALSO
<a name="SEE ALSO"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>infer-report</b>(1),
<b>infer-run</b>(1)</p>
<hr>
</body>
</html>

@ -0,0 +1,539 @@
<!-- Creator : groff version 1.22.4 -->
<!-- CreationDate: Wed May 13 17:23:54 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-report</title>
</head>
<body>
<h1 align="center">infer-report</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="#HOISTING OPTIONS">HOISTING 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-report -
compute and manipulate infer results</p>
<h2>SYNOPSIS
<a name="SYNOPSIS"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>infer
report</b> <i>[options]</i> [<i>file.specs</i>...]</p>
<h2>DESCRIPTION
<a name="DESCRIPTION"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em">Read, convert,
and print .specs files in the results directory. Each spec
is printed to standard output unless option -q is used.</p>
<p style="margin-left:11%; margin-top: 1em">If no specs
file are passed on the command line, process all the .specs
in the results directory.</p>
<h2>OPTIONS
<a name="OPTIONS"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>--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 report.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:
&rsquo;&lt;issue_type_regex&gt;:&lt;filename_regex&gt;:&lt;reason_string&gt;&rsquo;.
The first two components are OCaml Str regular expressions,
with an optional &rsquo;!&rsquo; character prefix. If a
regex has a &rsquo;!&rsquo; prefix, the polarity is
inverted, and the filter becomes a &quot;blacklist&quot;
instead of a &quot;whitelist&quot;. Each filter is
interpreted as an implication: an issue matches if it does
not match the &rsquo;issue_type_regex&rsquo; or if it does
match the &rsquo;filename_regex&rsquo;. The filenames that
are tested by the regex are relative to the
&rsquo;--project-root&rsquo; directory. The
&rsquo;&lt;reason_string&gt;&rsquo; is a non-empty string
used to explain why the issue was filtered.</p>
<p style="margin-left:11%;"><b>--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>--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%;"><b>--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 <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%;"><b>--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%;"><b>--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%;"><b>--no-deduplicate</b></p>
<p style="margin-left:17%;">Deactivates: Apply
issue-specific deduplication during analysis and/or
reporting. (Conversely: <b>--deduplicate</b>)</p>
<p style="margin-left:11%;"><b>--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%;"><b>--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>
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>
BIABD_USE_AFTER_FREE (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_T1 (enabled by default), <br>
BUFFER_OVERRUN_U5 (disabled by default), <br>
Bad_footprint (enabled by default), <br>
CAPTURED_STRONG_SELF (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 (disabled 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>
CONSTANT_ADDRESS_DEREFERENCE (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_BAD_NESTED_CLASS_ANNOTATION (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_NULLABLE (enabled by default), <br>
ERADICATE_FIELD_OVER_ANNOTATED (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_META_CLASS_CAN_BE_NULLSAFE (disabled by default),
<br>
ERADICATE_META_CLASS_IS_NULLSAFE (disabled by default), <br>
ERADICATE_META_CLASS_NEEDS_IMPROVEMENT (disabled by
default), <br>
ERADICATE_NULLABLE_DEREFERENCE (enabled by default), <br>
ERADICATE_PARAMETER_NOT_NULLABLE (enabled by default), <br>
ERADICATE_REDUNDANT_NESTED_CLASS_ANNOTATION (enabled by <br>
default), <br>
ERADICATE_RETURN_NOT_NULLABLE (enabled by default), <br>
ERADICATE_RETURN_OVER_ANNOTATED (enabled by default), <br>
ERADICATE_UNCHECKED_USAGE_IN_NULLSAFE (enabled by default),
<br>
ERADICATE_UNVETTED_THIRD_PARTY_IN_NULLSAFE (enabled by <br>
default), <br>
EXECUTION_TIME_COMPLEXITY_INCREASE (enabled by default),
<br>
EXECUTION_TIME_COMPLEXITY_INCREASE_COLD_START (enabled by
<br>
default), <br>
EXECUTION_TIME_COMPLEXITY_INCREASE_UI_THREAD (enabled by
<br>
default), <br>
EXECUTION_TIME_UNREACHABLE_AT_EXIT (disabled by default),
<br>
EXPENSIVE_EXECUTION_TIME (disabled by default), <br>
EXPENSIVE_EXECUTION_TIME_COLD_START (disabled by default),
<br>
EXPENSIVE_EXECUTION_TIME_UI_THREAD (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>
GUARDEDBY_VIOLATION (enabled by default), <br>
IMPURE_FUNCTION (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>
INFERBO_ALLOC_MAY_BE_TAINTED (enabled 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 (disabled by default), <br>
IVAR_NOT_NULL_CHECKED (enabled by default), <br>
Internal_error (enabled by default), <br>
JAVASCRIPT_INJECTION (enabled by default), <br>
LOCKLESS_VIOLATION (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>
MIXED_SELF_WEAKSELF (enabled by default), <br>
MULTIPLE_WEAKSELF (enabled by default), <br>
MUTABLE_LOCAL_VARIABLE_IN_COMPONENT_FILE (enabled by
default), <br>
Missing_fld (enabled by default), <br>
NULLPTR_DEREFERENCE (disabled 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>
PULSE_MEMORY_LEAK (disabled 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 (disabled by default), <br>
SKIP_POINTER_DEREFERENCE (disabled 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>
STRONG_SELF_NOT_CHECKED (enabled by default), <br>
Symexec_memory_error (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>
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>
WEAK_SELF_IN_NO_ESCAPE_BLOCK (enabled by default), <br>
Wrong_argument_number (enabled by default). <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%;"><b>--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%;"><b>--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%;"><b>--help</b></p>
<p style="margin-left:17%;">Show this manual</p>
<p style="margin-left:11%;"><b>--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 &quot;dumb&quot; or
undefined, and to <b>pager</b> otherwise.</p>
<p style="margin-left:11%;"><b>--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%;"><b>--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%;"><b>--issues-tests-fields</b>
<i>,-separated sequence of { bug_type | bucket | <br>
qualifier | severity | line | column | procedure |
procedure_start_line <br>
| file | bug_trace | key | hash | line_offset | <br>
qualifier_contains_potential_exception_note | nullsafe_extra
}</i></p>
<p style="margin-left:17%;">Fields to emit with
<b>--issues-tests</b></p>
<p style="margin-left:11%;"><b>--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%;"><b>--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%;"><b>--quiet</b>,<b>-q</b></p>
<p style="margin-left:17%;">Activates: Do not print
anything on standard output. (Conversely: <b>--no-quiet</b>
| <b>-Q</b>)</p>
<p style="margin-left:11%;"><b>--report-blacklist-files-containing</b>
<i>+string</i></p>
<p style="margin-left:17%;">Do not report any issues on
files containing the specified string</p>
<p style="margin-left:11%;"><b>--report-blacklist-path-regex</b>
<i>+path_regex</i></p>
<p style="margin-left:17%;">Do not report any issues on
files whose relative path matches the specified OCaml regex,
even if they match the whitelist specified by
<b>--report-whitelist-path-regex</b></p>
<p style="margin-left:11%;"><b>--report-console-limit</b>
<i>int</i></p>
<p style="margin-left:17%;">Maximum number of issues to
display on standard output. Unset with
<b>--report-console-limit-reset</b> to show all.</p>
<p style="margin-left:11%;"><b>--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%;"><b>--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%;"><b>--report-whitelist-path-regex</b>
<i>+path_regex</i></p>
<p style="margin-left:17%;">Report issues only on files
whose relative path matches the specified OCaml regex (and
which do not match <b>--report-blacklist-path-regex</b>)</p>
<p style="margin-left:11%;"><b>--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%;"><b>--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>
<h2>HOISTING OPTIONS
<a name="HOISTING OPTIONS"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>--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>
<h2>ENVIRONMENT
<a name="ENVIRONMENT"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>INFER_ARGS</b>,
<b>INFERCONFIG</b>, <b>INFER_STRICT_MODE</b></p>
<p style="margin-left:17%;">See the ENVIRONMENT section in
the manual of <b>infer</b>(1).</p>
<h2>FILES
<a name="FILES"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>.inferconfig</b></p>
<p style="margin-left:17%;">See the FILES section in the
manual of <b>infer</b>(1).</p>
<h2>SEE ALSO
<a name="SEE ALSO"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>infer-reportdiff</b>(1),
<b>infer-run</b>(1)</p>
<hr>
</body>
</html>

@ -0,0 +1,211 @@
<!-- Creator : groff version 1.22.4 -->
<!-- CreationDate: Wed May 13 17:23:54 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-reportdiff</title>
</head>
<body>
<h1 align="center">infer-reportdiff</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-reportdiff
- compute the differences between two infer reports</p>
<h2>SYNOPSIS
<a name="SYNOPSIS"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>infer
reportdiff --report-current</b> <i>file</i>
<b>--report-previous</b> <i>file [options]</i></p>
<h2>DESCRIPTION
<a name="DESCRIPTION"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em">Given two infer
reports <i>previous</i> and <i>current</i>, compute the
following three reports and store them inside the
&quot;differential/&quot; subdirectory of the results
directory: <br>
- <b>introduced.json</b> contains the issues found in
<i>current</i> but not <i>previous</i>; <br>
- <b>fixed.json</b> contains the issues found in
<i>previous</i> but not <i>current</i>; <br>
- <b>preexisting.json</b> contains the issues found in both
<i>previous</i> and <i>current</i>.</p>
<p style="margin-left:11%; margin-top: 1em">All three files
follow the same format as normal infer reports.</p>
<h2>OPTIONS
<a name="OPTIONS"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>--costs-current</b>
<i>path</i></p>
<p style="margin-left:17%;">Costs report of the latest
revision</p>
<p style="margin-left:11%;"><b>--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%;"><b>--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>--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%;"><b>--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 <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%;"><b>--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%;"><b>--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%;"><b>--no-deduplicate</b></p>
<p style="margin-left:17%;">Deactivates: Apply
issue-specific deduplication during analysis and/or
reporting. (Conversely: <b>--deduplicate</b>)</p>
<p style="margin-left:11%;"><b>--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%;"><b>--help</b></p>
<p style="margin-left:17%;">Show this manual</p>
<p style="margin-left:11%;"><b>--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 &quot;dumb&quot; or
undefined, and to <b>pager</b> otherwise.</p>
<p style="margin-left:11%;"><b>--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%;"><b>--report-current</b>
<i>path</i></p>
<p style="margin-left:17%;">report of the latest
revision</p>
<p style="margin-left:11%;"><b>--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%;"><b>--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>
<h2>ENVIRONMENT
<a name="ENVIRONMENT"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>INFER_ARGS</b>,
<b>INFERCONFIG</b>, <b>INFER_STRICT_MODE</b></p>
<p style="margin-left:17%;">See the ENVIRONMENT section in
the manual of <b>infer</b>(1).</p>
<h2>FILES
<a name="FILES"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>.inferconfig</b></p>
<p style="margin-left:17%;">See the FILES section in the
manual of <b>infer</b>(1).</p>
<h2>SEE ALSO
<a name="SEE ALSO"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>infer-report</b>(1)</p>
<hr>
</body>
</html>

@ -0,0 +1,382 @@
<!-- Creator : groff version 1.22.4 -->
<!-- CreationDate: Wed May 13 17:23:54 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-run</title>
</head>
<body>
<h1 align="center">infer-run</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="#BUCK OPTIONS">BUCK OPTIONS</a><br>
<a href="#CLANG OPTIONS">CLANG OPTIONS</a><br>
<a href="#JAVA OPTIONS">JAVA 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-run -
capture source files, analyze, and report</p>
<h2>SYNOPSIS
<a name="SYNOPSIS"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>infer
run</b> <i>[options]</i> <b><br>
infer</b> <i>[options]</i> <b>--</b> <i>compile
command</i></p>
<h2>DESCRIPTION
<a name="DESCRIPTION"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em">Calling
&quot;<b>infer run</b> <i>[options]</i>&quot; is equivalent
to performing the following sequence of commands:</p>
<p style="margin-left:11%; margin-top: 1em"><b>infer
capture</b> <i>[options]</i> <b><br>
infer analyze</b> <i>[options]</i></p>
<h2>OPTIONS
<a name="OPTIONS"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><i><b>--censor-report</b>
+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 report.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:
&rsquo;&lt;issue_type_regex&gt;:&lt;filename_regex&gt;:&lt;reason_string&gt;&rsquo;.
The first two components are OCaml Str regular expressions,
with an optional &rsquo;!&rsquo; character prefix. If a
regex has a &rsquo;!&rsquo; prefix, the polarity is
inverted, and the filter becomes a &quot;blacklist&quot;
instead of a &quot;whitelist&quot;. Each filter is
interpreted as an implication: an issue matches if it does
not match the &rsquo;issue_type_regex&rsquo; or if it does
match the &rsquo;filename_regex&rsquo;. The filenames that
are tested by the regex are relative to the
&rsquo;--project-root&rsquo; directory. The
&rsquo;&lt;reason_string&gt;&rsquo; is a non-empty string
used to explain why the issue was filtered.</p>
<p style="margin-left:11%;"><b>--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>--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%;"><b>--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 <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%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--help</b></p>
<p style="margin-left:17%;">Show this manual</p>
<p style="margin-left:11%;"><b>--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 &quot;dumb&quot; or
undefined, and to <b>pager</b> otherwise.</p>
<p style="margin-left:11%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--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%;"><b>--report-blacklist-files-containing</b>
<i>+string</i></p>
<p style="margin-left:17%;">Do not report any issues on
files containing the specified string</p>
<p style="margin-left:11%;"><b>--report-blacklist-path-regex</b>
<i>+path_regex</i></p>
<p style="margin-left:17%;">Do not report any issues on
files whose relative path matches the specified OCaml regex,
even if they match the whitelist specified by
<b>--report-whitelist-path-regex</b></p>
<p style="margin-left:11%;"><b>--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%;"><b>--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%;"><b>--report-whitelist-path-regex</b>
<i>+path_regex</i></p>
<p style="margin-left:17%;">Report issues only on files
whose relative path matches the specified OCaml regex (and
which do not match <b>--report-blacklist-path-regex</b>)</p>
<p style="margin-left:11%;"><b>--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%;"><b>--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%;"><b>--sqlite-cache-size</b>
<i>int</i></p>
<p style="margin-left:17%;">SQLite cache size in pages (if
positive) or kB (if negative), follows formal of
corresponding SQLite PRAGMA.</p>
<p style="margin-left:11%;"><b>--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%;"><b>--sqlite-page-size</b>
<i>int</i></p>
<p style="margin-left:17%;">SQLite page size in bytes, must
be a power of two between 512 and 65536.</p>
<p style="margin-left:11%;"><b>--version</b></p>
<p style="margin-left:17%;">Print version information and
exit</p>
<p style="margin-left:11%;"><b>--version-json</b></p>
<p style="margin-left:17%;">Print version information in
json format and exit</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>
<h2>BUCK OPTIONS
<a name="BUCK OPTIONS"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>--buck-blacklist</b>
<i>+regex</i></p>
<p style="margin-left:17%;">Skip capture of files matched
by the specified regular expression. Only the clang,
non-compilation-database</p>
<p style="margin-left:11%;">Buck integration is supported,
not Java. <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. Only valid for
<b>--buck-compilation-database</b>.</p>
<h2>CLANG OPTIONS
<a name="CLANG OPTIONS"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>--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>
<h2>JAVA OPTIONS
<a name="JAVA OPTIONS"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>--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>
<h2>ENVIRONMENT
<a name="ENVIRONMENT"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>INFER_ARGS</b>,
<b>INFERCONFIG</b>, <b>INFER_STRICT_MODE</b></p>
<p style="margin-left:17%;">See the ENVIRONMENT section in
the manual of <b>infer</b>(1).</p>
<h2>FILES
<a name="FILES"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>.inferconfig</b></p>
<p style="margin-left:17%;">See the FILES section in the
manual of <b>infer</b>(1).</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-report</b>(1)</p>
<hr>
</body>
</html>

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

@ -0,0 +1,21 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>index</title>
<link rel="stylesheet" href="./odoc.css"/>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width,initial-scale=1.0"/>
</head>
<body>
<main class="content">
<div class="by-name">
<h2>OCaml package documentation</h2>
<ol>
<li><a href="infer/index.html">infer</a></li>
<li><a href="ppx_trace/index.html">ppx_trace</a></li>
<li><a href="sledge/index.html">sledge</a></li>
</ol>
</div>
</main>
</body>
</html>

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ASTLanguage (infer.ASTLanguage)</title><link rel="stylesheet" href="../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="index.html">Up</a> <a href="index.html">infer</a> &#x00BB; ASTLanguage</nav><h1 id="ast-language-(al)"><a href="#ast-language-(al)" class="anchor"></a>AST Language (AL)</h1><p>Linter framework based on the <a href="ClangFrontend.html">Clang frontend</a>.</p><p>All modules: <a href="ASTLanguage/index.html"><code>ASTLanguage</code></a></p></header></div></body></html>

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>AL (infer.ASTLanguage.AL)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> <a href="../../index.html">infer</a> &#x00BB; <a href="../index.html">ASTLanguage</a> &#x00BB; AL</nav><h1>Module <code>ASTLanguage.AL</code></h1></header><dl><dt class="spec value" id="val-do_frontend_checks"><a href="#val-do_frontend_checks" class="anchor"></a><code><span class="keyword">val</span> do_frontend_checks : <a href="../../ClangFrontend/CFrontend_config/index.html#type-translation_unit_context">ClangFrontend.CFrontend_config.translation_unit_context</a> <span>&#45;&gt;</span> <a href="../../ATDGenerated/Clang_ast_t/index.html#type-decl">ATDGenerated.Clang_ast_t.decl</a> <span>&#45;&gt;</span> unit</code></dt></dl></div></body></html>

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>DottyPrinter (infer.ASTLanguage.ALDebugger.EvaluationTracker.DottyPrinter)</title><link rel="stylesheet" href="../../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> <a href="../../../../index.html">infer</a> &#x00BB; <a href="../../../index.html">ASTLanguage</a> &#x00BB; <a href="../../index.html">ALDebugger</a> &#x00BB; <a href="../index.html">EvaluationTracker</a> &#x00BB; DottyPrinter</nav><h1>Module <code>EvaluationTracker.DottyPrinter</code></h1></header><dl><dt class="spec value" id="val-dotty_of_ctl_evaluation"><a href="#val-dotty_of_ctl_evaluation" class="anchor"></a><code><span class="keyword">val</span> dotty_of_ctl_evaluation : <a href="../index.html#type-t">t</a> <span>&#45;&gt;</span> string</code></dt></dl></div></body></html>

File diff suppressed because one or more lines are too long

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ALDebugger (infer.ASTLanguage.ALDebugger)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> <a href="../../index.html">infer</a> &#x00BB; <a href="../index.html">ASTLanguage</a> &#x00BB; ALDebugger</nav><h1>Module <code>ASTLanguage.ALDebugger</code></h1></header><div class="spec module" id="module-EvaluationTracker"><a href="#module-EvaluationTracker" class="anchor"></a><code><span class="keyword">module</span> <a href="EvaluationTracker/index.html">EvaluationTracker</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div></div></body></html>

File diff suppressed because one or more lines are too long

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ALUtils (infer.ASTLanguage.ALUtils)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> <a href="../../index.html">infer</a> &#x00BB; <a href="../index.html">ASTLanguage</a> &#x00BB; ALUtils</nav><h1>Module <code>ASTLanguage.ALUtils</code></h1></header><dl><dt class="spec value" id="val-location_from_stmt"><a href="#val-location_from_stmt" class="anchor"></a><code><span class="keyword">val</span> location_from_stmt : <a href="../CLintersContext/index.html#type-context">CLintersContext.context</a> <span>&#45;&gt;</span> <a href="../../ATDGenerated/Clang_ast_t/index.html#type-stmt">ATDGenerated.Clang_ast_t.stmt</a> <span>&#45;&gt;</span> <a href="../../IBase/Location/index.html#type-t">IBase.Location.t</a></code></dt><dt class="spec value" id="val-location_from_dinfo"><a href="#val-location_from_dinfo" class="anchor"></a><code><span class="keyword">val</span> location_from_dinfo : <a href="../CLintersContext/index.html#type-context">CLintersContext.context</a> <span>&#45;&gt;</span> <a href="../../ATDGenerated/Clang_ast_t/index.html#type-decl_info">ATDGenerated.Clang_ast_t.decl_info</a> <span>&#45;&gt;</span> <a href="../../IBase/Location/index.html#type-t">IBase.Location.t</a></code></dt><dt class="spec value" id="val-location_from_an"><a href="#val-location_from_an" class="anchor"></a><code><span class="keyword">val</span> location_from_an : <a href="../CLintersContext/index.html#type-context">CLintersContext.context</a> <span>&#45;&gt;</span> <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> <a href="../../IBase/Location/index.html#type-t">IBase.Location.t</a></code></dt><dt class="spec value" id="val-location_from_decl"><a href="#val-location_from_decl" class="anchor"></a><code><span class="keyword">val</span> location_from_decl : <a href="../CLintersContext/index.html#type-context">CLintersContext.context</a> <span>&#45;&gt;</span> <a href="../../ATDGenerated/Clang_ast_t/index.html#type-decl">ATDGenerated.Clang_ast_t.decl</a> <span>&#45;&gt;</span> <a href="../../IBase/Location/index.html#type-t">IBase.Location.t</a></code></dt><dt class="spec value" id="val-ivar_name"><a href="#val-ivar_name" class="anchor"></a><code><span class="keyword">val</span> ivar_name : <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> string</code></dt><dt class="spec value" id="val-cxx_ref_captured_in_block"><a href="#val-cxx_ref_captured_in_block" class="anchor"></a><code><span class="keyword">val</span> cxx_ref_captured_in_block : <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> string</code></dt><dt class="spec value" id="val-decl_ref_or_selector_name"><a href="#val-decl_ref_or_selector_name" class="anchor"></a><code><span class="keyword">val</span> decl_ref_or_selector_name : <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> string</code></dt><dt class="spec value" id="val-iphoneos_target_sdk_version"><a href="#val-iphoneos_target_sdk_version" class="anchor"></a><code><span class="keyword">val</span> iphoneos_target_sdk_version : <a href="../CLintersContext/index.html#type-context">CLintersContext.context</a> <span>&#45;&gt;</span> <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> string</code></dt><dt class="spec value" id="val-available_ios_sdk"><a href="#val-available_ios_sdk" class="anchor"></a><code><span class="keyword">val</span> available_ios_sdk : <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> string</code></dt><dt class="spec value" id="val-class_available_ios_sdk"><a href="#val-class_available_ios_sdk" class="anchor"></a><code><span class="keyword">val</span> class_available_ios_sdk : <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> string</code></dt><dt class="spec value" id="val-receiver_method_call"><a href="#val-receiver_method_call" class="anchor"></a><code><span class="keyword">val</span> receiver_method_call : <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> string</code></dt><dt class="spec value" id="val-class_name"><a href="#val-class_name" class="anchor"></a><code><span class="keyword">val</span> class_name : <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> string</code></dt></dl></div></body></html>

File diff suppressed because one or more lines are too long

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>CIssue (infer.ASTLanguage.CIssue)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> <a href="../../index.html">infer</a> &#x00BB; <a href="../index.html">ASTLanguage</a> &#x00BB; CIssue</nav><h1>Module <code>ASTLanguage.CIssue</code></h1></header><dl><dt class="spec type" id="type-mode"><a href="#type-mode" class="anchor"></a><code><span class="keyword">type</span> mode</code><code> = </code><table class="variant"><tr id="type-mode.On" class="anchored"><td class="def constructor"><a href="#type-mode.On" class="anchor"></a><code>| </code><code><span class="constructor">On</span></code></td></tr><tr id="type-mode.Off" class="anchored"><td class="def constructor"><a href="#type-mode.Off" class="anchor"></a><code>| </code><code><span class="constructor">Off</span></code></td></tr></table></dt><dt class="spec type" id="type-issue_desc0"><a href="#type-issue_desc0" class="anchor"></a><code><span class="keyword">type</span> <span>'issue_type issue_desc0</span></code><code> = </code><code>{</code><table class="record"><tr id="type-issue_desc0.issue_type" class="anchored"><td class="def field"><a href="#type-issue_desc0.issue_type" class="anchor"></a><code>issue_type : <span class="type-var">'issue_type</span>;</code></td><td class="doc"><p>issue type</p></td></tr><tr id="type-issue_desc0.description" class="anchored"><td class="def field"><a href="#type-issue_desc0.description" class="anchor"></a><code>description : string;</code></td><td class="doc"><p>Description in the error message</p></td></tr><tr id="type-issue_desc0.mode" class="anchored"><td class="def field"><a href="#type-issue_desc0.mode" class="anchor"></a><code>mode : <a href="index.html#type-mode">mode</a>;</code></td></tr><tr id="type-issue_desc0.loc" class="anchored"><td class="def field"><a href="#type-issue_desc0.loc" class="anchor"></a><code>loc : <a href="../../IBase/Location/index.html#type-t">IBase.Location.t</a>;</code></td><td class="doc"><p>location in the code</p></td></tr><tr id="type-issue_desc0.severity" class="anchored"><td class="def field"><a href="#type-issue_desc0.severity" class="anchor"></a><code>severity : <a href="../../IR/Exceptions/index.html#type-severity">IR.Exceptions.severity</a>;</code></td></tr><tr id="type-issue_desc0.suggestion" class="anchored"><td class="def field"><a href="#type-issue_desc0.suggestion" class="anchor"></a><code>suggestion : <span>string option</span>;</code></td><td class="doc"><p>an optional suggestion or correction</p></td></tr></table><code>}</code></dt><dt class="spec type" id="type-issue_desc"><a href="#type-issue_desc" class="anchor"></a><code><span class="keyword">type</span> issue_desc</code><code> = <span><a href="../../IBase/IssueType/index.html#type-t">IBase.IssueType.t</a> <a href="index.html#type-issue_desc0">issue_desc0</a></span></code></dt></dl><dl><dt class="spec value" id="val-pp_issue"><a href="#val-pp_issue" class="anchor"></a><code><span class="keyword">val</span> pp_issue : Stdlib.Format.formatter <span>&#45;&gt;</span> <a href="index.html#type-issue_desc">issue_desc</a> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-should_run_check"><a href="#val-should_run_check" class="anchor"></a><code><span class="keyword">val</span> should_run_check : <a href="index.html#type-mode">mode</a> <span>&#45;&gt;</span> bool</code></dt></dl></div></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>CPredicatesOnTwoNodes (infer.ASTLanguage.CPredicatesOnTwoNodes)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> <a href="../../index.html">infer</a> &#x00BB; <a href="../index.html">ASTLanguage</a> &#x00BB; CPredicatesOnTwoNodes</nav><h1>Module <code>ASTLanguage.CPredicatesOnTwoNodes</code></h1></header><dl><dt class="spec value" id="val-decl_name_is_contained_in_name_of_decl"><a href="#val-decl_name_is_contained_in_name_of_decl" class="anchor"></a><code><span class="keyword">val</span> decl_name_is_contained_in_name_of_decl : <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> bool</code></dt></dl></div></body></html>

@ -0,0 +1,6 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>CTL (infer.ASTLanguage.CTL)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> <a href="../../index.html">infer</a> &#x00BB; <a href="../index.html">ASTLanguage</a> &#x00BB; CTL</nav><h1>Module <code>ASTLanguage.CTL</code></h1></header><aside><p>This module defines a language to define checkers. These checkers are interpreted over the AST of the program. A checker is defined by a CTL formula which expresses a condition saying when the checker should report a problem.</p></aside><dl><dt class="spec type" id="type-clause"><a href="#type-clause" class="anchor"></a><code><span class="keyword">type</span> clause</code><code> = </code><table class="variant"><tr id="type-clause.CLet" class="anchored"><td class="def constructor"><a href="#type-clause.CLet" class="anchor"></a><code>| </code><code><span class="constructor">CLet</span> <span class="keyword">of</span> <a href="../ALVar/index.html#type-formula_id">ALVar.formula_id</a> * <span><a href="../ALVar/index.html#type-t">ALVar.t</a> list</span> * <a href="../CTLTypes/index.html#type-t">CTLTypes.t</a></code></td><td class="doc"><p>Let clause: let id = definifion;</p></td></tr><tr id="type-clause.CSet" class="anchored"><td class="def constructor"><a href="#type-clause.CSet" class="anchor"></a><code>| </code><code><span class="constructor">CSet</span> <span class="keyword">of</span> <a href="../ALVar/index.html#type-keyword">ALVar.keyword</a> * <a href="../CTLTypes/index.html#type-t">CTLTypes.t</a></code></td><td class="doc"><p>Set clause: set id = definition</p></td></tr><tr id="type-clause.CDesc" class="anchored"><td class="def constructor"><a href="#type-clause.CDesc" class="anchor"></a><code>| </code><code><span class="constructor">CDesc</span> <span class="keyword">of</span> <a href="../ALVar/index.html#type-keyword">ALVar.keyword</a> * string</code></td><td class="doc"><p>Description clause eg: set message = &quot;...&quot;</p></td></tr><tr id="type-clause.CPath" class="anchored"><td class="def constructor"><a href="#type-clause.CPath" class="anchor"></a><code>| </code><code><span class="constructor">CPath</span> <span class="keyword">of</span> <span>[ `WhitelistPath <span>| `BlacklistPath</span> ]</span> * <span><a href="../ALVar/index.html#type-t">ALVar.t</a> list</span></code></td></tr></table></dt><dd><p>&quot;set&quot; clauses are used for defining mandatory variables that will be used by when reporting issues: eg for defining the condition.</p><p>&quot;desc&quot; clauses are used for defining the error message, the suggestion, the severity.</p><p>&quot;let&quot; clauses are used to define temporary formulas which are then used to abbreviate the another formula. For example</p><pre> let f = a And B
set formula = f OR f
set message = &quot;bla&quot;</pre></dd></dl><dl><dt class="spec type" id="type-ctl_checker"><a href="#type-ctl_checker" class="anchor"></a><code><span class="keyword">type</span> ctl_checker</code><code> = </code><code>{</code><table class="record"><tr id="type-ctl_checker.id" class="anchored"><td class="def field"><a href="#type-ctl_checker.id" class="anchor"></a><code>id : string;</code></td><td class="doc"><p>Checker's id</p></td></tr><tr id="type-ctl_checker.definitions" class="anchored"><td class="def field"><a href="#type-ctl_checker.definitions" class="anchor"></a><code>definitions : <span><a href="index.html#type-clause">clause</a> list</span>;</code></td><td class="doc"><p>A list of let/set definitions</p></td></tr></table><code>}</code></dt><dt class="spec type" id="type-al_file"><a href="#type-al_file" class="anchor"></a><code><span class="keyword">type</span> al_file</code><code> = </code><code>{</code><table class="record"><tr id="type-al_file.import_files" class="anchored"><td class="def field"><a href="#type-al_file.import_files" class="anchor"></a><code>import_files : <span>string list</span>;</code></td></tr><tr id="type-al_file.global_macros" class="anchored"><td class="def field"><a href="#type-al_file.global_macros" class="anchor"></a><code>global_macros : <span><a href="index.html#type-clause">clause</a> list</span>;</code></td></tr><tr id="type-al_file.global_paths" class="anchored"><td class="def field"><a href="#type-al_file.global_paths" class="anchor"></a><code>global_paths : <span><span>(string * <span><a href="../ALVar/index.html#type-alexp">ALVar.alexp</a> list</span>)</span> list</span>;</code></td></tr><tr id="type-al_file.checkers" class="anchored"><td class="def field"><a href="#type-al_file.checkers" class="anchor"></a><code>checkers : <span><a href="index.html#type-ctl_checker">ctl_checker</a> list</span>;</code></td></tr></table><code>}</code></dt></dl><dl><dt class="spec value" id="val-print_checker"><a href="#val-print_checker" class="anchor"></a><code><span class="keyword">val</span> print_checker : <a href="index.html#type-ctl_checker">ctl_checker</a> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-eval_formula"><a href="#val-eval_formula" class="anchor"></a><code><span class="keyword">val</span> eval_formula : <span>?&#8288;keep_witness:bool</span> <span>&#45;&gt;</span> <a href="../CTLTypes/index.html#type-t">CTLTypes.t</a> <span>&#45;&gt;</span> <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> <a href="../CLintersContext/index.html#type-context">CLintersContext.context</a> <span>&#45;&gt;</span> <span><a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> option</span></code></dt><dd><p>return the evaluation of the formula and a witness</p></dd></dl><dl><dt class="spec value" id="val-save_dotty_when_in_debug_mode"><a href="#val-save_dotty_when_in_debug_mode" class="anchor"></a><code><span class="keyword">val</span> save_dotty_when_in_debug_mode : <a href="../../IBase/SourceFile/index.html#type-t">IBase.SourceFile.t</a> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-next_state_via_transition"><a href="#val-next_state_via_transition" class="anchor"></a><code><span class="keyword">val</span> next_state_via_transition : <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> <a href="../CTLTypes/index.html#type-transitions">CTLTypes.transitions</a> <span>&#45;&gt;</span> <span><a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> list</span></code></dt><dt class="spec value" id="val-create_ctl_evaluation_tracker"><a href="#val-create_ctl_evaluation_tracker" class="anchor"></a><code><span class="keyword">val</span> create_ctl_evaluation_tracker : <a href="../../IBase/SourceFile/index.html#type-t">IBase.SourceFile.t</a> <span>&#45;&gt;</span> unit</code></dt></dl></div></body></html>

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>CTLExceptions (infer.ASTLanguage.CTLExceptions)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> <a href="../../index.html">infer</a> &#x00BB; <a href="../index.html">ASTLanguage</a> &#x00BB; CTLExceptions</nav><h1>Module <code>ASTLanguage.CTLExceptions</code></h1></header><dl><dt class="spec exception" id="exception-ALParserInvariantViolationException"><a href="#exception-ALParserInvariantViolationException" class="anchor"></a><code><span class="keyword">exception</span> </code><code><span class="exception">ALParserInvariantViolationException</span> <span class="keyword">of</span> string</code></dt><dd><p>Raised when the parser encounters a violation of a certain invariant</p></dd></dl><dl><dt class="spec type" id="type-exc_info"><a href="#type-exc_info" class="anchor"></a><code><span class="keyword">type</span> exc_info</code></dt></dl><dl><dt class="spec exception" id="exception-ALFileException"><a href="#exception-ALFileException" class="anchor"></a><code><span class="keyword">exception</span> </code><code><span class="exception">ALFileException</span> <span class="keyword">of</span> <a href="index.html#type-exc_info">exc_info</a></code></dt><dd><p>Raised when any exception from the lexer/parser of AL is caught, to include source-location info</p></dd></dl><dl><dt class="spec value" id="val-create_exc_info"><a href="#val-create_exc_info" class="anchor"></a><code><span class="keyword">val</span> create_exc_info : string <span>&#45;&gt;</span> Stdlib.Lexing.lexbuf <span>&#45;&gt;</span> <a href="index.html#type-exc_info">exc_info</a></code></dt><dt class="spec value" id="val-json_of_exc_info"><a href="#val-json_of_exc_info" class="anchor"></a><code><span class="keyword">val</span> json_of_exc_info : <a href="index.html#type-exc_info">exc_info</a> <span>&#45;&gt;</span> Yojson.Basic.t</code></dt></dl></div></body></html>

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>CTLParserHelper (infer.ASTLanguage.CTLParserHelper)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> <a href="../../index.html">infer</a> &#x00BB; <a href="../index.html">ASTLanguage</a> &#x00BB; CTLParserHelper</nav><h1>Module <code>ASTLanguage.CTLParserHelper</code></h1></header><dl><dt class="spec value" id="val-parse_al_file"><a href="#val-parse_al_file" class="anchor"></a><code><span class="keyword">val</span> parse_al_file : string <span>&#45;&gt;</span> <a href="../../IStdlib/index.html#module-IStd">IStdlib.IStd</a>.In_channel.t <span>&#45;&gt;</span> <span><a href="../CTL/index.html#type-al_file">CTL.al_file</a> option</span></code></dt><dt class="spec value" id="val-validate_al_files"><a href="#val-validate_al_files" class="anchor"></a><code><span class="keyword">val</span> validate_al_files : unit <span>&#45;&gt;</span> <span><span>(unit, string)</span> <a href="../../IStdlib/index.html#module-IStd">IStdlib.IStd</a>.Result.t</span></code></dt></dl></div></body></html>

File diff suppressed because one or more lines are too long

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>CiOSVersionNumbers (infer.ASTLanguage.CiOSVersionNumbers)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> <a href="../../index.html">infer</a> &#x00BB; <a href="../index.html">ASTLanguage</a> &#x00BB; CiOSVersionNumbers</nav><h1>Module <code>ASTLanguage.CiOSVersionNumbers</code></h1></header><dl><dt class="spec type" id="type-human_readable_version"><a href="#type-human_readable_version" class="anchor"></a><code><span class="keyword">type</span> human_readable_version</code><code> = string</code></dt></dl><dl><dt class="spec value" id="val-version_of"><a href="#val-version_of" class="anchor"></a><code><span class="keyword">val</span> version_of : string <span>&#45;&gt;</span> <span><a href="index.html#type-human_readable_version">human_readable_version</a> option</span></code></dt><dt class="spec value" id="val-pp_diff_of_version_opt"><a href="#val-pp_diff_of_version_opt" class="anchor"></a><code><span class="keyword">val</span> pp_diff_of_version_opt : Stdlib.Format.formatter <span>&#45;&gt;</span> <span>(<span><a href="index.html#type-human_readable_version">human_readable_version</a> option</span> * <span><a href="index.html#type-human_readable_version">human_readable_version</a> option</span>)</span> <span>&#45;&gt;</span> unit</code></dt></dl></div></body></html>

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ComponentKit (infer.ASTLanguage.ComponentKit)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> <a href="../../index.html">infer</a> &#x00BB; <a href="../index.html">ASTLanguage</a> &#x00BB; ComponentKit</nav><h1>Module <code>ASTLanguage.ComponentKit</code></h1></header><dl><dt class="spec value" id="val-contains_ck_impl"><a href="#val-contains_ck_impl" class="anchor"></a><code><span class="keyword">val</span> contains_ck_impl : <span><a href="../../ATDGenerated/Clang_ast_t/index.html#type-decl">ATDGenerated.Clang_ast_t.decl</a> list</span> <span>&#45;&gt;</span> bool</code></dt><dd><p>Returns true if the passed-in list of decls contains an ObjCImplementationDecl of a descendant of CKComponent or CKComponentController.</p><p>Does not recurse into hierarchy.</p></dd></dl><dl><dt class="spec value" id="val-mutable_local_vars_advice"><a href="#val-mutable_local_vars_advice" class="anchor"></a><code><span class="keyword">val</span> mutable_local_vars_advice : <a href="../CLintersContext/index.html#type-context">CLintersContext.context</a> <span>&#45;&gt;</span> <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> <span><a href="../CIssue/index.html#type-issue_desc">CIssue.issue_desc</a> option</span></code></dt><dt class="spec value" id="val-component_factory_function_advice"><a href="#val-component_factory_function_advice" class="anchor"></a><code><span class="keyword">val</span> component_factory_function_advice : <a href="../CLintersContext/index.html#type-context">CLintersContext.context</a> <span>&#45;&gt;</span> <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> <span><a href="../CIssue/index.html#type-issue_desc">CIssue.issue_desc</a> option</span></code></dt><dt class="spec value" id="val-component_with_unconventional_superclass_advice"><a href="#val-component_with_unconventional_superclass_advice" class="anchor"></a><code><span class="keyword">val</span> component_with_unconventional_superclass_advice : <a href="../CLintersContext/index.html#type-context">CLintersContext.context</a> <span>&#45;&gt;</span> <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> <span><a href="../CIssue/index.html#type-issue_desc">CIssue.issue_desc</a> option</span></code></dt><dt class="spec value" id="val-component_with_multiple_factory_methods_advice"><a href="#val-component_with_multiple_factory_methods_advice" class="anchor"></a><code><span class="keyword">val</span> component_with_multiple_factory_methods_advice : <a href="../CLintersContext/index.html#type-context">CLintersContext.context</a> <span>&#45;&gt;</span> <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> <span><a href="../CIssue/index.html#type-issue_desc">CIssue.issue_desc</a> list</span></code></dt><dt class="spec value" id="val-component_initializer_with_side_effects_advice"><a href="#val-component_initializer_with_side_effects_advice" class="anchor"></a><code><span class="keyword">val</span> component_initializer_with_side_effects_advice : <a href="../CLintersContext/index.html#type-context">CLintersContext.context</a> <span>&#45;&gt;</span> <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> <span><a href="../CIssue/index.html#type-issue_desc">CIssue.issue_desc</a> option</span></code></dt><dt class="spec value" id="val-component_file_line_count_info"><a href="#val-component_file_line_count_info" class="anchor"></a><code><span class="keyword">val</span> component_file_line_count_info : <a href="../CLintersContext/index.html#type-context">CLintersContext.context</a> <span>&#45;&gt;</span> <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> <span><a href="../CIssue/index.html#type-issue_desc">CIssue.issue_desc</a> list</span></code></dt><dt class="spec value" id="val-component_file_cyclomatic_complexity_info"><a href="#val-component_file_cyclomatic_complexity_info" class="anchor"></a><code><span class="keyword">val</span> component_file_cyclomatic_complexity_info : <a href="../CLintersContext/index.html#type-context">CLintersContext.context</a> <span>&#45;&gt;</span> <a href="../Ctl_parser_types/index.html#type-ast_node">Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> <span><a href="../CIssue/index.html#type-issue_desc">CIssue.issue_desc</a> option</span></code></dt></dl></div></body></html>

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Ctl_lexer (infer.ASTLanguage.Ctl_lexer)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> <a href="../../index.html">infer</a> &#x00BB; <a href="../index.html">ASTLanguage</a> &#x00BB; Ctl_lexer</nav><h1>Module <code>ASTLanguage.Ctl_lexer</code></h1></header><dl><dt class="spec exception" id="exception-SyntaxError"><a href="#exception-SyntaxError" class="anchor"></a><code><span class="keyword">exception</span> </code><code><span class="exception">SyntaxError</span> <span class="keyword">of</span> string</code></dt></dl><dl><dt class="spec value" id="val-next_line"><a href="#val-next_line" class="anchor"></a><code><span class="keyword">val</span> next_line : Stdlib.Lexing.lexbuf <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-__ocaml_lex_tables"><a href="#val-__ocaml_lex_tables" class="anchor"></a><code><span class="keyword">val</span> __ocaml_lex_tables : Stdlib.Lexing.lex_tables</code></dt><dt class="spec value" id="val-token"><a href="#val-token" class="anchor"></a><code><span class="keyword">val</span> token : Stdlib.Lexing.lexbuf <span>&#45;&gt;</span> <a href="../Ctl_parser/index.html#type-token">Ctl_parser.token</a></code></dt><dt class="spec value" id="val-__ocaml_lex_token_rec"><a href="#val-__ocaml_lex_token_rec" class="anchor"></a><code><span class="keyword">val</span> __ocaml_lex_token_rec : Stdlib.Lexing.lexbuf <span>&#45;&gt;</span> int <span>&#45;&gt;</span> <a href="../Ctl_parser/index.html#type-token">Ctl_parser.token</a></code></dt><dt class="spec value" id="val-read_string"><a href="#val-read_string" class="anchor"></a><code><span class="keyword">val</span> read_string : <a href="../../IStdlib/index.html#module-IStd">IStdlib.IStd</a>.Buffer.t <span>&#45;&gt;</span> Stdlib.Lexing.lexbuf <span>&#45;&gt;</span> <a href="../Ctl_parser/index.html#type-token">Ctl_parser.token</a></code></dt><dt class="spec value" id="val-__ocaml_lex_read_string_rec"><a href="#val-__ocaml_lex_read_string_rec" class="anchor"></a><code><span class="keyword">val</span> __ocaml_lex_read_string_rec : <a href="../../IStdlib/index.html#module-IStd">IStdlib.IStd</a>.Buffer.t <span>&#45;&gt;</span> Stdlib.Lexing.lexbuf <span>&#45;&gt;</span> int <span>&#45;&gt;</span> <a href="../Ctl_parser/index.html#type-token">Ctl_parser.token</a></code></dt></dl></div></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>RegisterCallback (infer.ASTLanguage.RegisterCallback)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> <a href="../../index.html">infer</a> &#x00BB; <a href="../index.html">ASTLanguage</a> &#x00BB; RegisterCallback</nav><h1>Module <code>ASTLanguage.RegisterCallback</code></h1></header><dl><dt class="spec value" id="val-register_frontend_checks"><a href="#val-register_frontend_checks" class="anchor"></a><code><span class="keyword">val</span> register_frontend_checks : unit <span>&#45;&gt;</span> unit</code></dt><dd><p>call this before running the clang frontend</p></dd></dl></div></body></html>

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Types_lexer (infer.ASTLanguage.Types_lexer)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> <a href="../../index.html">infer</a> &#x00BB; <a href="../index.html">ASTLanguage</a> &#x00BB; Types_lexer</nav><h1>Module <code>ASTLanguage.Types_lexer</code></h1></header><dl><dt class="spec exception" id="exception-SyntaxError"><a href="#exception-SyntaxError" class="anchor"></a><code><span class="keyword">exception</span> </code><code><span class="exception">SyntaxError</span> <span class="keyword">of</span> string</code></dt></dl><dl><dt class="spec value" id="val-next_line"><a href="#val-next_line" class="anchor"></a><code><span class="keyword">val</span> next_line : Stdlib.Lexing.lexbuf <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-__ocaml_lex_tables"><a href="#val-__ocaml_lex_tables" class="anchor"></a><code><span class="keyword">val</span> __ocaml_lex_tables : Stdlib.Lexing.lex_tables</code></dt><dt class="spec value" id="val-token"><a href="#val-token" class="anchor"></a><code><span class="keyword">val</span> token : Stdlib.Lexing.lexbuf <span>&#45;&gt;</span> <a href="../Types_parser/index.html#type-token">Types_parser.token</a></code></dt><dt class="spec value" id="val-__ocaml_lex_token_rec"><a href="#val-__ocaml_lex_token_rec" class="anchor"></a><code><span class="keyword">val</span> __ocaml_lex_token_rec : Stdlib.Lexing.lexbuf <span>&#45;&gt;</span> int <span>&#45;&gt;</span> <a href="../Types_parser/index.html#type-token">Types_parser.token</a></code></dt><dt class="spec value" id="val-read_string"><a href="#val-read_string" class="anchor"></a><code><span class="keyword">val</span> read_string : <a href="../../IStdlib/index.html#module-IStd">IStdlib.IStd</a>.Buffer.t <span>&#45;&gt;</span> Stdlib.Lexing.lexbuf <span>&#45;&gt;</span> <a href="../Types_parser/index.html#type-token">Types_parser.token</a></code></dt><dt class="spec value" id="val-__ocaml_lex_read_string_rec"><a href="#val-__ocaml_lex_read_string_rec" class="anchor"></a><code><span class="keyword">val</span> __ocaml_lex_read_string_rec : <a href="../../IStdlib/index.html#module-IStd">IStdlib.IStd</a>.Buffer.t <span>&#45;&gt;</span> Stdlib.Lexing.lexbuf <span>&#45;&gt;</span> int <span>&#45;&gt;</span> <a href="../Types_parser/index.html#type-token">Types_parser.token</a></code></dt></dl></div></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ASTLanguage__AL (infer.ASTLanguage__AL)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> <a href="../index.html">infer</a> &#x00BB; ASTLanguage__AL</nav><h1>Module <code>ASTLanguage__AL</code></h1></header><dl><dt class="spec value" id="val-do_frontend_checks"><a href="#val-do_frontend_checks" class="anchor"></a><code><span class="keyword">val</span> do_frontend_checks : <a href="../ClangFrontend/CFrontend_config/index.html#type-translation_unit_context">ClangFrontend.CFrontend_config.translation_unit_context</a> <span>&#45;&gt;</span> <a href="../ATDGenerated/Clang_ast_t/index.html#type-decl">ATDGenerated.Clang_ast_t.decl</a> <span>&#45;&gt;</span> unit</code></dt></dl></div></body></html>

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>DottyPrinter (infer.ASTLanguage__ALDebugger.EvaluationTracker.DottyPrinter)</title><link rel="stylesheet" href="../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> <a href="../../../index.html">infer</a> &#x00BB; <a href="../../index.html">ASTLanguage__ALDebugger</a> &#x00BB; <a href="../index.html">EvaluationTracker</a> &#x00BB; DottyPrinter</nav><h1>Module <code>EvaluationTracker.DottyPrinter</code></h1></header><dl><dt class="spec value" id="val-dotty_of_ctl_evaluation"><a href="#val-dotty_of_ctl_evaluation" class="anchor"></a><code><span class="keyword">val</span> dotty_of_ctl_evaluation : <a href="../index.html#type-t">t</a> <span>&#45;&gt;</span> string</code></dt></dl></div></body></html>

File diff suppressed because one or more lines are too long

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ASTLanguage__ALDebugger (infer.ASTLanguage__ALDebugger)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> <a href="../index.html">infer</a> &#x00BB; ASTLanguage__ALDebugger</nav><h1>Module <code>ASTLanguage__ALDebugger</code></h1></header><div class="spec module" id="module-EvaluationTracker"><a href="#module-EvaluationTracker" class="anchor"></a><code><span class="keyword">module</span> <a href="EvaluationTracker/index.html">EvaluationTracker</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div></div></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ASTLanguage__CIssue (infer.ASTLanguage__CIssue)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> <a href="../index.html">infer</a> &#x00BB; ASTLanguage__CIssue</nav><h1>Module <code>ASTLanguage__CIssue</code></h1></header><dl><dt class="spec type" id="type-mode"><a href="#type-mode" class="anchor"></a><code><span class="keyword">type</span> mode</code><code> = </code><table class="variant"><tr id="type-mode.On" class="anchored"><td class="def constructor"><a href="#type-mode.On" class="anchor"></a><code>| </code><code><span class="constructor">On</span></code></td></tr><tr id="type-mode.Off" class="anchored"><td class="def constructor"><a href="#type-mode.Off" class="anchor"></a><code>| </code><code><span class="constructor">Off</span></code></td></tr></table></dt><dt class="spec type" id="type-issue_desc0"><a href="#type-issue_desc0" class="anchor"></a><code><span class="keyword">type</span> <span>'issue_type issue_desc0</span></code><code> = </code><code>{</code><table class="record"><tr id="type-issue_desc0.issue_type" class="anchored"><td class="def field"><a href="#type-issue_desc0.issue_type" class="anchor"></a><code>issue_type : <span class="type-var">'issue_type</span>;</code></td><td class="doc"><p>issue type</p></td></tr><tr id="type-issue_desc0.description" class="anchored"><td class="def field"><a href="#type-issue_desc0.description" class="anchor"></a><code>description : string;</code></td><td class="doc"><p>Description in the error message</p></td></tr><tr id="type-issue_desc0.mode" class="anchored"><td class="def field"><a href="#type-issue_desc0.mode" class="anchor"></a><code>mode : <a href="index.html#type-mode">mode</a>;</code></td></tr><tr id="type-issue_desc0.loc" class="anchored"><td class="def field"><a href="#type-issue_desc0.loc" class="anchor"></a><code>loc : <a href="../IBase/Location/index.html#type-t">IBase.Location.t</a>;</code></td><td class="doc"><p>location in the code</p></td></tr><tr id="type-issue_desc0.severity" class="anchored"><td class="def field"><a href="#type-issue_desc0.severity" class="anchor"></a><code>severity : <a href="../IR/Exceptions/index.html#type-severity">IR.Exceptions.severity</a>;</code></td></tr><tr id="type-issue_desc0.suggestion" class="anchored"><td class="def field"><a href="#type-issue_desc0.suggestion" class="anchor"></a><code>suggestion : <span>string option</span>;</code></td><td class="doc"><p>an optional suggestion or correction</p></td></tr></table><code>}</code></dt><dt class="spec type" id="type-issue_desc"><a href="#type-issue_desc" class="anchor"></a><code><span class="keyword">type</span> issue_desc</code><code> = <span><a href="../IBase/IssueType/index.html#type-t">IBase.IssueType.t</a> <a href="index.html#type-issue_desc0">issue_desc0</a></span></code></dt></dl><dl><dt class="spec value" id="val-pp_issue"><a href="#val-pp_issue" class="anchor"></a><code><span class="keyword">val</span> pp_issue : Stdlib.Format.formatter <span>&#45;&gt;</span> <a href="index.html#type-issue_desc">issue_desc</a> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-should_run_check"><a href="#val-should_run_check" class="anchor"></a><code><span class="keyword">val</span> should_run_check : <a href="index.html#type-mode">mode</a> <span>&#45;&gt;</span> bool</code></dt></dl></div></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ASTLanguage__CPredicatesOnTwoNodes (infer.ASTLanguage__CPredicatesOnTwoNodes)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> <a href="../index.html">infer</a> &#x00BB; ASTLanguage__CPredicatesOnTwoNodes</nav><h1>Module <code>ASTLanguage__CPredicatesOnTwoNodes</code></h1></header><dl><dt class="spec value" id="val-decl_name_is_contained_in_name_of_decl"><a href="#val-decl_name_is_contained_in_name_of_decl" class="anchor"></a><code><span class="keyword">val</span> decl_name_is_contained_in_name_of_decl : <a href="../ASTLanguage/Ctl_parser_types/index.html#type-ast_node">ASTLanguage.Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> <a href="../ASTLanguage/Ctl_parser_types/index.html#type-ast_node">ASTLanguage.Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> bool</code></dt></dl></div></body></html>

@ -0,0 +1,6 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ASTLanguage__CTL (infer.ASTLanguage__CTL)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> <a href="../index.html">infer</a> &#x00BB; ASTLanguage__CTL</nav><h1>Module <code>ASTLanguage__CTL</code></h1></header><aside><p>This module defines a language to define checkers. These checkers are interpreted over the AST of the program. A checker is defined by a CTL formula which expresses a condition saying when the checker should report a problem.</p></aside><dl><dt class="spec type" id="type-clause"><a href="#type-clause" class="anchor"></a><code><span class="keyword">type</span> clause</code><code> = </code><table class="variant"><tr id="type-clause.CLet" class="anchored"><td class="def constructor"><a href="#type-clause.CLet" class="anchor"></a><code>| </code><code><span class="constructor">CLet</span> <span class="keyword">of</span> <a href="../ASTLanguage/ALVar/index.html#type-formula_id">ASTLanguage.ALVar.formula_id</a> * <span><a href="../ASTLanguage/ALVar/index.html#type-t">ASTLanguage.ALVar.t</a> list</span> * <a href="../ASTLanguage/CTLTypes/index.html#type-t">ASTLanguage.CTLTypes.t</a></code></td><td class="doc"><p>Let clause: let id = definifion;</p></td></tr><tr id="type-clause.CSet" class="anchored"><td class="def constructor"><a href="#type-clause.CSet" class="anchor"></a><code>| </code><code><span class="constructor">CSet</span> <span class="keyword">of</span> <a href="../ASTLanguage/ALVar/index.html#type-keyword">ASTLanguage.ALVar.keyword</a> * <a href="../ASTLanguage/CTLTypes/index.html#type-t">ASTLanguage.CTLTypes.t</a></code></td><td class="doc"><p>Set clause: set id = definition</p></td></tr><tr id="type-clause.CDesc" class="anchored"><td class="def constructor"><a href="#type-clause.CDesc" class="anchor"></a><code>| </code><code><span class="constructor">CDesc</span> <span class="keyword">of</span> <a href="../ASTLanguage/ALVar/index.html#type-keyword">ASTLanguage.ALVar.keyword</a> * string</code></td><td class="doc"><p>Description clause eg: set message = &quot;...&quot;</p></td></tr><tr id="type-clause.CPath" class="anchored"><td class="def constructor"><a href="#type-clause.CPath" class="anchor"></a><code>| </code><code><span class="constructor">CPath</span> <span class="keyword">of</span> <span>[ `WhitelistPath <span>| `BlacklistPath</span> ]</span> * <span><a href="../ASTLanguage/ALVar/index.html#type-t">ASTLanguage.ALVar.t</a> list</span></code></td></tr></table></dt><dd><p>&quot;set&quot; clauses are used for defining mandatory variables that will be used by when reporting issues: eg for defining the condition.</p><p>&quot;desc&quot; clauses are used for defining the error message, the suggestion, the severity.</p><p>&quot;let&quot; clauses are used to define temporary formulas which are then used to abbreviate the another formula. For example</p><pre> let f = a And B
set formula = f OR f
set message = &quot;bla&quot;</pre></dd></dl><dl><dt class="spec type" id="type-ctl_checker"><a href="#type-ctl_checker" class="anchor"></a><code><span class="keyword">type</span> ctl_checker</code><code> = </code><code>{</code><table class="record"><tr id="type-ctl_checker.id" class="anchored"><td class="def field"><a href="#type-ctl_checker.id" class="anchor"></a><code>id : string;</code></td><td class="doc"><p>Checker's id</p></td></tr><tr id="type-ctl_checker.definitions" class="anchored"><td class="def field"><a href="#type-ctl_checker.definitions" class="anchor"></a><code>definitions : <span><a href="index.html#type-clause">clause</a> list</span>;</code></td><td class="doc"><p>A list of let/set definitions</p></td></tr></table><code>}</code></dt><dt class="spec type" id="type-al_file"><a href="#type-al_file" class="anchor"></a><code><span class="keyword">type</span> al_file</code><code> = </code><code>{</code><table class="record"><tr id="type-al_file.import_files" class="anchored"><td class="def field"><a href="#type-al_file.import_files" class="anchor"></a><code>import_files : <span>string list</span>;</code></td></tr><tr id="type-al_file.global_macros" class="anchored"><td class="def field"><a href="#type-al_file.global_macros" class="anchor"></a><code>global_macros : <span><a href="index.html#type-clause">clause</a> list</span>;</code></td></tr><tr id="type-al_file.global_paths" class="anchored"><td class="def field"><a href="#type-al_file.global_paths" class="anchor"></a><code>global_paths : <span><span>(string * <span><a href="../ASTLanguage/ALVar/index.html#type-alexp">ASTLanguage.ALVar.alexp</a> list</span>)</span> list</span>;</code></td></tr><tr id="type-al_file.checkers" class="anchored"><td class="def field"><a href="#type-al_file.checkers" class="anchor"></a><code>checkers : <span><a href="index.html#type-ctl_checker">ctl_checker</a> list</span>;</code></td></tr></table><code>}</code></dt></dl><dl><dt class="spec value" id="val-print_checker"><a href="#val-print_checker" class="anchor"></a><code><span class="keyword">val</span> print_checker : <a href="index.html#type-ctl_checker">ctl_checker</a> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-eval_formula"><a href="#val-eval_formula" class="anchor"></a><code><span class="keyword">val</span> eval_formula : <span>?&#8288;keep_witness:bool</span> <span>&#45;&gt;</span> <a href="../ASTLanguage/CTLTypes/index.html#type-t">ASTLanguage.CTLTypes.t</a> <span>&#45;&gt;</span> <a href="../ASTLanguage/Ctl_parser_types/index.html#type-ast_node">ASTLanguage.Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> <a href="../ASTLanguage/CLintersContext/index.html#type-context">ASTLanguage.CLintersContext.context</a> <span>&#45;&gt;</span> <span><a href="../ASTLanguage/Ctl_parser_types/index.html#type-ast_node">ASTLanguage.Ctl_parser_types.ast_node</a> option</span></code></dt><dd><p>return the evaluation of the formula and a witness</p></dd></dl><dl><dt class="spec value" id="val-save_dotty_when_in_debug_mode"><a href="#val-save_dotty_when_in_debug_mode" class="anchor"></a><code><span class="keyword">val</span> save_dotty_when_in_debug_mode : <a href="../IBase/SourceFile/index.html#type-t">IBase.SourceFile.t</a> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-next_state_via_transition"><a href="#val-next_state_via_transition" class="anchor"></a><code><span class="keyword">val</span> next_state_via_transition : <a href="../ASTLanguage/Ctl_parser_types/index.html#type-ast_node">ASTLanguage.Ctl_parser_types.ast_node</a> <span>&#45;&gt;</span> <a href="../ASTLanguage/CTLTypes/index.html#type-transitions">ASTLanguage.CTLTypes.transitions</a> <span>&#45;&gt;</span> <span><a href="../ASTLanguage/Ctl_parser_types/index.html#type-ast_node">ASTLanguage.Ctl_parser_types.ast_node</a> list</span></code></dt><dt class="spec value" id="val-create_ctl_evaluation_tracker"><a href="#val-create_ctl_evaluation_tracker" class="anchor"></a><code><span class="keyword">val</span> create_ctl_evaluation_tracker : <a href="../IBase/SourceFile/index.html#type-t">IBase.SourceFile.t</a> <span>&#45;&gt;</span> unit</code></dt></dl></div></body></html>

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ASTLanguage__CTLExceptions (infer.ASTLanguage__CTLExceptions)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> <a href="../index.html">infer</a> &#x00BB; ASTLanguage__CTLExceptions</nav><h1>Module <code>ASTLanguage__CTLExceptions</code></h1></header><dl><dt class="spec exception" id="exception-ALParserInvariantViolationException"><a href="#exception-ALParserInvariantViolationException" class="anchor"></a><code><span class="keyword">exception</span> </code><code><span class="exception">ALParserInvariantViolationException</span> <span class="keyword">of</span> string</code></dt><dd><p>Raised when the parser encounters a violation of a certain invariant</p></dd></dl><dl><dt class="spec type" id="type-exc_info"><a href="#type-exc_info" class="anchor"></a><code><span class="keyword">type</span> exc_info</code></dt></dl><dl><dt class="spec exception" id="exception-ALFileException"><a href="#exception-ALFileException" class="anchor"></a><code><span class="keyword">exception</span> </code><code><span class="exception">ALFileException</span> <span class="keyword">of</span> <a href="index.html#type-exc_info">exc_info</a></code></dt><dd><p>Raised when any exception from the lexer/parser of AL is caught, to include source-location info</p></dd></dl><dl><dt class="spec value" id="val-create_exc_info"><a href="#val-create_exc_info" class="anchor"></a><code><span class="keyword">val</span> create_exc_info : string <span>&#45;&gt;</span> Stdlib.Lexing.lexbuf <span>&#45;&gt;</span> <a href="index.html#type-exc_info">exc_info</a></code></dt><dt class="spec value" id="val-json_of_exc_info"><a href="#val-json_of_exc_info" class="anchor"></a><code><span class="keyword">val</span> json_of_exc_info : <a href="index.html#type-exc_info">exc_info</a> <span>&#45;&gt;</span> Yojson.Basic.t</code></dt></dl></div></body></html>

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ASTLanguage__CTLParserHelper (infer.ASTLanguage__CTLParserHelper)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> <a href="../index.html">infer</a> &#x00BB; ASTLanguage__CTLParserHelper</nav><h1>Module <code>ASTLanguage__CTLParserHelper</code></h1></header><dl><dt class="spec value" id="val-parse_al_file"><a href="#val-parse_al_file" class="anchor"></a><code><span class="keyword">val</span> parse_al_file : string <span>&#45;&gt;</span> <a href="../IStdlib/index.html#module-IStd">IStdlib.IStd</a>.In_channel.t <span>&#45;&gt;</span> <span><a href="../ASTLanguage/CTL/index.html#type-al_file">ASTLanguage.CTL.al_file</a> option</span></code></dt><dt class="spec value" id="val-validate_al_files"><a href="#val-validate_al_files" class="anchor"></a><code><span class="keyword">val</span> validate_al_files : unit <span>&#45;&gt;</span> <span><span>(unit, string)</span> <a href="../IStdlib/index.html#module-IStd">IStdlib.IStd</a>.Result.t</span></code></dt></dl></div></body></html>

File diff suppressed because one or more lines are too long

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ASTLanguage__CiOSVersionNumbers (infer.ASTLanguage__CiOSVersionNumbers)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> <a href="../index.html">infer</a> &#x00BB; ASTLanguage__CiOSVersionNumbers</nav><h1>Module <code>ASTLanguage__CiOSVersionNumbers</code></h1></header><dl><dt class="spec type" id="type-human_readable_version"><a href="#type-human_readable_version" class="anchor"></a><code><span class="keyword">type</span> human_readable_version</code><code> = string</code></dt></dl><dl><dt class="spec value" id="val-version_of"><a href="#val-version_of" class="anchor"></a><code><span class="keyword">val</span> version_of : string <span>&#45;&gt;</span> <span><a href="index.html#type-human_readable_version">human_readable_version</a> option</span></code></dt><dt class="spec value" id="val-pp_diff_of_version_opt"><a href="#val-pp_diff_of_version_opt" class="anchor"></a><code><span class="keyword">val</span> pp_diff_of_version_opt : Stdlib.Format.formatter <span>&#45;&gt;</span> <span>(<span><a href="index.html#type-human_readable_version">human_readable_version</a> option</span> * <span><a href="index.html#type-human_readable_version">human_readable_version</a> option</span>)</span> <span>&#45;&gt;</span> unit</code></dt></dl></div></body></html>

File diff suppressed because one or more lines are too long

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ASTLanguage__Ctl_lexer (infer.ASTLanguage__Ctl_lexer)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> <a href="../index.html">infer</a> &#x00BB; ASTLanguage__Ctl_lexer</nav><h1>Module <code>ASTLanguage__Ctl_lexer</code></h1></header><dl><dt class="spec exception" id="exception-SyntaxError"><a href="#exception-SyntaxError" class="anchor"></a><code><span class="keyword">exception</span> </code><code><span class="exception">SyntaxError</span> <span class="keyword">of</span> string</code></dt></dl><dl><dt class="spec value" id="val-next_line"><a href="#val-next_line" class="anchor"></a><code><span class="keyword">val</span> next_line : Stdlib.Lexing.lexbuf <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-__ocaml_lex_tables"><a href="#val-__ocaml_lex_tables" class="anchor"></a><code><span class="keyword">val</span> __ocaml_lex_tables : Stdlib.Lexing.lex_tables</code></dt><dt class="spec value" id="val-token"><a href="#val-token" class="anchor"></a><code><span class="keyword">val</span> token : Stdlib.Lexing.lexbuf <span>&#45;&gt;</span> <a href="../ASTLanguage/Ctl_parser/index.html#type-token">ASTLanguage.Ctl_parser.token</a></code></dt><dt class="spec value" id="val-__ocaml_lex_token_rec"><a href="#val-__ocaml_lex_token_rec" class="anchor"></a><code><span class="keyword">val</span> __ocaml_lex_token_rec : Stdlib.Lexing.lexbuf <span>&#45;&gt;</span> int <span>&#45;&gt;</span> <a href="../ASTLanguage/Ctl_parser/index.html#type-token">ASTLanguage.Ctl_parser.token</a></code></dt><dt class="spec value" id="val-read_string"><a href="#val-read_string" class="anchor"></a><code><span class="keyword">val</span> read_string : <a href="../IStdlib/index.html#module-IStd">IStdlib.IStd</a>.Buffer.t <span>&#45;&gt;</span> Stdlib.Lexing.lexbuf <span>&#45;&gt;</span> <a href="../ASTLanguage/Ctl_parser/index.html#type-token">ASTLanguage.Ctl_parser.token</a></code></dt><dt class="spec value" id="val-__ocaml_lex_read_string_rec"><a href="#val-__ocaml_lex_read_string_rec" class="anchor"></a><code><span class="keyword">val</span> __ocaml_lex_read_string_rec : <a href="../IStdlib/index.html#module-IStd">IStdlib.IStd</a>.Buffer.t <span>&#45;&gt;</span> Stdlib.Lexing.lexbuf <span>&#45;&gt;</span> int <span>&#45;&gt;</span> <a href="../ASTLanguage/Ctl_parser/index.html#type-token">ASTLanguage.Ctl_parser.token</a></code></dt></dl></div></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ASTLanguage__RegisterCallback (infer.ASTLanguage__RegisterCallback)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> <a href="../index.html">infer</a> &#x00BB; ASTLanguage__RegisterCallback</nav><h1>Module <code>ASTLanguage__RegisterCallback</code></h1></header><dl><dt class="spec value" id="val-register_frontend_checks"><a href="#val-register_frontend_checks" class="anchor"></a><code><span class="keyword">val</span> register_frontend_checks : unit <span>&#45;&gt;</span> unit</code></dt><dd><p>call this before running the clang frontend</p></dd></dl></div></body></html>

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ASTLanguage__Types_lexer (infer.ASTLanguage__Types_lexer)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> <a href="../index.html">infer</a> &#x00BB; ASTLanguage__Types_lexer</nav><h1>Module <code>ASTLanguage__Types_lexer</code></h1></header><dl><dt class="spec exception" id="exception-SyntaxError"><a href="#exception-SyntaxError" class="anchor"></a><code><span class="keyword">exception</span> </code><code><span class="exception">SyntaxError</span> <span class="keyword">of</span> string</code></dt></dl><dl><dt class="spec value" id="val-next_line"><a href="#val-next_line" class="anchor"></a><code><span class="keyword">val</span> next_line : Stdlib.Lexing.lexbuf <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-__ocaml_lex_tables"><a href="#val-__ocaml_lex_tables" class="anchor"></a><code><span class="keyword">val</span> __ocaml_lex_tables : Stdlib.Lexing.lex_tables</code></dt><dt class="spec value" id="val-token"><a href="#val-token" class="anchor"></a><code><span class="keyword">val</span> token : Stdlib.Lexing.lexbuf <span>&#45;&gt;</span> <a href="../ASTLanguage/Types_parser/index.html#type-token">ASTLanguage.Types_parser.token</a></code></dt><dt class="spec value" id="val-__ocaml_lex_token_rec"><a href="#val-__ocaml_lex_token_rec" class="anchor"></a><code><span class="keyword">val</span> __ocaml_lex_token_rec : Stdlib.Lexing.lexbuf <span>&#45;&gt;</span> int <span>&#45;&gt;</span> <a href="../ASTLanguage/Types_parser/index.html#type-token">ASTLanguage.Types_parser.token</a></code></dt><dt class="spec value" id="val-read_string"><a href="#val-read_string" class="anchor"></a><code><span class="keyword">val</span> read_string : <a href="../IStdlib/index.html#module-IStd">IStdlib.IStd</a>.Buffer.t <span>&#45;&gt;</span> Stdlib.Lexing.lexbuf <span>&#45;&gt;</span> <a href="../ASTLanguage/Types_parser/index.html#type-token">ASTLanguage.Types_parser.token</a></code></dt><dt class="spec value" id="val-__ocaml_lex_read_string_rec"><a href="#val-__ocaml_lex_read_string_rec" class="anchor"></a><code><span class="keyword">val</span> __ocaml_lex_read_string_rec : <a href="../IStdlib/index.html#module-IStd">IStdlib.IStd</a>.Buffer.t <span>&#45;&gt;</span> Stdlib.Lexing.lexbuf <span>&#45;&gt;</span> int <span>&#45;&gt;</span> <a href="../ASTLanguage/Types_parser/index.html#type-token">ASTLanguage.Types_parser.token</a></code></dt></dl></div></body></html>

File diff suppressed because one or more lines are too long

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ATDGenerated (infer.ATDGenerated)</title><link rel="stylesheet" href="../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="index.html">Up</a> <a href="index.html">infer</a> &#x00BB; ATDGenerated</nav><h1 id="library-atdgenerated"><a href="#library-atdgenerated" class="anchor"></a>Library ATDGenerated</h1><p>Source code that is generated from ATD definitions.</p><p>The entry point of this library is the module <a href="ATDGenerated/index.html"><code>ATDGenerated</code></a>.</p></header></div></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>TypePtr (infer.ATDGenerated.Clang_ast_types.TypePtr)</title><link rel="stylesheet" href="../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> <a href="../../../index.html">infer</a> &#x00BB; <a href="../../index.html">ATDGenerated</a> &#x00BB; <a href="../index.html">Clang_ast_types</a> &#x00BB; TypePtr</nav><h1>Module <code>Clang_ast_types.TypePtr</code></h1></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code><code> = </code><code>..</code></dt></dl><dl><dt class="spec extension"><code><span class="keyword">type</span> <a href="index.html#type-t">t</a> += </code><code><span class="extension">Ptr</span> <span class="keyword">of</span> int</code></dt></dl><dl><dt class="spec value" id="val-wrap"><a href="#val-wrap" class="anchor"></a><code><span class="keyword">val</span> wrap : int <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-unwrap"><a href="#val-unwrap" class="anchor"></a><code><span class="keyword">val</span> unwrap : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> int</code></dt></dl></div></body></html>

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Clang_ast_types (infer.ATDGenerated.Clang_ast_types)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> <a href="../../index.html">infer</a> &#x00BB; <a href="../index.html">ATDGenerated</a> &#x00BB; Clang_ast_types</nav><h1>Module <code>ATDGenerated.Clang_ast_types</code></h1></header><div class="spec module" id="module-TypePtr"><a href="#module-TypePtr" class="anchor"></a><code><span class="keyword">module</span> <a href="TypePtr/index.html">TypePtr</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div></div></body></html>

File diff suppressed because one or more lines are too long

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Clang_ast_visit (infer.ATDGenerated.Clang_ast_visit)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> <a href="../../index.html">infer</a> &#x00BB; <a href="../index.html">ATDGenerated</a> &#x00BB; Clang_ast_visit</nav><h1>Module <code>ATDGenerated.Clang_ast_visit</code></h1></header><dl><dt class="spec type" id="type-visit_decl_t"><a href="#type-visit_decl_t" class="anchor"></a><code><span class="keyword">type</span> visit_decl_t</code><code> = Atdgen_runtime.Util.Validation.path <span>&#45;&gt;</span> <a href="../Clang_ast_t/index.html#type-decl">Clang_ast_t.decl</a> <span>&#45;&gt;</span> unit</code></dt><dt class="spec type" id="type-visit_stmt_t"><a href="#type-visit_stmt_t" class="anchor"></a><code><span class="keyword">type</span> visit_stmt_t</code><code> = Atdgen_runtime.Util.Validation.path <span>&#45;&gt;</span> <a href="../Clang_ast_t/index.html#type-stmt">Clang_ast_t.stmt</a> <span>&#45;&gt;</span> unit</code></dt><dt class="spec type" id="type-visit_type_t"><a href="#type-visit_type_t" class="anchor"></a><code><span class="keyword">type</span> visit_type_t</code><code> = Atdgen_runtime.Util.Validation.path <span>&#45;&gt;</span> <a href="../Clang_ast_t/index.html#type-c_type">Clang_ast_t.c_type</a> <span>&#45;&gt;</span> unit</code></dt><dt class="spec type" id="type-visit_src_loc_t"><a href="#type-visit_src_loc_t" class="anchor"></a><code><span class="keyword">type</span> visit_src_loc_t</code><code> = Atdgen_runtime.Util.Validation.path <span>&#45;&gt;</span> <a href="../Clang_ast_t/index.html#type-source_location">Clang_ast_t.source_location</a> <span>&#45;&gt;</span> unit</code></dt></dl><dl><dt class="spec value" id="val-empty_visitor"><a href="#val-empty_visitor" class="anchor"></a><code><span class="keyword">val</span> empty_visitor : <span class="type-var">'a</span> <span>&#45;&gt;</span> <span class="type-var">'b</span> <span>&#45;&gt;</span> unit</code></dt><dt class="spec value" id="val-decl_visitor"><a href="#val-decl_visitor" class="anchor"></a><code><span class="keyword">val</span> decl_visitor : <span><a href="index.html#type-visit_decl_t">visit_decl_t</a> Stdlib.ref</span></code></dt><dt class="spec value" id="val-stmt_visitor"><a href="#val-stmt_visitor" class="anchor"></a><code><span class="keyword">val</span> stmt_visitor : <span><a href="index.html#type-visit_stmt_t">visit_stmt_t</a> Stdlib.ref</span></code></dt><dt class="spec value" id="val-type_visitor"><a href="#val-type_visitor" class="anchor"></a><code><span class="keyword">val</span> type_visitor : <span><a href="index.html#type-visit_type_t">visit_type_t</a> Stdlib.ref</span></code></dt><dt class="spec value" id="val-source_location_visitor"><a href="#val-source_location_visitor" class="anchor"></a><code><span class="keyword">val</span> source_location_visitor : <span><a href="index.html#type-visit_src_loc_t">visit_src_loc_t</a> Stdlib.ref</span></code></dt><dt class="spec value" id="val-visit_decl"><a href="#val-visit_decl" class="anchor"></a><code><span class="keyword">val</span> visit_decl : Atdgen_runtime.Util.Validation.path <span>&#45;&gt;</span> <a href="../Clang_ast_t/index.html#type-decl">Clang_ast_t.decl</a> <span>&#45;&gt;</span> <span><span class="type-var">'a</span> option</span></code></dt><dt class="spec value" id="val-visit_stmt"><a href="#val-visit_stmt" class="anchor"></a><code><span class="keyword">val</span> visit_stmt : Atdgen_runtime.Util.Validation.path <span>&#45;&gt;</span> <a href="../Clang_ast_t/index.html#type-stmt">Clang_ast_t.stmt</a> <span>&#45;&gt;</span> <span><span class="type-var">'a</span> option</span></code></dt><dt class="spec value" id="val-visit_type"><a href="#val-visit_type" class="anchor"></a><code><span class="keyword">val</span> visit_type : Atdgen_runtime.Util.Validation.path <span>&#45;&gt;</span> <a href="../Clang_ast_t/index.html#type-c_type">Clang_ast_t.c_type</a> <span>&#45;&gt;</span> <span><span class="type-var">'a</span> option</span></code></dt><dt class="spec value" id="val-visit_source_loc"><a href="#val-visit_source_loc" class="anchor"></a><code><span class="keyword">val</span> visit_source_loc : Atdgen_runtime.Util.Validation.path <span>&#45;&gt;</span> <a href="../Clang_ast_t/index.html#type-source_location">Clang_ast_t.source_location</a> <span>&#45;&gt;</span> <span><span class="type-var">'a</span> option</span></code></dt></dl></div></body></html>

File diff suppressed because one or more lines are too long

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Clang_profiler_samples_t (infer.ATDGenerated.Clang_profiler_samples_t)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> <a href="../../index.html">infer</a> &#x00BB; <a href="../index.html">ATDGenerated</a> &#x00BB; Clang_profiler_samples_t</nav><h1>Module <code>ATDGenerated.Clang_profiler_samples_t</code></h1></header><dl><dt class="spec type" id="type-native_symbol"><a href="#type-native_symbol" class="anchor"></a><code><span class="keyword">type</span> native_symbol</code><code> = </code><code>{</code><table class="record"><tr id="type-native_symbol.name" class="anchored"><td class="def field"><a href="#type-native_symbol.name" class="anchor"></a><code>name : string;</code></td></tr><tr id="type-native_symbol.mangled_name" class="anchored"><td class="def field"><a href="#type-native_symbol.mangled_name" class="anchor"></a><code>mangled_name : <span>string option</span>;</code></td></tr><tr id="type-native_symbol.hashed_mangled_name" class="anchored"><td class="def field"><a href="#type-native_symbol.hashed_mangled_name" class="anchor"></a><code>hashed_mangled_name : <span>string option</span>;</code></td></tr></table><code>}</code></dt><dt class="spec type" id="type-profiler_sample"><a href="#type-profiler_sample" class="anchor"></a><code><span class="keyword">type</span> profiler_sample</code><code> = </code><code>{</code><table class="record"><tr id="type-profiler_sample.test" class="anchored"><td class="def field"><a href="#type-profiler_sample.test" class="anchor"></a><code>test : string;</code></td></tr><tr id="type-profiler_sample.native_symbols" class="anchored"><td class="def field"><a href="#type-profiler_sample.native_symbols" class="anchor"></a><code>native_symbols : <span><a href="index.html#type-native_symbol">native_symbol</a> list</span>;</code></td></tr></table><code>}</code></dt><dt class="spec type" id="type-profiler_samples"><a href="#type-profiler_samples" class="anchor"></a><code><span class="keyword">type</span> profiler_samples</code><code> = <span><a href="index.html#type-profiler_sample">profiler_sample</a> list</span></code></dt></dl></div></body></html>

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>InferCommand (infer.ATDGenerated.InferCommand)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> <a href="../../index.html">infer</a> &#x00BB; <a href="../index.html">ATDGenerated</a> &#x00BB; InferCommand</nav><h1>Module <code>ATDGenerated.InferCommand</code></h1></header><dl><dt class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><code><span class="keyword">type</span> t</code><code> = </code><table class="variant"><tr id="type-t.Analyze" class="anchored"><td class="def constructor"><a href="#type-t.Analyze" class="anchor"></a><code>| </code><code><span class="constructor">Analyze</span></code></td><td class="doc"><p>analyze previously captured source files</p></td></tr><tr id="type-t.Capture" class="anchored"><td class="def constructor"><a href="#type-t.Capture" class="anchor"></a><code>| </code><code><span class="constructor">Capture</span></code></td><td class="doc"><p>capture compilation commands and translate source files into infer's intermediate language</p></td></tr><tr id="type-t.Compile" class="anchored"><td class="def constructor"><a href="#type-t.Compile" class="anchor"></a><code>| </code><code><span class="constructor">Compile</span></code></td><td class="doc"><p>set up the infer environment then run the compilation commands without capturing the source files</p></td></tr><tr id="type-t.Explore" class="anchored"><td class="def constructor"><a href="#type-t.Explore" class="anchor"></a><code>| </code><code><span class="constructor">Explore</span></code></td><td class="doc"><p>explore infer reports</p></td></tr><tr id="type-t.Report" class="anchored"><td class="def constructor"><a href="#type-t.Report" class="anchor"></a><code>| </code><code><span class="constructor">Report</span></code></td><td class="doc"><p>post-process infer results and reports</p></td></tr><tr id="type-t.ReportDiff" class="anchored"><td class="def constructor"><a href="#type-t.ReportDiff" class="anchor"></a><code>| </code><code><span class="constructor">ReportDiff</span></code></td><td class="doc"><p>compute the difference of two infer reports</p></td></tr><tr id="type-t.Run" class="anchored"><td class="def constructor"><a href="#type-t.Run" class="anchor"></a><code>| </code><code><span class="constructor">Run</span></code></td><td class="doc"><p>orchestrate the capture, analysis, and reporting of a compilation command</p></td></tr></table></dt><dd><p>Main modes of operation for infer</p></dd></dl><div><div class="spec include"><div class="doc"><dl><dt class="spec value" id="val-compare"><a href="#val-compare" class="anchor"></a><code><span class="keyword">val</span> compare : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> int</code></dt></dl></div></div></div><dl><dt class="spec value" id="val-of_string"><a href="#val-of_string" class="anchor"></a><code><span class="keyword">val</span> of_string : string <span>&#45;&gt;</span> <a href="index.html#type-t">t</a></code></dt><dt class="spec value" id="val-to_string"><a href="#val-to_string" class="anchor"></a><code><span class="keyword">val</span> to_string : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> string</code></dt><dt class="spec value" id="val-equal"><a href="#val-equal" class="anchor"></a><code><span class="keyword">val</span> equal : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-all_commands"><a href="#val-all_commands" class="anchor"></a><code><span class="keyword">val</span> all_commands : <span><a href="index.html#type-t">t</a> list</span></code></dt><dt class="spec value" id="val-infer_exe_name"><a href="#val-infer_exe_name" class="anchor"></a><code><span class="keyword">val</span> infer_exe_name : string</code></dt><dt class="spec value" id="val-to_exe_name"><a href="#val-to_exe_name" class="anchor"></a><code><span class="keyword">val</span> to_exe_name : <a href="index.html#type-t">t</a> <span>&#45;&gt;</span> string</code></dt><dt class="spec value" id="val-of_exe_name"><a href="#val-of_exe_name" class="anchor"></a><code><span class="keyword">val</span> of_exe_name : string <span>&#45;&gt;</span> <span><a href="index.html#type-t">t</a> option</span></code></dt></dl></div></body></html>

File diff suppressed because one or more lines are too long

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Java_method_decl_t (infer.ATDGenerated.Java_method_decl_t)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> <a href="../../index.html">infer</a> &#x00BB; <a href="../index.html">ATDGenerated</a> &#x00BB; Java_method_decl_t</nav><h1>Module <code>ATDGenerated.Java_method_decl_t</code></h1></header><dl><dt class="spec type" id="type-java_method_decl"><a href="#type-java_method_decl" class="anchor"></a><code><span class="keyword">type</span> java_method_decl</code><code> = </code><code>{</code><table class="record"><tr id="type-java_method_decl.signature" class="anchored"><td class="def field"><a href="#type-java_method_decl.signature" class="anchor"></a><code>signature : <span>string option</span>;</code></td></tr><tr id="type-java_method_decl.unresolved_signature" class="anchored"><td class="def field"><a href="#type-java_method_decl.unresolved_signature" class="anchor"></a><code>unresolved_signature : bool;</code></td></tr><tr id="type-java_method_decl.method_name" class="anchored"><td class="def field"><a href="#type-java_method_decl.method_name" class="anchor"></a><code>method_name : string;</code></td></tr><tr id="type-java_method_decl.source_file" class="anchored"><td class="def field"><a href="#type-java_method_decl.source_file" class="anchor"></a><code>source_file : string;</code></td></tr><tr id="type-java_method_decl.start_line" class="anchored"><td class="def field"><a href="#type-java_method_decl.start_line" class="anchor"></a><code>start_line : int;</code></td></tr><tr id="type-java_method_decl.end_line" class="anchored"><td class="def field"><a href="#type-java_method_decl.end_line" class="anchor"></a><code>end_line : int;</code></td></tr></table><code>}</code></dt><dt class="spec type" id="type-java_method_decls"><a href="#type-java_method_decls" class="anchor"></a><code><span class="keyword">type</span> java_method_decls</code><code> = <span><a href="index.html#type-java_method_decl">java_method_decl</a> list</span></code></dt></dl></div></body></html>

File diff suppressed because one or more lines are too long

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Java_profiler_samples_t (infer.ATDGenerated.Java_profiler_samples_t)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 1.5.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> <a href="../../index.html">infer</a> &#x00BB; <a href="../index.html">ATDGenerated</a> &#x00BB; Java_profiler_samples_t</nav><h1>Module <code>ATDGenerated.Java_profiler_samples_t</code></h1></header><dl><dt class="spec type" id="type-sampled_method"><a href="#type-sampled_method" class="anchor"></a><code><span class="keyword">type</span> sampled_method</code><code> = </code><code>{</code><table class="record"><tr id="type-sampled_method.classname" class="anchored"><td class="def field"><a href="#type-sampled_method.classname" class="anchor"></a><code>classname : string;</code></td></tr><tr id="type-sampled_method.methodname" class="anchored"><td class="def field"><a href="#type-sampled_method.methodname" class="anchor"></a><code>methodname : string;</code></td></tr><tr id="type-sampled_method.signature" class="anchored"><td class="def field"><a href="#type-sampled_method.signature" class="anchor"></a><code>signature : string;</code></td></tr></table><code>}</code></dt><dt class="spec type" id="type-java_profiler_sample"><a href="#type-java_profiler_sample" class="anchor"></a><code><span class="keyword">type</span> java_profiler_sample</code><code> = </code><code>{</code><table class="record"><tr id="type-java_profiler_sample.test" class="anchored"><td class="def field"><a href="#type-java_profiler_sample.test" class="anchor"></a><code>test : string;</code></td></tr><tr id="type-java_profiler_sample.methods" class="anchored"><td class="def field"><a href="#type-java_profiler_sample.methods" class="anchor"></a><code>methods : <span><a href="index.html#type-sampled_method">sampled_method</a> list</span>;</code></td></tr></table><code>}</code></dt><dt class="spec type" id="type-java_profiler_samples"><a href="#type-java_profiler_samples" class="anchor"></a><code><span class="keyword">type</span> java_profiler_samples</code><code> = <span><a href="index.html#type-java_profiler_sample">java_profiler_sample</a> list</span></code></dt></dl></div></body></html>

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save