<!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 (Universal, 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>

