blob: 29df8b9cca635935f5eba6c2456f849f0ca1a656 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>LLVM/Clang Static Analyzer</title>
<link type="text/css" rel="stylesheet" href="menu.css" />
<link type="text/css" rel="stylesheet" href="content.css" />
</head>
<body>
<!--#include virtual="menu.html.incl"-->
<div id="content">
<h1>LLVM/Clang Static Analyzer</h1>
<p>The LLVM/Clang static analyzer is a standalone tool that find bugs in C and
Objective-C programs. Currently the analyzer is invoked as a command-line tool.
It is intended to run in tandem with a build of a project or code base.</p>
<p>Here are some important points we ask you to consider when using the static
analyzer:</p>
<ul>
<li><b>This tool is <b>very early</b> in development.</b> There are many planned
enhancements to improve both the precision and scope of its analysis algorithms
as well as the kinds bugs it will find.</li>
<li><b>Static analysis can be much slower than compilation.</b> While the
analyzer is being designed to be as fast and light-weight as possible, please do
not expect it to be as fast as compiling a program (even with optimizations
enabled). Some of the algorithms needed to find bugs require in the worst case
exponential time. The analyzer runs in a reasonable amount of time by both
bounding the amount of checking work it will do as well as using clever
algorithms to reduce the amount of work it must do to find bugs.</li>
<li><b>False positives.</b> Static analysis is not perfect. It can falsely flag
bugs in a program where the code behaves correctly. Because some code checks
require more analysis precision than others, the frequency of false positives
can vary widely between different checks. Our eventual goal is to have the
analyzer have a low false positive rate for most code on all checks.</li>
</ul>
<h3>Please tell us about False Positives</h3>
<p>If you encounter a false positive, <b>please let us know</b> by <a
href="StaticAnalysisUsage.html#filingbugs">filing a bug report</a>. False
positives cannot be addressed unless we know about them.</p>
<h3>Want more bugs?</h3>
<p>If there are specific kinds of bugs you would like the tool to find,
please feel free to file <a href="StaticAnalysisUsage.html#filingbugs">feature
requests</a>.</p>
<!-- Generated from: http://www.spiffycorners.com/index.php -->
<style type="text/css">
.spiffy{display:block}
.spiffy *{
display:block;
height:1px;
overflow:hidden;
font-size:.01em;
background:#EBF0FA}
.spiffy1{
margin-left:3px;
margin-right:3px;
padding-left:1px;
padding-right:1px;
border-left:1px solid #f6f8fc;
border-right:1px solid #f6f8fc;
background:#f0f3fb}
.spiffy2{
margin-left:1px;
margin-right:1px;
padding-right:1px;
padding-left:1px;
border-left:1px solid #fdfdfe;
border-right:1px solid #fdfdfe;
background:#eef2fa}
.spiffy3{
margin-left:1px;
margin-right:1px;
border-left:1px solid #eef2fa;
border-right:1px solid #eef2fa;}
.spiffy4{
border-left:1px solid #f6f8fc;
border-right:1px solid #f6f8fc}
.spiffy5{
border-left:1px solid #f0f3fb;
border-right:1px solid #f0f3fb}
.spiffyfg{
background:#EBF0FA}
.spiffyfg h2 {
margin:0px; padding:10px;
}
</style>
<style type="text/css">
#left { float:left; }
#left h2 { margin:1px; padding-top:0px; }
#right { float:left; margin-left:50px; padding:0px ;}
#right h2 { padding:0px; margin:0px; }
#wrappedcontent { padding:15px;}
</style>
<div id="left">
<h2>Using the Analyzer</h2>
<ul>
<li><a href="StaticAnalysisUsage.html#Obtaining">Obtaining the Analyzer</a></li>
<li><a href="StaticAnalysisUsage.html#BasicUsage">Basic Usage</a></li>
<li><a href="StaticAnalysisUsage.html#Output">Output of the Analyzer</a></li>
<li><a href="StaticAnalysisUsage.html#RecommendedUsageGuidelines">Recommended Usage Guidelines</a></li>
<li><a href="StaticAnalysisUsage.html#Debugging">Debugging the Analyzer</a></li>
<li><a href="StaticAnalysisUsage.html#filingbugs">Filing Bugs and Feature Requests</a></li>
</ul>
</div>
<div id="right">
<b class="spiffy">
<b class="spiffy1"><b></b></b>
<b class="spiffy2"><b></b></b>
<b class="spiffy3"></b>
<b class="spiffy4"></b>
<b class="spiffy5"></b></b>
<div class="spiffyfg">
<div id="wrappedcontent">
<h2>Download</h2>
<ul>
<li>Mac OS X (Intel-only, 10.5+):
<p>
<!--#include virtual="latest_checker.html.incl"-->
</p>
</li>
<li><a href="StaticAnalysisUsage.html#OtherUsage">Other Platforms</a> (Building from Source)</li>
</div>
</div>
<b class="spiffy">
<b class="spiffy5"></b>
<b class="spiffy4"></b>
<b class="spiffy3"></b>
<b class="spiffy2"><b></b></b>
<b class="spiffy1"><b></b></b></b>
</div>
</div>
</body>
</html>