<!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 finds 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>

