| Ted Kremenek | cf2e304 | 2008-06-19 23:14:24 +0000 | [diff] [blame] | 1 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" | 
 | 2 |           "http://www.w3.org/TR/html4/strict.dtd"> | 
| Ted Kremenek | ce2e332 | 2008-04-25 18:44:36 +0000 | [diff] [blame] | 3 | <html> | 
 | 4 | <head> | 
| Ted Kremenek | 92c23cb | 2008-06-17 06:38:07 +0000 | [diff] [blame] | 5 |   <title>LLVM/Clang Static Analyzer</title> | 
| Ted Kremenek | 20c5f14 | 2008-06-11 05:26:52 +0000 | [diff] [blame] | 6 |   <link type="text/css" rel="stylesheet" href="menu.css" /> | 
 | 7 |   <link type="text/css" rel="stylesheet" href="content.css" /> | 
| Ted Kremenek | ce2e332 | 2008-04-25 18:44:36 +0000 | [diff] [blame] | 8 | </head> | 
 | 9 | <body> | 
 | 10 |  | 
| Ted Kremenek | 20c5f14 | 2008-06-11 05:26:52 +0000 | [diff] [blame] | 11 | <!--#include virtual="menu.html.incl"--> | 
 | 12 |  | 
 | 13 | <div id="content"> | 
 | 14 |  | 
| Ted Kremenek | 92c23cb | 2008-06-17 06:38:07 +0000 | [diff] [blame] | 15 | <h1>LLVM/Clang Static Analyzer</h1> | 
| Ted Kremenek | ce2e332 | 2008-04-25 18:44:36 +0000 | [diff] [blame] | 16 |  | 
| Ted Kremenek | 92c23cb | 2008-06-17 06:38:07 +0000 | [diff] [blame] | 17 | <p>The LLVM/Clang static analyzer is a standalone tool that find bugs in C and | 
 | 18 | Objective-C programs.  Currently the analyzer is invoked as a command-line tool. | 
 | 19 | It is intended to run in tandem with a build of a project or code base.</p> | 
| Ted Kremenek | bc75786 | 2008-06-12 18:39:02 +0000 | [diff] [blame] | 20 |  | 
 | 21 | <p>Here are some important points we ask you to consider when using the static | 
 | 22 | analyzer:</p> | 
 | 23 |  | 
 | 24 | <ul> | 
 | 25 |  | 
 | 26 | <li><b>This tool is <b>very early</b> in development.</b> There are many planned | 
 | 27 | enhancements to improve both the precision and scope of its analysis algorithms | 
 | 28 | as well as the kinds bugs it will find.</li> | 
 | 29 |  | 
| Ted Kremenek | 414322c | 2008-06-17 06:47:58 +0000 | [diff] [blame] | 30 | <li><b>Static analysis can be much slower than compilation.</b> While the | 
 | 31 | analyzer is being designed to be as fast and light-weight as possible, please do | 
 | 32 | not expect it to be as fast as compiling a program (even with optimizations | 
 | 33 | enabled). Some of the algorithms needed to find bugs require in the worst case | 
 | 34 | exponential time. The analyzer runs in a reasonable amount of time by both | 
 | 35 | bounding the amount of checking work it will do as well as using clever | 
 | 36 | algorithms to reduce the amount of work it must do to find bugs.</li> | 
| Ted Kremenek | bc75786 | 2008-06-12 18:39:02 +0000 | [diff] [blame] | 37 |  | 
| Ted Kremenek | a80e448 | 2008-07-09 22:20:56 +0000 | [diff] [blame] | 38 | <li><b>False positives.</b> Static analysis is not perfect. It can falsely flag | 
 | 39 | bugs in a program where the code behaves correctly. Because some code checks | 
 | 40 | require more analysis precision than others, the frequency of false positives | 
 | 41 | can vary widely between different checks. Our eventual goal is to have the | 
 | 42 | analyzer have a low false positive rate for most code on all checks.</li> | 
| Ted Kremenek | bc75786 | 2008-06-12 18:39:02 +0000 | [diff] [blame] | 43 | </ul> | 
| Ted Kremenek | b8a522f | 2008-06-11 16:09:34 +0000 | [diff] [blame] | 44 |  | 
| Ted Kremenek | e597b19 | 2008-07-17 22:41:39 +0000 | [diff] [blame] | 45 | <h3>Please tell us about False Positives</h3> | 
 | 46 |  | 
 | 47 | <p>If you encounter a false positive, <b>please let us know</b> by <a | 
| Ted Kremenek | a80e448 | 2008-07-09 22:20:56 +0000 | [diff] [blame] | 48 | href="StaticAnalysisUsage.html#filingbugs">filing a bug report</a>. False | 
 | 49 | positives cannot be addressed unless we know about them.</p> | 
 | 50 |  | 
| Ted Kremenek | e597b19 | 2008-07-17 22:41:39 +0000 | [diff] [blame] | 51 | <h3>Want more bugs?</h3> | 
 | 52 |  | 
 | 53 | <p>If there are specific kinds of bugs you would like the tool to find, | 
| Ted Kremenek | a80e448 | 2008-07-09 22:20:56 +0000 | [diff] [blame] | 54 | please feel free to file <a href="StaticAnalysisUsage.html#filingbugs">feature | 
| Ted Kremenek | e597b19 | 2008-07-17 22:41:39 +0000 | [diff] [blame] | 55 | requests</a>.</p> | 
| Ted Kremenek | b8a522f | 2008-06-11 16:09:34 +0000 | [diff] [blame] | 56 |  | 
| Ted Kremenek | 92c23cb | 2008-06-17 06:38:07 +0000 | [diff] [blame] | 57 | <!-- Generated from: http://www.spiffycorners.com/index.php --> | 
| Ted Kremenek | ce2e332 | 2008-04-25 18:44:36 +0000 | [diff] [blame] | 58 |  | 
| Ted Kremenek | 92c23cb | 2008-06-17 06:38:07 +0000 | [diff] [blame] | 59 | <style type="text/css"> | 
 | 60 | .spiffy{display:block} | 
 | 61 | .spiffy *{ | 
 | 62 |   display:block; | 
 | 63 |   height:1px; | 
 | 64 |   overflow:hidden; | 
 | 65 |   font-size:.01em; | 
 | 66 |   background:#EBF0FA} | 
 | 67 | .spiffy1{ | 
 | 68 |   margin-left:3px; | 
 | 69 |   margin-right:3px; | 
 | 70 |   padding-left:1px; | 
 | 71 |   padding-right:1px; | 
 | 72 |   border-left:1px solid #f6f8fc; | 
 | 73 |   border-right:1px solid #f6f8fc; | 
 | 74 |   background:#f0f3fb} | 
 | 75 | .spiffy2{ | 
 | 76 |   margin-left:1px; | 
 | 77 |   margin-right:1px; | 
 | 78 |   padding-right:1px; | 
 | 79 |   padding-left:1px; | 
 | 80 |   border-left:1px solid #fdfdfe; | 
 | 81 |   border-right:1px solid #fdfdfe; | 
 | 82 |   background:#eef2fa} | 
 | 83 | .spiffy3{ | 
 | 84 |   margin-left:1px; | 
 | 85 |   margin-right:1px; | 
 | 86 |   border-left:1px solid #eef2fa; | 
 | 87 |   border-right:1px solid #eef2fa;} | 
 | 88 | .spiffy4{ | 
 | 89 |   border-left:1px solid #f6f8fc; | 
 | 90 |   border-right:1px solid #f6f8fc} | 
 | 91 | .spiffy5{ | 
 | 92 |   border-left:1px solid #f0f3fb; | 
 | 93 |   border-right:1px solid #f0f3fb} | 
 | 94 | .spiffyfg{ | 
 | 95 |   background:#EBF0FA} | 
| Ted Kremenek | ce2e332 | 2008-04-25 18:44:36 +0000 | [diff] [blame] | 96 |    | 
| Ted Kremenek | 92c23cb | 2008-06-17 06:38:07 +0000 | [diff] [blame] | 97 | .spiffyfg h2 { | 
 | 98 |   margin:0px;  padding:10px; | 
 | 99 | } | 
 | 100 | </style> | 
| Ted Kremenek | ce2e332 | 2008-04-25 18:44:36 +0000 | [diff] [blame] | 101 |  | 
| Ted Kremenek | 92c23cb | 2008-06-17 06:38:07 +0000 | [diff] [blame] | 102 | <style type="text/css"> | 
 | 103 |   #left { float:left; } | 
 | 104 |   #left h2 { margin:1px; padding-top:0px; } | 
 | 105 |   #right { float:left; margin-left:50px; padding:0px ;} | 
 | 106 |   #right h2 { padding:0px; margin:0px; } | 
 | 107 |   #wrappedcontent { padding:15px;} | 
 | 108 | </style> | 
| Ted Kremenek | ce2e332 | 2008-04-25 18:44:36 +0000 | [diff] [blame] | 109 |  | 
| Ted Kremenek | 92c23cb | 2008-06-17 06:38:07 +0000 | [diff] [blame] | 110 | <div id="left"> | 
 | 111 |   <h2>Using the Analyzer</h2> | 
 | 112 |   <ul> | 
 | 113 |     <li><a href="StaticAnalysisUsage.html#Obtaining">Obtaining the Analyzer</a></li>  | 
 | 114 |     <li><a href="StaticAnalysisUsage.html#BasicUsage">Basic Usage</a></li>  | 
 | 115 |     <li><a href="StaticAnalysisUsage.html#Output">Output of the Analyzer</a></li> | 
 | 116 |     <li><a href="StaticAnalysisUsage.html#RecommendedUsageGuidelines">Recommended Usage Guidelines</a></li> | 
 | 117 |     <li><a href="StaticAnalysisUsage.html#Debugging">Debugging the Analyzer</a></li> | 
| Ted Kremenek | f794675 | 2008-07-08 21:25:35 +0000 | [diff] [blame] | 118 |     <li><a href="StaticAnalysisUsage.html#filingbugs">Filing Bugs and Feature Requests</a></li> | 
| Ted Kremenek | 92c23cb | 2008-06-17 06:38:07 +0000 | [diff] [blame] | 119 |   </ul> | 
 | 120 | </div> | 
| Ted Kremenek | ce2e332 | 2008-04-25 18:44:36 +0000 | [diff] [blame] | 121 |  | 
| Ted Kremenek | 92c23cb | 2008-06-17 06:38:07 +0000 | [diff] [blame] | 122 | <div id="right"> | 
 | 123 |   <b class="spiffy"> | 
 | 124 |   <b class="spiffy1"><b></b></b> | 
 | 125 |   <b class="spiffy2"><b></b></b> | 
 | 126 |   <b class="spiffy3"></b> | 
 | 127 |   <b class="spiffy4"></b> | 
 | 128 |   <b class="spiffy5"></b></b> | 
| Ted Kremenek | ce2e332 | 2008-04-25 18:44:36 +0000 | [diff] [blame] | 129 |  | 
| Ted Kremenek | 92c23cb | 2008-06-17 06:38:07 +0000 | [diff] [blame] | 130 |   <div class="spiffyfg"> | 
 | 131 |     <div id="wrappedcontent"> | 
 | 132 |     <h2>Download</h2> | 
 | 133 |     <ul> | 
| Ted Kremenek | e597b19 | 2008-07-17 22:41:39 +0000 | [diff] [blame] | 134 |     <li>Mac OS X (Intel-only, 10.5+): | 
| Ted Kremenek | 34239e9 | 2008-06-17 06:43:11 +0000 | [diff] [blame] | 135 |       <p> | 
 | 136 |         <!--#include virtual="latest_checker.html.incl"--> | 
 | 137 |       </p> | 
 | 138 |     </li> | 
| Ted Kremenek | 92c23cb | 2008-06-17 06:38:07 +0000 | [diff] [blame] | 139 |     <li><a href="StaticAnalysisUsage.html#OtherUsage">Other Platforms</a> (Building from Source)</li> | 
 | 140 |     </div> | 
 | 141 |      | 
 | 142 |   </div> | 
| Ted Kremenek | ce2e332 | 2008-04-25 18:44:36 +0000 | [diff] [blame] | 143 |  | 
| Ted Kremenek | 92c23cb | 2008-06-17 06:38:07 +0000 | [diff] [blame] | 144 |   <b class="spiffy"> | 
 | 145 |   <b class="spiffy5"></b> | 
 | 146 |   <b class="spiffy4"></b> | 
 | 147 |   <b class="spiffy3"></b> | 
 | 148 |   <b class="spiffy2"><b></b></b> | 
 | 149 |   <b class="spiffy1"><b></b></b></b> | 
 | 150 | </div> | 
| Ted Kremenek | bc75786 | 2008-06-12 18:39:02 +0000 | [diff] [blame] | 151 |  | 
| Ted Kremenek | be6e516 | 2008-06-11 05:25:12 +0000 | [diff] [blame] | 152 |  | 
| Ted Kremenek | 20c5f14 | 2008-06-11 05:26:52 +0000 | [diff] [blame] | 153 | </div> | 
| Ted Kremenek | be6e516 | 2008-06-11 05:25:12 +0000 | [diff] [blame] | 154 | </body> | 
| Ted Kremenek | 92c23cb | 2008-06-17 06:38:07 +0000 | [diff] [blame] | 155 | </html> | 
 | 156 |  |