[cfe-commits] r171885 - in /cfe/trunk/www/analyzer: annotations.html available_checks.html dev_cxx.html index.html xcode.html

Jordan Rose via cfe-commits cfe-commits at lists.llvm.org
Fri Sep 18 09:14:45 PDT 2015


Thanks, updated these links in r247999. In the future Anna's probably the right person to ping.

Jordan


> On Sep 17, 2015, at 6:57 , Aaron Ballman <aaron at aaronballman.com> wrote:
> 
> Sorry to resurrect an ancient commit, but...
> 
> On Tue, Jan 8, 2013 at 2:29 PM, Jordan Rose <jordan_rose at apple.com> wrote:
>> Author: jrose
>> Date: Tue Jan  8 13:29:37 2013
>> New Revision: 171885
>> 
>> URL: http://llvm.org/viewvc/llvm-project?rev=171885&view=rev
>> Log:
>> Various tweaks and updates to the analyzer website.
>> 
>> Modified:
>>    cfe/trunk/www/analyzer/annotations.html
>>    cfe/trunk/www/analyzer/available_checks.html
>>    cfe/trunk/www/analyzer/dev_cxx.html
>>    cfe/trunk/www/analyzer/index.html
>>    cfe/trunk/www/analyzer/xcode.html
>> 
>> Modified: cfe/trunk/www/analyzer/annotations.html
> 
> <snip>
> 
>> 
>> Modified: cfe/trunk/www/analyzer/xcode.html
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/www/analyzer/xcode.html?rev=171885&r1=171884&r2=171885&view=diff
>> ==============================================================================
>> --- cfe/trunk/www/analyzer/xcode.html (original)
>> +++ cfe/trunk/www/analyzer/xcode.html Tue Jan  8 13:29:37 2013
>> @@ -2,7 +2,7 @@
>>           "http://www.w3.org/TR/html4/strict.dtd">
>> <html>
>> <head>
>> -  <title>Build and Analyze: running the analyzer within Xcode</title>
>> +  <title>Running the analyzer within Xcode</title>
>>   <link type="text/css" rel="stylesheet" href="content.css">
>>   <link type="text/css" rel="stylesheet" href="menu.css">
>>   <script type="text/javascript" src="scripts/menu.js"></script>
>> @@ -14,15 +14,16 @@
>> <!--#include virtual="menu.html.incl"-->
>> <div id="content">
>> 
>> -<h1>Build and Analyze: running the analyzer within Xcode</h1>
>> +<h1>Running the analyzer within Xcode</h1>
>> 
>> <table style="margin-top:0px" width="100%" border="0" cellpadding="0px" cellspacing="0">
>> <tr><td>
>> 
>> <h3>What is it?</h3>
>> -<p><i>Build and Analyze</i> is an Xcode feature (introduced in Xcode 3.2) that
>> -allows users to run the Clang Static Analyzer <a
>> -href="http://developer.apple.com/mac/library/featuredarticles/StaticAnalysis/index.html">directly
>> +
>> +<p>Since Xcode 3.2, users have been able to run the Clang Static Analyzer
>> +<a
>> +href="https://developer.apple.com/library/mac/documentation/ToolsLanguages/Conceptual/Xcode4UserGuide/060-Debug_Your_App/debug_app.html#//apple_ref/doc/uid/TP40010215-CH3-SW17">directly
>> within Xcode</a>.</p>
> 
> This link is currently broken, and I do not know what the replacement
> link should be.
> 
>> <p>It integrates directly with the Xcode build system and
>> @@ -45,23 +46,24 @@
>>  single keystroke or mouse click.</li>
>>  <li><b>Transparency:</b> Works effortlessly with Xcode projects (including iPhone projects).
>>  <li><b>Cons:</b> Doesn't work well with non-Xcode projects. For those,
>> -  consider using <a href="/scan-build.html"><b>scan-build</b></a>.
>> +  consider using <a href="scan-build.html"><b>scan-build</b></a>.
>> </ul>
>> 
>> 
>> <h2>Getting Started</h2>
>> 
>> -<p>Xcode 3.2 is available as a free download from Apple, with <a
>> -href="http://developer.apple.com/mac/library/featuredarticles/StaticAnalysis/index.html">instructions available</a>
>> -for using <i>Build and Analyze</i>.</p>
>> +<p>Xcode is available as a free download from Apple on the <a
>> +href="https://itunes.apple.com/us/app/xcode/id497799835?mt=12">Mac
>> +App Store</a>, with <a
>> +href="https://developer.apple.com/library/mac/documentation/ToolsLanguages/Conceptual/Xcode4UserGuide/060-> Debug_Your_App/debug_app.html#//apple_ref/doc/uid/TP40010215-CH3-SW17">instructions
>> +available</a> for using the analyzer.</p>
> 
> Same with this link.
> 
> ~Aaron
> 
> On Tue, Jan 8, 2013 at 2:29 PM, Jordan Rose <jordan_rose at apple.com> wrote:
>> Author: jrose
>> Date: Tue Jan  8 13:29:37 2013
>> New Revision: 171885
>> 
>> URL: http://llvm.org/viewvc/llvm-project?rev=171885&view=rev
>> Log:
>> Various tweaks and updates to the analyzer website.
>> 
>> Modified:
>>    cfe/trunk/www/analyzer/annotations.html
>>    cfe/trunk/www/analyzer/available_checks.html
>>    cfe/trunk/www/analyzer/dev_cxx.html
>>    cfe/trunk/www/analyzer/index.html
>>    cfe/trunk/www/analyzer/xcode.html
>> 
>> Modified: cfe/trunk/www/analyzer/annotations.html
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/www/analyzer/annotations.html?rev=171885&r1=171884&r2=171885&view=diff
>> ==============================================================================
>> --- cfe/trunk/www/analyzer/annotations.html (original)
>> +++ cfe/trunk/www/analyzer/annotations.html Tue Jan  8 13:29:37 2013
>> @@ -127,7 +127,10 @@
>> 
>> <p>One can educate the analyzer (and others who read your code) about methods or
>> functions that deviate from the Cocoa and Core Foundation conventions using the
>> -attributes described here.</p>
>> +attributes described here. However, you should consider using proper naming
>> +conventions or the <a
>> +href="http://clang.llvm.org/docs/LanguageExtensions.html#the-objc-method-family-attribute"><tt>objc_method_family</tt></a>
>> +attribute, if applicable.</p>
>> 
>> <h4 id="attr_ns_returns_retained">Attribute 'ns_returns_retained'
>> (Clang-specific)</h4>
>> @@ -135,7 +138,9 @@
>> <p>The GCC-style (Clang-specific) attribute 'ns_returns_retained' allows one to
>> annotate an Objective-C method or C function as returning a retained Cocoa
>> object that the caller is responsible for releasing (via sending a
>> -<tt>release</tt> message to the object).</p>
>> +<tt>release</tt> message to the object). The Foundation framework defines a
>> +macro <b><tt>NS_RETURNS_RETAINED</tt></b> that is functionally equivalent to the
>> +one shown below.</p>
>> 
>> <p><b>Placing on Objective-C methods</b>: For Objective-C methods, this
>> annotation essentially tells the analyzer to treat the method as if its name
>> @@ -202,7 +207,9 @@
>> method may appear to obey the Cocoa conventions and return a retained Cocoa
>> object, this attribute can be used to indicate that the object reference
>> returned should not be considered as an "owning" reference being
>> -returned to the caller.</p>
>> +returned to the caller. The Foundation framework defines a
>> +macro <b><tt>NS_RETURNS_NOT_RETAINED</tt></b> that is functionally equivalent to
>> +the one shown below.</p>
>> 
>> <p>Usage is identical to <a
>> href="#attr_ns_returns_retained">ns_returns_retained</a>.  When using the
>> @@ -229,7 +236,9 @@
>> 
>> <p>The GCC-style (Clang-specific) attribute 'cf_returns_retained' allows one to
>> annotate an Objective-C method or C function as returning a retained Core
>> -Foundation object that the caller is responsible for releasing.
>> +Foundation object that the caller is responsible for releasing. The
>> +CoreFoundation framework defines a macro <b><tt>CF_RETURNS_RETAINED</tt></b>
>> +that is functionally equivalent to the one shown below.</p>
>> 
>> <p><b>Placing on Objective-C methods</b>: With respect to Objective-C methods.,
>> this attribute is identical in its behavior and usage to 'ns_returns_retained'
>> @@ -330,7 +339,9 @@
>> method may appear to obey the Core Foundation or Cocoa conventions and return
>> a retained Core Foundation object, this attribute can be used to indicate that
>> the object reference returned should not be considered as an
>> -"owning" reference being returned to the caller.</p>
>> +"owning" reference being returned to the caller. The
>> +CoreFoundation framework defines a macro <b><tt>CF_RETURNS_NOT_RETAINED</tt></b>
>> +that is functionally equivalent to the one shown below.</p>
>> 
>> <p>Usage is identical to <a
>> href="#attr_cf_returns_retained">cf_returns_retained</a>.  When using the
>> @@ -355,9 +366,12 @@
>> <h4 id="attr_ns_consumed">Attribute 'ns_consumed'
>> (Clang-specific)</h4>
>> 
>> -<p>The 'ns_consumed' attribute can be placed on a specific parameter in either the declaration of a function or an Objective-C method.
>> -  It indicates to the static analyzer that a <tt>release</tt> message is implicitly sent to the parameter upon
>> -  completion of the call to the given function or method.
>> +<p>The 'ns_consumed' attribute can be placed on a specific parameter in either
>> +the declaration of a function or an Objective-C method. It indicates to the
>> +static analyzer that a <tt>release</tt> message is implicitly sent to the
>> +parameter upon completion of the call to the given function or method. The
>> +Foundation framework defines a macro <b><tt>NS_RELEASES_ARGUMENT</tt></b> that
>> +is functionally equivalent to the <tt>NS_CONSUMED</tt> macro shown below.</p>
>> 
>> <p><b>Important note when using Garbage Collection</b>: Note that the analyzer
>> essentially ignores this attribute when code is compiled to use Objective-C
>> @@ -409,14 +423,19 @@
>> <h4 id="attr_cf_consumed">Attribute 'cf_consumed'
>> (Clang-specific)</h4>
>> 
>> -<p>The 'cf_consumed' attribute is practically identical to <a href="#attr_ns_consumed">ns_consumed</a>.
>> -The attribute can be placed on a specific parameter in either the declaration of a function or an Objective-C method.
>> -It indicates to the static analyzer that the object reference is implicitly passed to a call to <tt>CFRelease</tt> upon
>> -completion of the call to the given function or method.</p>
>> +<p>The 'cf_consumed' attribute is practically identical to <a
>> +href="#attr_ns_consumed">ns_consumed</a>. The attribute can be placed on a
>> +specific parameter in either the declaration of a function or an Objective-C
>> +method. It indicates to the static analyzer that the object reference is
>> +implicitly passed to a call to <tt>CFRelease</tt> upon completion of the call
>> +to the given function or method. The CoreFoundation framework defines a macro
>> +<b><tt>CF_RELEASES_ARGUMENT</tt></b> that is functionally equivalent to the
>> +<tt>CF_CONSUMED</tt> macro shown below.</p>
>> 
>> -<p>Operationally this attribute is nearly identical to ns_consumed
>> -with the main difference that the reference count decrement still occurs when using Objective-C garbage
>> -collection (which is import for Core Foundation types, which are not automatically garbage collected).</p>
>> +<p>Operationally this attribute is nearly identical to 'ns_consumed' with the
>> +main difference that the reference count decrement still occurs when using
>> +Objective-C garbage collection (which is import for Core Foundation types,
>> +which are not automatically garbage collected).</p>
>> 
>> <p><b>Example</b></p>
>> 
>> @@ -461,13 +480,13 @@
>> <h4 id="attr_ns_consumes_self">Attribute 'ns_consumes_self'
>> (Clang-specific)</h4>
>> 
>> -<p>The 'ns_consumes_self' attribute can be placed only on an Objective-C method declaration.
>> -  It indicates that the receiver of the message is "consumed" (a single reference count decremented)
>> -  after the message is sent.  This matches the semantics of all "init" methods.
>> -</p>
>> +<p>The 'ns_consumes_self' attribute can be placed only on an Objective-C method
>> +declaration. It indicates that the receiver of the message is
>> +"consumed" (a single reference count decremented) after the message
>> +is sent. This matches the semantics of all "init" methods.</p>
>> 
>> -<p>One use of this attribute is declare your own init-like methods that do not follow the
>> -  standard Cocoa naming conventions.</p>
>> +<p>One use of this attribute is declare your own init-like methods that do not
>> +follow the standard Cocoa naming conventions.</p>
>> 
>> <p><b>Example</b></p>
>> 
>> @@ -490,8 +509,15 @@
>> @end
>> </pre>
>> 
>> -<p>In this example, <tt>nonstandardInitWith:</tt> has the same ownership semantics as the init method <tt>initWith:</tt>.
>> -  The static analyzer will observe that the method consumes the receiver, and then returns an object with a +1 retain count.</p>
>> +<p>In this example, <tt>-nonstandardInitWith:</tt> has the same ownership
>> +semantics as the init method <tt>-initWith:</tt>. The static analyzer will
>> +observe that the method consumes the receiver, and then returns an object with
>> +a +1 retain count.</p>
>> +
>> +<p>The Foundation framework defines a macro <b><tt>NS_REPLACES_RECEIVER</tt></b>
>> +which is functionally equivalent to the combination of <tt>NS_CONSUMES_SELF</tt>
>> +and <tt>NS_RETURNS_RETAINED</tt> shown above.</p>
>> +
>> 
>> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
>> <h2 id="custom_assertions">Custom Assertion Handlers</h2>
>> 
>> Modified: cfe/trunk/www/analyzer/available_checks.html
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/www/analyzer/available_checks.html?rev=171885&r1=171884&r2=171885&view=diff
>> ==============================================================================
>> --- cfe/trunk/www/analyzer/available_checks.html (original)
>> +++ cfe/trunk/www/analyzer/available_checks.html Tue Jan  8 13:29:37 2013
>> @@ -176,14 +176,13 @@
>> <td><b>unix.cstring.NullArg</b></td><td>Check for null pointers being passed as arguments to C string functions.</td>
>> </table>
>> 
>> -<p>In addition to these the analyzer contains numerous experimental (beta) checkers.</p>
>> +<p>In addition to these the analyzer contains numerous experimental (alpha) checkers.</p>
>> 
>> <h3>Writeups with examples of some of the bugs that the analyzer finds</h3>
>> 
>> <ul>
>> <li><a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__www.mobileorchard.com_bug-2Dfinding-2Dwith-2Dclang-2D5-2Dresources-2Dto-2Dget-2Dyou-2Dstarted_&d=BQIBaQ&c=eEvniauFctOgLOKGJOplqw&r=H-GwcHsTqe0QC8QMDDKbUq_mzFjudaO14oxAatOiS-Y&m=Ub-5mY0YhKZR1qufFjhuBHHt0NLIKJXsxtsqU8H5Jsw&s=--YDgQ4lroZO7FUzMNkhe8g8AZGqmvjXRr5hBR-7biE&e= ">Bug Finding With Clang: 5 Resources To Get You Started</a></li>
>> <li><a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__fruitstandsoftware.com_blog_index.php_2008_08_finding-2Dmemory-2Dleaks-2Dwith-2Dthe-2Dllvmclang-2Dstatic-2Danalyzer_-23comment-2D2&d=BQIBaQ&c=eEvniauFctOgLOKGJOplqw&r=H-GwcHsTqe0QC8QMDDKbUq_mzFjudaO14oxAatOiS-Y&m=Ub-5mY0YhKZR1qufFjhuBHHt0NLIKJXsxtsqU8H5Jsw&s=NJ1FeLFIELgK7qT3yq-2MrBaG2OfsGXPk4QyNT0UZG4&e= ">Finding Memory Leaks With The LLVM/Clang Static Analyzer</a></li>
>> -<li><a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__www.therareair.com_howto-2Dstatic-2Danalyze-2Dyour-2Dobjective-2Dc-2Dcode-2Dusing-2Dthe-2Dclang-2Dstatic-2Danalyzer-2Dtool-2Dgallery_&d=BQIBaQ&c=eEvniauFctOgLOKGJOplqw&r=H-GwcHsTqe0QC8QMDDKbUq_mzFjudaO14oxAatOiS-Y&m=Ub-5mY0YhKZR1qufFjhuBHHt0NLIKJXsxtsqU8H5Jsw&s=dvxsOjzOTEEUvAvBv0yKOH01xQe9xJCuUXQZZeESux0&e= ">HOWTO: Static Analyze Your Objective-C Code Using the Clang Static Analyzer Tool Gallery</a></li>
>> <li><a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__www.rogueamoeba.com_utm_2008_07_14_the-2Dclang-2Dstatic-2Danalyzer_&d=BQIBaQ&c=eEvniauFctOgLOKGJOplqw&r=H-GwcHsTqe0QC8QMDDKbUq_mzFjudaO14oxAatOiS-Y&m=Ub-5mY0YhKZR1qufFjhuBHHt0NLIKJXsxtsqU8H5Jsw&s=FIQALnCBKoFNx2rYyvfLcWNlQ3sm5cAeRYQ_ks6o20Y&e= ">Under the Microscope - The Clang Static Analyzer</a></li>
>> <li><a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__www.mikeash.com_-3Fpage-3Dpyblog_friday-2Dqa-2D2009-2D03-2D06-2Dusing-2Dthe-2Dclang-2Dstatic-2Danalyzer.html&d=BQIBaQ&c=eEvniauFctOgLOKGJOplqw&r=H-GwcHsTqe0QC8QMDDKbUq_mzFjudaO14oxAatOiS-Y&m=Ub-5mY0YhKZR1qufFjhuBHHt0NLIKJXsxtsqU8H5Jsw&s=qrVsgnDVSOvJcqOH2Ctbf8DeQnmWn0184t2laALgoHE&e= ">Mike Ash - Using the Clang Static Analyzer</a></li>
>> </ul>
>> 
>> Modified: cfe/trunk/www/analyzer/dev_cxx.html
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/www/analyzer/dev_cxx.html?rev=171885&r1=171884&r2=171885&view=diff
>> ==============================================================================
>> --- cfe/trunk/www/analyzer/dev_cxx.html (original)
>> +++ cfe/trunk/www/analyzer/dev_cxx.html Tue Jan  8 13:29:37 2013
>> @@ -15,16 +15,13 @@
>> 
>> <h1>C++ Support</h1>
>> 
>> -<p>The Clang frontend
>> -now <a href="http://clang.llvm.org/cxx_status.html">supports the
>> -majority of C++</a>.  Support in the frontend for C++ language
>> -features, however, does not automatically translate into support for
>> -those features in the static analyzer.  Language features need to be
>> -specifically modeled in the static analyzer so their semantics can be
>> -properly analyzed.  Support for analyzing C++ and Objective-C++ files
>> -is currently extremely limited, and we are only encouraging those who
>> -are interested in contributing to the development of the analyzer to
>> -try this functionality out at this time.</p>
>> +<p>The Clang compiler <a
>> +href="http://clang.llvm.org/cxx_status.html">supports almost all of C++11</a>.
>> +Support in the frontend for C++ language features, however, does not
>> +automatically translate into support for those features in the static analyzer.
>> +Language features need to be specifically modeled in the static analyzer so
>> +their semantics can be properly analyzed. Support for analyzing C++ and
>> +Objective-C++ files is currently fairly basic.</p>
>> 
>> <p>Listed here are a set of open tasks that are prerequisites for
>> decent analysis of C++.  This list is also not complete; new tasks
>> @@ -33,16 +30,22 @@
>> <ul>
>>   <li>Control-Flow Graph Enhancements:
>>   <ul>
>> -    <li>Model C++ destructors</li>
>> -    <li>Model C++ initializers (in constructors)</li>
>> +    <li>Model destructors for temporary objects</li>
>> +    <li>Model the implicit allocator call to <tt>operator new</tt></li>
>>   </ul>
>>   </li>
>> -  <li>Path-Sensitive Analysis Engine (GRExprEngine):
>> +  <li>Path-Sensitive Analysis Engine (ExprEngine):
>>   <ul>
>> -    <li>Model C++ casts</li>
>> -    <li>Model C++ constructors</li>
>> -    <li>Model C++ destructors</li>
>> -    <li>Model <tt>new</tt> and <tt>delete</tt></li>
>> +    <li>Allow constructors to be inlined</li>
>> +    <li>Allow destructors to be inlined</li>
>> +    <li>Fully model <tt>new</tt> and <tt>delete</tt></li>
>> +    <li>Track type info through casts more precisely</li>
>> +  </ul>
>> +  </li>
>> +  <li>Checkers:
>> +  <ul>
>> +    <li>Check that <tt>new</tt> and <tt>delete</tt> are correctly paired</li>
>> +    <li>For more ideas, see the <a href="potential_checkers.html">list of potential checkers</a></li>
>>   </ul>
>>   </li>
>> </ul>
>> 
>> Modified: cfe/trunk/www/analyzer/index.html
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/www/analyzer/index.html?rev=171885&r1=171884&r2=171885&view=diff
>> ==============================================================================
>> --- cfe/trunk/www/analyzer/index.html (original)
>> +++ cfe/trunk/www/analyzer/index.html Tue Jan  8 13:29:37 2013
>> @@ -69,12 +69,12 @@
>> 
>> <h1>Clang Static Analyzer</h1>
>> 
>> -<p>The Clang Static Analyzer is source code analysis tool that find bugs in C
>> -and Objective-C programs.</p>
>> +<p>The Clang Static Analyzer is a source code analysis tool that finds bugs in
>> +C, C++, and Objective-C programs.</p>
>> 
>> -<p>Currently it can be run either as a <a href="/scan-build.html">standalone
>> -tool</a> or <a href="/xcode.html">within Xcode</a>. The standalone tool is
>> -invoked from the command-line, and is intended to be run in tandem with a build
>> +<p>Currently it can be run either as a <a href="scan-build.html">standalone
>> +tool</a> or <a href="xcode.html">within Xcode</a>. The standalone tool is
>> +invoked from the command line, and is intended to be run in tandem with a build
>> of a codebase.</p>
>> 
>> <p>The analyzer is 100% open source and is part of the <a
>> @@ -138,14 +138,14 @@
>> 
>> </td><td style="padding-left:10px">
>> <a href="images/analyzer_xcode.png"><img src="images/analyzer_xcode.png" width="450" alt="analyzer in xcode"></a>
>> -<div style="text-align:center"><b>Viewing static analyzer results in Xcode 3.2</b></div>
>> +<div style="text-align:center"><b>Viewing static analyzer results in Xcode</b></div>
>> <a href="images/analyzer_html.png"><img src="images/analyzer_html.png" width="450" alt="analyzer in browser"></a>
>> <div style="text-align:center"><b>Viewing static analyzer results in a web browser</b></div>
>> </td></tr></table>
>> 
>> <h2 id="StaticAnalysis">What is Static Analysis?</h2>
>> 
>> -<p>The term "static analysis" is conflated, but here we use it to mean
>> +<p>The term "static analysis" is conflated, but here we use it to mean
>> a collection of algorithms and techniques used to analyze source code in order
>> to automatically find bugs. The idea is similar in spirit to compiler warnings
>> (which can be useful for finding coding errors) but to take that idea a step
>> @@ -155,9 +155,8 @@
>> <p>Static analysis bug-finding tools have evolved over the last several decades
>> from basic syntactic checkers to those that find deep bugs by reasoning about
>> the semantics of code. The goal of the Clang Static Analyzer is to provide a
>> -industrial-quality static analysis framework for analyzing C and Objective-C
>> -programs that is freely available, extensible, and has a high quality of
>> -implementation.</p>
>> +industrial-quality static analysis framework for analyzing C, C++, and
>> +Objective-C programs that is freely available, extensible, and has a high quality of implementation.</p>
>> 
>> <h3 id="Clang">Part of Clang and LLVM</h3>
>> 
>> @@ -175,11 +174,11 @@
>> 
>> <h3>Work-in-Progress</h3>
>> 
>> -<p>The analyzer is a continuous work-in-progress.
>> -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. While there are
>> -fundamental limitations to what static analysis can do, we have a long way to go
>> -before hitting that wall.</p>
>> +<p>The analyzer is a continuous work-in-progress. There are many planned
>> +enhancements to improve both the precision and scope of its analysis algorithms
>> +as well as the kinds of bugs it will find. While there are fundamental
>> +limitations to what static analysis can do, we have a long way to go before
>> +hitting that wall.</p>
>> 
>> <h3>Slower than Compilation</h3>
>> 
>> 
>> Modified: cfe/trunk/www/analyzer/xcode.html
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/www/analyzer/xcode.html?rev=171885&r1=171884&r2=171885&view=diff
>> ==============================================================================
>> --- cfe/trunk/www/analyzer/xcode.html (original)
>> +++ cfe/trunk/www/analyzer/xcode.html Tue Jan  8 13:29:37 2013
>> @@ -2,7 +2,7 @@
>>           "http://www.w3.org/TR/html4/strict.dtd">
>> <html>
>> <head>
>> -  <title>Build and Analyze: running the analyzer within Xcode</title>
>> +  <title>Running the analyzer within Xcode</title>
>>   <link type="text/css" rel="stylesheet" href="content.css">
>>   <link type="text/css" rel="stylesheet" href="menu.css">
>>   <script type="text/javascript" src="scripts/menu.js"></script>
>> @@ -14,15 +14,16 @@
>> <!--#include virtual="menu.html.incl"-->
>> <div id="content">
>> 
>> -<h1>Build and Analyze: running the analyzer within Xcode</h1>
>> +<h1>Running the analyzer within Xcode</h1>
>> 
>> <table style="margin-top:0px" width="100%" border="0" cellpadding="0px" cellspacing="0">
>> <tr><td>
>> 
>> <h3>What is it?</h3>
>> -<p><i>Build and Analyze</i> is an Xcode feature (introduced in Xcode 3.2) that
>> -allows users to run the Clang Static Analyzer <a
>> -href="http://developer.apple.com/mac/library/featuredarticles/StaticAnalysis/index.html">directly
>> +
>> +<p>Since Xcode 3.2, users have been able to run the Clang Static Analyzer
>> +<a
>> +href="https://developer.apple.com/library/mac/documentation/ToolsLanguages/Conceptual/Xcode4UserGuide/060-Debug_Your_App/debug_app.html#//apple_ref/doc/uid/TP40010215-CH3-SW17">directly
>> within Xcode</a>.</p>
>> 
>> <p>It integrates directly with the Xcode build system and
>> @@ -45,23 +46,24 @@
>>   single keystroke or mouse click.</li>
>>   <li><b>Transparency:</b> Works effortlessly with Xcode projects (including iPhone projects).
>>   <li><b>Cons:</b> Doesn't work well with non-Xcode projects. For those,
>> -  consider using <a href="/scan-build.html"><b>scan-build</b></a>.
>> +  consider using <a href="scan-build.html"><b>scan-build</b></a>.
>> </ul>
>> 
>> 
>> <h2>Getting Started</h2>
>> 
>> -<p>Xcode 3.2 is available as a free download from Apple, with <a
>> -href="http://developer.apple.com/mac/library/featuredarticles/StaticAnalysis/index.html">instructions available</a>
>> -for using <i>Build and Analyze</i>.</p>
>> +<p>Xcode is available as a free download from Apple on the <a
>> +href="https://itunes.apple.com/us/app/xcode/id497799835?mt=12">Mac
>> +App Store</a>, with <a
>> +href="https://developer.apple.com/library/mac/documentation/ToolsLanguages/Conceptual/Xcode4UserGuide/060-Debug_Your_App/debug_app.html#//apple_ref/doc/uid/TP40010215-CH3-SW17">instructions
>> +available</a> for using the analyzer.</p>
>> 
>> -<h2>Using open source analyzer builds with <i>Build and Analyze</i></h2>
>> +<h2>Using open source analyzer builds with Xcode</h2>
>> 
>> <p>By default, Xcode uses the version of <tt>clang</tt> that came bundled with
>> -it to provide the results for <i>Build and Analyze</i>. It is possible to change
>> -Xcode's behavior to use an alternate version of <tt>clang</tt> for this purpose
>> -while continuing to use the <tt>clang</tt> that came with Xcode for compiling
>> -projects.</p>
>> +it to analyze your code. It is possible to change Xcode's behavior to use an
>> +alternate version of <tt>clang</tt> for this purpose while continuing to use
>> +the <tt>clang</tt> that came with Xcode for compiling projects.</p>
>> 
>> <h3>Why try open source builds?</h3>
>> 
>> @@ -78,7 +80,7 @@
>> 
>> <p>Starting with analyzer build checker-234, analyzer builds contain a command
>> line utility called <tt>set-xcode-analyzer</tt> that allows users to change what
>> -copy of <tt>clang</tt> that Xcode uses for <i>Build and Analyze</i>:</p>
>> +copy of <tt>clang</tt> that Xcode uses for analysis:</p>
>> 
>> <pre class="code_example">
>> $ <b>set-xcode-analyzer -h</b>
>> @@ -93,8 +95,8 @@
>> </pre>
>> 
>> <p>Operationally, <b>set-xcode-analyzer</b> edits Xcode's configuration files
>> -(in <tt>/Developer</tt>) to point it to use the version of <tt>clang</tt> you
>> -specify for static analysis.  Within this model it provides you two basic modes:</p>
>> +to point it to use the version of <tt>clang</tt> you specify for static
>> +analysis. Within this model it provides you two basic modes:</p>
>> 
>> <ul>
>>   <li><b>--use-xcode-clang</b>: Switch Xcode (back) to using the <tt>clang</tt> that came bundled with it for static analysis.</li>
>> @@ -104,14 +106,14 @@
>> <h4>Things to keep in mind</h4>
>> 
>> <ul>
>> -<li>You should quit Xcode prior to running <tt>set-xcode-analyzer</tt>.</li>
>> -<li>You will need to run <tt>set-xcode-analyzer</tt> under <b><tt>sudo</tt></b>
>> -  in order to have write privileges to modify the Xcode configuration files.</li>
>> +  <li>You should quit Xcode prior to running <tt>set-xcode-analyzer</tt>.</li>    <li>You will need to run <tt>set-xcode-analyzer</tt> under
>> +<b><tt>sudo</tt></b> in order to have write privileges to modify the Xcode
>> +configuration files.</li>
>> </ul>
>> 
>> <h4>Examples</h4>
>> 
>> -<p><b>Example 1</b>: Telling Xcode to use checker-235 for <i>Build and Analyze</i>:</p>
>> +<p><b>Example 1</b>: Telling Xcode to use checker-235:</p>
>> 
>> <pre class="code_example">
>> $ pwd
>> 
>> 
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits at cs.uiuc.edu
>> https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.cs.uiuc.edu_mailman_listinfo_cfe-2Dcommits&d=BQIBaQ&c=eEvniauFctOgLOKGJOplqw&r=H-GwcHsTqe0QC8QMDDKbUq_mzFjudaO14oxAatOiS-Y&m=Ub-5mY0YhKZR1qufFjhuBHHt0NLIKJXsxtsqU8H5Jsw&s=DJJ_kqMmv9YBN9lNmg8wo8hRqx0pSn5faBRB3E7upi8&e= 



More information about the cfe-commits mailing list