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 <aa...@aaronballman.com> wrote: > > Sorry to resurrect an ancient commit, but... > > On Tue, Jan 8, 2013 at 2:29 PM, Jordan Rose <jordan_r...@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_r...@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-comm...@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= >> _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits