[www-releases] r312731 - 5.0.0 files

Hans Wennborg via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 7 10:47:19 PDT 2017


Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-multiple-statement-macro.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-multiple-statement-macro.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-multiple-statement-macro.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-multiple-statement-macro.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - misc-multiple-statement-macro — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="misc-new-delete-overloads" href="misc-new-delete-overloads.html" />
+    <link rel="prev" title="misc-move-forwarding-reference" href="misc-move-forwarding-reference.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - misc-multiple-statement-macro</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="misc-move-forwarding-reference.html">misc-move-forwarding-reference</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-new-delete-overloads.html">misc-new-delete-overloads</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="misc-multiple-statement-macro">
+<h1>misc-multiple-statement-macro<a class="headerlink" href="#misc-multiple-statement-macro" title="Permalink to this headline">¶</a></h1>
+<p>Detect multiple statement macros that are used in unbraced conditionals. Only
+the first statement of the macro will be inside the conditional and the other
+ones will be executed unconditionally.</p>
+<p>Example:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="cp">#define INCREMENT_TWO(x, y) (x)++; (y)++</span>
+<span class="k">if</span> <span class="p">(</span><span class="n">do_increment</span><span class="p">)</span>
+  <span class="n">INCREMENT_TWO</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">);</span>  <span class="c1">// (b)++ will be executed unconditionally.</span>
+</pre></div>
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="misc-move-forwarding-reference.html">misc-move-forwarding-reference</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-new-delete-overloads.html">misc-new-delete-overloads</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-new-delete-overloads.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-new-delete-overloads.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-new-delete-overloads.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-new-delete-overloads.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,84 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - misc-new-delete-overloads — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="misc-noexcept-move-constructor" href="misc-noexcept-move-constructor.html" />
+    <link rel="prev" title="misc-multiple-statement-macro" href="misc-multiple-statement-macro.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - misc-new-delete-overloads</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="misc-multiple-statement-macro.html">misc-multiple-statement-macro</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-noexcept-move-constructor.html">misc-noexcept-move-constructor</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="misc-new-delete-overloads">
+<h1>misc-new-delete-overloads<a class="headerlink" href="#misc-new-delete-overloads" title="Permalink to this headline">¶</a></h1>
+<p><cite>cert-dcl54-cpp</cite> redirects here as an alias for this check.</p>
+<p>The check flags overloaded operator <tt class="docutils literal"><span class="pre">new()</span></tt> and operator <tt class="docutils literal"><span class="pre">delete()</span></tt>
+functions that do not have a corresponding free store function defined within
+the same scope.
+For instance, the check will flag a class implementation of a non-placement
+operator <tt class="docutils literal"><span class="pre">new()</span></tt> when the class does not also define a non-placement operator
+<tt class="docutils literal"><span class="pre">delete()</span></tt> function as well.</p>
+<p>The check does not flag implicitly-defined operators, deleted or private
+operators, or placement operators.</p>
+<p>This check corresponds to CERT C++ Coding Standard rule <a class="reference external" href="https://www.securecoding.cert.org/confluence/display/cplusplus/DCL54-CPP.+Overload+allocation+and+deallocation+functions+as+a+pair+in+the+same+scope">DCL54-CPP. Overload allocation and deallocation functions as a pair in the same scope</a>.</p>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="misc-multiple-statement-macro.html">misc-multiple-statement-macro</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-noexcept-move-constructor.html">misc-noexcept-move-constructor</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-noexcept-move-constructor.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-noexcept-move-constructor.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-noexcept-move-constructor.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-noexcept-move-constructor.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,80 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - misc-noexcept-move-constructor — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="misc-non-copyable-objects" href="misc-non-copyable-objects.html" />
+    <link rel="prev" title="misc-new-delete-overloads" href="misc-new-delete-overloads.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - misc-noexcept-move-constructor</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="misc-new-delete-overloads.html">misc-new-delete-overloads</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-non-copyable-objects.html">misc-non-copyable-objects</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="misc-noexcept-move-constructor">
+<h1>misc-noexcept-move-constructor<a class="headerlink" href="#misc-noexcept-move-constructor" title="Permalink to this headline">¶</a></h1>
+<p>The check flags user-defined move constructors and assignment operators not
+marked with <tt class="docutils literal"><span class="pre">noexcept</span></tt> or marked with <tt class="docutils literal"><span class="pre">noexcept(expr)</span></tt> where <tt class="docutils literal"><span class="pre">expr</span></tt>
+evaluates to <tt class="docutils literal"><span class="pre">false</span></tt> (but is not a <tt class="docutils literal"><span class="pre">false</span></tt> literal itself).</p>
+<p>Move constructors of all the types used with STL containers, for example,
+need to be declared <tt class="docutils literal"><span class="pre">noexcept</span></tt>. Otherwise STL will choose copy constructors
+instead. The same is valid for move assignment operations.</p>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="misc-new-delete-overloads.html">misc-new-delete-overloads</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-non-copyable-objects.html">misc-non-copyable-objects</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-non-copyable-objects.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-non-copyable-objects.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-non-copyable-objects.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-non-copyable-objects.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,79 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - misc-non-copyable-objects — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="misc-redundant-expression" href="misc-redundant-expression.html" />
+    <link rel="prev" title="misc-noexcept-move-constructor" href="misc-noexcept-move-constructor.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - misc-non-copyable-objects</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="misc-noexcept-move-constructor.html">misc-noexcept-move-constructor</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-redundant-expression.html">misc-redundant-expression</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="misc-non-copyable-objects">
+<h1>misc-non-copyable-objects<a class="headerlink" href="#misc-non-copyable-objects" title="Permalink to this headline">¶</a></h1>
+<p><cite>cert-fio38-c</cite> redirects here as an alias for this check.</p>
+<p>The check flags dereferences and non-pointer declarations of objects that are
+not meant to be passed by value, such as C FILE objects or POSIX
+<tt class="docutils literal"><span class="pre">pthread_mutex_t</span></tt> objects.</p>
+<p>This check corresponds to CERT C++ Coding Standard rule <a class="reference external" href="https://www.securecoding.cert.org/confluence/display/c/FIO38-C.+Do+not+copy+a+FILE+object">FIO38-C. Do not copy a FILE object</a>.</p>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="misc-noexcept-move-constructor.html">misc-noexcept-move-constructor</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-redundant-expression.html">misc-redundant-expression</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-redundant-expression.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-redundant-expression.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-redundant-expression.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-redundant-expression.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,89 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - misc-redundant-expression — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="misc-sizeof-container" href="misc-sizeof-container.html" />
+    <link rel="prev" title="misc-non-copyable-objects" href="misc-non-copyable-objects.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - misc-redundant-expression</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="misc-non-copyable-objects.html">misc-non-copyable-objects</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-sizeof-container.html">misc-sizeof-container</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="misc-redundant-expression">
+<h1>misc-redundant-expression<a class="headerlink" href="#misc-redundant-expression" title="Permalink to this headline">¶</a></h1>
+<p>Detect redundant expressions which are typically errors due to copy-paste.</p>
+<p>Depending on the operator expressions may be</p>
+<ul class="simple">
+<li>redundant,</li>
+<li>always be <tt class="docutils literal"><span class="pre">true</span></tt>,</li>
+<li>always be <tt class="docutils literal"><span class="pre">false</span></tt>,</li>
+<li>always be a constant (zero or one).</li>
+</ul>
+<p>Example:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="p">((</span><span class="n">x</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span> <span class="o">|</span> <span class="p">(</span><span class="n">x</span><span class="o">+</span><span class="mi">1</span><span class="p">))</span>             <span class="c1">// (x+1) is redundant</span>
+<span class="p">(</span><span class="n">p</span><span class="o">-></span><span class="n">x</span> <span class="o">==</span> <span class="n">p</span><span class="o">-></span><span class="n">x</span><span class="p">)</span>              <span class="c1">// always true</span>
+<span class="p">(</span><span class="n">p</span><span class="o">-></span><span class="n">x</span> <span class="o"><</span> <span class="n">p</span><span class="o">-></span><span class="n">x</span><span class="p">)</span>               <span class="c1">// always false</span>
+<span class="p">(</span><span class="n">speed</span> <span class="o">-</span> <span class="n">speed</span> <span class="o">+</span> <span class="mi">1</span> <span class="o">==</span> <span class="mi">12</span><span class="p">)</span>   <span class="c1">// speed - speed is always zero</span>
+</pre></div>
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="misc-non-copyable-objects.html">misc-non-copyable-objects</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-sizeof-container.html">misc-sizeof-container</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-sizeof-container.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-sizeof-container.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-sizeof-container.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-sizeof-container.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,92 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - misc-sizeof-container — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="misc-sizeof-expression" href="misc-sizeof-expression.html" />
+    <link rel="prev" title="misc-redundant-expression" href="misc-redundant-expression.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - misc-sizeof-container</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="misc-redundant-expression.html">misc-redundant-expression</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-sizeof-expression.html">misc-sizeof-expression</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="misc-sizeof-container">
+<h1>misc-sizeof-container<a class="headerlink" href="#misc-sizeof-container" title="Permalink to this headline">¶</a></h1>
+<p>The check finds usages of <tt class="docutils literal"><span class="pre">sizeof</span></tt> on expressions of STL container types. Most
+likely the user wanted to use <tt class="docutils literal"><span class="pre">.size()</span></tt> instead.</p>
+<p>All class/struct types declared in namespace <tt class="docutils literal"><span class="pre">std::</span></tt> having a const <tt class="docutils literal"><span class="pre">size()</span></tt>
+method are considered containers, with the exception of <tt class="docutils literal"><span class="pre">std::bitset</span></tt> and
+<tt class="docutils literal"><span class="pre">std::array</span></tt>.</p>
+<p>Examples:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="n">s</span><span class="p">;</span>
+<span class="kt">int</span> <span class="n">a</span> <span class="o">=</span> <span class="mi">47</span> <span class="o">+</span> <span class="k">sizeof</span><span class="p">(</span><span class="n">s</span><span class="p">);</span> <span class="c1">// warning: sizeof() doesn't return the size of the container. Did you mean .size()?</span>
+
+<span class="kt">int</span> <span class="n">b</span> <span class="o">=</span> <span class="k">sizeof</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">string</span><span class="p">);</span> <span class="c1">// no warning, probably intended.</span>
+
+<span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="n">array_of_strings</span><span class="p">[</span><span class="mi">10</span><span class="p">];</span>
+<span class="kt">int</span> <span class="n">c</span> <span class="o">=</span> <span class="k">sizeof</span><span class="p">(</span><span class="n">array_of_strings</span><span class="p">)</span> <span class="o">/</span> <span class="k">sizeof</span><span class="p">(</span><span class="n">array_of_strings</span><span class="p">[</span><span class="mi">0</span><span class="p">]);</span> <span class="c1">// no warning, definitely intended.</span>
+
+<span class="n">std</span><span class="o">::</span><span class="n">array</span><span class="o"><</span><span class="kt">int</span><span class="p">,</span> <span class="mi">3</span><span class="o">></span> <span class="n">std_array</span><span class="p">;</span>
+<span class="kt">int</span> <span class="n">d</span> <span class="o">=</span> <span class="k">sizeof</span><span class="p">(</span><span class="n">std_array</span><span class="p">);</span> <span class="c1">// no warning, probably intended.</span>
+</pre></div>
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="misc-redundant-expression.html">misc-redundant-expression</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-sizeof-expression.html">misc-sizeof-expression</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-sizeof-expression.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-sizeof-expression.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-sizeof-expression.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-sizeof-expression.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,209 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - misc-sizeof-expression — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="misc-static-assert" href="misc-static-assert.html" />
+    <link rel="prev" title="misc-sizeof-container" href="misc-sizeof-container.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - misc-sizeof-expression</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="misc-sizeof-container.html">misc-sizeof-container</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-static-assert.html">misc-static-assert</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="misc-sizeof-expression">
+<h1>misc-sizeof-expression<a class="headerlink" href="#misc-sizeof-expression" title="Permalink to this headline">¶</a></h1>
+<p>The check finds usages of <tt class="docutils literal"><span class="pre">sizeof</span></tt> expressions which are most likely errors.</p>
+<p>The <tt class="docutils literal"><span class="pre">sizeof</span></tt> operator yields the size (in bytes) of its operand, which may be
+an expression or the parenthesized name of a type. Misuse of this operator may
+be leading to errors and possible software vulnerabilities.</p>
+<div class="section" id="suspicious-usage-of-sizeof-k">
+<h2>Suspicious usage of ‘sizeof(K)’<a class="headerlink" href="#suspicious-usage-of-sizeof-k" title="Permalink to this headline">¶</a></h2>
+<p>A common mistake is to query the <tt class="docutils literal"><span class="pre">sizeof</span></tt> of an integer literal. This is
+equivalent to query the size of its type (probably <tt class="docutils literal"><span class="pre">int</span></tt>). The intent of the
+programmer was probably to simply get the integer and not its size.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="cp">#define BUFLEN 42</span>
+<span class="kt">char</span> <span class="n">buf</span><span class="p">[</span><span class="n">BUFLEN</span><span class="p">];</span>
+<span class="n">memset</span><span class="p">(</span><span class="n">buf</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="k">sizeof</span><span class="p">(</span><span class="n">BUFLEN</span><span class="p">));</span>  <span class="c1">// sizeof(42) ==> sizeof(int)</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="suspicious-usage-of-sizeof-this">
+<h2>Suspicious usage of ‘sizeof(this)’<a class="headerlink" href="#suspicious-usage-of-sizeof-this" title="Permalink to this headline">¶</a></h2>
+<p>The <tt class="docutils literal"><span class="pre">this</span></tt> keyword is evaluated to a pointer to an object of a given type.
+The expression <tt class="docutils literal"><span class="pre">sizeof(this)</span></tt> is returning the size of a pointer. The
+programmer most likely wanted the size of the object and not the size of the
+pointer.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">class</span> <span class="nc">Point</span> <span class="p">{</span>
+  <span class="p">[...]</span>
+  <span class="kt">size_t</span> <span class="n">size</span><span class="p">()</span> <span class="p">{</span> <span class="k">return</span> <span class="k">sizeof</span><span class="p">(</span><span class="k">this</span><span class="p">);</span> <span class="p">}</span>  <span class="c1">// should probably be sizeof(*this)</span>
+  <span class="p">[...]</span>
+<span class="p">};</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="suspicious-usage-of-sizeof-char">
+<h2>Suspicious usage of ‘sizeof(char*)’<a class="headerlink" href="#suspicious-usage-of-sizeof-char" title="Permalink to this headline">¶</a></h2>
+<p>There is a subtle difference between declaring a string literal with
+<tt class="docutils literal"><span class="pre">char*</span> <span class="pre">A</span> <span class="pre">=</span> <span class="pre">""</span></tt> and <tt class="docutils literal"><span class="pre">char</span> <span class="pre">A[]</span> <span class="pre">=</span> <span class="pre">""</span></tt>. The first case has the type <tt class="docutils literal"><span class="pre">char*</span></tt>
+instead of the aggregate type <tt class="docutils literal"><span class="pre">char[]</span></tt>. Using <tt class="docutils literal"><span class="pre">sizeof</span></tt> on an object declared
+with <tt class="docutils literal"><span class="pre">char*</span></tt> type is returning the size of a pointer instead of the number of
+characters (bytes) in the string literal.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">const</span> <span class="kt">char</span><span class="o">*</span> <span class="n">kMessage</span> <span class="o">=</span> <span class="s">"Hello World!"</span><span class="p">;</span>      <span class="c1">// const char kMessage[] = "...";</span>
+<span class="kt">void</span> <span class="nf">getMessage</span><span class="p">(</span><span class="kt">char</span><span class="o">*</span> <span class="n">buf</span><span class="p">)</span> <span class="p">{</span>
+  <span class="n">memcpy</span><span class="p">(</span><span class="n">buf</span><span class="p">,</span> <span class="n">kMessage</span><span class="p">,</span> <span class="k">sizeof</span><span class="p">(</span><span class="n">kMessage</span><span class="p">));</span>  <span class="c1">// sizeof(char*)</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="suspicious-usage-of-sizeof-a">
+<h2>Suspicious usage of ‘sizeof(A*)’<a class="headerlink" href="#suspicious-usage-of-sizeof-a" title="Permalink to this headline">¶</a></h2>
+<p>A common mistake is to compute the size of a pointer instead of its pointee.
+These cases may occur because of explicit cast or implicit conversion.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="kt">int</span> <span class="n">A</span><span class="p">[</span><span class="mi">10</span><span class="p">];</span>
+<span class="n">memset</span><span class="p">(</span><span class="n">A</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="k">sizeof</span><span class="p">(</span><span class="n">A</span> <span class="o">+</span> <span class="mi">0</span><span class="p">));</span>
+
+<span class="k">struct</span> <span class="n">Point</span> <span class="n">point</span><span class="p">;</span>
+<span class="n">memset</span><span class="p">(</span><span class="n">point</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="k">sizeof</span><span class="p">(</span><span class="o">&</span><span class="n">point</span><span class="p">));</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="suspicious-usage-of-sizeof-sizeof">
+<h2>Suspicious usage of ‘sizeof(...)/sizeof(...)’<a class="headerlink" href="#suspicious-usage-of-sizeof-sizeof" title="Permalink to this headline">¶</a></h2>
+<p>Dividing <tt class="docutils literal"><span class="pre">sizeof</span></tt> expressions is typically used to retrieve the number of
+elements of an aggregate. This check warns on incompatible or suspicious cases.</p>
+<p>In the following example, the entity has 10-bytes and is incompatible with the
+type <tt class="docutils literal"><span class="pre">int</span></tt> which has 4 bytes.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="kt">char</span> <span class="n">buf</span><span class="p">[]</span> <span class="o">=</span> <span class="p">{</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="mi">6</span><span class="p">,</span> <span class="mi">7</span><span class="p">,</span> <span class="mi">8</span><span class="p">,</span> <span class="mi">9</span> <span class="p">};</span>  <span class="c1">// sizeof(buf) => 10</span>
+<span class="kt">void</span> <span class="nf">getMessage</span><span class="p">(</span><span class="kt">char</span><span class="o">*</span> <span class="n">dst</span><span class="p">)</span> <span class="p">{</span>
+  <span class="n">memcpy</span><span class="p">(</span><span class="n">dst</span><span class="p">,</span> <span class="n">buf</span><span class="p">,</span> <span class="k">sizeof</span><span class="p">(</span><span class="n">buf</span><span class="p">)</span> <span class="o">/</span> <span class="k">sizeof</span><span class="p">(</span><span class="kt">int</span><span class="p">));</span>  <span class="c1">// sizeof(int) => 4  [incompatible sizes]</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<p>In the following example, the expression <tt class="docutils literal"><span class="pre">sizeof(Values)</span></tt> is returning the
+size of <tt class="docutils literal"><span class="pre">char*</span></tt>. One can easily be fooled by its declaration, but in parameter
+declaration the size ‘10’ is ignored and the function is receiving a <tt class="docutils literal"><span class="pre">char*</span></tt>.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="kt">char</span> <span class="n">OrderedValues</span><span class="p">[</span><span class="mi">10</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="mi">6</span><span class="p">,</span> <span class="mi">7</span><span class="p">,</span> <span class="mi">8</span><span class="p">,</span> <span class="mi">9</span> <span class="p">};</span>
+<span class="k">return</span> <span class="nf">CompareArray</span><span class="p">(</span><span class="kt">char</span> <span class="n">Values</span><span class="p">[</span><span class="mi">10</span><span class="p">])</span> <span class="p">{</span>
+  <span class="k">return</span> <span class="n">memcmp</span><span class="p">(</span><span class="n">OrderedValues</span><span class="p">,</span> <span class="n">Values</span><span class="p">,</span> <span class="k">sizeof</span><span class="p">(</span><span class="n">Values</span><span class="p">))</span> <span class="o">==</span> <span class="mi">0</span><span class="p">;</span>  <span class="c1">// sizeof(Values) ==> sizeof(char*) [implicit cast to char*]</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="suspicious-sizeof-by-sizeof-expression">
+<h2>Suspicious ‘sizeof’ by ‘sizeof’ expression<a class="headerlink" href="#suspicious-sizeof-by-sizeof-expression" title="Permalink to this headline">¶</a></h2>
+<p>Multiplying <tt class="docutils literal"><span class="pre">sizeof</span></tt> expressions typically makes no sense and is probably a
+logic error. In the following example, the programmer used <tt class="docutils literal"><span class="pre">*</span></tt> instead of
+<tt class="docutils literal"><span class="pre">/</span></tt>.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">const</span> <span class="kt">char</span> <span class="n">kMessage</span><span class="p">[]</span> <span class="o">=</span> <span class="s">"Hello World!"</span><span class="p">;</span>
+<span class="kt">void</span> <span class="nf">getMessage</span><span class="p">(</span><span class="kt">char</span><span class="o">*</span> <span class="n">buf</span><span class="p">)</span> <span class="p">{</span>
+  <span class="n">memcpy</span><span class="p">(</span><span class="n">buf</span><span class="p">,</span> <span class="n">kMessage</span><span class="p">,</span> <span class="k">sizeof</span><span class="p">(</span><span class="n">kMessage</span><span class="p">)</span> <span class="o">*</span> <span class="k">sizeof</span><span class="p">(</span><span class="kt">char</span><span class="p">));</span>  <span class="c1">//  sizeof(kMessage) / sizeof(char)</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<p>This check may trigger on code using the arraysize macro. The following code is
+working correctly but should be simplified by using only the <tt class="docutils literal"><span class="pre">sizeof</span></tt>
+operator.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">extern</span> <span class="n">Object</span> <span class="n">objects</span><span class="p">[</span><span class="mi">100</span><span class="p">];</span>
+<span class="kt">void</span> <span class="nf">InitializeObjects</span><span class="p">()</span> <span class="p">{</span>
+  <span class="n">memset</span><span class="p">(</span><span class="n">objects</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">arraysize</span><span class="p">(</span><span class="n">objects</span><span class="p">)</span> <span class="o">*</span> <span class="k">sizeof</span><span class="p">(</span><span class="n">Object</span><span class="p">));</span>  <span class="c1">// sizeof(objects)</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="id1">
+<h2>Suspicious usage of ‘sizeof(sizeof(...))’<a class="headerlink" href="#id1" title="Permalink to this headline">¶</a></h2>
+<p>Getting the <tt class="docutils literal"><span class="pre">sizeof</span></tt> of a <tt class="docutils literal"><span class="pre">sizeof</span></tt> makes no sense and is typically an error
+hidden through macros.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="cp">#define INT_SZ sizeof(int)</span>
+<span class="kt">int</span> <span class="n">buf</span><span class="p">[]</span> <span class="o">=</span> <span class="p">{</span> <span class="mi">42</span> <span class="p">};</span>
+<span class="kt">void</span> <span class="nf">getInt</span><span class="p">(</span><span class="kt">int</span><span class="o">*</span> <span class="n">dst</span><span class="p">)</span> <span class="p">{</span>
+  <span class="n">memcpy</span><span class="p">(</span><span class="n">dst</span><span class="p">,</span> <span class="n">buf</span><span class="p">,</span> <span class="k">sizeof</span><span class="p">(</span><span class="n">INT_SZ</span><span class="p">));</span>  <span class="c1">// sizeof(sizeof(int)) is suspicious.</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="options">
+<h2>Options<a class="headerlink" href="#options" title="Permalink to this headline">¶</a></h2>
+<dl class="option">
+<dt id="cmdoption-arg-WarnOnSizeOfConstant">
+<tt class="descname">WarnOnSizeOfConstant</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-WarnOnSizeOfConstant" title="Permalink to this definition">¶</a></dt>
+<dd><p>When non-zero, the check will warn on an expression like
+<tt class="docutils literal"><span class="pre">sizeof(CONSTANT)</span></tt>. Default is <cite>1</cite>.</p>
+</dd></dl>
+
+<dl class="option">
+<dt id="cmdoption-arg-WarnOnSizeOfThis">
+<tt class="descname">WarnOnSizeOfThis</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-WarnOnSizeOfThis" title="Permalink to this definition">¶</a></dt>
+<dd><p>When non-zero, the check will warn on an expression like <tt class="docutils literal"><span class="pre">sizeof(this)</span></tt>.
+Default is <cite>1</cite>.</p>
+</dd></dl>
+
+<dl class="option">
+<dt id="cmdoption-arg-WarnOnSizeOfCompareToConstant">
+<tt class="descname">WarnOnSizeOfCompareToConstant</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-WarnOnSizeOfCompareToConstant" title="Permalink to this definition">¶</a></dt>
+<dd><p>When non-zero, the check will warn on an expression like
+<tt class="docutils literal"><span class="pre">sizeof(epxr)</span> <span class="pre"><=</span> <span class="pre">k</span></tt> for a suspicious constant <cite>k</cite> while <cite>k</cite> is <cite>0</cite> or
+greater than <cite>0x8000</cite>. Default is <cite>1</cite>.</p>
+</dd></dl>
+
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="misc-sizeof-container.html">misc-sizeof-container</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-static-assert.html">misc-static-assert</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-static-assert.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-static-assert.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-static-assert.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-static-assert.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,79 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - misc-static-assert — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="misc-string-compare" href="misc-string-compare.html" />
+    <link rel="prev" title="misc-sizeof-expression" href="misc-sizeof-expression.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - misc-static-assert</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="misc-sizeof-expression.html">misc-sizeof-expression</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-string-compare.html">misc-string-compare</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="misc-static-assert">
+<h1>misc-static-assert<a class="headerlink" href="#misc-static-assert" title="Permalink to this headline">¶</a></h1>
+<p><cite>cert-dcl03-c</cite> redirects here as an alias for this check.</p>
+<p>Replaces <tt class="docutils literal"><span class="pre">assert()</span></tt> with <tt class="docutils literal"><span class="pre">static_assert()</span></tt> if the condition is evaluatable
+at compile time.</p>
+<p>The condition of <tt class="docutils literal"><span class="pre">static_assert()</span></tt> is evaluated at compile time which is
+safer and more efficient.</p>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="misc-sizeof-expression.html">misc-sizeof-expression</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-string-compare.html">misc-string-compare</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-string-compare.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-string-compare.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-string-compare.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-string-compare.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,119 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - misc-string-compare — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="misc-string-constructor" href="misc-string-constructor.html" />
+    <link rel="prev" title="misc-static-assert" href="misc-static-assert.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - misc-string-compare</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="misc-static-assert.html">misc-static-assert</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-string-constructor.html">misc-string-constructor</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="misc-string-compare">
+<h1>misc-string-compare<a class="headerlink" href="#misc-string-compare" title="Permalink to this headline">¶</a></h1>
+<p>Finds string comparisons using the compare method.</p>
+<p>A common mistake is to use the string’s <tt class="docutils literal"><span class="pre">compare</span></tt> method instead of using the
+equality or inequality operators. The compare method is intended for sorting
+functions and thus returns a negative number, a positive number or
+zero depending on the lexicographical relationship between the strings compared.
+If an equality or inequality check can suffice, that is recommended. This is
+recommended to avoid the risk of incorrect interpretation of the return value
+and to simplify the code. The string equality and inequality operators can
+also be faster than the <tt class="docutils literal"><span class="pre">compare</span></tt> method due to early termination.</p>
+<p>Examples:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="n">str1</span><span class="p">{</span><span class="s">"a"</span><span class="p">};</span>
+<span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="n">str2</span><span class="p">{</span><span class="s">"b"</span><span class="p">};</span>
+
+<span class="c1">// use str1 != str2 instead.</span>
+<span class="k">if</span> <span class="p">(</span><span class="n">str1</span><span class="p">.</span><span class="n">compare</span><span class="p">(</span><span class="n">str2</span><span class="p">))</span> <span class="p">{</span>
+<span class="p">}</span>
+
+<span class="c1">// use str1 == str2 instead.</span>
+<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="n">str1</span><span class="p">.</span><span class="n">compare</span><span class="p">(</span><span class="n">str2</span><span class="p">))</span> <span class="p">{</span>
+<span class="p">}</span>
+
+<span class="c1">// use str1 == str2 instead.</span>
+<span class="k">if</span> <span class="p">(</span><span class="n">str1</span><span class="p">.</span><span class="n">compare</span><span class="p">(</span><span class="n">str2</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
+<span class="p">}</span>
+
+<span class="c1">// use str1 != str2 instead.</span>
+<span class="k">if</span> <span class="p">(</span><span class="n">str1</span><span class="p">.</span><span class="n">compare</span><span class="p">(</span><span class="n">str2</span><span class="p">)</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
+<span class="p">}</span>
+
+<span class="c1">// use str1 == str2 instead.</span>
+<span class="k">if</span> <span class="p">(</span><span class="mi">0</span> <span class="o">==</span> <span class="n">str1</span><span class="p">.</span><span class="n">compare</span><span class="p">(</span><span class="n">str2</span><span class="p">))</span> <span class="p">{</span>
+<span class="p">}</span>
+
+<span class="c1">// use str1 != str2 instead.</span>
+<span class="k">if</span> <span class="p">(</span><span class="mi">0</span> <span class="o">!=</span> <span class="n">str1</span><span class="p">.</span><span class="n">compare</span><span class="p">(</span><span class="n">str2</span><span class="p">))</span> <span class="p">{</span>
+<span class="p">}</span>
+
+<span class="c1">// Use str1 == "foo" instead.</span>
+<span class="k">if</span> <span class="p">(</span><span class="n">str1</span><span class="p">.</span><span class="n">compare</span><span class="p">(</span><span class="s">"foo"</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<p>The above code examples shows the list of if-statements that this check will
+give a warning for. All of them uses <tt class="docutils literal"><span class="pre">compare</span></tt> to check if equality or
+inequality of two strings instead of using the correct operators.</p>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="misc-static-assert.html">misc-static-assert</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-string-constructor.html">misc-string-constructor</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-string-constructor.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-string-constructor.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-string-constructor.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-string-constructor.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,108 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - misc-string-constructor — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="misc-string-integer-assignment" href="misc-string-integer-assignment.html" />
+    <link rel="prev" title="misc-string-compare" href="misc-string-compare.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - misc-string-constructor</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="misc-string-compare.html">misc-string-compare</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-string-integer-assignment.html">misc-string-integer-assignment</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="misc-string-constructor">
+<h1>misc-string-constructor<a class="headerlink" href="#misc-string-constructor" title="Permalink to this headline">¶</a></h1>
+<p>Finds string constructors that are suspicious and probably errors.</p>
+<p>A common mistake is to swap parameters to the ‘fill’ string-constructor.</p>
+<p>Examples:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="n">std</span><span class="o">::</span><span class="n">string</span><span class="p">(</span><span class="sc">'x'</span><span class="p">,</span> <span class="mi">50</span><span class="p">)</span> <span class="n">str</span><span class="p">;</span> <span class="c1">// should be std::string(50, 'x')</span>
+</pre></div>
+</div>
+<p>Calling the string-literal constructor with a length bigger than the literal is
+suspicious and adds extra random characters to the string.</p>
+<p>Examples:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="n">std</span><span class="o">::</span><span class="n">string</span><span class="p">(</span><span class="s">"test"</span><span class="p">,</span> <span class="mi">200</span><span class="p">);</span>   <span class="c1">// Will include random characters after "test".</span>
+</pre></div>
+</div>
+<p>Creating an empty string from constructors with parameters is considered
+suspicious. The programmer should use the empty constructor instead.</p>
+<p>Examples:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="n">std</span><span class="o">::</span><span class="n">string</span><span class="p">(</span><span class="s">"test"</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span>   <span class="c1">// Creation of an empty string.</span>
+</pre></div>
+</div>
+<div class="section" id="options">
+<h2>Options<a class="headerlink" href="#options" title="Permalink to this headline">¶</a></h2>
+<dl class="option">
+<dt id="cmdoption-arg-WarnOnLargeLength">
+<tt class="descname">WarnOnLargeLength</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-WarnOnLargeLength" title="Permalink to this definition">¶</a></dt>
+<dd><p>When non-zero, the check will warn on a string with a length greater than
+<cite>LargeLengthThreshold</cite>. Default is <cite>1</cite>.</p>
+</dd></dl>
+
+<dl class="option">
+<dt id="cmdoption-arg-LargeLengthThreshold">
+<tt class="descname">LargeLengthThreshold</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-LargeLengthThreshold" title="Permalink to this definition">¶</a></dt>
+<dd><p>An integer specifying the large length threshold. Default is <cite>0x800000</cite>.</p>
+</dd></dl>
+
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="misc-string-compare.html">misc-string-compare</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-string-integer-assignment.html">misc-string-integer-assignment</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-string-integer-assignment.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-string-integer-assignment.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-string-integer-assignment.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-string-integer-assignment.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,99 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - misc-string-integer-assignment — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="misc-string-literal-with-embedded-nul" href="misc-string-literal-with-embedded-nul.html" />
+    <link rel="prev" title="misc-string-constructor" href="misc-string-constructor.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - misc-string-integer-assignment</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="misc-string-constructor.html">misc-string-constructor</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-string-literal-with-embedded-nul.html">misc-string-literal-with-embedded-nul</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="misc-string-integer-assignment">
+<h1>misc-string-integer-assignment<a class="headerlink" href="#misc-string-integer-assignment" title="Permalink to this headline">¶</a></h1>
+<p>The check finds assignments of an integer to <tt class="docutils literal"><span class="pre">std::basic_string<CharT></span></tt>
+(<tt class="docutils literal"><span class="pre">std::string</span></tt>, <tt class="docutils literal"><span class="pre">std::wstring</span></tt>, etc.). The source of the problem is the
+following assignment operator of <tt class="docutils literal"><span class="pre">std::basic_string<CharT></span></tt>:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="n">basic_string</span><span class="o">&</span> <span class="k">operator</span><span class="o">=</span><span class="p">(</span> <span class="n">CharT</span> <span class="n">ch</span> <span class="p">);</span>
+</pre></div>
+</div>
+<p>Numeric types can be implicitly casted to character types.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="n">s</span><span class="p">;</span>
+<span class="kt">int</span> <span class="n">x</span> <span class="o">=</span> <span class="mi">5965</span><span class="p">;</span>
+<span class="n">s</span> <span class="o">=</span> <span class="mi">6</span><span class="p">;</span>
+<span class="n">s</span> <span class="o">=</span> <span class="n">x</span><span class="p">;</span>
+</pre></div>
+</div>
+<p>Use the appropriate conversion functions or character literals.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="n">s</span><span class="p">;</span>
+<span class="kt">int</span> <span class="n">x</span> <span class="o">=</span> <span class="mi">5965</span><span class="p">;</span>
+<span class="n">s</span> <span class="o">=</span> <span class="sc">'6'</span><span class="p">;</span>
+<span class="n">s</span> <span class="o">=</span> <span class="n">std</span><span class="o">::</span><span class="n">to_string</span><span class="p">(</span><span class="n">x</span><span class="p">);</span>
+</pre></div>
+</div>
+<p>In order to suppress false positives, use an explicit cast.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="n">s</span><span class="p">;</span>
+<span class="n">s</span> <span class="o">=</span> <span class="k">static_cast</span><span class="o"><</span><span class="kt">char</span><span class="o">></span><span class="p">(</span><span class="mi">6</span><span class="p">);</span>
+</pre></div>
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="misc-string-constructor.html">misc-string-constructor</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-string-literal-with-embedded-nul.html">misc-string-literal-with-embedded-nul</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-string-literal-with-embedded-nul.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-string-literal-with-embedded-nul.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-string-literal-with-embedded-nul.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-string-literal-with-embedded-nul.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,100 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - misc-string-literal-with-embedded-nul — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="misc-suspicious-enum-usage" href="misc-suspicious-enum-usage.html" />
+    <link rel="prev" title="misc-string-integer-assignment" href="misc-string-integer-assignment.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - misc-string-literal-with-embedded-nul</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="misc-string-integer-assignment.html">misc-string-integer-assignment</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-suspicious-enum-usage.html">misc-suspicious-enum-usage</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="misc-string-literal-with-embedded-nul">
+<h1>misc-string-literal-with-embedded-nul<a class="headerlink" href="#misc-string-literal-with-embedded-nul" title="Permalink to this headline">¶</a></h1>
+<p>Finds occurrences of string literal with embedded NUL character and validates
+their usage.</p>
+<div class="section" id="invalid-escaping">
+<h2>Invalid escaping<a class="headerlink" href="#invalid-escaping" title="Permalink to this headline">¶</a></h2>
+<p>Special characters can be escaped within a string literal by using their
+hexadecimal encoding like <tt class="docutils literal"><span class="pre">\x42</span></tt>. A common mistake is to escape them
+like this <tt class="docutils literal"><span class="pre">\0x42</span></tt> where the <tt class="docutils literal"><span class="pre">\0</span></tt> stands for the NUL character.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">const</span> <span class="kt">char</span><span class="o">*</span> <span class="n">Example</span><span class="p">[]</span> <span class="o">=</span> <span class="s">"Invalid character: </span><span class="se">\0</span><span class="s">x12 should be </span><span class="se">\x12</span><span class="s">"</span><span class="p">;</span>
+<span class="k">const</span> <span class="kt">char</span><span class="o">*</span> <span class="n">Bytes</span><span class="p">[]</span> <span class="o">=</span> <span class="s">"</span><span class="se">\x03\0</span><span class="s">x02</span><span class="se">\0</span><span class="s">x01</span><span class="se">\0</span><span class="s">x00</span><span class="se">\0</span><span class="s">xFF</span><span class="se">\0</span><span class="s">xFF</span><span class="se">\0</span><span class="s">xFF"</span><span class="p">;</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="truncated-literal">
+<h2>Truncated literal<a class="headerlink" href="#truncated-literal" title="Permalink to this headline">¶</a></h2>
+<p>String-like classes can manipulate strings with embedded NUL as they are keeping
+track of the bytes and the length. This is not the case for a <tt class="docutils literal"><span class="pre">char*</span></tt>
+(NUL-terminated) string.</p>
+<p>A common mistake is to pass a string-literal with embedded NUL to a string
+constructor expecting a NUL-terminated string. The bytes after the first NUL
+character are truncated.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="n">str</span><span class="p">(</span><span class="s">"abc</span><span class="se">\0</span><span class="s">def"</span><span class="p">);</span>  <span class="c1">// "def" is truncated</span>
+<span class="n">str</span> <span class="o">+=</span> <span class="s">"</span><span class="se">\0</span><span class="s">"</span><span class="p">;</span>                  <span class="c1">// This statement is doing nothing</span>
+<span class="k">if</span> <span class="p">(</span><span class="n">str</span> <span class="o">==</span> <span class="s">"</span><span class="se">\0</span><span class="s">abc"</span><span class="p">)</span> <span class="k">return</span><span class="p">;</span>   <span class="c1">// This expression is always true</span>
+</pre></div>
+</div>
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="misc-string-integer-assignment.html">misc-string-integer-assignment</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-suspicious-enum-usage.html">misc-suspicious-enum-usage</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-suspicious-enum-usage.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-suspicious-enum-usage.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-suspicious-enum-usage.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-suspicious-enum-usage.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,149 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - misc-suspicious-enum-usage — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="misc-suspicious-missing-comma" href="misc-suspicious-missing-comma.html" />
+    <link rel="prev" title="misc-string-literal-with-embedded-nul" href="misc-string-literal-with-embedded-nul.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - misc-suspicious-enum-usage</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="misc-string-literal-with-embedded-nul.html">misc-string-literal-with-embedded-nul</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-suspicious-missing-comma.html">misc-suspicious-missing-comma</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="misc-suspicious-enum-usage">
+<h1>misc-suspicious-enum-usage<a class="headerlink" href="#misc-suspicious-enum-usage" title="Permalink to this headline">¶</a></h1>
+<p>The checker detects various cases when an enum is probably misused (as a bitmask
+).</p>
+<ol class="arabic simple">
+<li>When “ADD” or “bitwise OR” is used between two enum which come from different
+types and these types value ranges are not disjoint.</li>
+</ol>
+<p>The following cases will be investigated only using <a class="reference internal" href="performance-inefficient-string-concatenation.html#cmdoption-arg-StrictMode"><em class="xref std std-option">StrictMode</em></a>. We
+regard the enum as a (suspicious)
+bitmask if the three conditions below are true at the same time:</p>
+<ul class="simple">
+<li>at most half of the elements of the enum are non pow-of-2 numbers (because of
+short enumerations)</li>
+<li>there is another non pow-of-2 number than the enum constant representing all
+choices (the result “bitwise OR” operation of all enum elements)</li>
+<li>enum type variable/enumconstant is used as an argument of a <cite>+</cite> or “bitwise OR
+” operator</li>
+</ul>
+<p>So whenever the non pow-of-2 element is used as a bitmask element we diagnose a
+misuse and give a warning.</p>
+<ol class="arabic simple" start="2">
+<li>Investigating the right hand side of <cite>+=</cite> and <cite>|=</cite> operator.</li>
+<li>Check only the enum value side of a <cite>|</cite> and <cite>+</cite> operator if one of them is not
+enum val.</li>
+<li>Check both side of <cite>|</cite> or <cite>+</cite> operator where the enum values are from the
+same enum type.</li>
+</ol>
+<p>Examples:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">enum</span> <span class="p">{</span> <span class="n">A</span><span class="p">,</span> <span class="n">B</span><span class="p">,</span> <span class="n">C</span> <span class="p">};</span>
+<span class="k">enum</span> <span class="p">{</span> <span class="n">D</span><span class="p">,</span> <span class="n">E</span><span class="p">,</span> <span class="n">F</span> <span class="o">=</span> <span class="mi">5</span> <span class="p">};</span>
+<span class="k">enum</span> <span class="p">{</span> <span class="n">G</span> <span class="o">=</span> <span class="mi">10</span><span class="p">,</span> <span class="n">H</span> <span class="o">=</span> <span class="mi">11</span><span class="p">,</span> <span class="n">I</span> <span class="o">=</span> <span class="mi">12</span> <span class="p">};</span>
+
+<span class="kt">unsigned</span> <span class="n">flag</span><span class="p">;</span>
+<span class="n">flag</span> <span class="o">=</span>
+    <span class="n">A</span> <span class="o">|</span>
+    <span class="n">H</span><span class="p">;</span> <span class="c1">// OK, disjoint value intervalls in the enum types ->probably good use.</span>
+<span class="n">flag</span> <span class="o">=</span> <span class="n">B</span> <span class="o">|</span> <span class="n">F</span><span class="p">;</span> <span class="c1">// Warning, have common values so they are probably misused.</span>
+
+<span class="c1">// Case 2:</span>
+<span class="k">enum</span> <span class="n">Bitmask</span> <span class="p">{</span>
+  <span class="n">A</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span>
+  <span class="n">B</span> <span class="o">=</span> <span class="mi">1</span><span class="p">,</span>
+  <span class="n">C</span> <span class="o">=</span> <span class="mi">2</span><span class="p">,</span>
+  <span class="n">D</span> <span class="o">=</span> <span class="mi">4</span><span class="p">,</span>
+  <span class="n">E</span> <span class="o">=</span> <span class="mi">8</span><span class="p">,</span>
+  <span class="n">F</span> <span class="o">=</span> <span class="mi">16</span><span class="p">,</span>
+  <span class="n">G</span> <span class="o">=</span> <span class="mi">31</span> <span class="c1">// OK, real bitmask.</span>
+<span class="p">};</span>
+
+<span class="k">enum</span> <span class="n">Almostbitmask</span> <span class="p">{</span>
+  <span class="n">AA</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span>
+  <span class="n">BB</span> <span class="o">=</span> <span class="mi">1</span><span class="p">,</span>
+  <span class="n">CC</span> <span class="o">=</span> <span class="mi">2</span><span class="p">,</span>
+  <span class="n">DD</span> <span class="o">=</span> <span class="mi">4</span><span class="p">,</span>
+  <span class="n">EE</span> <span class="o">=</span> <span class="mi">8</span><span class="p">,</span>
+  <span class="n">FF</span> <span class="o">=</span> <span class="mi">16</span><span class="p">,</span>
+  <span class="n">GG</span> <span class="c1">// Problem, forgot to initialize.</span>
+<span class="p">};</span>
+
+<span class="kt">unsigned</span> <span class="n">flag</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
+<span class="n">flag</span> <span class="o">|=</span> <span class="n">E</span><span class="p">;</span> <span class="c1">// OK.</span>
+<span class="n">flag</span> <span class="o">|=</span>
+    <span class="n">EE</span><span class="p">;</span> <span class="c1">// Warning at the decl, and note that it was used here as a bitmask.</span>
+</pre></div>
+</div>
+<div class="section" id="options">
+<h2>Options<a class="headerlink" href="#options" title="Permalink to this headline">¶</a></h2>
+<dl class="option">
+<dt id="cmdoption-arg-StrictMode">
+<tt class="descname">StrictMode</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-StrictMode" title="Permalink to this definition">¶</a></dt>
+<dd><p>Default value: 0.
+When non-null the suspicious bitmask usage will be investigated additionally
+to the different enum usage check.</p>
+</dd></dl>
+
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="misc-string-literal-with-embedded-nul.html">misc-string-literal-with-embedded-nul</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-suspicious-missing-comma.html">misc-suspicious-missing-comma</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-suspicious-missing-comma.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-suspicious-missing-comma.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-suspicious-missing-comma.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-suspicious-missing-comma.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,127 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - misc-suspicious-missing-comma — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="misc-suspicious-semicolon" href="misc-suspicious-semicolon.html" />
+    <link rel="prev" title="misc-suspicious-enum-usage" href="misc-suspicious-enum-usage.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - misc-suspicious-missing-comma</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="misc-suspicious-enum-usage.html">misc-suspicious-enum-usage</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-suspicious-semicolon.html">misc-suspicious-semicolon</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="misc-suspicious-missing-comma">
+<h1>misc-suspicious-missing-comma<a class="headerlink" href="#misc-suspicious-missing-comma" title="Permalink to this headline">¶</a></h1>
+<p>String literals placed side-by-side are concatenated at translation phase 6
+(after the preprocessor). This feature is used to represent long string
+literal on multiple lines.</p>
+<p>For instance, the following declarations are equivalent:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">const</span> <span class="kt">char</span><span class="o">*</span> <span class="n">A</span><span class="p">[]</span> <span class="o">=</span> <span class="s">"This is a test"</span><span class="p">;</span>
+<span class="k">const</span> <span class="kt">char</span><span class="o">*</span> <span class="n">B</span><span class="p">[]</span> <span class="o">=</span> <span class="s">"This"</span> <span class="s">" is a "</span>    <span class="s">"test"</span><span class="p">;</span>
+</pre></div>
+</div>
+<p>A common mistake done by programmers is to forget a comma between two string
+literals in an array initializer list.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">const</span> <span class="kt">char</span><span class="o">*</span> <span class="n">Test</span><span class="p">[]</span> <span class="o">=</span> <span class="p">{</span>
+  <span class="s">"line 1"</span><span class="p">,</span>
+  <span class="s">"line 2"</span>     <span class="c1">// Missing comma!</span>
+  <span class="s">"line 3"</span><span class="p">,</span>
+  <span class="s">"line 4"</span><span class="p">,</span>
+  <span class="s">"line 5"</span>
+<span class="p">};</span>
+</pre></div>
+</div>
+<p>The array contains the string “line 2line3” at offset 1 (i.e. Test[1]). Clang
+won’t generate warnings at compile time.</p>
+<p>This check may warn incorrectly on cases like:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">const</span> <span class="kt">char</span><span class="o">*</span> <span class="n">SupportedFormat</span><span class="p">[]</span> <span class="o">=</span> <span class="p">{</span>
+  <span class="s">"Error %s"</span><span class="p">,</span>
+  <span class="s">"Code "</span> <span class="n">PRIu64</span><span class="p">,</span>   <span class="c1">// May warn here.</span>
+  <span class="s">"Warning %s"</span><span class="p">,</span>
+<span class="p">};</span>
+</pre></div>
+</div>
+<div class="section" id="options">
+<h2>Options<a class="headerlink" href="#options" title="Permalink to this headline">¶</a></h2>
+<dl class="option">
+<dt id="cmdoption-arg-SizeThreshold">
+<tt class="descname">SizeThreshold</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-SizeThreshold" title="Permalink to this definition">¶</a></dt>
+<dd><p>An unsigned integer specifying the minimum size of a string literal to be
+considered by the check. Default is <cite>5U</cite>.</p>
+</dd></dl>
+
+<dl class="option">
+<dt id="cmdoption-arg-RatioThreshold">
+<tt class="descname">RatioThreshold</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-RatioThreshold" title="Permalink to this definition">¶</a></dt>
+<dd><p>A string specifying the maximum threshold ratio [0, 1.0] of suspicious string
+literals to be considered. Default is <cite>”.2”</cite>.</p>
+</dd></dl>
+
+<dl class="option">
+<dt id="cmdoption-arg-MaxConcatenatedTokens">
+<tt class="descname">MaxConcatenatedTokens</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-MaxConcatenatedTokens" title="Permalink to this definition">¶</a></dt>
+<dd><p>An unsigned integer specifying the maximum number of concatenated tokens.
+Default is <cite>5U</cite>.</p>
+</dd></dl>
+
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="misc-suspicious-enum-usage.html">misc-suspicious-enum-usage</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-suspicious-semicolon.html">misc-suspicious-semicolon</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-suspicious-semicolon.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-suspicious-semicolon.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-suspicious-semicolon.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-suspicious-semicolon.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - misc-suspicious-semicolon — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="misc-suspicious-string-compare" href="misc-suspicious-string-compare.html" />
+    <link rel="prev" title="misc-suspicious-missing-comma" href="misc-suspicious-missing-comma.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - misc-suspicious-semicolon</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="misc-suspicious-missing-comma.html">misc-suspicious-missing-comma</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-suspicious-string-compare.html">misc-suspicious-string-compare</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="misc-suspicious-semicolon">
+<h1>misc-suspicious-semicolon<a class="headerlink" href="#misc-suspicious-semicolon" title="Permalink to this headline">¶</a></h1>
+<p>Finds most instances of stray semicolons that unexpectedly alter the meaning of
+the code. More specifically, it looks for <tt class="docutils literal"><span class="pre">if</span></tt>, <tt class="docutils literal"><span class="pre">while</span></tt>, <tt class="docutils literal"><span class="pre">for</span></tt> and
+<tt class="docutils literal"><span class="pre">for-range</span></tt> statements whose body is a single semicolon, and then analyzes the
+context of the code (e.g. indentation) in an attempt to determine whether that
+is intentional.</p>
+<blockquote>
+<div><div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">if</span> <span class="p">(</span><span class="n">x</span> <span class="o"><</span> <span class="n">y</span><span class="p">);</span>
+<span class="p">{</span>
+  <span class="n">x</span><span class="o">++</span><span class="p">;</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+</div></blockquote>
+<p>Here the body of the <tt class="docutils literal"><span class="pre">if</span></tt> statement consists of only the semicolon at the end
+of the first line, and <cite>x</cite> will be incremented regardless of the condition.</p>
+<blockquote>
+<div><div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">while</span> <span class="p">((</span><span class="n">line</span> <span class="o">=</span> <span class="n">readLine</span><span class="p">(</span><span class="n">file</span><span class="p">))</span> <span class="o">!=</span> <span class="nb">NULL</span><span class="p">);</span>
+  <span class="n">processLine</span><span class="p">(</span><span class="n">line</span><span class="p">);</span>
+</pre></div>
+</div>
+</div></blockquote>
+<p>As a result of this code, <cite>processLine()</cite> will only be called once, when the
+<tt class="docutils literal"><span class="pre">while</span></tt> loop with the empty body exits with <cite>line == NULL</cite>. The indentation of
+the code indicates the intention of the programmer.</p>
+<blockquote>
+<div><div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">if</span> <span class="p">(</span><span class="n">x</span> <span class="o">>=</span> <span class="n">y</span><span class="p">);</span>
+<span class="n">x</span> <span class="o">-=</span> <span class="n">y</span><span class="p">;</span>
+</pre></div>
+</div>
+</div></blockquote>
+<p>While the indentation does not imply any nesting, there is simply no valid
+reason to have an <cite>if</cite> statement with an empty body (but it can make sense for
+a loop). So this check issues a warning for the code above.</p>
+<p>To solve the issue remove the stray semicolon or in case the empty body is
+intentional, reflect this using code indentation or put the semicolon in a new
+line. For example:</p>
+<blockquote>
+<div><div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">while</span> <span class="p">(</span><span class="n">readWhitespace</span><span class="p">());</span>
+  <span class="n">Token</span> <span class="n">t</span> <span class="o">=</span> <span class="n">readNextToken</span><span class="p">();</span>
+</pre></div>
+</div>
+</div></blockquote>
+<p>Here the second line is indented in a way that suggests that it is meant to be
+the body of the <cite>while</cite> loop - whose body is in fact empty, because of the
+semicolon at the end of the first line.</p>
+<p>Either remove the indentation from the second line:</p>
+<blockquote>
+<div><div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">while</span> <span class="p">(</span><span class="n">readWhitespace</span><span class="p">());</span>
+<span class="n">Token</span> <span class="n">t</span> <span class="o">=</span> <span class="n">readNextToken</span><span class="p">();</span>
+</pre></div>
+</div>
+</div></blockquote>
+<p>... or move the semicolon from the end of the first line to a new line:</p>
+<blockquote>
+<div><div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">while</span> <span class="p">(</span><span class="n">readWhitespace</span><span class="p">())</span>
+  <span class="p">;</span>
+
+  <span class="n">Token</span> <span class="n">t</span> <span class="o">=</span> <span class="n">readNextToken</span><span class="p">();</span>
+</pre></div>
+</div>
+</div></blockquote>
+<p>In this case the check will assume that you know what you are doing, and will
+not raise a warning.</p>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="misc-suspicious-missing-comma.html">misc-suspicious-missing-comma</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-suspicious-string-compare.html">misc-suspicious-string-compare</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-suspicious-string-compare.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-suspicious-string-compare.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-suspicious-string-compare.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-suspicious-string-compare.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - misc-suspicious-string-compare — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="misc-swapped-arguments" href="misc-swapped-arguments.html" />
+    <link rel="prev" title="misc-suspicious-semicolon" href="misc-suspicious-semicolon.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - misc-suspicious-string-compare</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="misc-suspicious-semicolon.html">misc-suspicious-semicolon</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-swapped-arguments.html">misc-swapped-arguments</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="misc-suspicious-string-compare">
+<h1>misc-suspicious-string-compare<a class="headerlink" href="#misc-suspicious-string-compare" title="Permalink to this headline">¶</a></h1>
+<p>Find suspicious usage of runtime string comparison functions.
+This check is valid in C and C++.</p>
+<p>Checks for calls with implicit comparator and proposed to explicitly add it.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">if</span> <span class="p">(</span><span class="n">strcmp</span><span class="p">(...))</span>       <span class="c1">// Implicitly compare to zero</span>
+<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="n">strcmp</span><span class="p">(...))</span>      <span class="c1">// Won't warn</span>
+<span class="k">if</span> <span class="p">(</span><span class="n">strcmp</span><span class="p">(...)</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">)</span>  <span class="c1">// Won't warn</span>
+</pre></div>
+</div>
+<p>Checks that compare function results (i,e, <tt class="docutils literal"><span class="pre">strcmp</span></tt>) are compared to valid
+constant. The resulting value is</p>
+<div class="code highlight-python"><div class="highlight"><pre><span></span><  0    when lower than,
+>  0    when greater than,
+== 0    when equals.
+</pre></div>
+</div>
+<p>A common mistake is to compare the result to <cite>1</cite> or <cite>-1</cite>.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">if</span> <span class="p">(</span><span class="n">strcmp</span><span class="p">(...)</span> <span class="o">==</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span>  <span class="c1">// Incorrect usage of the returned value.</span>
+</pre></div>
+</div>
+<p>Additionally, the check warns if the results value is implicitly cast to a
+<em>suspicious</em> non-integer type. It’s happening when the returned value is used in
+a wrong context.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">if</span> <span class="p">(</span><span class="n">strcmp</span><span class="p">(...)</span> <span class="o"><</span> <span class="mf">0.</span><span class="p">)</span>  <span class="c1">// Incorrect usage of the returned value.</span>
+</pre></div>
+</div>
+<div class="section" id="options">
+<h2>Options<a class="headerlink" href="#options" title="Permalink to this headline">¶</a></h2>
+<dl class="option">
+<dt id="cmdoption-arg-WarnOnImplicitComparison">
+<tt class="descname">WarnOnImplicitComparison</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-WarnOnImplicitComparison" title="Permalink to this definition">¶</a></dt>
+<dd><p>When non-zero, the check will warn on implicit comparison. <cite>1</cite> by default.</p>
+</dd></dl>
+
+<dl class="option">
+<dt id="cmdoption-arg-WarnOnLogicalNotComparison">
+<tt class="descname">WarnOnLogicalNotComparison</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-WarnOnLogicalNotComparison" title="Permalink to this definition">¶</a></dt>
+<dd><p>When non-zero, the check will warn on logical not comparison. <cite>0</cite> by default.</p>
+</dd></dl>
+
+<dl class="option">
+<dt id="cmdoption-arg-StringCompareLikeFunctions">
+<tt class="descname">StringCompareLikeFunctions</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-StringCompareLikeFunctions" title="Permalink to this definition">¶</a></dt>
+<dd><p>A string specifying the comma-separated names of the extra string comparison
+functions. Default is an empty string.
+The check will detect the following string comparison functions:
+<cite>__builtin_memcmp</cite>, <cite>__builtin_strcasecmp</cite>, <cite>__builtin_strcmp</cite>,
+<cite>__builtin_strncasecmp</cite>, <cite>__builtin_strncmp</cite>, <cite>_mbscmp</cite>, <cite>_mbscmp_l</cite>,
+<cite>_mbsicmp</cite>, <cite>_mbsicmp_l</cite>, <cite>_mbsnbcmp</cite>, <cite>_mbsnbcmp_l</cite>, <cite>_mbsnbicmp</cite>,
+<cite>_mbsnbicmp_l</cite>, <cite>_mbsncmp</cite>, <cite>_mbsncmp_l</cite>, <cite>_mbsnicmp</cite>, <cite>_mbsnicmp_l</cite>,
+<cite>_memicmp</cite>, <cite>_memicmp_l</cite>, <cite>_stricmp</cite>, <cite>_stricmp_l</cite>, <cite>_strnicmp</cite>,
+<cite>_strnicmp_l</cite>, <cite>_wcsicmp</cite>, <cite>_wcsicmp_l</cite>, <cite>_wcsnicmp</cite>, <cite>_wcsnicmp_l</cite>,
+<cite>lstrcmp</cite>, <cite>lstrcmpi</cite>, <cite>memcmp</cite>, <cite>memicmp</cite>, <cite>strcasecmp</cite>, <cite>strcmp</cite>,
+<cite>strcmpi</cite>, <cite>stricmp</cite>, <cite>strncasecmp</cite>, <cite>strncmp</cite>, <cite>strnicmp</cite>, <cite>wcscasecmp</cite>,
+<cite>wcscmp</cite>, <cite>wcsicmp</cite>, <cite>wcsncmp</cite>, <cite>wcsnicmp</cite>, <cite>wmemcmp</cite>.</p>
+</dd></dl>
+
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="misc-suspicious-semicolon.html">misc-suspicious-semicolon</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-swapped-arguments.html">misc-swapped-arguments</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-swapped-arguments.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-swapped-arguments.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-swapped-arguments.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-swapped-arguments.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,75 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - misc-swapped-arguments — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="misc-throw-by-value-catch-by-reference" href="misc-throw-by-value-catch-by-reference.html" />
+    <link rel="prev" title="misc-suspicious-string-compare" href="misc-suspicious-string-compare.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - misc-swapped-arguments</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="misc-suspicious-string-compare.html">misc-suspicious-string-compare</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-throw-by-value-catch-by-reference.html">misc-throw-by-value-catch-by-reference</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="misc-swapped-arguments">
+<h1>misc-swapped-arguments<a class="headerlink" href="#misc-swapped-arguments" title="Permalink to this headline">¶</a></h1>
+<p>Finds potentially swapped arguments by looking at implicit conversions.</p>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="misc-suspicious-string-compare.html">misc-suspicious-string-compare</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-throw-by-value-catch-by-reference.html">misc-throw-by-value-catch-by-reference</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-throw-by-value-catch-by-reference.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-throw-by-value-catch-by-reference.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-throw-by-value-catch-by-reference.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-throw-by-value-catch-by-reference.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,106 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - misc-throw-by-value-catch-by-reference — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="misc-unconventional-assign-operator" href="misc-unconventional-assign-operator.html" />
+    <link rel="prev" title="misc-swapped-arguments" href="misc-swapped-arguments.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - misc-throw-by-value-catch-by-reference</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="misc-swapped-arguments.html">misc-swapped-arguments</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-unconventional-assign-operator.html">misc-unconventional-assign-operator</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="misc-throw-by-value-catch-by-reference">
+<h1>misc-throw-by-value-catch-by-reference<a class="headerlink" href="#misc-throw-by-value-catch-by-reference" title="Permalink to this headline">¶</a></h1>
+<p>“cert-err09-cpp” redirects here as an alias for this check.
+“cert-err61-cpp” redirects here as an alias for this check.</p>
+<p>Finds violations of the rule “Throw by value, catch by reference” presented for
+example in “C++ Coding Standards” by H. Sutter and A. Alexandrescu.</p>
+<dl class="docutils">
+<dt>Exceptions:</dt>
+<dd><ul class="first last simple">
+<li>Throwing string literals will not be flagged despite being a pointer. They
+are not susceptible to slicing and the usage of string literals is idomatic.</li>
+<li>Catching character pointers (<tt class="docutils literal"><span class="pre">char</span></tt>, <tt class="docutils literal"><span class="pre">wchar_t</span></tt>, unicode character types)
+will not be flagged to allow catching sting literals.</li>
+<li>Moved named values will not be flagged as not throwing an anonymous
+temporary. In this case we can be sure that the user knows that the object
+can’t be accessed outside catch blocks handling the error.</li>
+<li>Throwing function parameters will not be flagged as not throwing an
+anonymous temporary. This allows helper functions for throwing.</li>
+<li>Re-throwing caught exception variables will not be flragged as not throwing
+an anonymous temporary. Although this can usually be done by just writing
+<tt class="docutils literal"><span class="pre">throw;</span></tt> it happens often enough in real code.</li>
+</ul>
+</dd>
+</dl>
+<div class="section" id="options">
+<h2>Options<a class="headerlink" href="#options" title="Permalink to this headline">¶</a></h2>
+<dl class="option">
+<dt id="cmdoption-arg-CheckThrowTemporaries">
+<tt class="descname">CheckThrowTemporaries</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-CheckThrowTemporaries" title="Permalink to this definition">¶</a></dt>
+<dd><p>Triggers detection of violations of the rule <a class="reference external" href="https://www.securecoding.cert.org/confluence/display/cplusplus/ERR09-CPP.+Throw+anonymous+temporaries">Throw anonymous temporaries</a>.
+Default is <cite>1</cite>.</p>
+</dd></dl>
+
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="misc-swapped-arguments.html">misc-swapped-arguments</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-unconventional-assign-operator.html">misc-unconventional-assign-operator</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-unconventional-assign-operator.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-unconventional-assign-operator.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-unconventional-assign-operator.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-unconventional-assign-operator.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,84 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - misc-unconventional-assign-operator — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="misc-undelegated-constructor" href="misc-undelegated-constructor.html" />
+    <link rel="prev" title="misc-throw-by-value-catch-by-reference" href="misc-throw-by-value-catch-by-reference.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - misc-unconventional-assign-operator</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="misc-throw-by-value-catch-by-reference.html">misc-throw-by-value-catch-by-reference</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-undelegated-constructor.html">misc-undelegated-constructor</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="misc-unconventional-assign-operator">
+<h1>misc-unconventional-assign-operator<a class="headerlink" href="#misc-unconventional-assign-operator" title="Permalink to this headline">¶</a></h1>
+<p>Finds declarations of assign operators with the wrong return and/or argument
+types and definitions with good return type but wrong <tt class="docutils literal"><span class="pre">return</span></tt> statements.</p>
+<blockquote>
+<div><ul class="simple">
+<li>The return type must be <tt class="docutils literal"><span class="pre">Class&</span></tt>.</li>
+<li>Works with move-assign and assign by value.</li>
+<li>Private and deleted operators are ignored.</li>
+<li>The operator must always return <tt class="docutils literal"><span class="pre">*this</span></tt>.</li>
+</ul>
+</div></blockquote>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="misc-throw-by-value-catch-by-reference.html">misc-throw-by-value-catch-by-reference</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-undelegated-constructor.html">misc-undelegated-constructor</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-undelegated-constructor.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-undelegated-constructor.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-undelegated-constructor.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-undelegated-constructor.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,78 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - misc-undelegated-constructor — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="misc-uniqueptr-reset-release" href="misc-uniqueptr-reset-release.html" />
+    <link rel="prev" title="misc-unconventional-assign-operator" href="misc-unconventional-assign-operator.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - misc-undelegated-constructor</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="misc-unconventional-assign-operator.html">misc-unconventional-assign-operator</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-uniqueptr-reset-release.html">misc-uniqueptr-reset-release</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="misc-undelegated-constructor">
+<h1>misc-undelegated-constructor<a class="headerlink" href="#misc-undelegated-constructor" title="Permalink to this headline">¶</a></h1>
+<p>Finds creation of temporary objects in constructors that look like a
+function call to another constructor of the same class.</p>
+<p>The user most likely meant to use a delegating constructor or base class
+initializer.</p>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="misc-unconventional-assign-operator.html">misc-unconventional-assign-operator</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-uniqueptr-reset-release.html">misc-uniqueptr-reset-release</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-uniqueptr-reset-release.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-uniqueptr-reset-release.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-uniqueptr-reset-release.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-uniqueptr-reset-release.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,82 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - misc-uniqueptr-reset-release — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="misc-unused-alias-decls" href="misc-unused-alias-decls.html" />
+    <link rel="prev" title="misc-undelegated-constructor" href="misc-undelegated-constructor.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - misc-uniqueptr-reset-release</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="misc-undelegated-constructor.html">misc-undelegated-constructor</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-unused-alias-decls.html">misc-unused-alias-decls</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="misc-uniqueptr-reset-release">
+<h1>misc-uniqueptr-reset-release<a class="headerlink" href="#misc-uniqueptr-reset-release" title="Permalink to this headline">¶</a></h1>
+<p>Find and replace <tt class="docutils literal"><span class="pre">unique_ptr::reset(release())</span></tt> with <tt class="docutils literal"><span class="pre">std::move()</span></tt>.</p>
+<p>Example:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="n">std</span><span class="o">::</span><span class="n">unique_ptr</span><span class="o"><</span><span class="n">Foo</span><span class="o">></span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">;</span>
+<span class="n">x</span><span class="p">.</span><span class="n">reset</span><span class="p">(</span><span class="n">y</span><span class="p">.</span><span class="n">release</span><span class="p">());</span> <span class="o">-></span> <span class="n">x</span> <span class="o">=</span> <span class="n">std</span><span class="o">::</span><span class="n">move</span><span class="p">(</span><span class="n">y</span><span class="p">);</span>
+</pre></div>
+</div>
+<p>If <tt class="docutils literal"><span class="pre">y</span></tt> is already rvalue, <tt class="docutils literal"><span class="pre">std::move()</span></tt> is not added. <tt class="docutils literal"><span class="pre">x</span></tt> and <tt class="docutils literal"><span class="pre">y</span></tt> can
+also be <tt class="docutils literal"><span class="pre">std::unique_ptr<Foo>*</span></tt>.</p>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="misc-undelegated-constructor.html">misc-undelegated-constructor</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-unused-alias-decls.html">misc-unused-alias-decls</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-unused-alias-decls.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-unused-alias-decls.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-unused-alias-decls.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-unused-alias-decls.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,75 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - misc-unused-alias-decls — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="misc-unused-parameters" href="misc-unused-parameters.html" />
+    <link rel="prev" title="misc-uniqueptr-reset-release" href="misc-uniqueptr-reset-release.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - misc-unused-alias-decls</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="misc-uniqueptr-reset-release.html">misc-uniqueptr-reset-release</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-unused-parameters.html">misc-unused-parameters</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="misc-unused-alias-decls">
+<h1>misc-unused-alias-decls<a class="headerlink" href="#misc-unused-alias-decls" title="Permalink to this headline">¶</a></h1>
+<p>Finds unused namespace alias declarations.</p>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="misc-uniqueptr-reset-release.html">misc-uniqueptr-reset-release</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-unused-parameters.html">misc-unused-parameters</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-unused-parameters.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-unused-parameters.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-unused-parameters.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-unused-parameters.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,92 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - misc-unused-parameters — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="misc-unused-raii" href="misc-unused-raii.html" />
+    <link rel="prev" title="misc-unused-alias-decls" href="misc-unused-alias-decls.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - misc-unused-parameters</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="misc-unused-alias-decls.html">misc-unused-alias-decls</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-unused-raii.html">misc-unused-raii</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="misc-unused-parameters">
+<h1>misc-unused-parameters<a class="headerlink" href="#misc-unused-parameters" title="Permalink to this headline">¶</a></h1>
+<p>Finds unused parameters and fixes them, so that <cite>-Wunused-parameter</cite> can be
+turned on.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="kt">void</span> <span class="nf">a</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span><span class="p">)</span> <span class="p">{}</span>
+
+<span class="c1">// becomes</span>
+
+<span class="kt">void</span> <span class="nf">a</span><span class="p">(</span><span class="kt">int</span>  <span class="cm">/*i*/</span><span class="p">)</span> <span class="p">{}</span>
+</pre></div>
+</div>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">static</span> <span class="kt">void</span> <span class="nf">staticFunctionA</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span><span class="p">);</span>
+<span class="k">static</span> <span class="kt">void</span> <span class="nf">staticFunctionA</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span><span class="p">)</span> <span class="p">{}</span>
+
+<span class="c1">// becomes</span>
+
+<span class="k">static</span> <span class="kt">void</span> <span class="nf">staticFunctionA</span><span class="p">()</span>
+<span class="k">static</span> <span class="kt">void</span> <span class="n">staticFunctionA</span><span class="p">()</span> <span class="p">{}</span>
+</pre></div>
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="misc-unused-alias-decls.html">misc-unused-alias-decls</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-unused-raii.html">misc-unused-raii</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-unused-raii.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-unused-raii.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-unused-raii.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-unused-raii.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - misc-unused-raii — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="misc-unused-using-decls" href="misc-unused-using-decls.html" />
+    <link rel="prev" title="misc-unused-parameters" href="misc-unused-parameters.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - misc-unused-raii</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="misc-unused-parameters.html">misc-unused-parameters</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-unused-using-decls.html">misc-unused-using-decls</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="misc-unused-raii">
+<h1>misc-unused-raii<a class="headerlink" href="#misc-unused-raii" title="Permalink to this headline">¶</a></h1>
+<p>Finds temporaries that look like RAII objects.</p>
+<p>The canonical example for this is a scoped lock.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="p">{</span>
+  <span class="n">scoped_lock</span><span class="p">(</span><span class="o">&</span><span class="n">global_mutex</span><span class="p">);</span>
+  <span class="n">critical_section</span><span class="p">();</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<p>The destructor of the scoped_lock is called before the <tt class="docutils literal"><span class="pre">critical_section</span></tt> is
+entered, leaving it unprotected.</p>
+<p>We apply a number of heuristics to reduce the false positive count of this
+check:</p>
+<ul class="simple">
+<li>Ignore code expanded from macros. Testing frameworks make heavy use of this.</li>
+<li>Ignore types with trivial destructors. They are very unlikely to be RAII
+objects and there’s no difference when they are deleted.</li>
+<li>Ignore objects at the end of a compound statement (doesn’t change behavior).</li>
+<li>Ignore objects returned from a call.</li>
+</ul>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="misc-unused-parameters.html">misc-unused-parameters</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-unused-using-decls.html">misc-unused-using-decls</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-unused-using-decls.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-unused-using-decls.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-unused-using-decls.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-unused-using-decls.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,80 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - misc-unused-using-decls — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="misc-use-after-move" href="misc-use-after-move.html" />
+    <link rel="prev" title="misc-unused-raii" href="misc-unused-raii.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - misc-unused-using-decls</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="misc-unused-raii.html">misc-unused-raii</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-use-after-move.html">misc-use-after-move</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="misc-unused-using-decls">
+<h1>misc-unused-using-decls<a class="headerlink" href="#misc-unused-using-decls" title="Permalink to this headline">¶</a></h1>
+<p>Finds unused <tt class="docutils literal"><span class="pre">using</span></tt> declarations.</p>
+<p>Example:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">namespace</span> <span class="n">n</span> <span class="p">{</span> <span class="k">class</span> <span class="nc">C</span><span class="p">;</span> <span class="p">}</span>
+<span class="k">using</span> <span class="n">n</span><span class="o">::</span><span class="n">C</span><span class="p">;</span>  <span class="c1">// Never actually used.</span>
+</pre></div>
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="misc-unused-raii.html">misc-unused-raii</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-use-after-move.html">misc-use-after-move</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-use-after-move.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-use-after-move.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-use-after-move.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-use-after-move.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,257 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - misc-use-after-move — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="misc-virtual-near-miss" href="misc-virtual-near-miss.html" />
+    <link rel="prev" title="misc-unused-using-decls" href="misc-unused-using-decls.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - misc-use-after-move</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="misc-unused-using-decls.html">misc-unused-using-decls</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-virtual-near-miss.html">misc-virtual-near-miss</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="misc-use-after-move">
+<h1>misc-use-after-move<a class="headerlink" href="#misc-use-after-move" title="Permalink to this headline">¶</a></h1>
+<p>Warns if an object is used after it has been moved, for example:</p>
+<blockquote>
+<div><div class="highlight-c++"><div class="highlight"><pre><span></span><span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="n">str</span> <span class="o">=</span> <span class="s">"Hello, world!</span><span class="se">\n</span><span class="s">"</span><span class="p">;</span>
+<span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o"><</span><span class="n">std</span><span class="o">::</span><span class="n">string</span><span class="o">></span> <span class="n">messages</span><span class="p">;</span>
+<span class="n">messages</span><span class="p">.</span><span class="n">emplace_back</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">move</span><span class="p">(</span><span class="n">str</span><span class="p">));</span>
+<span class="n">std</span><span class="o">::</span><span class="n">cout</span> <span class="o"><<</span> <span class="n">str</span><span class="p">;</span>
+</pre></div>
+</div>
+</div></blockquote>
+<p>The last line will trigger a warning that <tt class="docutils literal"><span class="pre">str</span></tt> is used after it has been
+moved.</p>
+<p>The check does not trigger a warning if the object is reinitialized after the
+move and before the use. For example, no warning will be output for this code:</p>
+<blockquote>
+<div><div class="highlight-c++"><div class="highlight"><pre><span></span><span class="n">messages</span><span class="p">.</span><span class="n">emplace_back</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">move</span><span class="p">(</span><span class="n">str</span><span class="p">));</span>
+<span class="n">str</span> <span class="o">=</span> <span class="s">"Greetings, stranger!</span><span class="se">\n</span><span class="s">"</span><span class="p">;</span>
+<span class="n">std</span><span class="o">::</span><span class="n">cout</span> <span class="o"><<</span> <span class="n">str</span><span class="p">;</span>
+</pre></div>
+</div>
+</div></blockquote>
+<p>The check takes control flow into account. A warning is only emitted if the use
+can be reached from the move. This means that the following code does not
+produce a warning:</p>
+<blockquote>
+<div><div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">if</span> <span class="p">(</span><span class="n">condition</span><span class="p">)</span> <span class="p">{</span>
+  <span class="n">messages</span><span class="p">.</span><span class="n">emplace_back</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">move</span><span class="p">(</span><span class="n">str</span><span class="p">));</span>
+<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
+  <span class="n">std</span><span class="o">::</span><span class="n">cout</span> <span class="o"><<</span> <span class="n">str</span><span class="p">;</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+</div></blockquote>
+<p>On the other hand, the following code does produce a warning:</p>
+<blockquote>
+<div><div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o"><</span> <span class="mi">10</span><span class="p">;</span> <span class="o">++</span><span class="n">i</span><span class="p">)</span> <span class="p">{</span>
+  <span class="n">std</span><span class="o">::</span><span class="n">cout</span> <span class="o"><<</span> <span class="n">str</span><span class="p">;</span>
+  <span class="n">messages</span><span class="p">.</span><span class="n">emplace_back</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">move</span><span class="p">(</span><span class="n">str</span><span class="p">));</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+</div></blockquote>
+<p>(The use-after-move happens on the second iteration of the loop.)</p>
+<p>In some cases, the check may not be able to detect that two branches are
+mutually exclusive. For example (assuming that <tt class="docutils literal"><span class="pre">i</span></tt> is an int):</p>
+<blockquote>
+<div><div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">if</span> <span class="p">(</span><span class="n">i</span> <span class="o">==</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span>
+  <span class="n">messages</span><span class="p">.</span><span class="n">emplace_back</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">move</span><span class="p">(</span><span class="n">str</span><span class="p">));</span>
+<span class="p">}</span>
+<span class="k">if</span> <span class="p">(</span><span class="n">i</span> <span class="o">==</span> <span class="mi">2</span><span class="p">)</span> <span class="p">{</span>
+  <span class="n">std</span><span class="o">::</span><span class="n">cout</span> <span class="o"><<</span> <span class="n">str</span><span class="p">;</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+</div></blockquote>
+<p>In this case, the check will erroneously produce a warning, even though it is
+not possible for both the move and the use to be executed.</p>
+<p>An erroneous warning can be silenced by reinitializing the object after the
+move:</p>
+<blockquote>
+<div><div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">if</span> <span class="p">(</span><span class="n">i</span> <span class="o">==</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span>
+  <span class="n">messages</span><span class="p">.</span><span class="n">emplace_back</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">move</span><span class="p">(</span><span class="n">str</span><span class="p">));</span>
+  <span class="n">str</span> <span class="o">=</span> <span class="s">""</span><span class="p">;</span>
+<span class="p">}</span>
+<span class="k">if</span> <span class="p">(</span><span class="n">i</span> <span class="o">==</span> <span class="mi">2</span><span class="p">)</span> <span class="p">{</span>
+  <span class="n">std</span><span class="o">::</span><span class="n">cout</span> <span class="o"><<</span> <span class="n">str</span><span class="p">;</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+</div></blockquote>
+<p>Subsections below explain more precisely what exactly the check considers to be
+a move, use, and reinitialization.</p>
+<div class="section" id="unsequenced-moves-uses-and-reinitializations">
+<h2>Unsequenced moves, uses, and reinitializations<a class="headerlink" href="#unsequenced-moves-uses-and-reinitializations" title="Permalink to this headline">¶</a></h2>
+<p>In many cases, C++ does not make any guarantees about the order in which
+sub-expressions of a statement are evaluated. This means that in code like the
+following, it is not guaranteed whether the use will happen before or after the
+move:</p>
+<blockquote>
+<div><div class="highlight-c++"><div class="highlight"><pre><span></span><span class="kt">void</span> <span class="nf">f</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span><span class="p">,</span> <span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o"><</span><span class="kt">int</span><span class="o">></span> <span class="n">v</span><span class="p">);</span>
+<span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o"><</span><span class="kt">int</span><span class="o">></span> <span class="n">v</span> <span class="o">=</span> <span class="p">{</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span> <span class="p">};</span>
+<span class="n">f</span><span class="p">(</span><span class="n">v</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">std</span><span class="o">::</span><span class="n">move</span><span class="p">(</span><span class="n">v</span><span class="p">));</span>
+</pre></div>
+</div>
+</div></blockquote>
+<p>In this kind of situation, the check will note that the use and move are
+unsequenced.</p>
+<p>The check will also take sequencing rules into account when reinitializations
+occur in the same statement as moves or uses. A reinitialization is only
+considered to reinitialize a variable if it is guaranteed to be evaluated after
+the move and before the use.</p>
+</div>
+<div class="section" id="move">
+<h2>Move<a class="headerlink" href="#move" title="Permalink to this headline">¶</a></h2>
+<p>The check currently only considers calls of <tt class="docutils literal"><span class="pre">std::move</span></tt> on local variables or
+function parameters. It does not check moves of member variables or global
+variables.</p>
+<p>Any call of <tt class="docutils literal"><span class="pre">std::move</span></tt> on a variable is considered to cause a move of that
+variable, even if the result of <tt class="docutils literal"><span class="pre">std::move</span></tt> is not passed to an rvalue
+reference parameter.</p>
+<p>This means that the check will flag a use-after-move even on a type that does
+not define a move constructor or move assignment operator. This is intentional.
+Developers may use <tt class="docutils literal"><span class="pre">std::move</span></tt> on such a type in the expectation that the type
+will add move semantics in the future. If such a <tt class="docutils literal"><span class="pre">std::move</span></tt> has the potential
+to cause a use-after-move, we want to warn about it even if the type does not
+implement move semantics yet.</p>
+<p>Furthermore, if the result of <tt class="docutils literal"><span class="pre">std::move</span></tt> <em>is</em> passed to an rvalue reference
+parameter, this will always be considered to cause a move, even if the function
+that consumes this parameter does not move from it, or if it does so only
+conditionally. For example, in the following situation, the check will assume
+that a move always takes place:</p>
+<blockquote>
+<div><div class="highlight-c++"><div class="highlight"><pre><span></span><span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o"><</span><span class="n">std</span><span class="o">::</span><span class="n">string</span><span class="o">></span> <span class="n">messages</span><span class="p">;</span>
+<span class="kt">void</span> <span class="nf">f</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="o">&&</span><span class="n">str</span><span class="p">)</span> <span class="p">{</span>
+  <span class="c1">// Only remember the message if it isn't empty.</span>
+  <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="n">str</span><span class="p">.</span><span class="n">empty</span><span class="p">())</span> <span class="p">{</span>
+    <span class="n">messages</span><span class="p">.</span><span class="n">emplace_back</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">move</span><span class="p">(</span><span class="n">str</span><span class="p">));</span>
+  <span class="p">}</span>
+<span class="p">}</span>
+<span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="n">str</span> <span class="o">=</span> <span class="s">""</span><span class="p">;</span>
+<span class="n">f</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">move</span><span class="p">(</span><span class="n">str</span><span class="p">));</span>
+</pre></div>
+</div>
+</div></blockquote>
+<p>The check will assume that the last line causes a move, even though, in this
+particular case, it does not. Again, this is intentional.</p>
+<p>When analyzing the order in which moves, uses and reinitializations happen (see
+section <a class="reference internal" href="#unsequenced-moves-uses-and-reinitializations">Unsequenced moves, uses, and reinitializations</a>), the move is assumed
+to occur in whichever function the result of the <tt class="docutils literal"><span class="pre">std::move</span></tt> is passed to.</p>
+</div>
+<div class="section" id="use">
+<h2>Use<a class="headerlink" href="#use" title="Permalink to this headline">¶</a></h2>
+<p>Any occurrence of the moved variable that is not a reinitialization (see below)
+is considered to be a use.</p>
+<p>An exception to this are objects of type <tt class="docutils literal"><span class="pre">std::unique_ptr</span></tt>,
+<tt class="docutils literal"><span class="pre">std::shared_ptr</span></tt> and <tt class="docutils literal"><span class="pre">std::weak_ptr</span></tt>, which have defined move behavior
+(objects of these classes are guaranteed to be empty after they have been moved
+from). Therefore, an object of these classes will only be considered to be used
+if it is dereferenced, i.e. if <tt class="docutils literal"><span class="pre">operator*</span></tt>, <tt class="docutils literal"><span class="pre">operator-></span></tt> or <tt class="docutils literal"><span class="pre">operator[]</span></tt>
+(in the case of <tt class="docutils literal"><span class="pre">std::unique_ptr<T</span> <span class="pre">[]></span></tt>) is called on it.</p>
+<p>If multiple uses occur after a move, only the first of these is flagged.</p>
+</div>
+<div class="section" id="reinitialization">
+<h2>Reinitialization<a class="headerlink" href="#reinitialization" title="Permalink to this headline">¶</a></h2>
+<p>The check considers a variable to be reinitialized in the following cases:</p>
+<blockquote>
+<div><ul class="simple">
+<li>The variable occurs on the left-hand side of an assignment.</li>
+<li>The variable is passed to a function as a non-const pointer or non-const
+lvalue reference. (It is assumed that the variable may be an out-parameter
+for the function.)</li>
+<li><tt class="docutils literal"><span class="pre">clear()</span></tt> or <tt class="docutils literal"><span class="pre">assign()</span></tt> is called on the variable and the variable is of
+one of the standard container types <tt class="docutils literal"><span class="pre">basic_string</span></tt>, <tt class="docutils literal"><span class="pre">vector</span></tt>, <tt class="docutils literal"><span class="pre">deque</span></tt>,
+<tt class="docutils literal"><span class="pre">forward_list</span></tt>, <tt class="docutils literal"><span class="pre">list</span></tt>, <tt class="docutils literal"><span class="pre">set</span></tt>, <tt class="docutils literal"><span class="pre">map</span></tt>, <tt class="docutils literal"><span class="pre">multiset</span></tt>, <tt class="docutils literal"><span class="pre">multimap</span></tt>,
+<tt class="docutils literal"><span class="pre">unordered_set</span></tt>, <tt class="docutils literal"><span class="pre">unordered_map</span></tt>, <tt class="docutils literal"><span class="pre">unordered_multiset</span></tt>,
+<tt class="docutils literal"><span class="pre">unordered_multimap</span></tt>.</li>
+<li><tt class="docutils literal"><span class="pre">reset()</span></tt> is called on the variable and the variable is of type
+<tt class="docutils literal"><span class="pre">std::unique_ptr</span></tt>, <tt class="docutils literal"><span class="pre">std::shared_ptr</span></tt> or <tt class="docutils literal"><span class="pre">std::weak_ptr</span></tt>.</li>
+</ul>
+</div></blockquote>
+<p>If the variable in question is a struct and an individual member variable of
+that struct is written to, the check does not consider this to be a
+reinitialization – even if, eventually, all member variables of the struct are
+written to. For example:</p>
+<blockquote>
+<div><div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">struct</span> <span class="n">S</span> <span class="p">{</span>
+  <span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="n">str</span><span class="p">;</span>
+  <span class="kt">int</span> <span class="n">i</span><span class="p">;</span>
+<span class="p">};</span>
+<span class="n">S</span> <span class="n">s</span> <span class="o">=</span> <span class="p">{</span> <span class="s">"Hello, world!</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span> <span class="mi">42</span> <span class="p">};</span>
+<span class="n">S</span> <span class="n">s_other</span> <span class="o">=</span> <span class="n">std</span><span class="o">::</span><span class="n">move</span><span class="p">(</span><span class="n">s</span><span class="p">);</span>
+<span class="n">s</span><span class="p">.</span><span class="n">str</span> <span class="o">=</span> <span class="s">"Lorem ipsum"</span><span class="p">;</span>
+<span class="n">s</span><span class="p">.</span><span class="n">i</span> <span class="o">=</span> <span class="mi">99</span><span class="p">;</span>
+</pre></div>
+</div>
+</div></blockquote>
+<p>The check will not consider <tt class="docutils literal"><span class="pre">s</span></tt> to be reinitialized after the last line;
+instead, the line that assigns to <tt class="docutils literal"><span class="pre">s.str</span></tt> will be flagged as a use-after-move.
+This is intentional as this pattern of reinitializing a struct is error-prone.
+For example, if an additional member variable is added to <tt class="docutils literal"><span class="pre">S</span></tt>, it is easy to
+forget to add the reinitialization for this additional member. Instead, it is
+safer to assign to the entire struct in one go, and this will also avoid the
+use-after-move warning.</p>
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="misc-unused-using-decls.html">misc-unused-using-decls</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="misc-virtual-near-miss.html">misc-virtual-near-miss</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-virtual-near-miss.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-virtual-near-miss.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-virtual-near-miss.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/misc-virtual-near-miss.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,87 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - misc-virtual-near-miss — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="modernize-avoid-bind" href="modernize-avoid-bind.html" />
+    <link rel="prev" title="misc-use-after-move" href="misc-use-after-move.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - misc-virtual-near-miss</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="misc-use-after-move.html">misc-use-after-move</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-avoid-bind.html">modernize-avoid-bind</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="misc-virtual-near-miss">
+<h1>misc-virtual-near-miss<a class="headerlink" href="#misc-virtual-near-miss" title="Permalink to this headline">¶</a></h1>
+<p>Warn if a function is a near miss (ie. the name is very similar and the function
+signiture is the same) to a virtual function from a base class.</p>
+<p>Example:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">struct</span> <span class="n">Base</span> <span class="p">{</span>
+  <span class="k">virtual</span> <span class="kt">void</span> <span class="n">func</span><span class="p">();</span>
+<span class="p">};</span>
+
+<span class="k">struct</span> <span class="nl">Derived</span> <span class="p">:</span> <span class="n">Base</span> <span class="p">{</span>
+  <span class="k">virtual</span> <span class="n">funk</span><span class="p">();</span>
+  <span class="c1">// warning: 'Derived::funk' has a similar name and the same signature as virtual method 'Base::func'; did you mean to override it?</span>
+<span class="p">};</span>
+</pre></div>
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="misc-use-after-move.html">misc-use-after-move</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-avoid-bind.html">modernize-avoid-bind</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-avoid-bind.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-avoid-bind.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-avoid-bind.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-avoid-bind.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,98 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - modernize-avoid-bind — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="modernize-deprecated-headers" href="modernize-deprecated-headers.html" />
+    <link rel="prev" title="misc-virtual-near-miss" href="misc-virtual-near-miss.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - modernize-avoid-bind</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="misc-virtual-near-miss.html">misc-virtual-near-miss</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-deprecated-headers.html">modernize-deprecated-headers</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="modernize-avoid-bind">
+<h1>modernize-avoid-bind<a class="headerlink" href="#modernize-avoid-bind" title="Permalink to this headline">¶</a></h1>
+<p>The check finds uses of <tt class="docutils literal"><span class="pre">std::bind</span></tt> and replaces simple uses with lambdas.
+Lambdas will use value-capture where required.</p>
+<p>Right now it only handles free functions, not member functions.</p>
+<p>Given:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="kt">int</span> <span class="nf">add</span><span class="p">(</span><span class="kt">int</span> <span class="n">x</span><span class="p">,</span> <span class="kt">int</span> <span class="n">y</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="n">x</span> <span class="o">+</span> <span class="n">y</span><span class="p">;</span> <span class="p">}</span>
+</pre></div>
+</div>
+<p>Then:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="kt">void</span> <span class="nf">f</span><span class="p">()</span> <span class="p">{</span>
+  <span class="kt">int</span> <span class="n">x</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span>
+  <span class="k">auto</span> <span class="n">clj</span> <span class="o">=</span> <span class="n">std</span><span class="o">::</span><span class="n">bind</span><span class="p">(</span><span class="n">add</span><span class="p">,</span> <span class="n">x</span><span class="p">,</span> <span class="n">_1</span><span class="p">);</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<p>is replaced by:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="kt">void</span> <span class="nf">f</span><span class="p">()</span> <span class="p">{</span>
+  <span class="kt">int</span> <span class="n">x</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span>
+  <span class="k">auto</span> <span class="n">clj</span> <span class="o">=</span> <span class="p">[</span><span class="o">=</span><span class="p">](</span><span class="k">auto</span> <span class="o">&&</span> <span class="n">arg1</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="n">add</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">arg1</span><span class="p">);</span> <span class="p">};</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<p><tt class="docutils literal"><span class="pre">std::bind</span></tt> can be hard to read and can result in larger object files and
+binaries due to type information that will not be produced by equivalent
+lambdas.</p>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="misc-virtual-near-miss.html">misc-virtual-near-miss</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-deprecated-headers.html">modernize-deprecated-headers</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-deprecated-headers.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-deprecated-headers.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-deprecated-headers.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-deprecated-headers.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,116 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - modernize-deprecated-headers — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="modernize-loop-convert" href="modernize-loop-convert.html" />
+    <link rel="prev" title="modernize-avoid-bind" href="modernize-avoid-bind.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - modernize-deprecated-headers</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="modernize-avoid-bind.html">modernize-avoid-bind</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-loop-convert.html">modernize-loop-convert</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="modernize-deprecated-headers">
+<h1>modernize-deprecated-headers<a class="headerlink" href="#modernize-deprecated-headers" title="Permalink to this headline">¶</a></h1>
+<p>Some headers from C library were deprecated in C++ and are no longer welcome in
+C++ codebases. Some have no effect in C++. For more details refer to the C++ 14
+Standard [depr.c.headers] section.</p>
+<p>This check replaces C standard library headers with their C++ alternatives and
+removes redundant ones.</p>
+<p>Improtant note: the Standard doesn’t guarantee that the C++ headers declare all
+the same functions in the global namespace. The check in its current form can
+break the code that uses library symbols from the global namespace.</p>
+<ul class="simple">
+<li><cite><assert.h></cite></li>
+<li><cite><complex.h></cite></li>
+<li><cite><ctype.h></cite></li>
+<li><cite><errno.h></cite></li>
+<li><cite><fenv.h></cite>     // deprecated since C++11</li>
+<li><cite><float.h></cite></li>
+<li><cite><inttypes.h></cite></li>
+<li><cite><limits.h></cite></li>
+<li><cite><locale.h></cite></li>
+<li><cite><math.h></cite></li>
+<li><cite><setjmp.h></cite></li>
+<li><cite><signal.h></cite></li>
+<li><cite><stdarg.h></cite></li>
+<li><cite><stddef.h></cite></li>
+<li><cite><stdint.h></cite></li>
+<li><cite><stdio.h></cite></li>
+<li><cite><stdlib.h></cite></li>
+<li><cite><string.h></cite></li>
+<li><cite><tgmath.h></cite>   // deprecated since C++11</li>
+<li><cite><time.h></cite></li>
+<li><cite><uchar.h></cite>    // deprecated since C++11</li>
+<li><cite><wchar.h></cite></li>
+<li><cite><wctype.h></cite></li>
+</ul>
+<p>If the specified standard is older than C++11 the check will only replace
+headers deprecated before C++11, otherwise – every header that appeared in
+the previous list.</p>
+<p>These headers don’t have effect in C++:</p>
+<ul class="simple">
+<li><cite><iso646.h></cite></li>
+<li><cite><stdalign.h></cite></li>
+<li><cite><stdbool.h></cite></li>
+</ul>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="modernize-avoid-bind.html">modernize-avoid-bind</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-loop-convert.html">modernize-loop-convert</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-loop-convert.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-loop-convert.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-loop-convert.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-loop-convert.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,295 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - modernize-loop-convert — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="modernize-make-shared" href="modernize-make-shared.html" />
+    <link rel="prev" title="modernize-deprecated-headers" href="modernize-deprecated-headers.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - modernize-loop-convert</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="modernize-deprecated-headers.html">modernize-deprecated-headers</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-make-shared.html">modernize-make-shared</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="modernize-loop-convert">
+<h1>modernize-loop-convert<a class="headerlink" href="#modernize-loop-convert" title="Permalink to this headline">¶</a></h1>
+<p>This check converts <tt class="docutils literal"><span class="pre">for(...;</span> <span class="pre">...;</span> <span class="pre">...)</span></tt> loops to use the new range-based
+loops in C++11.</p>
+<p>Three kinds of loops can be converted:</p>
+<ul class="simple">
+<li>Loops over statically allocated arrays.</li>
+<li>Loops over containers, using iterators.</li>
+<li>Loops over array-like containers, using <tt class="docutils literal"><span class="pre">operator[]</span></tt> and <tt class="docutils literal"><span class="pre">at()</span></tt>.</li>
+</ul>
+<div class="section" id="minconfidence-option">
+<h2>MinConfidence option<a class="headerlink" href="#minconfidence-option" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="risky">
+<h3>risky<a class="headerlink" href="#risky" title="Permalink to this headline">¶</a></h3>
+<p>In loops where the container expression is more complex than just a
+reference to a declared expression (a variable, function, enum, etc.),
+and some part of it appears elsewhere in the loop, we lower our confidence
+in the transformation due to the increased risk of changing semantics.
+Transformations for these loops are marked as <cite>risky</cite>, and thus will only
+be converted if the minimum required confidence level is set to <cite>risky</cite>.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="kt">int</span> <span class="n">arr</span><span class="p">[</span><span class="mi">10</span><span class="p">][</span><span class="mi">20</span><span class="p">];</span>
+<span class="kt">int</span> <span class="n">l</span> <span class="o">=</span> <span class="mi">5</span><span class="p">;</span>
+
+<span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o"><</span> <span class="mi">20</span><span class="p">;</span> <span class="o">++</span><span class="n">j</span><span class="p">)</span>
+  <span class="kt">int</span> <span class="n">k</span> <span class="o">=</span> <span class="n">arr</span><span class="p">[</span><span class="n">l</span><span class="p">][</span><span class="n">j</span><span class="p">]</span> <span class="o">+</span> <span class="n">l</span><span class="p">;</span> <span class="c1">// using l outside arr[l] is considered risky</span>
+
+<span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o"><</span> <span class="n">obj</span><span class="p">.</span><span class="n">getVector</span><span class="p">().</span><span class="n">size</span><span class="p">();</span> <span class="o">++</span><span class="n">i</span><span class="p">)</span>
+  <span class="n">obj</span><span class="p">.</span><span class="n">foo</span><span class="p">(</span><span class="mi">10</span><span class="p">);</span> <span class="c1">// using 'obj' is considered risky</span>
+</pre></div>
+</div>
+<p>See
+<a class="reference internal" href="#incorrectriskytransformation"><em>Range-based loops evaluate end() only once</em></a>
+for an example of an incorrect transformation when the minimum required confidence
+level is set to <cite>risky</cite>.</p>
+</div>
+<div class="section" id="reasonable-default">
+<h3>reasonable (Default)<a class="headerlink" href="#reasonable-default" title="Permalink to this headline">¶</a></h3>
+<p>If a loop calls <tt class="docutils literal"><span class="pre">.end()</span></tt> or <tt class="docutils literal"><span class="pre">.size()</span></tt> after each iteration, the
+transformation for that loop is marked as <cite>reasonable</cite>, and thus will
+be converted if the required confidence level is set to <cite>reasonable</cite>
+(default) or lower.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="c1">// using size() is considered reasonable</span>
+<span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o"><</span> <span class="n">container</span><span class="p">.</span><span class="n">size</span><span class="p">();</span> <span class="o">++</span><span class="n">i</span><span class="p">)</span>
+  <span class="n">cout</span> <span class="o"><<</span> <span class="n">container</span><span class="p">[</span><span class="n">i</span><span class="p">];</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="safe">
+<h3>safe<a class="headerlink" href="#safe" title="Permalink to this headline">¶</a></h3>
+<p>Any other loops that do not match the above criteria to be marked as
+<cite>risky</cite> or <cite>reasonable</cite> are marked <cite>safe</cite>, and thus will be converted
+if the required confidence level is set to <cite>safe</cite> or lower.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="kt">int</span> <span class="n">arr</span><span class="p">[]</span> <span class="o">=</span> <span class="p">{</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">};</span>
+
+<span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o"><</span> <span class="mi">3</span><span class="p">;</span> <span class="o">++</span><span class="n">i</span><span class="p">)</span>
+  <span class="n">cout</span> <span class="o"><<</span> <span class="n">arr</span><span class="p">[</span><span class="n">i</span><span class="p">];</span>
+</pre></div>
+</div>
+</div>
+</div>
+<div class="section" id="example">
+<h2>Example<a class="headerlink" href="#example" title="Permalink to this headline">¶</a></h2>
+<p>Original:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">const</span> <span class="kt">int</span> <span class="n">N</span> <span class="o">=</span> <span class="mi">5</span><span class="p">;</span>
+<span class="kt">int</span> <span class="n">arr</span><span class="p">[]</span> <span class="o">=</span> <span class="p">{</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">4</span><span class="p">,</span><span class="mi">5</span><span class="p">};</span>
+<span class="n">vector</span><span class="o"><</span><span class="kt">int</span><span class="o">></span> <span class="n">v</span><span class="p">;</span>
+<span class="n">v</span><span class="p">.</span><span class="n">push_back</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span>
+<span class="n">v</span><span class="p">.</span><span class="n">push_back</span><span class="p">(</span><span class="mi">2</span><span class="p">);</span>
+<span class="n">v</span><span class="p">.</span><span class="n">push_back</span><span class="p">(</span><span class="mi">3</span><span class="p">);</span>
+
+<span class="c1">// safe conversion</span>
+<span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o"><</span> <span class="n">N</span><span class="p">;</span> <span class="o">++</span><span class="n">i</span><span class="p">)</span>
+  <span class="n">cout</span> <span class="o"><<</span> <span class="n">arr</span><span class="p">[</span><span class="n">i</span><span class="p">];</span>
+
+<span class="c1">// reasonable conversion</span>
+<span class="k">for</span> <span class="p">(</span><span class="n">vector</span><span class="o"><</span><span class="kt">int</span><span class="o">>::</span><span class="n">iterator</span> <span class="n">it</span> <span class="o">=</span> <span class="n">v</span><span class="p">.</span><span class="n">begin</span><span class="p">();</span> <span class="n">it</span> <span class="o">!=</span> <span class="n">v</span><span class="p">.</span><span class="n">end</span><span class="p">();</span> <span class="o">++</span><span class="n">it</span><span class="p">)</span>
+  <span class="n">cout</span> <span class="o"><<</span> <span class="o">*</span><span class="n">it</span><span class="p">;</span>
+
+<span class="c1">// reasonable conversion</span>
+<span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o"><</span> <span class="n">v</span><span class="p">.</span><span class="n">size</span><span class="p">();</span> <span class="o">++</span><span class="n">i</span><span class="p">)</span>
+  <span class="n">cout</span> <span class="o"><<</span> <span class="n">v</span><span class="p">[</span><span class="n">i</span><span class="p">];</span>
+</pre></div>
+</div>
+<p>After applying the check with minimum confidence level set to <cite>reasonable</cite> (default):</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">const</span> <span class="kt">int</span> <span class="n">N</span> <span class="o">=</span> <span class="mi">5</span><span class="p">;</span>
+<span class="kt">int</span> <span class="n">arr</span><span class="p">[]</span> <span class="o">=</span> <span class="p">{</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">4</span><span class="p">,</span><span class="mi">5</span><span class="p">};</span>
+<span class="n">vector</span><span class="o"><</span><span class="kt">int</span><span class="o">></span> <span class="n">v</span><span class="p">;</span>
+<span class="n">v</span><span class="p">.</span><span class="n">push_back</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span>
+<span class="n">v</span><span class="p">.</span><span class="n">push_back</span><span class="p">(</span><span class="mi">2</span><span class="p">);</span>
+<span class="n">v</span><span class="p">.</span><span class="n">push_back</span><span class="p">(</span><span class="mi">3</span><span class="p">);</span>
+
+<span class="c1">// safe conversion</span>
+<span class="k">for</span> <span class="p">(</span><span class="k">auto</span> <span class="o">&</span> <span class="nl">elem</span> <span class="p">:</span> <span class="n">arr</span><span class="p">)</span>
+  <span class="n">cout</span> <span class="o"><<</span> <span class="n">elem</span><span class="p">;</span>
+
+<span class="c1">// reasonable conversion</span>
+<span class="k">for</span> <span class="p">(</span><span class="k">auto</span> <span class="o">&</span> <span class="nl">elem</span> <span class="p">:</span> <span class="n">v</span><span class="p">)</span>
+  <span class="n">cout</span> <span class="o"><<</span> <span class="n">elem</span><span class="p">;</span>
+
+<span class="c1">// reasonable conversion</span>
+<span class="k">for</span> <span class="p">(</span><span class="k">auto</span> <span class="o">&</span> <span class="nl">elem</span> <span class="p">:</span> <span class="n">v</span><span class="p">)</span>
+  <span class="n">cout</span> <span class="o"><<</span> <span class="n">elem</span><span class="p">;</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="limitations">
+<h2>Limitations<a class="headerlink" href="#limitations" title="Permalink to this headline">¶</a></h2>
+<p>There are certain situations where the tool may erroneously perform
+transformations that remove information and change semantics. Users of the tool
+should be aware of the behaviour and limitations of the check outlined by
+the cases below.</p>
+<div class="section" id="comments-inside-loop-headers">
+<h3>Comments inside loop headers<a class="headerlink" href="#comments-inside-loop-headers" title="Permalink to this headline">¶</a></h3>
+<p>Comments inside the original loop header are ignored and deleted when
+transformed.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o"><</span> <span class="n">N</span><span class="p">;</span> <span class="cm">/* This will be deleted */</span> <span class="o">++</span><span class="n">i</span><span class="p">)</span> <span class="p">{</span> <span class="p">}</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="range-based-loops-evaluate-end-only-once">
+<h3>Range-based loops evaluate end() only once<a class="headerlink" href="#range-based-loops-evaluate-end-only-once" title="Permalink to this headline">¶</a></h3>
+<p>The C++11 range-based for loop calls <tt class="docutils literal"><span class="pre">.end()</span></tt> only once during the
+initialization of the loop. If in the original loop <tt class="docutils literal"><span class="pre">.end()</span></tt> is called after
+each iteration the semantics of the transformed loop may differ.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="c1">// The following is semantically equivalent to the C++11 range-based for loop,</span>
+<span class="c1">// therefore the semantics of the header will not change.</span>
+<span class="k">for</span> <span class="p">(</span><span class="n">iterator</span> <span class="n">it</span> <span class="o">=</span> <span class="n">container</span><span class="p">.</span><span class="n">begin</span><span class="p">(),</span> <span class="n">e</span> <span class="o">=</span> <span class="n">container</span><span class="p">.</span><span class="n">end</span><span class="p">();</span> <span class="n">it</span> <span class="o">!=</span> <span class="n">e</span><span class="p">;</span> <span class="o">++</span><span class="n">it</span><span class="p">)</span> <span class="p">{</span> <span class="p">}</span>
+
+<span class="c1">// Instead of calling .end() after each iteration, this loop will be</span>
+<span class="c1">// transformed to call .end() only once during the initialization of the loop,</span>
+<span class="c1">// which may affect semantics.</span>
+<span class="k">for</span> <span class="p">(</span><span class="n">iterator</span> <span class="n">it</span> <span class="o">=</span> <span class="n">container</span><span class="p">.</span><span class="n">begin</span><span class="p">();</span> <span class="n">it</span> <span class="o">!=</span> <span class="n">container</span><span class="p">.</span><span class="n">end</span><span class="p">();</span> <span class="o">++</span><span class="n">it</span><span class="p">)</span> <span class="p">{</span> <span class="p">}</span>
+</pre></div>
+</div>
+<p id="incorrectriskytransformation">As explained above, calling member functions of the container in the body
+of the loop is considered <cite>risky</cite>. If the called member function modifies the
+container the semantics of the converted loop will differ due to <tt class="docutils literal"><span class="pre">.end()</span></tt>
+being called only once.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="kt">bool</span> <span class="n">flag</span> <span class="o">=</span> <span class="nb">false</span><span class="p">;</span>
+<span class="k">for</span> <span class="p">(</span><span class="n">vector</span><span class="o"><</span><span class="n">T</span><span class="o">>::</span><span class="n">iterator</span> <span class="n">it</span> <span class="o">=</span> <span class="n">vec</span><span class="p">.</span><span class="n">begin</span><span class="p">();</span> <span class="n">it</span> <span class="o">!=</span> <span class="n">vec</span><span class="p">.</span><span class="n">end</span><span class="p">();</span> <span class="o">++</span><span class="n">it</span><span class="p">)</span> <span class="p">{</span>
+  <span class="c1">// Add a copy of the first element to the end of the vector.</span>
+  <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="n">flag</span><span class="p">)</span> <span class="p">{</span>
+    <span class="c1">// This line makes this transformation 'risky'.</span>
+    <span class="n">vec</span><span class="p">.</span><span class="n">push_back</span><span class="p">(</span><span class="o">*</span><span class="n">it</span><span class="p">);</span>
+    <span class="n">flag</span> <span class="o">=</span> <span class="nb">true</span><span class="p">;</span>
+  <span class="p">}</span>
+  <span class="n">cout</span> <span class="o"><<</span> <span class="o">*</span><span class="n">it</span><span class="p">;</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<p>The original code above prints out the contents of the container including the
+newly added element while the converted loop, shown below, will only print the
+original contents and not the newly added element.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="kt">bool</span> <span class="n">flag</span> <span class="o">=</span> <span class="nb">false</span><span class="p">;</span>
+<span class="k">for</span> <span class="p">(</span><span class="k">auto</span> <span class="o">&</span> <span class="nl">elem</span> <span class="p">:</span> <span class="n">vec</span><span class="p">)</span> <span class="p">{</span>
+  <span class="c1">// Add a copy of the first element to the end of the vector.</span>
+  <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="n">flag</span><span class="p">)</span> <span class="p">{</span>
+    <span class="c1">// This line makes this transformation 'risky'</span>
+    <span class="n">vec</span><span class="p">.</span><span class="n">push_back</span><span class="p">(</span><span class="n">elem</span><span class="p">);</span>
+    <span class="n">flag</span> <span class="o">=</span> <span class="nb">true</span><span class="p">;</span>
+  <span class="p">}</span>
+  <span class="n">cout</span> <span class="o"><<</span> <span class="n">elem</span><span class="p">;</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<p>Semantics will also be affected if <tt class="docutils literal"><span class="pre">.end()</span></tt> has side effects. For example, in
+the case where calls to <tt class="docutils literal"><span class="pre">.end()</span></tt> are logged the semantics will change in the
+transformed loop if <tt class="docutils literal"><span class="pre">.end()</span></tt> was originally called after each iteration.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="n">iterator</span> <span class="nf">end</span><span class="p">()</span> <span class="p">{</span>
+  <span class="n">num_of_end_calls</span><span class="o">++</span><span class="p">;</span>
+  <span class="k">return</span> <span class="n">container</span><span class="p">.</span><span class="n">end</span><span class="p">();</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="overloaded-operator-with-side-effects">
+<h3>Overloaded operator->() with side effects<a class="headerlink" href="#overloaded-operator-with-side-effects" title="Permalink to this headline">¶</a></h3>
+<p>Similarly, if <tt class="docutils literal"><span class="pre">operator->()</span></tt> was overloaded to have side effects, such as
+logging, the semantics will change. If the iterator’s <tt class="docutils literal"><span class="pre">operator->()</span></tt> was used
+in the original loop it will be replaced with <tt class="docutils literal"><span class="pre"><container</span> <span class="pre">element>.<member></span></tt>
+instead due to the implicit dereference as part of the range-based for loop.
+Therefore any side effect of the overloaded <tt class="docutils literal"><span class="pre">operator->()</span></tt> will no longer be
+performed.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">for</span> <span class="p">(</span><span class="n">iterator</span> <span class="n">it</span> <span class="o">=</span> <span class="n">c</span><span class="p">.</span><span class="n">begin</span><span class="p">();</span> <span class="n">it</span> <span class="o">!=</span> <span class="n">c</span><span class="p">.</span><span class="n">end</span><span class="p">();</span> <span class="o">++</span><span class="n">it</span><span class="p">)</span> <span class="p">{</span>
+  <span class="n">it</span><span class="o">-></span><span class="n">func</span><span class="p">();</span> <span class="c1">// Using operator->()</span>
+<span class="p">}</span>
+<span class="c1">// Will be transformed to:</span>
+<span class="k">for</span> <span class="p">(</span><span class="k">auto</span> <span class="o">&</span> <span class="nl">elem</span> <span class="p">:</span> <span class="n">c</span><span class="p">)</span> <span class="p">{</span>
+  <span class="n">elem</span><span class="p">.</span><span class="n">func</span><span class="p">();</span> <span class="c1">// No longer using operator->()</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="pointers-and-references-to-containers">
+<h3>Pointers and references to containers<a class="headerlink" href="#pointers-and-references-to-containers" title="Permalink to this headline">¶</a></h3>
+<p>While most of the check’s risk analysis is dedicated to determining whether
+the iterator or container was modified within the loop, it is possible to
+circumvent the analysis by accessing and modifying the container through a
+pointer or reference.</p>
+<p>If the container were directly used instead of using the pointer or reference
+the following transformation would have only been applied at the <cite>risky</cite>
+level since calling a member function of the container is considered <cite>risky</cite>.
+The check cannot identify expressions associated with the container that are
+different than the one used in the loop header, therefore the transformation
+below ends up being performed at the <cite>safe</cite> level.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="n">vector</span><span class="o"><</span><span class="kt">int</span><span class="o">></span> <span class="n">vec</span><span class="p">;</span>
+
+<span class="n">vector</span><span class="o"><</span><span class="kt">int</span><span class="o">></span> <span class="o">*</span><span class="n">ptr</span> <span class="o">=</span> <span class="o">&</span><span class="n">vec</span><span class="p">;</span>
+<span class="n">vector</span><span class="o"><</span><span class="kt">int</span><span class="o">></span> <span class="o">&</span><span class="n">ref</span> <span class="o">=</span> <span class="n">vec</span><span class="p">;</span>
+
+<span class="k">for</span> <span class="p">(</span><span class="n">vector</span><span class="o"><</span><span class="kt">int</span><span class="o">>::</span><span class="n">iterator</span> <span class="n">it</span> <span class="o">=</span> <span class="n">vec</span><span class="p">.</span><span class="n">begin</span><span class="p">(),</span> <span class="n">e</span> <span class="o">=</span> <span class="n">vec</span><span class="p">.</span><span class="n">end</span><span class="p">();</span> <span class="n">it</span> <span class="o">!=</span> <span class="n">e</span><span class="p">;</span> <span class="o">++</span><span class="n">it</span><span class="p">)</span> <span class="p">{</span>
+  <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="n">flag</span><span class="p">)</span> <span class="p">{</span>
+    <span class="c1">// Accessing and modifying the container is considered risky, but the risk</span>
+    <span class="c1">// level is not raised here.</span>
+    <span class="n">ptr</span><span class="o">-></span><span class="n">push_back</span><span class="p">(</span><span class="o">*</span><span class="n">it</span><span class="p">);</span>
+    <span class="n">ref</span><span class="p">.</span><span class="n">push_back</span><span class="p">(</span><span class="o">*</span><span class="n">it</span><span class="p">);</span>
+    <span class="n">flag</span> <span class="o">=</span> <span class="nb">true</span><span class="p">;</span>
+  <span class="p">}</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+</div>
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="modernize-deprecated-headers.html">modernize-deprecated-headers</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-make-shared.html">modernize-make-shared</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-make-shared.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-make-shared.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-make-shared.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-make-shared.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - modernize-make-shared — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="modernize-make-unique" href="modernize-make-unique.html" />
+    <link rel="prev" title="modernize-loop-convert" href="modernize-loop-convert.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - modernize-make-shared</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="modernize-loop-convert.html">modernize-loop-convert</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-make-unique.html">modernize-make-unique</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="modernize-make-shared">
+<h1>modernize-make-shared<a class="headerlink" href="#modernize-make-shared" title="Permalink to this headline">¶</a></h1>
+<p>This check finds the creation of <tt class="docutils literal"><span class="pre">std::shared_ptr</span></tt> objects by explicitly
+calling the constructor and a <tt class="docutils literal"><span class="pre">new</span></tt> expression, and replaces it with a call
+to <tt class="docutils literal"><span class="pre">std::make_shared</span></tt>.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">auto</span> <span class="n">my_ptr</span> <span class="o">=</span> <span class="n">std</span><span class="o">::</span><span class="n">shared_ptr</span><span class="o"><</span><span class="n">MyPair</span><span class="o">></span><span class="p">(</span><span class="k">new</span> <span class="n">MyPair</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">));</span>
+
+<span class="c1">// becomes</span>
+
+<span class="k">auto</span> <span class="n">my_ptr</span> <span class="o">=</span> <span class="n">std</span><span class="o">::</span><span class="n">make_shared</span><span class="o"><</span><span class="n">MyPair</span><span class="o">></span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">);</span>
+</pre></div>
+</div>
+<p>This check also finds calls to <tt class="docutils literal"><span class="pre">std::shared_ptr::reset()</span></tt> with a <tt class="docutils literal"><span class="pre">new</span></tt>
+expression, and replaces it with a call to <tt class="docutils literal"><span class="pre">std::make_shared</span></tt>.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="n">my_ptr</span><span class="p">.</span><span class="n">reset</span><span class="p">(</span><span class="k">new</span> <span class="n">MyPair</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">));</span>
+
+<span class="c1">// becomes</span>
+
+<span class="n">my_ptr</span> <span class="o">=</span> <span class="n">std</span><span class="o">::</span><span class="n">make_shared</span><span class="o"><</span><span class="n">MyPair</span><span class="o">></span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">);</span>
+</pre></div>
+</div>
+<div class="section" id="options">
+<h2>Options<a class="headerlink" href="#options" title="Permalink to this headline">¶</a></h2>
+<dl class="option">
+<dt id="cmdoption-arg-MakeSmartPtrFunction">
+<tt class="descname">MakeSmartPtrFunction</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-MakeSmartPtrFunction" title="Permalink to this definition">¶</a></dt>
+<dd><p>A string specifying the name of make-shared-ptr function. Default is
+<cite>std::make_shared</cite>.</p>
+</dd></dl>
+
+<dl class="option">
+<dt id="cmdoption-arg-MakeSmartPtrFunctionHeader">
+<tt class="descname">MakeSmartPtrFunctionHeader</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-MakeSmartPtrFunctionHeader" title="Permalink to this definition">¶</a></dt>
+<dd><p>A string specifying the corresponding header of make-shared-ptr function.
+Default is <cite>memory</cite>.</p>
+</dd></dl>
+
+<dl class="option">
+<dt id="cmdoption-arg-IncludeStyle">
+<tt class="descname">IncludeStyle</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-IncludeStyle" title="Permalink to this definition">¶</a></dt>
+<dd><p>A string specifying which include-style is used, <cite>llvm</cite> or <cite>google</cite>. Default
+is <cite>llvm</cite>.</p>
+</dd></dl>
+
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="modernize-loop-convert.html">modernize-loop-convert</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-make-unique.html">modernize-make-unique</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-make-unique.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-make-unique.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-make-unique.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-make-unique.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - modernize-make-unique — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="modernize-pass-by-value" href="modernize-pass-by-value.html" />
+    <link rel="prev" title="modernize-make-shared" href="modernize-make-shared.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - modernize-make-unique</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="modernize-make-shared.html">modernize-make-shared</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-pass-by-value.html">modernize-pass-by-value</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="modernize-make-unique">
+<h1>modernize-make-unique<a class="headerlink" href="#modernize-make-unique" title="Permalink to this headline">¶</a></h1>
+<p>This check finds the creation of <tt class="docutils literal"><span class="pre">std::unique_ptr</span></tt> objects by explicitly
+calling the constructor and a <tt class="docutils literal"><span class="pre">new</span></tt> expression, and replaces it with a call
+to <tt class="docutils literal"><span class="pre">std::make_unique</span></tt>, introduced in C++14.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">auto</span> <span class="n">my_ptr</span> <span class="o">=</span> <span class="n">std</span><span class="o">::</span><span class="n">unique_ptr</span><span class="o"><</span><span class="n">MyPair</span><span class="o">></span><span class="p">(</span><span class="k">new</span> <span class="n">MyPair</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">));</span>
+
+<span class="c1">// becomes</span>
+
+<span class="k">auto</span> <span class="n">my_ptr</span> <span class="o">=</span> <span class="n">std</span><span class="o">::</span><span class="n">make_unique</span><span class="o"><</span><span class="n">MyPair</span><span class="o">></span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">);</span>
+</pre></div>
+</div>
+<p>This check also finds calls to <tt class="docutils literal"><span class="pre">std::unique_ptr::reset()</span></tt> with a <tt class="docutils literal"><span class="pre">new</span></tt>
+expression, and replaces it with a call to <tt class="docutils literal"><span class="pre">std::make_unique</span></tt>.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="n">my_ptr</span><span class="p">.</span><span class="n">reset</span><span class="p">(</span><span class="k">new</span> <span class="n">MyPair</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">));</span>
+
+<span class="c1">// becomes</span>
+
+<span class="n">my_ptr</span> <span class="o">=</span> <span class="n">std</span><span class="o">::</span><span class="n">make_unique</span><span class="o"><</span><span class="n">MyPair</span><span class="o">></span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">);</span>
+</pre></div>
+</div>
+<div class="section" id="options">
+<h2>Options<a class="headerlink" href="#options" title="Permalink to this headline">¶</a></h2>
+<dl class="option">
+<dt id="cmdoption-arg-MakeSmartPtrFunction">
+<tt class="descname">MakeSmartPtrFunction</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-MakeSmartPtrFunction" title="Permalink to this definition">¶</a></dt>
+<dd><p>A string specifying the name of make-unique-ptr function. Default is
+<cite>std::make_unique</cite>.</p>
+</dd></dl>
+
+<dl class="option">
+<dt id="cmdoption-arg-MakeSmartPtrFunctionHeader">
+<tt class="descname">MakeSmartPtrFunctionHeader</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-MakeSmartPtrFunctionHeader" title="Permalink to this definition">¶</a></dt>
+<dd><p>A string specifying the corresponding header of make-unique-ptr function.
+Default is <cite>memory</cite>.</p>
+</dd></dl>
+
+<dl class="option">
+<dt id="cmdoption-arg-IncludeStyle">
+<tt class="descname">IncludeStyle</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-IncludeStyle" title="Permalink to this definition">¶</a></dt>
+<dd><p>A string specifying which include-style is used, <cite>llvm</cite> or <cite>google</cite>. Default
+is <cite>llvm</cite>.</p>
+</dd></dl>
+
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="modernize-make-shared.html">modernize-make-shared</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-pass-by-value.html">modernize-pass-by-value</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-pass-by-value.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-pass-by-value.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-pass-by-value.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-pass-by-value.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,221 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - modernize-pass-by-value — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="modernize-raw-string-literal" href="modernize-raw-string-literal.html" />
+    <link rel="prev" title="modernize-make-unique" href="modernize-make-unique.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - modernize-pass-by-value</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="modernize-make-unique.html">modernize-make-unique</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-raw-string-literal.html">modernize-raw-string-literal</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="modernize-pass-by-value">
+<h1>modernize-pass-by-value<a class="headerlink" href="#modernize-pass-by-value" title="Permalink to this headline">¶</a></h1>
+<p>With move semantics added to the language and the standard library updated with
+move constructors added for many types it is now interesting to take an
+argument directly by value, instead of by const-reference, and then copy. This
+check allows the compiler to take care of choosing the best way to construct
+the copy.</p>
+<p>The transformation is usually beneficial when the calling code passes an
+<em>rvalue</em> and assumes the move construction is a cheap operation. This short
+example illustrates how the construction of the value happens:</p>
+<blockquote>
+<div><div class="highlight-c++"><div class="highlight"><pre><span></span><span class="kt">void</span> <span class="nf">foo</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="n">s</span><span class="p">);</span>
+<span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="n">get_str</span><span class="p">();</span>
+
+<span class="kt">void</span> <span class="nf">f</span><span class="p">(</span><span class="k">const</span> <span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="o">&</span><span class="n">str</span><span class="p">)</span> <span class="p">{</span>
+  <span class="n">foo</span><span class="p">(</span><span class="n">str</span><span class="p">);</span>       <span class="c1">// lvalue  -> copy construction</span>
+  <span class="n">foo</span><span class="p">(</span><span class="n">get_str</span><span class="p">());</span> <span class="c1">// prvalue -> move construction</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+</div></blockquote>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">Currently, only constructors are transformed to make use of pass-by-value.
+Contributions that handle other situations are welcome!</p>
+</div>
+<div class="section" id="pass-by-value-in-constructors">
+<h2>Pass-by-value in constructors<a class="headerlink" href="#pass-by-value-in-constructors" title="Permalink to this headline">¶</a></h2>
+<p>Replaces the uses of const-references constructor parameters that are copied
+into class fields. The parameter is then moved with <cite>std::move()</cite>.</p>
+<p>Since <tt class="docutils literal"><span class="pre">std::move()</span></tt> is a library function declared in <cite><utility></cite> it may be
+necessary to add this include. The check will add the include directive when
+necessary.</p>
+<blockquote>
+<div><div class="highlight-c++"><div class="highlight"><pre><span></span> <span class="cp">#include</span> <span class="cpf"><string></span><span class="cp"></span>
+
+ <span class="k">class</span> <span class="nc">Foo</span> <span class="p">{</span>
+ <span class="k">public</span><span class="o">:</span>
+<span class="o">-</span>  <span class="n">Foo</span><span class="p">(</span><span class="k">const</span> <span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="o">&</span><span class="n">Copied</span><span class="p">,</span> <span class="k">const</span> <span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="o">&</span><span class="n">ReadOnly</span><span class="p">)</span>
+<span class="o">-</span>    <span class="o">:</span> <span class="n">Copied</span><span class="p">(</span><span class="n">Copied</span><span class="p">),</span> <span class="n">ReadOnly</span><span class="p">(</span><span class="n">ReadOnly</span><span class="p">)</span>
+<span class="o">+</span>  <span class="n">Foo</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="n">Copied</span><span class="p">,</span> <span class="k">const</span> <span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="o">&</span><span class="n">ReadOnly</span><span class="p">)</span>
+<span class="o">+</span>    <span class="o">:</span> <span class="n">Copied</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">move</span><span class="p">(</span><span class="n">Copied</span><span class="p">)),</span> <span class="n">ReadOnly</span><span class="p">(</span><span class="n">ReadOnly</span><span class="p">)</span>
+   <span class="p">{}</span>
+
+ <span class="k">private</span><span class="o">:</span>
+   <span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="n">Copied</span><span class="p">;</span>
+   <span class="k">const</span> <span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="o">&</span><span class="n">ReadOnly</span><span class="p">;</span>
+ <span class="p">};</span>
+
+ <span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="n">get_cwd</span><span class="p">();</span>
+
+ <span class="kt">void</span> <span class="nf">f</span><span class="p">(</span><span class="k">const</span> <span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="o">&</span><span class="n">Path</span><span class="p">)</span> <span class="p">{</span>
+   <span class="c1">// The parameter corresponding to 'get_cwd()' is move-constructed. By</span>
+   <span class="c1">// using pass-by-value in the Foo constructor we managed to avoid a</span>
+   <span class="c1">// copy-construction.</span>
+   <span class="n">Foo</span> <span class="n">foo</span><span class="p">(</span><span class="n">get_cwd</span><span class="p">(),</span> <span class="n">Path</span><span class="p">);</span>
+ <span class="p">}</span>
+</pre></div>
+</div>
+</div></blockquote>
+<p>If the parameter is used more than once no transformation is performed since
+moved objects have an undefined state. It means the following code will be left
+untouched:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="cp">#include</span> <span class="cpf"><string></span><span class="cp"></span>
+
+<span class="kt">void</span> <span class="nf">pass</span><span class="p">(</span><span class="k">const</span> <span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="o">&</span><span class="n">S</span><span class="p">);</span>
+
+<span class="k">struct</span> <span class="n">Foo</span> <span class="p">{</span>
+  <span class="n">Foo</span><span class="p">(</span><span class="k">const</span> <span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="o">&</span><span class="n">S</span><span class="p">)</span> <span class="o">:</span> <span class="n">Str</span><span class="p">(</span><span class="n">S</span><span class="p">)</span> <span class="p">{</span>
+    <span class="n">pass</span><span class="p">(</span><span class="n">S</span><span class="p">);</span>
+  <span class="p">}</span>
+
+  <span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="n">Str</span><span class="p">;</span>
+<span class="p">};</span>
+</pre></div>
+</div>
+<div class="section" id="known-limitations">
+<h3>Known limitations<a class="headerlink" href="#known-limitations" title="Permalink to this headline">¶</a></h3>
+<p>A situation where the generated code can be wrong is when the object referenced
+is modified before the assignment in the init-list through a “hidden” reference.</p>
+<p>Example:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span> <span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="n">s</span><span class="p">(</span><span class="s">"foo"</span><span class="p">);</span>
+
+ <span class="k">struct</span> <span class="n">Base</span> <span class="p">{</span>
+   <span class="n">Base</span><span class="p">()</span> <span class="p">{</span>
+     <span class="n">s</span> <span class="o">=</span> <span class="s">"bar"</span><span class="p">;</span>
+   <span class="p">}</span>
+ <span class="p">};</span>
+
+ <span class="k">struct</span> <span class="nl">Derived</span> <span class="p">:</span> <span class="n">Base</span> <span class="p">{</span>
+<span class="o">-</span>  <span class="n">Derived</span><span class="p">(</span><span class="k">const</span> <span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="o">&</span><span class="n">S</span><span class="p">)</span> <span class="o">:</span> <span class="n">Field</span><span class="p">(</span><span class="n">S</span><span class="p">)</span>
+<span class="o">+</span>  <span class="n">Derived</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="n">S</span><span class="p">)</span> <span class="o">:</span> <span class="n">Field</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">move</span><span class="p">(</span><span class="n">S</span><span class="p">))</span>
+   <span class="p">{</span> <span class="p">}</span>
+
+   <span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="n">Field</span><span class="p">;</span>
+ <span class="p">};</span>
+
+ <span class="kt">void</span> <span class="nf">f</span><span class="p">()</span> <span class="p">{</span>
+<span class="o">-</span>  <span class="n">Derived</span> <span class="n">d</span><span class="p">(</span><span class="n">s</span><span class="p">);</span> <span class="c1">// d.Field holds "bar"</span>
+<span class="o">+</span>  <span class="n">Derived</span> <span class="n">d</span><span class="p">(</span><span class="n">s</span><span class="p">);</span> <span class="c1">// d.Field holds "foo"</span>
+ <span class="p">}</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="note-about-delayed-template-parsing">
+<h3>Note about delayed template parsing<a class="headerlink" href="#note-about-delayed-template-parsing" title="Permalink to this headline">¶</a></h3>
+<p>When delayed template parsing is enabled, constructors part of templated
+contexts; templated constructors, constructors in class templates, constructors
+of inner classes of template classes, etc., are not transformed. Delayed
+template parsing is enabled by default on Windows as a Microsoft extension:
+<a class="reference external" href="http://clang.llvm.org/docs/UsersManual.html#microsoft-extensions">Clang Compiler User’s Manual - Microsoft extensions</a>.</p>
+<p>Delayed template parsing can be enabled using the <cite>-fdelayed-template-parsing</cite>
+flag and disabled using <cite>-fno-delayed-template-parsing</cite>.</p>
+<p>Example:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span>  <span class="k">template</span> <span class="o"><</span><span class="k">typename</span> <span class="n">T</span><span class="o">></span> <span class="k">class</span> <span class="nc">C</span> <span class="p">{</span>
+    <span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="n">S</span><span class="p">;</span>
+
+  <span class="k">public</span><span class="o">:</span>
+<span class="o">=</span>  <span class="c1">// using -fdelayed-template-parsing (default on Windows)</span>
+<span class="o">=</span>  <span class="n">C</span><span class="p">(</span><span class="k">const</span> <span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="o">&</span><span class="n">S</span><span class="p">)</span> <span class="o">:</span> <span class="n">S</span><span class="p">(</span><span class="n">S</span><span class="p">)</span> <span class="p">{}</span>
+
+<span class="o">+</span>  <span class="c1">// using -fno-delayed-template-parsing (default on non-Windows systems)</span>
+<span class="o">+</span>  <span class="n">C</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="n">S</span><span class="p">)</span> <span class="o">:</span> <span class="n">S</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">move</span><span class="p">(</span><span class="n">S</span><span class="p">))</span> <span class="p">{}</span>
+  <span class="p">};</span>
+</pre></div>
+</div>
+<div class="admonition seealso">
+<p class="first admonition-title">See also</p>
+<p class="last">For more information about the pass-by-value idiom, read: <a class="reference external" href="https://web.archive.org/web/20140205194657/http://cpp-next.com/archive/2009/08/want-speed-pass-by-value/">Want Speed? Pass by Value</a>.</p>
+</div>
+</div>
+</div>
+<div class="section" id="options">
+<h2>Options<a class="headerlink" href="#options" title="Permalink to this headline">¶</a></h2>
+<dl class="option">
+<dt id="cmdoption-arg-IncludeStyle">
+<tt class="descname">IncludeStyle</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-IncludeStyle" title="Permalink to this definition">¶</a></dt>
+<dd><p>A string specifying which include-style is used, <cite>llvm</cite> or <cite>google</cite>. Default
+is <cite>llvm</cite>.</p>
+</dd></dl>
+
+<dl class="option">
+<dt id="cmdoption-arg-ValuesOnly">
+<tt class="descname">ValuesOnly</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-ValuesOnly" title="Permalink to this definition">¶</a></dt>
+<dd><p>When non-zero, the check only warns about copied parameters that are already
+passed by value. Default is <cite>0</cite>.</p>
+</dd></dl>
+
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="modernize-make-unique.html">modernize-make-unique</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-raw-string-literal.html">modernize-raw-string-literal</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-raw-string-literal.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-raw-string-literal.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-raw-string-literal.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-raw-string-literal.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,108 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - modernize-raw-string-literal — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="modernize-redundant-void-arg" href="modernize-redundant-void-arg.html" />
+    <link rel="prev" title="modernize-pass-by-value" href="modernize-pass-by-value.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - modernize-raw-string-literal</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="modernize-pass-by-value.html">modernize-pass-by-value</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-redundant-void-arg.html">modernize-redundant-void-arg</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="modernize-raw-string-literal">
+<h1>modernize-raw-string-literal<a class="headerlink" href="#modernize-raw-string-literal" title="Permalink to this headline">¶</a></h1>
+<p>This check selectively replaces string literals containing escaped characters
+with raw string literals.</p>
+<p>Example:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="k">const</span> <span class="n">Quotes</span><span class="p">{</span><span class="s">"embedded </span><span class="se">\"</span><span class="s">quotes</span><span class="se">\"</span><span class="s">"</span><span class="p">};</span>
+<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="k">const</span> <span class="n">Paragraph</span><span class="p">{</span><span class="s">"Line one.</span><span class="se">\n</span><span class="s">Line two.</span><span class="se">\n</span><span class="s">Line three.</span><span class="se">\n</span><span class="s">"</span><span class="p">};</span>
+<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="k">const</span> <span class="n">SingleLine</span><span class="p">{</span><span class="s">"Single line.</span><span class="se">\n</span><span class="s">"</span><span class="p">};</span>
+<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="k">const</span> <span class="n">TrailingSpace</span><span class="p">{</span><span class="s">"Look here -> </span><span class="se">\n</span><span class="s">"</span><span class="p">};</span>
+<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="k">const</span> <span class="n">Tab</span><span class="p">{</span><span class="s">"One</span><span class="se">\t</span><span class="s">Two</span><span class="se">\n</span><span class="s">"</span><span class="p">};</span>
+<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="k">const</span> <span class="n">Bell</span><span class="p">{</span><span class="s">"Hello!</span><span class="se">\a</span><span class="s">  And welcome!"</span><span class="p">};</span>
+<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="k">const</span> <span class="n">Path</span><span class="p">{</span><span class="s">"C:</span><span class="se">\\</span><span class="s">Program Files</span><span class="se">\\</span><span class="s">Vendor</span><span class="se">\\</span><span class="s">Application.exe"</span><span class="p">};</span>
+<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="k">const</span> <span class="n">RegEx</span><span class="p">{</span><span class="s">"</span><span class="se">\\</span><span class="s">w</span><span class="se">\\</span><span class="s">([a-z]</span><span class="se">\\</span><span class="s">)"</span><span class="p">};</span>
+</pre></div>
+</div>
+<p>becomes</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="k">const</span> <span class="n">Quotes</span><span class="p">{</span><span class="sa">R</span><span class="s">"</span><span class="dl">(</span><span class="s">embedded "quotes"</span><span class="dl">)</span><span class="s">"</span><span class="p">};</span>
+<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="k">const</span> <span class="n">Paragraph</span><span class="p">{</span><span class="s">"Line one.</span><span class="se">\n</span><span class="s">Line two.</span><span class="se">\n</span><span class="s">Line three.</span><span class="se">\n</span><span class="s">"</span><span class="p">};</span>
+<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="k">const</span> <span class="n">SingleLine</span><span class="p">{</span><span class="s">"Single line.</span><span class="se">\n</span><span class="s">"</span><span class="p">};</span>
+<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="k">const</span> <span class="n">TrailingSpace</span><span class="p">{</span><span class="s">"Look here -> </span><span class="se">\n</span><span class="s">"</span><span class="p">};</span>
+<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="k">const</span> <span class="n">Tab</span><span class="p">{</span><span class="s">"One</span><span class="se">\t</span><span class="s">Two</span><span class="se">\n</span><span class="s">"</span><span class="p">};</span>
+<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="k">const</span> <span class="n">Bell</span><span class="p">{</span><span class="s">"Hello!</span><span class="se">\a</span><span class="s">  And welcome!"</span><span class="p">};</span>
+<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="k">const</span> <span class="n">Path</span><span class="p">{</span><span class="sa">R</span><span class="s">"</span><span class="dl">(</span><span class="s">C:\Program Files\Vendor\Application.exe</span><span class="dl">)</span><span class="s">"</span><span class="p">};</span>
+<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="k">const</span> <span class="n">RegEx</span><span class="p">{</span><span class="sa">R</span><span class="s">"</span><span class="dl">(</span><span class="s">\w\([a-z]\)</span><span class="dl">)</span><span class="s">"</span><span class="p">};</span>
+</pre></div>
+</div>
+<p>The presence of any of the following escapes can cause the string to be
+converted to a raw string literal: <tt class="docutils literal"><span class="pre">\\</span></tt>, <tt class="docutils literal"><span class="pre">\'</span></tt>, <tt class="docutils literal"><span class="pre">\"</span></tt>, <tt class="docutils literal"><span class="pre">\?</span></tt>,
+and octal or hexadecimal escapes for printable ASCII characters.</p>
+<p>A string literal containing only escaped newlines is a common way of
+writing lines of text output. Introducing physical newlines with raw
+string literals in this case is likely to impede readability. These
+string literals are left unchanged.</p>
+<p>An escaped horizontal tab, form feed, or vertical tab prevents the string
+literal from being converted. The presence of a horizontal tab, form feed or
+vertical tab in source code is not visually obvious.</p>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="modernize-pass-by-value.html">modernize-pass-by-value</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-redundant-void-arg.html">modernize-redundant-void-arg</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-redundant-void-arg.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-redundant-void-arg.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-redundant-void-arg.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-redundant-void-arg.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - modernize-redundant-void-arg — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="modernize-replace-auto-ptr" href="modernize-replace-auto-ptr.html" />
+    <link rel="prev" title="modernize-raw-string-literal" href="modernize-raw-string-literal.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - modernize-redundant-void-arg</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="modernize-raw-string-literal.html">modernize-raw-string-literal</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-replace-auto-ptr.html">modernize-replace-auto-ptr</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="modernize-redundant-void-arg">
+<h1>modernize-redundant-void-arg<a class="headerlink" href="#modernize-redundant-void-arg" title="Permalink to this headline">¶</a></h1>
+<p>Find and remove redundant <tt class="docutils literal"><span class="pre">void</span></tt> argument lists.</p>
+<dl class="docutils">
+<dt>Examples:</dt>
+<dd><table border="1" class="first last docutils">
+<colgroup>
+<col width="56%" />
+<col width="44%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Initial code</th>
+<th class="head">Code with applied fixes</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">int</span> <span class="pre">f(void);</span></tt></td>
+<td><tt class="docutils literal"><span class="pre">int</span> <span class="pre">f();</span></tt></td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">int</span> <span class="pre">(*f(void))(void);</span></tt></td>
+<td><tt class="docutils literal"><span class="pre">int</span> <span class="pre">(*f())();</span></tt></td>
+</tr>
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">typedef</span> <span class="pre">int</span> <span class="pre">(*f_t(void))(void);</span></tt></td>
+<td><tt class="docutils literal"><span class="pre">typedef</span> <span class="pre">int</span> <span class="pre">(*f_t())();</span></tt></td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">void</span> <span class="pre">(C::*p)(void);</span></tt></td>
+<td><tt class="docutils literal"><span class="pre">void</span> <span class="pre">(C::*p)();</span></tt></td>
+</tr>
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">C::C(void)</span> <span class="pre">{}</span></tt></td>
+<td><tt class="docutils literal"><span class="pre">C::C()</span> <span class="pre">{}</span></tt></td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">C::~C(void)</span> <span class="pre">{}</span></tt></td>
+<td><tt class="docutils literal"><span class="pre">C::~C()</span> <span class="pre">{}</span></tt></td>
+</tr>
+</tbody>
+</table>
+</dd>
+</dl>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="modernize-raw-string-literal.html">modernize-raw-string-literal</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-replace-auto-ptr.html">modernize-replace-auto-ptr</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-replace-auto-ptr.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-replace-auto-ptr.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-replace-auto-ptr.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-replace-auto-ptr.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,148 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - modernize-replace-auto-ptr — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="modernize-replace-random-shuffle" href="modernize-replace-random-shuffle.html" />
+    <link rel="prev" title="modernize-redundant-void-arg" href="modernize-redundant-void-arg.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - modernize-replace-auto-ptr</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="modernize-redundant-void-arg.html">modernize-redundant-void-arg</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-replace-random-shuffle.html">modernize-replace-random-shuffle</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="modernize-replace-auto-ptr">
+<h1>modernize-replace-auto-ptr<a class="headerlink" href="#modernize-replace-auto-ptr" title="Permalink to this headline">¶</a></h1>
+<p>This check replaces the uses of the deprecated class <tt class="docutils literal"><span class="pre">std::auto_ptr</span></tt> by
+<tt class="docutils literal"><span class="pre">std::unique_ptr</span></tt> (introduced in C++11). The transfer of ownership, done
+by the copy-constructor and the assignment operator, is changed to match
+<tt class="docutils literal"><span class="pre">std::unique_ptr</span></tt> usage by using explicit calls to <tt class="docutils literal"><span class="pre">std::move()</span></tt>.</p>
+<p>Migration example:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="o">-</span><span class="kt">void</span> <span class="n">take_ownership_fn</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">auto_ptr</span><span class="o"><</span><span class="kt">int</span><span class="o">></span> <span class="n">int_ptr</span><span class="p">);</span>
+<span class="o">+</span><span class="kt">void</span> <span class="n">take_ownership_fn</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">unique_ptr</span><span class="o"><</span><span class="kt">int</span><span class="o">></span> <span class="n">int_ptr</span><span class="p">);</span>
+
+ <span class="kt">void</span> <span class="nf">f</span><span class="p">(</span><span class="kt">int</span> <span class="n">x</span><span class="p">)</span> <span class="p">{</span>
+<span class="o">-</span>  <span class="n">std</span><span class="o">::</span><span class="n">auto_ptr</span><span class="o"><</span><span class="kt">int</span><span class="o">></span> <span class="n">a</span><span class="p">(</span><span class="k">new</span> <span class="kt">int</span><span class="p">(</span><span class="n">x</span><span class="p">));</span>
+<span class="o">-</span>  <span class="n">std</span><span class="o">::</span><span class="n">auto_ptr</span><span class="o"><</span><span class="kt">int</span><span class="o">></span> <span class="n">b</span><span class="p">;</span>
+<span class="o">+</span>  <span class="n">std</span><span class="o">::</span><span class="n">unique_ptr</span><span class="o"><</span><span class="kt">int</span><span class="o">></span> <span class="n">a</span><span class="p">(</span><span class="k">new</span> <span class="kt">int</span><span class="p">(</span><span class="n">x</span><span class="p">));</span>
+<span class="o">+</span>  <span class="n">std</span><span class="o">::</span><span class="n">unique_ptr</span><span class="o"><</span><span class="kt">int</span><span class="o">></span> <span class="n">b</span><span class="p">;</span>
+
+<span class="o">-</span>  <span class="n">b</span> <span class="o">=</span> <span class="n">a</span><span class="p">;</span>
+<span class="o">-</span>  <span class="n">take_ownership_fn</span><span class="p">(</span><span class="n">b</span><span class="p">);</span>
+<span class="o">+</span>  <span class="n">b</span> <span class="o">=</span> <span class="n">std</span><span class="o">::</span><span class="n">move</span><span class="p">(</span><span class="n">a</span><span class="p">);</span>
+<span class="o">+</span>  <span class="n">take_ownership_fn</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">move</span><span class="p">(</span><span class="n">b</span><span class="p">));</span>
+ <span class="p">}</span>
+</pre></div>
+</div>
+<p>Since <tt class="docutils literal"><span class="pre">std::move()</span></tt> is a library function declared in <tt class="docutils literal"><span class="pre"><utility></span></tt> it may be
+necessary to add this include. The check will add the include directive when
+necessary.</p>
+<div class="section" id="known-limitations">
+<h2>Known Limitations<a class="headerlink" href="#known-limitations" title="Permalink to this headline">¶</a></h2>
+<ul>
+<li><p class="first">If headers modification is not activated or if a header is not allowed to be
+changed this check will produce broken code (compilation error), where the
+headers’ code will stay unchanged while the code using them will be changed.</p>
+</li>
+<li><p class="first">Client code that declares a reference to an <tt class="docutils literal"><span class="pre">std::auto_ptr</span></tt> coming from
+code that can’t be migrated (such as a header coming from a 3<sup>rd</sup>
+party library) will produce a compilation error after migration. This is
+because the type of the reference will be changed to <tt class="docutils literal"><span class="pre">std::unique_ptr</span></tt> but
+the type returned by the library won’t change, binding a reference to
+<tt class="docutils literal"><span class="pre">std::unique_ptr</span></tt> from an <tt class="docutils literal"><span class="pre">std::auto_ptr</span></tt>. This pattern doesn’t make much
+sense and usually <tt class="docutils literal"><span class="pre">std::auto_ptr</span></tt> are stored by value (otherwise what is
+the point in using them instead of a reference or a pointer?).</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span> <span class="c1">// <3rd-party header...></span>
+ <span class="n">std</span><span class="o">::</span><span class="n">auto_ptr</span><span class="o"><</span><span class="kt">int</span><span class="o">></span> <span class="n">get_value</span><span class="p">();</span>
+ <span class="k">const</span> <span class="n">std</span><span class="o">::</span><span class="n">auto_ptr</span><span class="o"><</span><span class="kt">int</span><span class="o">></span> <span class="o">&</span> <span class="n">get_ref</span><span class="p">();</span>
+
+ <span class="c1">// <calling code (with migration)...></span>
+<span class="o">-</span><span class="n">std</span><span class="o">::</span><span class="n">auto_ptr</span><span class="o"><</span><span class="kt">int</span><span class="o">></span> <span class="n">a</span><span class="p">(</span><span class="n">get_value</span><span class="p">());</span>
+<span class="o">+</span><span class="n">std</span><span class="o">::</span><span class="n">unique_ptr</span><span class="o"><</span><span class="kt">int</span><span class="o">></span> <span class="n">a</span><span class="p">(</span><span class="n">get_value</span><span class="p">());</span> <span class="c1">// ok, unique_ptr constructed from auto_ptr</span>
+
+<span class="o">-</span><span class="k">const</span> <span class="n">std</span><span class="o">::</span><span class="n">auto_ptr</span><span class="o"><</span><span class="kt">int</span><span class="o">></span> <span class="o">&</span> <span class="n">p</span> <span class="o">=</span> <span class="n">get_ptr</span><span class="p">();</span>
+<span class="o">+</span><span class="k">const</span> <span class="n">std</span><span class="o">::</span><span class="n">unique_ptr</span><span class="o"><</span><span class="kt">int</span><span class="o">></span> <span class="o">&</span> <span class="n">p</span> <span class="o">=</span> <span class="n">get_ptr</span><span class="p">();</span> <span class="c1">// won't compile</span>
+</pre></div>
+</div>
+</li>
+<li><p class="first">Non-instantiated templates aren’t modified.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">template</span> <span class="o"><</span><span class="k">typename</span> <span class="n">X</span><span class="o">></span>
+<span class="kt">void</span> <span class="n">f</span><span class="p">()</span> <span class="p">{</span>
+    <span class="n">std</span><span class="o">::</span><span class="n">auto_ptr</span><span class="o"><</span><span class="n">X</span><span class="o">></span> <span class="n">p</span><span class="p">;</span>
+<span class="p">}</span>
+
+<span class="c1">// only 'f<int>()' (or similar) will trigger the replacement.</span>
+</pre></div>
+</div>
+</li>
+</ul>
+</div>
+<div class="section" id="options">
+<h2>Options<a class="headerlink" href="#options" title="Permalink to this headline">¶</a></h2>
+<dl class="option">
+<dt id="cmdoption-arg-IncludeStyle">
+<tt class="descname">IncludeStyle</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-IncludeStyle" title="Permalink to this definition">¶</a></dt>
+<dd><p>A string specifying which include-style is used, <cite>llvm</cite> or <cite>google</cite>. Default
+is <cite>llvm</cite>.</p>
+</dd></dl>
+
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="modernize-redundant-void-arg.html">modernize-redundant-void-arg</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-replace-random-shuffle.html">modernize-replace-random-shuffle</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-replace-random-shuffle.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-replace-random-shuffle.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-replace-random-shuffle.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-replace-random-shuffle.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,91 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - modernize-replace-random-shuffle — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="modernize-return-braced-init-list" href="modernize-return-braced-init-list.html" />
+    <link rel="prev" title="modernize-replace-auto-ptr" href="modernize-replace-auto-ptr.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - modernize-replace-random-shuffle</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="modernize-replace-auto-ptr.html">modernize-replace-auto-ptr</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-return-braced-init-list.html">modernize-return-braced-init-list</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="modernize-replace-random-shuffle">
+<h1>modernize-replace-random-shuffle<a class="headerlink" href="#modernize-replace-random-shuffle" title="Permalink to this headline">¶</a></h1>
+<p>This check will find occurrences of <tt class="docutils literal"><span class="pre">std::random_shuffle</span></tt> and replace it with <tt class="docutils literal"><span class="pre">std::shuffle</span></tt>. In C++17 <tt class="docutils literal"><span class="pre">std::random_shuffle</span></tt> will no longer be available and thus we need to replace it.</p>
+<p>Below are two examples of what kind of occurrences will be found and two examples of what it will be replaced with.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o"><</span><span class="kt">int</span><span class="o">></span> <span class="n">v</span><span class="p">;</span>
+
+<span class="c1">// First example</span>
+<span class="n">std</span><span class="o">::</span><span class="n">random_shuffle</span><span class="p">(</span><span class="n">vec</span><span class="p">.</span><span class="n">begin</span><span class="p">(),</span> <span class="n">vec</span><span class="p">.</span><span class="n">end</span><span class="p">());</span>
+
+<span class="c1">// Second example</span>
+<span class="n">std</span><span class="o">::</span><span class="n">random_shuffle</span><span class="p">(</span><span class="n">vec</span><span class="p">.</span><span class="n">begin</span><span class="p">(),</span> <span class="n">vec</span><span class="p">.</span><span class="n">end</span><span class="p">(),</span> <span class="n">randomFun</span><span class="p">);</span>
+</pre></div>
+</div>
+<p>Both of these examples will be replaced with:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="n">std</span><span class="o">::</span><span class="n">shuffle</span><span class="p">(</span><span class="n">vec</span><span class="p">.</span><span class="n">begin</span><span class="p">(),</span> <span class="n">vec</span><span class="p">.</span><span class="n">end</span><span class="p">(),</span> <span class="n">std</span><span class="o">::</span><span class="n">mt19937</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">random_device</span><span class="p">()()));</span>
+</pre></div>
+</div>
+<p>The second example will also receive a warning that <tt class="docutils literal"><span class="pre">randomFunc</span></tt> is no longer supported in the same way as before so if the user wants the same functionality, the user will need to change the implementation of the <tt class="docutils literal"><span class="pre">randomFunc</span></tt>.</p>
+<p>One thing to be aware of here is that <tt class="docutils literal"><span class="pre">std::random_device</span></tt> is quite expensive to initialize. So if you are using the code in a performance critical place, you probably want to initialize it elsewhere.</p>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="modernize-replace-auto-ptr.html">modernize-replace-auto-ptr</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-return-braced-init-list.html">modernize-return-braced-init-list</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-return-braced-init-list.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-return-braced-init-list.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-return-braced-init-list.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-return-braced-init-list.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,90 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - modernize-return-braced-init-list — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="modernize-shrink-to-fit" href="modernize-shrink-to-fit.html" />
+    <link rel="prev" title="modernize-replace-random-shuffle" href="modernize-replace-random-shuffle.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - modernize-return-braced-init-list</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="modernize-replace-random-shuffle.html">modernize-replace-random-shuffle</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-shrink-to-fit.html">modernize-shrink-to-fit</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="modernize-return-braced-init-list">
+<h1>modernize-return-braced-init-list<a class="headerlink" href="#modernize-return-braced-init-list" title="Permalink to this headline">¶</a></h1>
+<p>Replaces explicit calls to the constructor in a return with a braced
+initializer list. This way the return type is not needlessly duplicated in the
+function definition and the return statement.</p>
+<div class="code c++ highlight-python"><div class="highlight"><pre><span></span>Foo bar() {
+  Baz baz;
+  return Foo(baz);
+}
+
+// transforms to:
+
+Foo bar() {
+  Baz baz;
+  return {baz};
+}
+</pre></div>
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="modernize-replace-random-shuffle.html">modernize-replace-random-shuffle</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-shrink-to-fit.html">modernize-shrink-to-fit</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-shrink-to-fit.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-shrink-to-fit.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-shrink-to-fit.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-shrink-to-fit.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,79 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - modernize-shrink-to-fit — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="modernize-unary-static-assert" href="modernize-unary-static-assert.html" />
+    <link rel="prev" title="modernize-return-braced-init-list" href="modernize-return-braced-init-list.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - modernize-shrink-to-fit</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="modernize-return-braced-init-list.html">modernize-return-braced-init-list</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-unary-static-assert.html">modernize-unary-static-assert</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="modernize-shrink-to-fit">
+<h1>modernize-shrink-to-fit<a class="headerlink" href="#modernize-shrink-to-fit" title="Permalink to this headline">¶</a></h1>
+<p>Replace copy and swap tricks on shrinkable containers with the
+<tt class="docutils literal"><span class="pre">shrink_to_fit()</span></tt> method call.</p>
+<p>The <tt class="docutils literal"><span class="pre">shrink_to_fit()</span></tt> method is more readable and more effective than
+the copy and swap trick to reduce the capacity of a shrinkable container.
+Note that, the <tt class="docutils literal"><span class="pre">shrink_to_fit()</span></tt> method is only available in C++11 and up.</p>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="modernize-return-braced-init-list.html">modernize-return-braced-init-list</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-unary-static-assert.html">modernize-unary-static-assert</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-unary-static-assert.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-unary-static-assert.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-unary-static-assert.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-unary-static-assert.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,89 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - modernize-unary-static-assert — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="modernize-use-auto" href="modernize-use-auto.html" />
+    <link rel="prev" title="modernize-shrink-to-fit" href="modernize-shrink-to-fit.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - modernize-unary-static-assert</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="modernize-shrink-to-fit.html">modernize-shrink-to-fit</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-use-auto.html">modernize-use-auto</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="modernize-unary-static-assert">
+<h1>modernize-unary-static-assert<a class="headerlink" href="#modernize-unary-static-assert" title="Permalink to this headline">¶</a></h1>
+<p>The check diagnoses any <tt class="docutils literal"><span class="pre">static_assert</span></tt> declaration with an empty string literal
+and provides a fix-it to replace the declaration with a single-argument <tt class="docutils literal"><span class="pre">static_assert</span></tt> declaration.</p>
+<p>The check is only applicable for C++17 and later code.</p>
+<p>The following code:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="kt">void</span> <span class="nf">f_textless</span><span class="p">(</span><span class="kt">int</span> <span class="n">a</span><span class="p">)</span> <span class="p">{</span>
+  <span class="k">static_assert</span><span class="p">(</span><span class="k">sizeof</span><span class="p">(</span><span class="n">a</span><span class="p">)</span> <span class="o"><=</span> <span class="mi">10</span><span class="p">,</span> <span class="s">""</span><span class="p">);</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<p>is replaced by:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="kt">void</span> <span class="nf">f_textless</span><span class="p">(</span><span class="kt">int</span> <span class="n">a</span><span class="p">)</span> <span class="p">{</span>
+  <span class="k">static_assert</span><span class="p">(</span><span class="k">sizeof</span><span class="p">(</span><span class="n">a</span><span class="p">)</span> <span class="o"><=</span> <span class="mi">10</span><span class="p">);</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="modernize-shrink-to-fit.html">modernize-shrink-to-fit</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-use-auto.html">modernize-use-auto</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-auto.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-auto.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-auto.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-auto.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,254 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - modernize-use-auto — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="modernize-use-bool-literals" href="modernize-use-bool-literals.html" />
+    <link rel="prev" title="modernize-unary-static-assert" href="modernize-unary-static-assert.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - modernize-use-auto</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="modernize-unary-static-assert.html">modernize-unary-static-assert</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-use-bool-literals.html">modernize-use-bool-literals</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="modernize-use-auto">
+<h1>modernize-use-auto<a class="headerlink" href="#modernize-use-auto" title="Permalink to this headline">¶</a></h1>
+<p>This check is responsible for using the <tt class="docutils literal"><span class="pre">auto</span></tt> type specifier for variable
+declarations to <em>improve code readability and maintainability</em>. For example:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o"><</span><span class="kt">int</span><span class="o">>::</span><span class="n">iterator</span> <span class="n">I</span> <span class="o">=</span> <span class="n">my_container</span><span class="p">.</span><span class="n">begin</span><span class="p">();</span>
+
+<span class="c1">// transforms to:</span>
+
+<span class="k">auto</span> <span class="n">I</span> <span class="o">=</span> <span class="n">my_container</span><span class="p">.</span><span class="n">begin</span><span class="p">();</span>
+</pre></div>
+</div>
+<p>The <tt class="docutils literal"><span class="pre">auto</span></tt> type specifier will only be introduced in situations where the
+variable type matches the type of the initializer expression. In other words
+<tt class="docutils literal"><span class="pre">auto</span></tt> should deduce the same type that was originally spelled in the source.
+However, not every situation should be transformed:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="kt">int</span> <span class="n">val</span> <span class="o">=</span> <span class="mi">42</span><span class="p">;</span>
+<span class="n">InfoStruct</span> <span class="o">&</span><span class="n">I</span> <span class="o">=</span> <span class="n">SomeObject</span><span class="p">.</span><span class="n">getInfo</span><span class="p">();</span>
+
+<span class="c1">// Should not become:</span>
+
+<span class="k">auto</span> <span class="n">val</span> <span class="o">=</span> <span class="mi">42</span><span class="p">;</span>
+<span class="k">auto</span> <span class="o">&</span><span class="n">I</span> <span class="o">=</span> <span class="n">SomeObject</span><span class="p">.</span><span class="n">getInfo</span><span class="p">();</span>
+</pre></div>
+</div>
+<p>In this example using <tt class="docutils literal"><span class="pre">auto</span></tt> for builtins doesn’t improve readability. In
+other situations it makes the code less self-documenting impairing readability
+and maintainability. As a result, <tt class="docutils literal"><span class="pre">auto</span></tt> is used only introduced in specific
+situations described below.</p>
+<div class="section" id="iterators">
+<h2>Iterators<a class="headerlink" href="#iterators" title="Permalink to this headline">¶</a></h2>
+<p>Iterator type specifiers tend to be long and used frequently, especially in
+loop constructs. Since the functions generating iterators have a common format,
+the type specifier can be replaced without obscuring the meaning of code while
+improving readability and maintainability.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">for</span> <span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o"><</span><span class="kt">int</span><span class="o">>::</span><span class="n">iterator</span> <span class="n">I</span> <span class="o">=</span> <span class="n">my_container</span><span class="p">.</span><span class="n">begin</span><span class="p">(),</span>
+                                <span class="n">E</span> <span class="o">=</span> <span class="n">my_container</span><span class="p">.</span><span class="n">end</span><span class="p">();</span>
+     <span class="n">I</span> <span class="o">!=</span> <span class="n">E</span><span class="p">;</span> <span class="o">++</span><span class="n">I</span><span class="p">)</span> <span class="p">{</span>
+<span class="p">}</span>
+
+<span class="c1">// becomes</span>
+
+<span class="k">for</span> <span class="p">(</span><span class="k">auto</span> <span class="n">I</span> <span class="o">=</span> <span class="n">my_container</span><span class="p">.</span><span class="n">begin</span><span class="p">(),</span> <span class="n">E</span> <span class="o">=</span> <span class="n">my_container</span><span class="p">.</span><span class="n">end</span><span class="p">();</span> <span class="n">I</span> <span class="o">!=</span> <span class="n">E</span><span class="p">;</span> <span class="o">++</span><span class="n">I</span><span class="p">)</span> <span class="p">{</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<p>The check will only replace iterator type-specifiers when all of the following
+conditions are satisfied:</p>
+<ul class="simple">
+<li>The iterator is for one of the standard container in <tt class="docutils literal"><span class="pre">std</span></tt> namespace:<ul>
+<li><tt class="docutils literal"><span class="pre">array</span></tt></li>
+<li><tt class="docutils literal"><span class="pre">deque</span></tt></li>
+<li><tt class="docutils literal"><span class="pre">forward_list</span></tt></li>
+<li><tt class="docutils literal"><span class="pre">list</span></tt></li>
+<li><tt class="docutils literal"><span class="pre">vector</span></tt></li>
+<li><tt class="docutils literal"><span class="pre">map</span></tt></li>
+<li><tt class="docutils literal"><span class="pre">multimap</span></tt></li>
+<li><tt class="docutils literal"><span class="pre">set</span></tt></li>
+<li><tt class="docutils literal"><span class="pre">multiset</span></tt></li>
+<li><tt class="docutils literal"><span class="pre">unordered_map</span></tt></li>
+<li><tt class="docutils literal"><span class="pre">unordered_multimap</span></tt></li>
+<li><tt class="docutils literal"><span class="pre">unordered_set</span></tt></li>
+<li><tt class="docutils literal"><span class="pre">unordered_multiset</span></tt></li>
+<li><tt class="docutils literal"><span class="pre">queue</span></tt></li>
+<li><tt class="docutils literal"><span class="pre">priority_queue</span></tt></li>
+<li><tt class="docutils literal"><span class="pre">stack</span></tt></li>
+</ul>
+</li>
+<li>The iterator is one of the possible iterator types for standard containers:<ul>
+<li><tt class="docutils literal"><span class="pre">iterator</span></tt></li>
+<li><tt class="docutils literal"><span class="pre">reverse_iterator</span></tt></li>
+<li><tt class="docutils literal"><span class="pre">const_iterator</span></tt></li>
+<li><tt class="docutils literal"><span class="pre">const_reverse_iterator</span></tt></li>
+</ul>
+</li>
+<li>In addition to using iterator types directly, typedefs or other ways of
+referring to those types are also allowed. However, implementation-specific
+types for which a type like <tt class="docutils literal"><span class="pre">std::vector<int>::iterator</span></tt> is itself a
+typedef will not be transformed. Consider the following examples:</li>
+</ul>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="c1">// The following direct uses of iterator types will be transformed.</span>
+<span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o"><</span><span class="kt">int</span><span class="o">>::</span><span class="n">iterator</span> <span class="n">I</span> <span class="o">=</span> <span class="n">MyVec</span><span class="p">.</span><span class="n">begin</span><span class="p">();</span>
+<span class="p">{</span>
+  <span class="k">using</span> <span class="k">namespace</span> <span class="n">std</span><span class="p">;</span>
+  <span class="n">list</span><span class="o"><</span><span class="kt">int</span><span class="o">>::</span><span class="n">iterator</span> <span class="n">I</span> <span class="o">=</span> <span class="n">MyList</span><span class="p">.</span><span class="n">begin</span><span class="p">();</span>
+<span class="p">}</span>
+
+<span class="c1">// The type specifier for J would transform to auto since it's a typedef</span>
+<span class="c1">// to a standard iterator type.</span>
+<span class="k">typedef</span> <span class="n">std</span><span class="o">::</span><span class="n">map</span><span class="o"><</span><span class="kt">int</span><span class="p">,</span> <span class="n">std</span><span class="o">::</span><span class="n">string</span><span class="o">>::</span><span class="n">const_iterator</span> <span class="n">map_iterator</span><span class="p">;</span>
+<span class="n">map_iterator</span> <span class="n">J</span> <span class="o">=</span> <span class="n">MyMap</span><span class="p">.</span><span class="n">begin</span><span class="p">();</span>
+
+<span class="c1">// The following implementation-specific iterator type for which</span>
+<span class="c1">// std::vector<int>::iterator could be a typedef would not be transformed.</span>
+<span class="n">__gnu_cxx</span><span class="o">::</span><span class="n">__normal_iterator</span><span class="o"><</span><span class="kt">int</span><span class="o">*</span><span class="p">,</span> <span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o">></span> <span class="n">K</span> <span class="o">=</span> <span class="n">MyVec</span><span class="p">.</span><span class="n">begin</span><span class="p">();</span>
+</pre></div>
+</div>
+<ul class="simple">
+<li>The initializer for the variable being declared is not a braced initializer
+list. Otherwise, use of <tt class="docutils literal"><span class="pre">auto</span></tt> would cause the type of the variable to be
+deduced as <tt class="docutils literal"><span class="pre">std::initializer_list</span></tt>.</li>
+</ul>
+</div>
+<div class="section" id="new-expressions">
+<h2>New expressions<a class="headerlink" href="#new-expressions" title="Permalink to this headline">¶</a></h2>
+<p>Frequently, when a pointer is declared and initialized with <tt class="docutils literal"><span class="pre">new</span></tt>, the
+pointee type is written twice: in the declaration type and in the
+<tt class="docutils literal"><span class="pre">new</span></tt> expression. In this cases, the declaration type can be replaced with
+<tt class="docutils literal"><span class="pre">auto</span></tt> improving readability and maintainability.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="n">TypeName</span> <span class="o">*</span><span class="n">my_pointer</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TypeName</span><span class="p">(</span><span class="n">my_param</span><span class="p">);</span>
+
+<span class="c1">// becomes</span>
+
+<span class="k">auto</span> <span class="o">*</span><span class="n">my_pointer</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TypeName</span><span class="p">(</span><span class="n">my_param</span><span class="p">);</span>
+</pre></div>
+</div>
+<p>The check will also replace the declaration type in multiple declarations, if
+the following conditions are satisfied:</p>
+<ul class="simple">
+<li>All declared variables have the same type (i.e. all of them are pointers to
+the same type).</li>
+<li>All declared variables are initialized with a <tt class="docutils literal"><span class="pre">new</span></tt> expression.</li>
+<li>The types of all the new expressions are the same than the pointee of the
+declaration type.</li>
+</ul>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="n">TypeName</span> <span class="o">*</span><span class="n">my_first_pointer</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TypeName</span><span class="p">,</span> <span class="o">*</span><span class="n">my_second_pointer</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TypeName</span><span class="p">;</span>
+
+<span class="c1">// becomes</span>
+
+<span class="k">auto</span> <span class="o">*</span><span class="n">my_first_pointer</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TypeName</span><span class="p">,</span> <span class="o">*</span><span class="n">my_second_pointer</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TypeName</span><span class="p">;</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="cast-expressions">
+<h2>Cast expressions<a class="headerlink" href="#cast-expressions" title="Permalink to this headline">¶</a></h2>
+<p>Frequently, when a variable is declared and initialized with a cast, the
+variable type is written twice: in the declaration type and in the
+cast expression. In this cases, the declaration type can be replaced with
+<tt class="docutils literal"><span class="pre">auto</span></tt> improving readability and maintainability.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="n">TypeName</span> <span class="o">*</span><span class="n">my_pointer</span> <span class="o">=</span> <span class="k">static_cast</span><span class="o"><</span><span class="n">TypeName</span><span class="o">></span><span class="p">(</span><span class="n">my_param</span><span class="p">);</span>
+
+<span class="c1">// becomes</span>
+
+<span class="k">auto</span> <span class="o">*</span><span class="n">my_pointer</span> <span class="o">=</span> <span class="k">static_cast</span><span class="o"><</span><span class="n">TypeName</span><span class="o">></span><span class="p">(</span><span class="n">my_param</span><span class="p">);</span>
+</pre></div>
+</div>
+<p>The check handles <tt class="docutils literal"><span class="pre">static_cast</span></tt>, <tt class="docutils literal"><span class="pre">dynamic_cast</span></tt>, <tt class="docutils literal"><span class="pre">const_cast</span></tt>,
+<tt class="docutils literal"><span class="pre">reinterpret_cast</span></tt>, functional casts, C-style casts and function templates
+that behave as casts, such as <tt class="docutils literal"><span class="pre">llvm::dyn_cast</span></tt>, <tt class="docutils literal"><span class="pre">boost::lexical_cast</span></tt> and
+<tt class="docutils literal"><span class="pre">gsl::narrow_cast</span></tt>.  Calls to function templates are considered to behave as
+casts if the first template argument is explicit and is a type, and the function
+returns that type, or a pointer or reference to it.</p>
+</div>
+<div class="section" id="known-limitations">
+<h2>Known Limitations<a class="headerlink" href="#known-limitations" title="Permalink to this headline">¶</a></h2>
+<ul class="simple">
+<li>If the initializer is an explicit conversion constructor, the check will not
+replace the type specifier even though it would be safe to do so.</li>
+<li>User-defined iterators are not handled at this time.</li>
+</ul>
+</div>
+<div class="section" id="options">
+<h2>Options<a class="headerlink" href="#options" title="Permalink to this headline">¶</a></h2>
+<dl class="option">
+<dt id="cmdoption-arg-RemoveStars">
+<tt class="descname">RemoveStars</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-RemoveStars" title="Permalink to this definition">¶</a></dt>
+<dd><p>If the option is set to non-zero (default is <cite>0</cite>), the check will remove
+stars from the non-typedef pointer types when replacing type names with
+<tt class="docutils literal"><span class="pre">auto</span></tt>. Otherwise, the check will leave stars. For example:</p>
+</dd></dl>
+
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="n">TypeName</span> <span class="o">*</span><span class="n">my_first_pointer</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TypeName</span><span class="p">,</span> <span class="o">*</span><span class="n">my_second_pointer</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TypeName</span><span class="p">;</span>
+
+<span class="c1">// RemoveStars = 0</span>
+
+<span class="k">auto</span> <span class="o">*</span><span class="n">my_first_pointer</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TypeName</span><span class="p">,</span> <span class="o">*</span><span class="n">my_second_pointer</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TypeName</span><span class="p">;</span>
+
+<span class="c1">// RemoveStars = 1</span>
+
+<span class="k">auto</span> <span class="n">my_first_pointer</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TypeName</span><span class="p">,</span> <span class="n">my_second_pointer</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TypeName</span><span class="p">;</span>
+</pre></div>
+</div>
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="modernize-unary-static-assert.html">modernize-unary-static-assert</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-use-bool-literals.html">modernize-use-bool-literals</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-bool-literals.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-bool-literals.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-bool-literals.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-bool-literals.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,88 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - modernize-use-bool-literals — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="modernize-use-default-member-init" href="modernize-use-default-member-init.html" />
+    <link rel="prev" title="modernize-use-auto" href="modernize-use-auto.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - modernize-use-bool-literals</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="modernize-use-auto.html">modernize-use-auto</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-use-default-member-init.html">modernize-use-default-member-init</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="modernize-use-bool-literals">
+<h1>modernize-use-bool-literals<a class="headerlink" href="#modernize-use-bool-literals" title="Permalink to this headline">¶</a></h1>
+<p>Finds integer literals which are cast to <tt class="docutils literal"><span class="pre">bool</span></tt>.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="kt">bool</span> <span class="n">p</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
+<span class="kt">bool</span> <span class="n">f</span> <span class="o">=</span> <span class="k">static_cast</span><span class="o"><</span><span class="kt">bool</span><span class="o">></span><span class="p">(</span><span class="mi">1</span><span class="p">);</span>
+<span class="n">std</span><span class="o">::</span><span class="n">ios_base</span><span class="o">::</span><span class="n">sync_with_stdio</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span>
+<span class="kt">bool</span> <span class="n">x</span> <span class="o">=</span> <span class="n">p</span> <span class="o">?</span> <span class="mi">1</span> <span class="o">:</span> <span class="mi">0</span><span class="p">;</span>
+
+<span class="c1">// transforms to</span>
+
+<span class="kt">bool</span> <span class="n">p</span> <span class="o">=</span> <span class="nb">true</span><span class="p">;</span>
+<span class="kt">bool</span> <span class="n">f</span> <span class="o">=</span> <span class="nb">true</span><span class="p">;</span>
+<span class="n">std</span><span class="o">::</span><span class="n">ios_base</span><span class="o">::</span><span class="n">sync_with_stdio</span><span class="p">(</span><span class="nb">false</span><span class="p">);</span>
+<span class="kt">bool</span> <span class="n">x</span> <span class="o">=</span> <span class="n">p</span> <span class="o">?</span> <span class="nb">true</span> <span class="o">:</span> <span class="nb">false</span><span class="p">;</span>
+</pre></div>
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="modernize-use-auto.html">modernize-use-auto</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-use-default-member-init.html">modernize-use-default-member-init</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-default-member-init.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-default-member-init.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-default-member-init.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-default-member-init.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,126 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - modernize-use-default-member-init — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="modernize-use-emplace" href="modernize-use-emplace.html" />
+    <link rel="prev" title="modernize-use-bool-literals" href="modernize-use-bool-literals.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - modernize-use-default-member-init</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="modernize-use-bool-literals.html">modernize-use-bool-literals</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-use-emplace.html">modernize-use-emplace</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="modernize-use-default-member-init">
+<h1>modernize-use-default-member-init<a class="headerlink" href="#modernize-use-default-member-init" title="Permalink to this headline">¶</a></h1>
+<p>This check converts a default constructor’s member initializers into the new
+default member initializers in C++11. Other member initializers that match the
+default member initializer are removed. This can reduce repeated code or allow
+use of ‘= default’.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">struct</span> <span class="n">A</span> <span class="p">{</span>
+  <span class="n">A</span><span class="p">()</span> <span class="o">:</span> <span class="n">i</span><span class="p">(</span><span class="mi">5</span><span class="p">),</span> <span class="n">j</span><span class="p">(</span><span class="mf">10.0</span><span class="p">)</span> <span class="p">{}</span>
+  <span class="n">A</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span><span class="p">)</span> <span class="o">:</span> <span class="n">i</span><span class="p">(</span><span class="n">i</span><span class="p">),</span> <span class="n">j</span><span class="p">(</span><span class="mf">10.0</span><span class="p">)</span> <span class="p">{}</span>
+  <span class="kt">int</span> <span class="n">i</span><span class="p">;</span>
+  <span class="kt">double</span> <span class="n">j</span><span class="p">;</span>
+<span class="p">};</span>
+
+<span class="c1">// becomes</span>
+
+<span class="k">struct</span> <span class="n">A</span> <span class="p">{</span>
+  <span class="n">A</span><span class="p">()</span> <span class="p">{}</span>
+  <span class="n">A</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span><span class="p">)</span> <span class="o">:</span> <span class="n">i</span><span class="p">(</span><span class="n">i</span><span class="p">)</span> <span class="p">{}</span>
+  <span class="kt">int</span> <span class="n">i</span><span class="p">{</span><span class="mi">5</span><span class="p">};</span>
+  <span class="kt">double</span> <span class="n">j</span><span class="p">{</span><span class="mf">10.0</span><span class="p">};</span>
+<span class="p">};</span>
+</pre></div>
+</div>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">Only converts member initializers for built-in types, enums, and pointers.
+The <cite>readability-redundant-member-init</cite> check will remove redundant member
+initializers for classes.</p>
+</div>
+<div class="section" id="options">
+<h2>Options<a class="headerlink" href="#options" title="Permalink to this headline">¶</a></h2>
+<dl class="option">
+<dt id="cmdoption-arg-UseAssignment">
+<tt class="descname">UseAssignment</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-UseAssignment" title="Permalink to this definition">¶</a></dt>
+<dd><p>If this option is set to non-zero (default is <cite>0</cite>), the check will initialise
+members with an assignment. For example:</p>
+</dd></dl>
+
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">struct</span> <span class="n">A</span> <span class="p">{</span>
+  <span class="n">A</span><span class="p">()</span> <span class="p">{}</span>
+  <span class="n">A</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span><span class="p">)</span> <span class="o">:</span> <span class="n">i</span><span class="p">(</span><span class="n">i</span><span class="p">)</span> <span class="p">{}</span>
+  <span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">5</span><span class="p">;</span>
+  <span class="kt">double</span> <span class="n">j</span> <span class="o">=</span> <span class="mf">10.0</span><span class="p">;</span>
+<span class="p">};</span>
+</pre></div>
+</div>
+<dl class="option">
+<dt id="cmdoption-arg-IgnoreMacros">
+<tt class="descname">IgnoreMacros</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-IgnoreMacros" title="Permalink to this definition">¶</a></dt>
+<dd><p>If this option is set to non-zero (default is <cite>1</cite>), the check will not warn
+about members declared inside macros.</p>
+</dd></dl>
+
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="modernize-use-bool-literals.html">modernize-use-bool-literals</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-use-emplace.html">modernize-use-emplace</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-default.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-default.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-default.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-default.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,66 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <meta content="5;URL=modernize-use-equals-default.html" http-equiv="refresh" />
+
+    <title>clang-tidy - modernize-use-default — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - modernize-use-default</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        <a class="uplink" href="../../index.html">Contents</a>
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="modernize-use-default">
+<h1>modernize-use-default<a class="headerlink" href="#modernize-use-default" title="Permalink to this headline">¶</a></h1>
+<p>This check has been renamed to
+<a class="reference external" href="modernize-use-equals-default.html">modernize-use-equals-default</a>.</p>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        <a class="uplink" href="../../index.html">Contents</a>
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-emplace.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-emplace.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-emplace.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-emplace.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,189 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - modernize-use-emplace — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="modernize-use-equals-default" href="modernize-use-equals-default.html" />
+    <link rel="prev" title="modernize-use-default-member-init" href="modernize-use-default-member-init.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - modernize-use-emplace</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="modernize-use-default-member-init.html">modernize-use-default-member-init</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-use-equals-default.html">modernize-use-equals-default</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="modernize-use-emplace">
+<h1>modernize-use-emplace<a class="headerlink" href="#modernize-use-emplace" title="Permalink to this headline">¶</a></h1>
+<p>The check flags insertions to an STL-style container done by calling the
+<tt class="docutils literal"><span class="pre">push_back</span></tt> method with an explicitly-constructed temporary of the container
+element type. In this case, the corresponding <tt class="docutils literal"><span class="pre">emplace_back</span></tt> method
+results in less verbose and potentially more efficient code.
+Right now the check doesn’t support <tt class="docutils literal"><span class="pre">push_front</span></tt> and <tt class="docutils literal"><span class="pre">insert</span></tt>.
+It also doesn’t support <tt class="docutils literal"><span class="pre">insert</span></tt> functions for associative containers
+because replacing <tt class="docutils literal"><span class="pre">insert</span></tt> with <tt class="docutils literal"><span class="pre">emplace</span></tt> may result in
+<a class="reference external" href="http://htmlpreview.github.io/?https://github.com/HowardHinnant/papers/blob/master/insert_vs_emplace.html">speed regression</a>, but it might get support with some addition flag in the future.</p>
+<p>By default only <tt class="docutils literal"><span class="pre">std::vector</span></tt>, <tt class="docutils literal"><span class="pre">std::deque</span></tt>, <tt class="docutils literal"><span class="pre">std::list</span></tt> are considered.
+This list can be modified using the <a class="reference internal" href="#cmdoption-arg-ContainersWithPushBack"><em class="xref std std-option">ContainersWithPushBack</em></a> option.</p>
+<p>Before:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o"><</span><span class="n">MyClass</span><span class="o">></span> <span class="n">v</span><span class="p">;</span>
+<span class="n">v</span><span class="p">.</span><span class="n">push_back</span><span class="p">(</span><span class="n">MyClass</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span> <span class="mi">37</span><span class="p">));</span>
+
+<span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o"><</span><span class="n">std</span><span class="o">::</span><span class="n">pair</span><span class="o"><</span><span class="kt">int</span><span class="p">,</span> <span class="kt">int</span><span class="o">>></span> <span class="n">w</span><span class="p">;</span>
+
+<span class="n">w</span><span class="p">.</span><span class="n">push_back</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">pair</span><span class="o"><</span><span class="kt">int</span><span class="p">,</span> <span class="kt">int</span><span class="o">></span><span class="p">(</span><span class="mi">21</span><span class="p">,</span> <span class="mi">37</span><span class="p">));</span>
+<span class="n">w</span><span class="p">.</span><span class="n">push_back</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">make_pair</span><span class="p">(</span><span class="mi">21L</span><span class="p">,</span> <span class="mi">37L</span><span class="p">));</span>
+</pre></div>
+</div>
+<p>After:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o"><</span><span class="n">MyClass</span><span class="o">></span> <span class="n">v</span><span class="p">;</span>
+<span class="n">v</span><span class="p">.</span><span class="n">emplace_back</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span> <span class="mi">37</span><span class="p">);</span>
+
+<span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o"><</span><span class="n">std</span><span class="o">::</span><span class="n">pair</span><span class="o"><</span><span class="kt">int</span><span class="p">,</span> <span class="kt">int</span><span class="o">>></span> <span class="n">w</span><span class="p">;</span>
+<span class="n">w</span><span class="p">.</span><span class="n">emplace_back</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span> <span class="mi">37</span><span class="p">);</span>
+<span class="n">w</span><span class="p">.</span><span class="n">emplace_back</span><span class="p">(</span><span class="mi">21L</span><span class="p">,</span> <span class="mi">37L</span><span class="p">);</span>
+</pre></div>
+</div>
+<p>By default, the check is able to remove unnecessary <tt class="docutils literal"><span class="pre">std::make_pair</span></tt> and
+<tt class="docutils literal"><span class="pre">std::make_tuple</span></tt> calls from <tt class="docutils literal"><span class="pre">push_back</span></tt> calls on containers of
+<tt class="docutils literal"><span class="pre">std::pair</span></tt> and <tt class="docutils literal"><span class="pre">std::tuple</span></tt>. Custom tuple-like types can be modified by
+the <a class="reference internal" href="#cmdoption-arg-TupleTypes"><em class="xref std std-option">TupleTypes</em></a> option; custom make functions can be modified by the
+<a class="reference internal" href="#cmdoption-arg-TupleMakeFunctions"><em class="xref std std-option">TupleMakeFunctions</em></a> option.</p>
+<p>The other situation is when we pass arguments that will be converted to a type
+inside a container.</p>
+<p>Before:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o"><</span><span class="n">boost</span><span class="o">::</span><span class="n">optional</span><span class="o"><</span><span class="n">std</span><span class="o">::</span><span class="n">string</span><span class="o">></span> <span class="o">></span> <span class="n">v</span><span class="p">;</span>
+<span class="n">v</span><span class="p">.</span><span class="n">push_back</span><span class="p">(</span><span class="s">"abc"</span><span class="p">);</span>
+</pre></div>
+</div>
+<p>After:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o"><</span><span class="n">boost</span><span class="o">::</span><span class="n">optional</span><span class="o"><</span><span class="n">std</span><span class="o">::</span><span class="n">string</span><span class="o">></span> <span class="o">></span> <span class="n">v</span><span class="p">;</span>
+<span class="n">v</span><span class="p">.</span><span class="n">emplace_back</span><span class="p">(</span><span class="s">"abc"</span><span class="p">);</span>
+</pre></div>
+</div>
+<p>In some cases the transformation would be valid, but the code wouldn’t be
+exception safe. In this case the calls of <tt class="docutils literal"><span class="pre">push_back</span></tt> won’t be replaced.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o"><</span><span class="n">std</span><span class="o">::</span><span class="n">unique_ptr</span><span class="o"><</span><span class="kt">int</span><span class="o">>></span> <span class="n">v</span><span class="p">;</span>
+<span class="n">v</span><span class="p">.</span><span class="n">push_back</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">unique_ptr</span><span class="o"><</span><span class="kt">int</span><span class="o">></span><span class="p">(</span><span class="k">new</span> <span class="kt">int</span><span class="p">(</span><span class="mi">0</span><span class="p">)));</span>
+<span class="k">auto</span> <span class="o">*</span><span class="n">ptr</span> <span class="o">=</span> <span class="k">new</span> <span class="kt">int</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span>
+<span class="n">v</span><span class="p">.</span><span class="n">push_back</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">unique_ptr</span><span class="o"><</span><span class="kt">int</span><span class="o">></span><span class="p">(</span><span class="n">ptr</span><span class="p">));</span>
+</pre></div>
+</div>
+<p>This is because replacing it with <tt class="docutils literal"><span class="pre">emplace_back</span></tt> could cause a leak of this
+pointer if <tt class="docutils literal"><span class="pre">emplace_back</span></tt> would throw exception before emplacement (e.g. not
+enough memory to add a new element).</p>
+<p>For more info read item 42 - “Consider emplacement instead of insertion.” of
+Scott Meyers “Effective Modern C++”.</p>
+<p>The default smart pointers that are considered are <tt class="docutils literal"><span class="pre">std::unique_ptr</span></tt>,
+<tt class="docutils literal"><span class="pre">std::shared_ptr</span></tt>, <tt class="docutils literal"><span class="pre">std::auto_ptr</span></tt>. To specify other smart pointers or
+other classes use the <a class="reference internal" href="#cmdoption-arg-SmartPointers"><em class="xref std std-option">SmartPointers</em></a> option.</p>
+<p>Check also doesn’t fire if any argument of the constructor call would be:</p>
+<blockquote>
+<div><ul class="simple">
+<li>a bit-field (bit-fields can’t bind to rvalue/universal reference)</li>
+<li>a <tt class="docutils literal"><span class="pre">new</span></tt> expression (to avoid leak)</li>
+<li>if the argument would be converted via derived-to-base cast.</li>
+</ul>
+</div></blockquote>
+<p>This check requires C++11 or higher to run.</p>
+<div class="section" id="options">
+<h2>Options<a class="headerlink" href="#options" title="Permalink to this headline">¶</a></h2>
+<dl class="option">
+<dt id="cmdoption-arg-ContainersWithPushBack">
+<tt class="descname">ContainersWithPushBack</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-ContainersWithPushBack" title="Permalink to this definition">¶</a></dt>
+<dd><p>Semicolon-separated list of class names of custom containers that support
+<tt class="docutils literal"><span class="pre">push_back</span></tt>.</p>
+</dd></dl>
+
+<dl class="option">
+<dt id="cmdoption-arg-SmartPointers">
+<tt class="descname">SmartPointers</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-SmartPointers" title="Permalink to this definition">¶</a></dt>
+<dd><p>Semicolon-separated list of class names of custom smart pointers.</p>
+</dd></dl>
+
+<dl class="option">
+<dt id="cmdoption-arg-TupleTypes">
+<tt class="descname">TupleTypes</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-TupleTypes" title="Permalink to this definition">¶</a></dt>
+<dd><p>Semicolon-separated list of <tt class="docutils literal"><span class="pre">std::tuple</span></tt>-like class names.</p>
+</dd></dl>
+
+<dl class="option">
+<dt id="cmdoption-arg-TupleMakeFunctions">
+<tt class="descname">TupleMakeFunctions</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-TupleMakeFunctions" title="Permalink to this definition">¶</a></dt>
+<dd><p>Semicolon-separated list of <tt class="docutils literal"><span class="pre">std::make_tuple</span></tt>-like function names. Those
+function calls will be removed from <tt class="docutils literal"><span class="pre">push_back</span></tt> calls and turned into
+<tt class="docutils literal"><span class="pre">emplace_back</span></tt>.</p>
+</dd></dl>
+
+<div class="section" id="example">
+<h3>Example<a class="headerlink" href="#example" title="Permalink to this headline">¶</a></h3>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o"><</span><span class="n">MyTuple</span><span class="o"><</span><span class="kt">int</span><span class="p">,</span> <span class="kt">bool</span><span class="p">,</span> <span class="kt">char</span><span class="o">>></span> <span class="n">x</span><span class="p">;</span>
+<span class="n">x</span><span class="p">.</span><span class="n">push_back</span><span class="p">(</span><span class="n">MakeMyTuple</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="nb">false</span><span class="p">,</span> <span class="sc">'x'</span><span class="p">));</span>
+</pre></div>
+</div>
+<p>transforms to:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o"><</span><span class="n">MyTuple</span><span class="o"><</span><span class="kt">int</span><span class="p">,</span> <span class="kt">bool</span><span class="p">,</span> <span class="kt">char</span><span class="o">>></span> <span class="n">x</span><span class="p">;</span>
+<span class="n">x</span><span class="p">.</span><span class="n">emplace_back</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="nb">false</span><span class="p">,</span> <span class="sc">'x'</span><span class="p">);</span>
+</pre></div>
+</div>
+<p>when <a class="reference internal" href="#cmdoption-arg-TupleTypes"><em class="xref std std-option">TupleTypes</em></a> is set to <tt class="docutils literal"><span class="pre">MyTuple</span></tt> and <a class="reference internal" href="#cmdoption-arg-TupleMakeFunctions"><em class="xref std std-option">TupleMakeFunctions</em></a>
+is set to <tt class="docutils literal"><span class="pre">MakeMyTuple</span></tt>.</p>
+</div>
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="modernize-use-default-member-init.html">modernize-use-default-member-init</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-use-equals-default.html">modernize-use-equals-default</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-equals-default.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-equals-default.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-equals-default.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-equals-default.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,97 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - modernize-use-equals-default — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="modernize-use-equals-delete" href="modernize-use-equals-delete.html" />
+    <link rel="prev" title="modernize-use-emplace" href="modernize-use-emplace.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - modernize-use-equals-default</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="modernize-use-emplace.html">modernize-use-emplace</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-use-equals-delete.html">modernize-use-equals-delete</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="modernize-use-equals-default">
+<h1>modernize-use-equals-default<a class="headerlink" href="#modernize-use-equals-default" title="Permalink to this headline">¶</a></h1>
+<p>This check replaces default bodies of special member functions with <tt class="docutils literal"><span class="pre">=</span>
+<span class="pre">default;</span></tt>. The explicitly defaulted function declarations enable more
+opportunities in optimization, because the compiler might treat explicitly
+defaulted functions as trivial.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">struct</span> <span class="n">A</span> <span class="p">{</span>
+  <span class="n">A</span><span class="p">()</span> <span class="p">{}</span>
+  <span class="o">~</span><span class="n">A</span><span class="p">();</span>
+<span class="p">};</span>
+<span class="n">A</span><span class="o">::~</span><span class="n">A</span><span class="p">()</span> <span class="p">{}</span>
+
+<span class="c1">// becomes</span>
+
+<span class="k">struct</span> <span class="n">A</span> <span class="p">{</span>
+  <span class="n">A</span><span class="p">()</span> <span class="o">=</span> <span class="k">default</span><span class="p">;</span>
+  <span class="o">~</span><span class="n">A</span><span class="p">();</span>
+<span class="p">};</span>
+<span class="n">A</span><span class="o">::~</span><span class="n">A</span><span class="p">()</span> <span class="o">=</span> <span class="k">default</span><span class="p">;</span>
+</pre></div>
+</div>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">Move-constructor and move-assignment operator are not supported yet.</p>
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="modernize-use-emplace.html">modernize-use-emplace</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-use-equals-delete.html">modernize-use-equals-delete</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-equals-delete.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-equals-delete.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-equals-delete.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-equals-delete.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,92 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - modernize-use-equals-delete — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="modernize-use-noexcept" href="modernize-use-noexcept.html" />
+    <link rel="prev" title="modernize-use-equals-default" href="modernize-use-equals-default.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - modernize-use-equals-delete</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="modernize-use-equals-default.html">modernize-use-equals-default</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-use-noexcept.html">modernize-use-noexcept</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="modernize-use-equals-delete">
+<h1>modernize-use-equals-delete<a class="headerlink" href="#modernize-use-equals-delete" title="Permalink to this headline">¶</a></h1>
+<p>This check marks unimplemented private special member functions with <tt class="docutils literal"><span class="pre">=</span> <span class="pre">delete</span></tt>.
+To avoid false-positives, this check only applies in a translation unit that has
+all other member functions implemented.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">struct</span> <span class="n">A</span> <span class="p">{</span>
+<span class="k">private</span><span class="o">:</span>
+  <span class="n">A</span><span class="p">(</span><span class="k">const</span> <span class="n">A</span><span class="o">&</span><span class="p">);</span>
+  <span class="n">A</span><span class="o">&</span> <span class="k">operator</span><span class="o">=</span><span class="p">(</span><span class="k">const</span> <span class="n">A</span><span class="o">&</span><span class="p">);</span>
+<span class="p">};</span>
+
+<span class="c1">// becomes</span>
+
+<span class="k">struct</span> <span class="n">A</span> <span class="p">{</span>
+<span class="k">private</span><span class="o">:</span>
+  <span class="n">A</span><span class="p">(</span><span class="k">const</span> <span class="n">A</span><span class="o">&</span><span class="p">)</span> <span class="o">=</span> <span class="k">delete</span><span class="p">;</span>
+  <span class="n">A</span><span class="o">&</span> <span class="k">operator</span><span class="o">=</span><span class="p">(</span><span class="k">const</span> <span class="n">A</span><span class="o">&</span><span class="p">)</span> <span class="o">=</span> <span class="k">delete</span><span class="p">;</span>
+<span class="p">};</span>
+</pre></div>
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="modernize-use-equals-default.html">modernize-use-equals-default</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-use-noexcept.html">modernize-use-noexcept</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-noexcept.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-noexcept.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-noexcept.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-noexcept.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,152 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - modernize-use-noexcept — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="modernize-use-nullptr" href="modernize-use-nullptr.html" />
+    <link rel="prev" title="modernize-use-equals-delete" href="modernize-use-equals-delete.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - modernize-use-noexcept</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="modernize-use-equals-delete.html">modernize-use-equals-delete</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-use-nullptr.html">modernize-use-nullptr</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="modernize-use-noexcept">
+<h1>modernize-use-noexcept<a class="headerlink" href="#modernize-use-noexcept" title="Permalink to this headline">¶</a></h1>
+<p>This check replaces deprecated dynamic exception specifications with
+the appropriate noexcept specification (introduced in C++11).  By
+default this check will replace <tt class="docutils literal"><span class="pre">throw()</span></tt> with <tt class="docutils literal"><span class="pre">noexcept</span></tt>,
+and <tt class="docutils literal"><span class="pre">throw(<exception>[,...])</span></tt> or <tt class="docutils literal"><span class="pre">throw(...)</span></tt> with
+<tt class="docutils literal"><span class="pre">noexcept(false)</span></tt>.</p>
+<div class="section" id="example">
+<h2>Example<a class="headerlink" href="#example" title="Permalink to this headline">¶</a></h2>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="kt">void</span> <span class="nf">foo</span><span class="p">()</span> <span class="k">throw</span><span class="p">();</span>
+      <span class="kt">void</span> <span class="nf">bar</span><span class="p">()</span> <span class="k">throw</span><span class="p">(</span><span class="kt">int</span><span class="p">)</span> <span class="p">{}</span>
+</pre></div>
+</div>
+<p>transforms to:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="kt">void</span> <span class="nf">foo</span><span class="p">()</span> <span class="k">noexcept</span><span class="p">;</span>
+      <span class="kt">void</span> <span class="nf">bar</span><span class="p">()</span> <span class="k">noexcept</span><span class="p">(</span><span class="nb">false</span><span class="p">)</span> <span class="p">{}</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="options">
+<h2>Options<a class="headerlink" href="#options" title="Permalink to this headline">¶</a></h2>
+<dl class="option">
+<dt id="cmdoption-arg-ReplacementString">
+<tt class="descname">ReplacementString</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-ReplacementString" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<p>Users can use <a class="reference internal" href="#cmdoption-arg-ReplacementString"><em class="xref std std-option">ReplacementString</em></a> to specify a macro to use
+instead of <tt class="docutils literal"><span class="pre">noexcept</span></tt>.  This is useful when maintaining source code
+that uses custom exception specification marking other than
+<tt class="docutils literal"><span class="pre">noexcept</span></tt>.  Fix-it hints will only be generated for non-throwing
+specifications.</p>
+<div class="section" id="id1">
+<h3>Example<a class="headerlink" href="#id1" title="Permalink to this headline">¶</a></h3>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="kt">void</span> <span class="nf">bar</span><span class="p">()</span> <span class="k">throw</span><span class="p">(</span><span class="kt">int</span><span class="p">);</span>
+<span class="kt">void</span> <span class="nf">foo</span><span class="p">()</span> <span class="k">throw</span><span class="p">();</span>
+</pre></div>
+</div>
+<p>transforms to:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="kt">void</span> <span class="nf">bar</span><span class="p">()</span> <span class="k">throw</span><span class="p">(</span><span class="kt">int</span><span class="p">);</span>  <span class="c1">// No fix-it generated.</span>
+<span class="kt">void</span> <span class="nf">foo</span><span class="p">()</span> <span class="n">NOEXCEPT</span><span class="p">;</span>
+</pre></div>
+</div>
+<p>if the <a class="reference internal" href="#cmdoption-arg-ReplacementString"><em class="xref std std-option">ReplacementString</em></a> option is set to <cite>NOEXCEPT</cite>.</p>
+<dl class="option">
+<dt id="cmdoption-arg-UseNoexceptFalse">
+<tt class="descname">UseNoexceptFalse</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-UseNoexceptFalse" title="Permalink to this definition">¶</a></dt>
+<dd></dd></dl>
+
+<p>Enabled by default, disabling will generate fix-it hints that remove
+throwing dynamic exception specs, e.g., <tt class="docutils literal"><span class="pre">throw(<something>)</span></tt>,
+completely without providing a replacement text, except for
+destructors and delete operators that are <tt class="docutils literal"><span class="pre">noexcept(true)</span></tt> by
+default.</p>
+</div>
+<div class="section" id="id2">
+<h3>Example<a class="headerlink" href="#id2" title="Permalink to this headline">¶</a></h3>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="kt">void</span> <span class="nf">foo</span><span class="p">()</span> <span class="k">throw</span><span class="p">(</span><span class="kt">int</span><span class="p">)</span> <span class="p">{}</span>
+
+<span class="k">struct</span> <span class="n">bar</span> <span class="p">{</span>
+  <span class="kt">void</span> <span class="n">foobar</span><span class="p">()</span> <span class="k">throw</span><span class="p">(</span><span class="kt">int</span><span class="p">);</span>
+  <span class="kt">void</span> <span class="k">operator</span> <span class="nf">delete</span><span class="p">(</span><span class="kt">void</span> <span class="o">*</span><span class="n">ptr</span><span class="p">)</span> <span class="k">throw</span><span class="p">(</span><span class="kt">int</span><span class="p">);</span>
+  <span class="kt">void</span> <span class="k">operator</span> <span class="k">delete</span><span class="p">[](</span><span class="kt">void</span> <span class="o">*</span><span class="n">ptr</span><span class="p">)</span> <span class="k">throw</span><span class="p">(</span><span class="kt">int</span><span class="p">);</span>
+  <span class="o">~</span><span class="n">bar</span><span class="p">()</span> <span class="k">throw</span><span class="p">(</span><span class="kt">int</span><span class="p">);</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<p>transforms to:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="kt">void</span> <span class="nf">foo</span><span class="p">()</span> <span class="p">{}</span>
+
+<span class="k">struct</span> <span class="n">bar</span> <span class="p">{</span>
+  <span class="kt">void</span> <span class="n">foobar</span><span class="p">();</span>
+  <span class="kt">void</span> <span class="k">operator</span> <span class="nf">delete</span><span class="p">(</span><span class="kt">void</span> <span class="o">*</span><span class="n">ptr</span><span class="p">)</span> <span class="k">noexcept</span><span class="p">(</span><span class="nb">false</span><span class="p">);</span>
+  <span class="kt">void</span> <span class="k">operator</span> <span class="k">delete</span><span class="p">[](</span><span class="kt">void</span> <span class="o">*</span><span class="n">ptr</span><span class="p">)</span> <span class="k">noexcept</span><span class="p">(</span><span class="nb">false</span><span class="p">);</span>
+  <span class="o">~</span><span class="n">bar</span><span class="p">()</span> <span class="k">noexcept</span><span class="p">(</span><span class="nb">false</span><span class="p">);</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<p>if the <a class="reference internal" href="#cmdoption-arg-UseNoexceptFalse"><em class="xref std std-option">UseNoexceptFalse</em></a> option is set to <cite>0</cite>.</p>
+</div>
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="modernize-use-equals-delete.html">modernize-use-equals-delete</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-use-nullptr.html">modernize-use-nullptr</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-nullptr.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-nullptr.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-nullptr.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-nullptr.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,130 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - modernize-use-nullptr — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="modernize-use-override" href="modernize-use-override.html" />
+    <link rel="prev" title="modernize-use-noexcept" href="modernize-use-noexcept.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - modernize-use-nullptr</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="modernize-use-noexcept.html">modernize-use-noexcept</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-use-override.html">modernize-use-override</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="modernize-use-nullptr">
+<h1>modernize-use-nullptr<a class="headerlink" href="#modernize-use-nullptr" title="Permalink to this headline">¶</a></h1>
+<p>The check converts the usage of null pointer constants (eg. <tt class="docutils literal"><span class="pre">NULL</span></tt>, <tt class="docutils literal"><span class="pre">0</span></tt>)
+to use the new C++11 <tt class="docutils literal"><span class="pre">nullptr</span></tt> keyword.</p>
+<div class="section" id="example">
+<h2>Example<a class="headerlink" href="#example" title="Permalink to this headline">¶</a></h2>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="kt">void</span> <span class="nf">assignment</span><span class="p">()</span> <span class="p">{</span>
+  <span class="kt">char</span> <span class="o">*</span><span class="n">a</span> <span class="o">=</span> <span class="nb">NULL</span><span class="p">;</span>
+  <span class="kt">char</span> <span class="o">*</span><span class="n">b</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
+  <span class="kt">char</span> <span class="n">c</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
+<span class="p">}</span>
+
+<span class="kt">int</span> <span class="o">*</span><span class="nf">ret_ptr</span><span class="p">()</span> <span class="p">{</span>
+  <span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<p>transforms to:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="kt">void</span> <span class="nf">assignment</span><span class="p">()</span> <span class="p">{</span>
+  <span class="kt">char</span> <span class="o">*</span><span class="n">a</span> <span class="o">=</span> <span class="k">nullptr</span><span class="p">;</span>
+  <span class="kt">char</span> <span class="o">*</span><span class="n">b</span> <span class="o">=</span> <span class="k">nullptr</span><span class="p">;</span>
+  <span class="kt">char</span> <span class="n">c</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
+<span class="p">}</span>
+
+<span class="kt">int</span> <span class="o">*</span><span class="nf">ret_ptr</span><span class="p">()</span> <span class="p">{</span>
+  <span class="k">return</span> <span class="k">nullptr</span><span class="p">;</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="options">
+<h2>Options<a class="headerlink" href="#options" title="Permalink to this headline">¶</a></h2>
+<dl class="option">
+<dt id="cmdoption-arg-NullMacros">
+<tt class="descname">NullMacros</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-NullMacros" title="Permalink to this definition">¶</a></dt>
+<dd><p>Comma-separated list of macro names that will be transformed along with
+<tt class="docutils literal"><span class="pre">NULL</span></tt>. By default this check will only replace the <tt class="docutils literal"><span class="pre">NULL</span></tt> macro and will
+skip any similar user-defined macros.</p>
+</dd></dl>
+
+<div class="section" id="id1">
+<h3>Example<a class="headerlink" href="#id1" title="Permalink to this headline">¶</a></h3>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="cp">#define MY_NULL (void*)0</span>
+<span class="kt">void</span> <span class="nf">assignment</span><span class="p">()</span> <span class="p">{</span>
+  <span class="kt">void</span> <span class="o">*</span><span class="n">p</span> <span class="o">=</span> <span class="n">MY_NULL</span><span class="p">;</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<p>transforms to:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="cp">#define MY_NULL NULL</span>
+<span class="kt">void</span> <span class="nf">assignment</span><span class="p">()</span> <span class="p">{</span>
+  <span class="kt">int</span> <span class="o">*</span><span class="n">p</span> <span class="o">=</span> <span class="k">nullptr</span><span class="p">;</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<p>if the <a class="reference internal" href="#cmdoption-arg-NullMacros"><em class="xref std std-option">NullMacros</em></a> option is set to <tt class="docutils literal"><span class="pre">MY_NULL</span></tt>.</p>
+</div>
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="modernize-use-noexcept.html">modernize-use-noexcept</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-use-override.html">modernize-use-override</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-override.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-override.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-override.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-override.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,75 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - modernize-use-override — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="modernize-use-transparent-functors" href="modernize-use-transparent-functors.html" />
+    <link rel="prev" title="modernize-use-nullptr" href="modernize-use-nullptr.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - modernize-use-override</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="modernize-use-nullptr.html">modernize-use-nullptr</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-use-transparent-functors.html">modernize-use-transparent-functors</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="modernize-use-override">
+<h1>modernize-use-override<a class="headerlink" href="#modernize-use-override" title="Permalink to this headline">¶</a></h1>
+<p>Use C++11’s <tt class="docutils literal"><span class="pre">override</span></tt> and remove <tt class="docutils literal"><span class="pre">virtual</span></tt> where applicable.</p>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="modernize-use-nullptr.html">modernize-use-nullptr</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-use-transparent-functors.html">modernize-use-transparent-functors</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-transparent-functors.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-transparent-functors.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-transparent-functors.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-transparent-functors.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - modernize-use-transparent-functors — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="modernize-use-using" href="modernize-use-using.html" />
+    <link rel="prev" title="modernize-use-override" href="modernize-use-override.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - modernize-use-transparent-functors</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="modernize-use-override.html">modernize-use-override</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-use-using.html">modernize-use-using</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="modernize-use-transparent-functors">
+<h1>modernize-use-transparent-functors<a class="headerlink" href="#modernize-use-transparent-functors" title="Permalink to this headline">¶</a></h1>
+<p>Prefer transparent functors to non-transparent ones. When using transparent
+functors, the type does not need to be repeated. The code is easier to read,
+maintain and less prone to errors. It is not possible to introduce unwanted
+conversions.</p>
+<blockquote>
+<div><div class="highlight-c++"><div class="highlight"><pre><span></span><span class="c1">// Non-transparent functor</span>
+<span class="n">std</span><span class="o">::</span><span class="n">map</span><span class="o"><</span><span class="kt">int</span><span class="p">,</span> <span class="n">std</span><span class="o">::</span><span class="n">string</span><span class="p">,</span> <span class="n">std</span><span class="o">::</span><span class="n">greater</span><span class="o"><</span><span class="kt">int</span><span class="o">>></span> <span class="n">s</span><span class="p">;</span>
+
+<span class="c1">// Transparent functor.</span>
+<span class="n">std</span><span class="o">::</span><span class="n">map</span><span class="o"><</span><span class="kt">int</span><span class="p">,</span> <span class="n">std</span><span class="o">::</span><span class="n">string</span><span class="p">,</span> <span class="n">std</span><span class="o">::</span><span class="n">greater</span><span class="o"><>></span> <span class="n">s</span><span class="p">;</span>
+
+<span class="c1">// Non-transparent functor</span>
+<span class="k">using</span> <span class="n">MyFunctor</span> <span class="o">=</span> <span class="n">std</span><span class="o">::</span><span class="n">less</span><span class="o"><</span><span class="n">MyType</span><span class="o">></span><span class="p">;</span>
+</pre></div>
+</div>
+</div></blockquote>
+<p>It is not always a safe transformation though. The following case will be
+untouched to preserve the semantics.</p>
+<blockquote>
+<div><div class="highlight-c++"><div class="highlight"><pre><span></span><span class="c1">// Non-transparent functor</span>
+<span class="n">std</span><span class="o">::</span><span class="n">map</span><span class="o"><</span><span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="p">,</span> <span class="n">std</span><span class="o">::</span><span class="n">string</span><span class="p">,</span> <span class="n">std</span><span class="o">::</span><span class="n">greater</span><span class="o"><</span><span class="n">std</span><span class="o">::</span><span class="n">string</span><span class="o">>></span> <span class="n">s</span><span class="p">;</span>
+</pre></div>
+</div>
+</div></blockquote>
+<div class="section" id="options">
+<h2>Options<a class="headerlink" href="#options" title="Permalink to this headline">¶</a></h2>
+<dl class="option">
+<dt id="cmdoption-arg-SafeMode">
+<tt class="descname">SafeMode</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-SafeMode" title="Permalink to this definition">¶</a></dt>
+<dd><p>If the option is set to non-zero, the check will not diagnose cases where
+using a transparent functor cannot be guaranteed to produce identical results
+as the original code. The default value for this option is <cite>0</cite>.</p>
+</dd></dl>
+
+<p>This check requires using C++14 or higher to run.</p>
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="modernize-use-override.html">modernize-use-override</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="modernize-use-using.html">modernize-use-using</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-using.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-using.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-using.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/modernize-use-using.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,90 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - modernize-use-using — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="mpi-buffer-deref" href="mpi-buffer-deref.html" />
+    <link rel="prev" title="modernize-use-transparent-functors" href="modernize-use-transparent-functors.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - modernize-use-using</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="modernize-use-transparent-functors.html">modernize-use-transparent-functors</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="mpi-buffer-deref.html">mpi-buffer-deref</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="modernize-use-using">
+<h1>modernize-use-using<a class="headerlink" href="#modernize-use-using" title="Permalink to this headline">¶</a></h1>
+<p>The check converts the usage of <tt class="docutils literal"><span class="pre">typedef</span></tt> with <tt class="docutils literal"><span class="pre">using</span></tt> keyword.</p>
+<p>Before:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">typedef</span> <span class="kt">int</span> <span class="n">variable</span><span class="p">;</span>
+
+<span class="k">class</span> <span class="nc">Class</span><span class="p">{};</span>
+<span class="k">typedef</span> <span class="nf">void</span> <span class="p">(</span><span class="n">Class</span><span class="o">::*</span> <span class="n">MyPtrType</span><span class="p">)()</span> <span class="k">const</span><span class="p">;</span>
+</pre></div>
+</div>
+<p>After:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">using</span> <span class="n">variable</span> <span class="o">=</span> <span class="kt">int</span><span class="p">;</span>
+
+<span class="k">class</span> <span class="nc">Class</span><span class="p">{};</span>
+<span class="k">using</span> <span class="n">MyPtrType</span> <span class="o">=</span> <span class="kt">void</span> <span class="p">(</span><span class="n">Class</span><span class="o">::*</span><span class="p">)()</span> <span class="k">const</span><span class="p">;</span>
+</pre></div>
+</div>
+<p>This check requires using C++11 or higher to run.</p>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="modernize-use-transparent-functors.html">modernize-use-transparent-functors</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="mpi-buffer-deref.html">mpi-buffer-deref</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/mpi-buffer-deref.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/mpi-buffer-deref.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/mpi-buffer-deref.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/mpi-buffer-deref.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - mpi-buffer-deref — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="mpi-type-mismatch" href="mpi-type-mismatch.html" />
+    <link rel="prev" title="modernize-use-using" href="modernize-use-using.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - mpi-buffer-deref</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="modernize-use-using.html">modernize-use-using</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="mpi-type-mismatch.html">mpi-type-mismatch</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="mpi-buffer-deref">
+<h1>mpi-buffer-deref<a class="headerlink" href="#mpi-buffer-deref" title="Permalink to this headline">¶</a></h1>
+<p>This check verifies if a buffer passed to an MPI (Message Passing Interface)
+function is sufficiently dereferenced. Buffers should be passed as a single
+pointer or array. As MPI function signatures specify <tt class="docutils literal"><span class="pre">void</span> <span class="pre">*</span></tt> for their buffer
+types, insufficiently dereferenced buffers can be passed, like for example as
+double pointers or multidimensional arrays, without a compiler warning emitted.</p>
+<p>Examples:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="c1">// A double pointer is passed to the MPI function.</span>
+<span class="kt">char</span> <span class="o">*</span><span class="n">buf</span><span class="p">;</span>
+<span class="n">MPI_Send</span><span class="p">(</span><span class="o">&</span><span class="n">buf</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">MPI_CHAR</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">MPI_COMM_WORLD</span><span class="p">);</span>
+
+<span class="c1">// A multidimensional array is passed to the MPI function.</span>
+<span class="kt">short</span> <span class="n">buf</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">1</span><span class="p">];</span>
+<span class="n">MPI_Send</span><span class="p">(</span><span class="n">buf</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">MPI_SHORT</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">MPI_COMM_WORLD</span><span class="p">);</span>
+
+<span class="c1">// A pointer to an array is passed to the MPI function.</span>
+<span class="kt">short</span> <span class="o">*</span><span class="n">buf</span><span class="p">[</span><span class="mi">1</span><span class="p">];</span>
+<span class="n">MPI_Send</span><span class="p">(</span><span class="n">buf</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">MPI_SHORT</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">MPI_COMM_WORLD</span><span class="p">);</span>
+</pre></div>
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="modernize-use-using.html">modernize-use-using</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="mpi-type-mismatch.html">mpi-type-mismatch</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/mpi-type-mismatch.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/mpi-type-mismatch.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/mpi-type-mismatch.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/mpi-type-mismatch.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,88 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - mpi-type-mismatch — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="performance-faster-string-find" href="performance-faster-string-find.html" />
+    <link rel="prev" title="mpi-buffer-deref" href="mpi-buffer-deref.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - mpi-type-mismatch</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="mpi-buffer-deref.html">mpi-buffer-deref</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="performance-faster-string-find.html">performance-faster-string-find</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="mpi-type-mismatch">
+<h1>mpi-type-mismatch<a class="headerlink" href="#mpi-type-mismatch" title="Permalink to this headline">¶</a></h1>
+<p>This check verifies if buffer type and MPI (Message Passing Interface) datatype
+pairs match for used MPI functions. All MPI datatypes defined by the MPI
+standard (3.1) are verified by this check. User defined typedefs, custom MPI
+datatypes and null pointer constants are skipped, in the course of verification.</p>
+<p>Example:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="c1">// In this case, the buffer type matches MPI datatype.</span>
+<span class="kt">char</span> <span class="n">buf</span><span class="p">;</span>
+<span class="n">MPI_Send</span><span class="p">(</span><span class="o">&</span><span class="n">buf</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">MPI_CHAR</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">MPI_COMM_WORLD</span><span class="p">);</span>
+
+<span class="c1">// In the following case, the buffer type does not match MPI datatype.</span>
+<span class="kt">int</span> <span class="n">buf</span><span class="p">;</span>
+<span class="n">MPI_Send</span><span class="p">(</span><span class="o">&</span><span class="n">buf</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">MPI_CHAR</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">MPI_COMM_WORLD</span><span class="p">);</span>
+</pre></div>
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="mpi-buffer-deref.html">mpi-buffer-deref</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="performance-faster-string-find.html">performance-faster-string-find</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance-faster-string-find.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance-faster-string-find.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance-faster-string-find.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance-faster-string-find.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,96 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - performance-faster-string-find — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="performance-for-range-copy" href="performance-for-range-copy.html" />
+    <link rel="prev" title="mpi-type-mismatch" href="mpi-type-mismatch.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - performance-faster-string-find</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="mpi-type-mismatch.html">mpi-type-mismatch</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="performance-for-range-copy.html">performance-for-range-copy</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="performance-faster-string-find">
+<h1>performance-faster-string-find<a class="headerlink" href="#performance-faster-string-find" title="Permalink to this headline">¶</a></h1>
+<p>Optimize calls to <tt class="docutils literal"><span class="pre">std::string::find()</span></tt> and friends when the needle passed is
+a single character string literal. The character literal overload is more
+efficient.</p>
+<p>Examples:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="n">str</span><span class="p">.</span><span class="n">find</span><span class="p">(</span><span class="s">"A"</span><span class="p">);</span>
+
+<span class="c1">// becomes</span>
+
+<span class="n">str</span><span class="p">.</span><span class="n">find</span><span class="p">(</span><span class="sc">'A'</span><span class="p">);</span>
+</pre></div>
+</div>
+<div class="section" id="options">
+<h2>Options<a class="headerlink" href="#options" title="Permalink to this headline">¶</a></h2>
+<dl class="option">
+<dt id="cmdoption-arg-StringLikeClasses">
+<tt class="descname">StringLikeClasses</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-StringLikeClasses" title="Permalink to this definition">¶</a></dt>
+<dd><p>Semicolon-separated list of names of string-like classes. By default only
+<tt class="docutils literal"><span class="pre">std::basic_string</span></tt> is considered. The list of methods to consired is
+fixed.</p>
+</dd></dl>
+
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="mpi-type-mismatch.html">mpi-type-mismatch</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="performance-for-range-copy.html">performance-for-range-copy</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance-for-range-copy.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance-for-range-copy.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance-for-range-copy.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance-for-range-copy.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,97 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - performance-for-range-copy — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="performance-implicit-cast-in-loop" href="performance-implicit-cast-in-loop.html" />
+    <link rel="prev" title="performance-faster-string-find" href="performance-faster-string-find.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - performance-for-range-copy</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="performance-faster-string-find.html">performance-faster-string-find</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="performance-implicit-cast-in-loop.html">performance-implicit-cast-in-loop</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="performance-for-range-copy">
+<h1>performance-for-range-copy<a class="headerlink" href="#performance-for-range-copy" title="Permalink to this headline">¶</a></h1>
+<p>Finds C++11 for ranges where the loop variable is copied in each iteration but
+it would suffice to obtain it by const reference.</p>
+<p>The check is only applied to loop variables of types that are expensive to copy
+which means they are not trivially copyable or have a non-trivial copy
+constructor or destructor.</p>
+<p>To ensure that it is safe to replace the copy with a const reference the
+following heuristic is employed:</p>
+<ol class="arabic simple">
+<li>The loop variable is const qualified.</li>
+<li>The loop variable is not const, but only const methods or operators are
+invoked on it, or it is used as const reference or value argument in
+constructors or function calls.</li>
+</ol>
+<div class="section" id="options">
+<h2>Options<a class="headerlink" href="#options" title="Permalink to this headline">¶</a></h2>
+<dl class="option">
+<dt id="cmdoption-arg-WarnOnAllAutoCopies">
+<tt class="descname">WarnOnAllAutoCopies</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-WarnOnAllAutoCopies" title="Permalink to this definition">¶</a></dt>
+<dd><p>When non-zero, warns on any use of <cite>auto</cite> as the type of the range-based for
+loop variable. Default is <cite>0</cite>.</p>
+</dd></dl>
+
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="performance-faster-string-find.html">performance-faster-string-find</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="performance-implicit-cast-in-loop.html">performance-implicit-cast-in-loop</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance-implicit-cast-in-loop.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance-implicit-cast-in-loop.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance-implicit-cast-in-loop.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance-implicit-cast-in-loop.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,87 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - performance-implicit-cast-in-loop — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="performance-inefficient-string-concatenation" href="performance-inefficient-string-concatenation.html" />
+    <link rel="prev" title="performance-for-range-copy" href="performance-for-range-copy.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - performance-implicit-cast-in-loop</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="performance-for-range-copy.html">performance-for-range-copy</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="performance-inefficient-string-concatenation.html">performance-inefficient-string-concatenation</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="performance-implicit-cast-in-loop">
+<h1>performance-implicit-cast-in-loop<a class="headerlink" href="#performance-implicit-cast-in-loop" title="Permalink to this headline">¶</a></h1>
+<p>This warning appears in a range-based loop with a loop variable of const ref
+type where the type of the variable does not match the one returned by the
+iterator. This means that an implicit cast has been added, which can for example
+result in expensive deep copies.</p>
+<p>Example:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="n">map</span><span class="o"><</span><span class="kt">int</span><span class="p">,</span> <span class="n">vector</span><span class="o"><</span><span class="n">string</span><span class="o">>></span> <span class="n">my_map</span><span class="p">;</span>
+<span class="k">for</span> <span class="p">(</span><span class="k">const</span> <span class="n">pair</span><span class="o"><</span><span class="kt">int</span><span class="p">,</span> <span class="n">vector</span><span class="o"><</span><span class="n">string</span><span class="o">>>&</span> <span class="nl">p</span> <span class="p">:</span> <span class="n">my_map</span><span class="p">)</span> <span class="p">{}</span>
+<span class="c1">// The iterator type is in fact pair<const int, vector<string>>, which means</span>
+<span class="c1">// that the compiler added a cast, resulting in a copy of the vectors.</span>
+</pre></div>
+</div>
+<p>The easiest solution is usually to use <tt class="docutils literal"><span class="pre">const</span> <span class="pre">auto&</span></tt> instead of writing the type
+manually.</p>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="performance-for-range-copy.html">performance-for-range-copy</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="performance-inefficient-string-concatenation.html">performance-inefficient-string-concatenation</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance-inefficient-string-concatenation.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance-inefficient-string-concatenation.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance-inefficient-string-concatenation.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance-inefficient-string-concatenation.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,121 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - performance-inefficient-string-concatenation — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="performance-inefficient-vector-operation" href="performance-inefficient-vector-operation.html" />
+    <link rel="prev" title="performance-implicit-cast-in-loop" href="performance-implicit-cast-in-loop.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - performance-inefficient-string-concatenation</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="performance-implicit-cast-in-loop.html">performance-implicit-cast-in-loop</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="performance-inefficient-vector-operation.html">performance-inefficient-vector-operation</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="performance-inefficient-string-concatenation">
+<h1>performance-inefficient-string-concatenation<a class="headerlink" href="#performance-inefficient-string-concatenation" title="Permalink to this headline">¶</a></h1>
+<p>This check warns about the performance overhead arising from concatenating
+strings using the <tt class="docutils literal"><span class="pre">operator+</span></tt>, for instance:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="n">a</span><span class="p">(</span><span class="s">"Foo"</span><span class="p">),</span> <span class="n">b</span><span class="p">(</span><span class="s">"Bar"</span><span class="p">);</span>
+<span class="n">a</span> <span class="o">=</span> <span class="n">a</span> <span class="o">+</span> <span class="n">b</span><span class="p">;</span>
+</pre></div>
+</div>
+<p>Instead of this structure you should use <tt class="docutils literal"><span class="pre">operator+=</span></tt> or <tt class="docutils literal"><span class="pre">std::string</span></tt>‘s
+(<tt class="docutils literal"><span class="pre">std::basic_string</span></tt>) class member function <tt class="docutils literal"><span class="pre">append()</span></tt>. For instance:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="n">a</span><span class="p">(</span><span class="s">"Foo"</span><span class="p">),</span> <span class="n">b</span><span class="p">(</span><span class="s">"Baz"</span><span class="p">);</span>
+<span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o"><</span> <span class="mi">20000</span><span class="p">;</span> <span class="o">++</span><span class="n">i</span><span class="p">)</span> <span class="p">{</span>
+    <span class="n">a</span> <span class="o">=</span> <span class="n">a</span> <span class="o">+</span> <span class="s">"Bar"</span> <span class="o">+</span> <span class="n">b</span><span class="p">;</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<p>Could be rewritten in a greatly more efficient way like:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="n">a</span><span class="p">(</span><span class="s">"Foo"</span><span class="p">),</span> <span class="n">b</span><span class="p">(</span><span class="s">"Baz"</span><span class="p">);</span>
+<span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o"><</span> <span class="mi">20000</span><span class="p">;</span> <span class="o">++</span><span class="n">i</span><span class="p">)</span> <span class="p">{</span>
+    <span class="n">a</span><span class="p">.</span><span class="n">append</span><span class="p">(</span><span class="s">"Bar"</span><span class="p">).</span><span class="n">append</span><span class="p">(</span><span class="n">b</span><span class="p">);</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<p>And this can be rewritten too:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="kt">void</span> <span class="nf">f</span><span class="p">(</span><span class="k">const</span> <span class="n">std</span><span class="o">::</span><span class="n">string</span><span class="o">&</span><span class="p">)</span> <span class="p">{}</span>
+<span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="n">a</span><span class="p">(</span><span class="s">"Foo"</span><span class="p">),</span> <span class="n">b</span><span class="p">(</span><span class="s">"Baz"</span><span class="p">);</span>
+<span class="kt">void</span> <span class="nf">g</span><span class="p">()</span> <span class="p">{</span>
+    <span class="n">f</span><span class="p">(</span><span class="n">a</span> <span class="o">+</span> <span class="s">"Bar"</span> <span class="o">+</span> <span class="n">b</span><span class="p">);</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<p>In a slightly more efficient way like:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="kt">void</span> <span class="nf">f</span><span class="p">(</span><span class="k">const</span> <span class="n">std</span><span class="o">::</span><span class="n">string</span><span class="o">&</span><span class="p">)</span> <span class="p">{}</span>
+<span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="n">a</span><span class="p">(</span><span class="s">"Foo"</span><span class="p">),</span> <span class="n">b</span><span class="p">(</span><span class="s">"Baz"</span><span class="p">);</span>
+<span class="kt">void</span> <span class="nf">g</span><span class="p">()</span> <span class="p">{</span>
+    <span class="n">f</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">string</span><span class="p">(</span><span class="n">a</span><span class="p">).</span><span class="n">append</span><span class="p">(</span><span class="s">"Bar"</span><span class="p">).</span><span class="n">append</span><span class="p">(</span><span class="n">b</span><span class="p">));</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<div class="section" id="options">
+<h2>Options<a class="headerlink" href="#options" title="Permalink to this headline">¶</a></h2>
+<dl class="option">
+<dt id="cmdoption-arg-StrictMode">
+<tt class="descname">StrictMode</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-StrictMode" title="Permalink to this definition">¶</a></dt>
+<dd><p>When zero, the check will only check the string usage in <tt class="docutils literal"><span class="pre">while</span></tt>, <tt class="docutils literal"><span class="pre">for</span></tt>
+and <tt class="docutils literal"><span class="pre">for-range</span></tt> statements. Default is <cite>0</cite>.</p>
+</dd></dl>
+
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="performance-implicit-cast-in-loop.html">performance-implicit-cast-in-loop</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="performance-inefficient-vector-operation.html">performance-inefficient-vector-operation</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance-inefficient-vector-operation.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance-inefficient-vector-operation.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance-inefficient-vector-operation.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance-inefficient-vector-operation.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - performance-inefficient-vector-operation — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="performance-type-promotion-in-math-fn" href="performance-type-promotion-in-math-fn.html" />
+    <link rel="prev" title="performance-inefficient-string-concatenation" href="performance-inefficient-string-concatenation.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - performance-inefficient-vector-operation</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="performance-inefficient-string-concatenation.html">performance-inefficient-string-concatenation</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="performance-type-promotion-in-math-fn.html">performance-type-promotion-in-math-fn</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="performance-inefficient-vector-operation">
+<h1>performance-inefficient-vector-operation<a class="headerlink" href="#performance-inefficient-vector-operation" title="Permalink to this headline">¶</a></h1>
+<p>Finds possible inefficient <tt class="docutils literal"><span class="pre">std::vector</span></tt> operations (e.g. <tt class="docutils literal"><span class="pre">push_back</span></tt>,
+<tt class="docutils literal"><span class="pre">emplace_back</span></tt>) that may cause unnecessary memory reallocations.</p>
+<p>Currently, the check only detects following kinds of loops with a single
+statement body:</p>
+<ul class="simple">
+<li>Counter-based for loops start with 0:</li>
+</ul>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o"><</span><span class="kt">int</span><span class="o">></span> <span class="n">v</span><span class="p">;</span>
+<span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o"><</span> <span class="n">n</span><span class="p">;</span> <span class="o">++</span><span class="n">i</span><span class="p">)</span> <span class="p">{</span>
+  <span class="n">v</span><span class="p">.</span><span class="n">push_back</span><span class="p">(</span><span class="n">n</span><span class="p">);</span>
+  <span class="c1">// This will trigger the warning since the push_back may cause multiple</span>
+  <span class="c1">// memory reallocations in v. This can be avoid by inserting a 'reserve(n)'</span>
+  <span class="c1">// statement before the for statement.</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<ul class="simple">
+<li>For-range loops like <tt class="docutils literal"><span class="pre">for</span> <span class="pre">(range-declaration</span> <span class="pre">:</span> <span class="pre">range_expression)</span></tt>, the type
+of <tt class="docutils literal"><span class="pre">range_expression</span></tt> can be <tt class="docutils literal"><span class="pre">std::vector</span></tt>, <tt class="docutils literal"><span class="pre">std::array</span></tt>,
+<tt class="docutils literal"><span class="pre">std::deque</span></tt>, <tt class="docutils literal"><span class="pre">std::set</span></tt>, <tt class="docutils literal"><span class="pre">std::unordered_set</span></tt>, <tt class="docutils literal"><span class="pre">std::map</span></tt>,
+<tt class="docutils literal"><span class="pre">std::unordered_set</span></tt>:</li>
+</ul>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o"><</span><span class="kt">int</span><span class="o">></span> <span class="n">data</span><span class="p">;</span>
+<span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o"><</span><span class="kt">int</span><span class="o">></span> <span class="n">v</span><span class="p">;</span>
+
+<span class="k">for</span> <span class="p">(</span><span class="k">auto</span> <span class="nl">element</span> <span class="p">:</span> <span class="n">data</span><span class="p">)</span> <span class="p">{</span>
+  <span class="n">v</span><span class="p">.</span><span class="n">push_back</span><span class="p">(</span><span class="n">element</span><span class="p">);</span>
+  <span class="c1">// This will trigger the warning since the 'push_back' may cause multiple</span>
+  <span class="c1">// memory reallocations in v. This can be avoid by inserting a</span>
+  <span class="c1">// 'reserve(data.size())' statement before the for statement.</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<div class="section" id="options">
+<h2>Options<a class="headerlink" href="#options" title="Permalink to this headline">¶</a></h2>
+<dl class="option">
+<dt id="cmdoption-arg-VectorLikeClasses">
+<tt class="descname">VectorLikeClasses</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-VectorLikeClasses" title="Permalink to this definition">¶</a></dt>
+<dd><p>Semicolon-separated list of names of vector-like classes. By default only
+<tt class="docutils literal"><span class="pre">::std::vector</span></tt> is considered.</p>
+</dd></dl>
+
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="performance-inefficient-string-concatenation.html">performance-inefficient-string-concatenation</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="performance-type-promotion-in-math-fn.html">performance-type-promotion-in-math-fn</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance-type-promotion-in-math-fn.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance-type-promotion-in-math-fn.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance-type-promotion-in-math-fn.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance-type-promotion-in-math-fn.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,88 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - performance-type-promotion-in-math-fn — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="performance-unnecessary-copy-initialization" href="performance-unnecessary-copy-initialization.html" />
+    <link rel="prev" title="performance-inefficient-vector-operation" href="performance-inefficient-vector-operation.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - performance-type-promotion-in-math-fn</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="performance-inefficient-vector-operation.html">performance-inefficient-vector-operation</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="performance-unnecessary-copy-initialization.html">performance-unnecessary-copy-initialization</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="performance-type-promotion-in-math-fn">
+<h1>performance-type-promotion-in-math-fn<a class="headerlink" href="#performance-type-promotion-in-math-fn" title="Permalink to this headline">¶</a></h1>
+<p>Finds calls to C math library functions (from <tt class="docutils literal"><span class="pre">math.h</span></tt> or, in C++, <tt class="docutils literal"><span class="pre">cmath</span></tt>)
+with implicit <tt class="docutils literal"><span class="pre">float</span></tt> to <tt class="docutils literal"><span class="pre">double</span></tt> promotions.</p>
+<p>For example, warns on <tt class="docutils literal"><span class="pre">::sin(0.f)</span></tt>, because this funciton’s parameter is a
+double. You probably meant to call <tt class="docutils literal"><span class="pre">std::sin(0.f)</span></tt> (in C++), or <tt class="docutils literal"><span class="pre">sinf(0.f)</span></tt>
+(in C).</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="kt">float</span> <span class="n">a</span><span class="p">;</span>
+<span class="n">asin</span><span class="p">(</span><span class="n">a</span><span class="p">);</span>
+
+<span class="c1">// becomes</span>
+
+<span class="kt">float</span> <span class="n">a</span><span class="p">;</span>
+<span class="n">std</span><span class="o">::</span><span class="n">asin</span><span class="p">(</span><span class="n">a</span><span class="p">);</span>
+</pre></div>
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="performance-inefficient-vector-operation.html">performance-inefficient-vector-operation</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="performance-unnecessary-copy-initialization.html">performance-unnecessary-copy-initialization</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance-unnecessary-copy-initialization.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance-unnecessary-copy-initialization.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance-unnecessary-copy-initialization.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance-unnecessary-copy-initialization.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,103 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - performance-unnecessary-copy-initialization — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="performance-unnecessary-value-param" href="performance-unnecessary-value-param.html" />
+    <link rel="prev" title="performance-type-promotion-in-math-fn" href="performance-type-promotion-in-math-fn.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - performance-unnecessary-copy-initialization</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="performance-type-promotion-in-math-fn.html">performance-type-promotion-in-math-fn</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="performance-unnecessary-value-param.html">performance-unnecessary-value-param</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="performance-unnecessary-copy-initialization">
+<h1>performance-unnecessary-copy-initialization<a class="headerlink" href="#performance-unnecessary-copy-initialization" title="Permalink to this headline">¶</a></h1>
+<p>Finds local variable declarations that are initialized using the copy
+constructor of a non-trivially-copyable type but it would suffice to obtain a
+const reference.</p>
+<p>The check is only applied if it is safe to replace the copy by a const
+reference. This is the case when the variable is const qualified or when it is
+only used as a const, i.e. only const methods or operators are invoked on it, or
+it is used as const reference or value argument in constructors or function
+calls.</p>
+<p>Example:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">const</span> <span class="n">string</span><span class="o">&</span> <span class="n">constReference</span><span class="p">();</span>
+<span class="kt">void</span> <span class="nf">Function</span><span class="p">()</span> <span class="p">{</span>
+  <span class="c1">// The warning will suggest making this a const reference.</span>
+  <span class="k">const</span> <span class="n">string</span> <span class="n">UnnecessaryCopy</span> <span class="o">=</span> <span class="n">constReference</span><span class="p">();</span>
+<span class="p">}</span>
+
+<span class="k">struct</span> <span class="n">Foo</span> <span class="p">{</span>
+  <span class="k">const</span> <span class="n">string</span><span class="o">&</span> <span class="n">name</span><span class="p">()</span> <span class="k">const</span><span class="p">;</span>
+<span class="p">};</span>
+<span class="kt">void</span> <span class="nf">Function</span><span class="p">(</span><span class="k">const</span> <span class="n">Foo</span><span class="o">&</span> <span class="n">foo</span><span class="p">)</span> <span class="p">{</span>
+  <span class="c1">// The warning will suggest making this a const reference.</span>
+  <span class="n">string</span> <span class="n">UnnecessaryCopy1</span> <span class="o">=</span> <span class="n">foo</span><span class="p">.</span><span class="n">name</span><span class="p">();</span>
+  <span class="n">UnnecessaryCopy1</span><span class="p">.</span><span class="n">find</span><span class="p">(</span><span class="s">"bar"</span><span class="p">);</span>
+
+  <span class="c1">// The warning will suggest making this a const reference.</span>
+  <span class="n">string</span> <span class="n">UnnecessaryCopy2</span> <span class="o">=</span> <span class="n">UnnecessaryCopy1</span><span class="p">;</span>
+  <span class="n">UnnecessaryCopy2</span><span class="p">.</span><span class="n">find</span><span class="p">(</span><span class="s">"bar"</span><span class="p">);</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="performance-type-promotion-in-math-fn.html">performance-type-promotion-in-math-fn</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="performance-unnecessary-value-param.html">performance-unnecessary-value-param</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance-unnecessary-value-param.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance-unnecessary-value-param.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance-unnecessary-value-param.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/performance-unnecessary-value-param.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,126 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - performance-unnecessary-value-param — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="readability-avoid-const-params-in-decls" href="readability-avoid-const-params-in-decls.html" />
+    <link rel="prev" title="performance-unnecessary-copy-initialization" href="performance-unnecessary-copy-initialization.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - performance-unnecessary-value-param</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="performance-unnecessary-copy-initialization.html">performance-unnecessary-copy-initialization</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-avoid-const-params-in-decls.html">readability-avoid-const-params-in-decls</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="performance-unnecessary-value-param">
+<h1>performance-unnecessary-value-param<a class="headerlink" href="#performance-unnecessary-value-param" title="Permalink to this headline">¶</a></h1>
+<p>Flags value parameter declarations of expensive to copy types that are copied
+for each invocation but it would suffice to pass them by const reference.</p>
+<p>The check is only applied to parameters of types that are expensive to copy
+which means they are not trivially copyable or have a non-trivial copy
+constructor or destructor.</p>
+<p>To ensure that it is safe to replace the value parameter with a const reference
+the following heuristic is employed:</p>
+<ol class="arabic simple">
+<li>the parameter is const qualified;</li>
+<li>the parameter is not const, but only const methods or operators are invoked
+on it, or it is used as const reference or value argument in constructors or
+function calls.</li>
+</ol>
+<p>Example:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="kt">void</span> <span class="nf">f</span><span class="p">(</span><span class="k">const</span> <span class="n">string</span> <span class="n">Value</span><span class="p">)</span> <span class="p">{</span>
+  <span class="c1">// The warning will suggest making Value a reference.</span>
+<span class="p">}</span>
+
+<span class="kt">void</span> <span class="nf">g</span><span class="p">(</span><span class="n">ExpensiveToCopy</span> <span class="n">Value</span><span class="p">)</span> <span class="p">{</span>
+  <span class="c1">// The warning will suggest making Value a const reference.</span>
+  <span class="n">Value</span><span class="p">.</span><span class="n">ConstMethd</span><span class="p">();</span>
+  <span class="n">ExpensiveToCopy</span> <span class="n">Copy</span><span class="p">(</span><span class="n">Value</span><span class="p">);</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<p>If the parameter is not const, only copied or assigned once and has a
+non-trivial move-constructor or move-assignment operator respectively the check
+will suggest to move it.</p>
+<p>Example:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="kt">void</span> <span class="nf">setValue</span><span class="p">(</span><span class="n">string</span> <span class="n">Value</span><span class="p">)</span> <span class="p">{</span>
+  <span class="n">Field</span> <span class="o">=</span> <span class="n">Value</span><span class="p">;</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<p>Will become:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="cp">#include</span> <span class="cpf"><utility></span><span class="cp"></span>
+
+<span class="kt">void</span> <span class="nf">setValue</span><span class="p">(</span><span class="n">string</span> <span class="n">Value</span><span class="p">)</span> <span class="p">{</span>
+  <span class="n">Field</span> <span class="o">=</span> <span class="n">std</span><span class="o">::</span><span class="n">move</span><span class="p">(</span><span class="n">Value</span><span class="p">);</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<div class="section" id="options">
+<h2>Options<a class="headerlink" href="#options" title="Permalink to this headline">¶</a></h2>
+<dl class="option">
+<dt id="cmdoption-arg-IncludeStyle">
+<tt class="descname">IncludeStyle</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-IncludeStyle" title="Permalink to this definition">¶</a></dt>
+<dd><p>A string specifying which include-style is used, <cite>llvm</cite> or <cite>google</cite>. Default
+is <cite>llvm</cite>.</p>
+</dd></dl>
+
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="performance-unnecessary-copy-initialization.html">performance-unnecessary-copy-initialization</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-avoid-const-params-in-decls.html">readability-avoid-const-params-in-decls</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-avoid-const-params-in-decls.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-avoid-const-params-in-decls.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-avoid-const-params-in-decls.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-avoid-const-params-in-decls.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - readability-avoid-const-params-in-decls — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="readability-braces-around-statements" href="readability-braces-around-statements.html" />
+    <link rel="prev" title="performance-unnecessary-value-param" href="performance-unnecessary-value-param.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - readability-avoid-const-params-in-decls</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="performance-unnecessary-value-param.html">performance-unnecessary-value-param</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-braces-around-statements.html">readability-braces-around-statements</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="readability-avoid-const-params-in-decls">
+<h1>readability-avoid-const-params-in-decls<a class="headerlink" href="#readability-avoid-const-params-in-decls" title="Permalink to this headline">¶</a></h1>
+<p>Checks whether a function declaration has parameters that are top level
+<tt class="docutils literal"><span class="pre">const</span></tt>.</p>
+<p><tt class="docutils literal"><span class="pre">const</span></tt> values in declarations do not affect the signature of a function, so
+they should not be put there.</p>
+<p>Examples:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="kt">void</span> <span class="nf">f</span><span class="p">(</span><span class="k">const</span> <span class="n">string</span><span class="p">);</span>   <span class="c1">// Bad: const is top level.</span>
+<span class="kt">void</span> <span class="nf">f</span><span class="p">(</span><span class="k">const</span> <span class="n">string</span><span class="o">&</span><span class="p">);</span>  <span class="c1">// Good: const is not top level.</span>
+</pre></div>
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="performance-unnecessary-value-param.html">performance-unnecessary-value-param</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-braces-around-statements.html">readability-braces-around-statements</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-braces-around-statements.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-braces-around-statements.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-braces-around-statements.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-braces-around-statements.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,103 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - readability-braces-around-statements — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="readability-container-size-empty" href="readability-container-size-empty.html" />
+    <link rel="prev" title="readability-avoid-const-params-in-decls" href="readability-avoid-const-params-in-decls.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - readability-braces-around-statements</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="readability-avoid-const-params-in-decls.html">readability-avoid-const-params-in-decls</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-container-size-empty.html">readability-container-size-empty</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="readability-braces-around-statements">
+<h1>readability-braces-around-statements<a class="headerlink" href="#readability-braces-around-statements" title="Permalink to this headline">¶</a></h1>
+<p><cite>google-readability-braces-around-statements</cite> redirects here as an alias for
+this check.</p>
+<p>Checks that bodies of <tt class="docutils literal"><span class="pre">if</span></tt> statements and loops (<tt class="docutils literal"><span class="pre">for</span></tt>, <tt class="docutils literal"><span class="pre">do</span> <span class="pre">while</span></tt>, and
+<tt class="docutils literal"><span class="pre">while</span></tt>) are inside braces.</p>
+<p>Before:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">if</span> <span class="p">(</span><span class="n">condition</span><span class="p">)</span>
+  <span class="n">statement</span><span class="p">;</span>
+</pre></div>
+</div>
+<p>After:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">if</span> <span class="p">(</span><span class="n">condition</span><span class="p">)</span> <span class="p">{</span>
+  <span class="n">statement</span><span class="p">;</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<div class="section" id="options">
+<h2>Options<a class="headerlink" href="#options" title="Permalink to this headline">¶</a></h2>
+<dl class="option">
+<dt id="cmdoption-arg-ShortStatementLines">
+<tt class="descname">ShortStatementLines</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-ShortStatementLines" title="Permalink to this definition">¶</a></dt>
+<dd><p>Defines the minimal number of lines that the statement should have in order
+to trigger this check.</p>
+<p>The number of lines is counted from the end of condition or initial keyword
+(<tt class="docutils literal"><span class="pre">do</span></tt>/<tt class="docutils literal"><span class="pre">else</span></tt>) until the last line of the inner statement. Default value
+<cite>0</cite> means that braces will be added to all statements (not having them
+already).</p>
+</dd></dl>
+
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="readability-avoid-const-params-in-decls.html">readability-avoid-const-params-in-decls</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-container-size-empty.html">readability-container-size-empty</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-container-size-empty.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-container-size-empty.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-container-size-empty.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-container-size-empty.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,90 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - readability-container-size-empty — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="readability-delete-null-pointer" href="readability-delete-null-pointer.html" />
+    <link rel="prev" title="readability-braces-around-statements" href="readability-braces-around-statements.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - readability-container-size-empty</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="readability-braces-around-statements.html">readability-braces-around-statements</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-delete-null-pointer.html">readability-delete-null-pointer</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="readability-container-size-empty">
+<h1>readability-container-size-empty<a class="headerlink" href="#readability-container-size-empty" title="Permalink to this headline">¶</a></h1>
+<p>Checks whether a call to the <tt class="docutils literal"><span class="pre">size()</span></tt> method can be replaced with a call to
+<tt class="docutils literal"><span class="pre">empty()</span></tt>.</p>
+<p>The emptiness of a container should be checked using the <tt class="docutils literal"><span class="pre">empty()</span></tt> method
+instead of the <tt class="docutils literal"><span class="pre">size()</span></tt> method. It is not guaranteed that <tt class="docutils literal"><span class="pre">size()</span></tt> is a
+constant-time function, and it is generally more efficient and also shows
+clearer intent to use <tt class="docutils literal"><span class="pre">empty()</span></tt>. Furthermore some containers may implement
+the <tt class="docutils literal"><span class="pre">empty()</span></tt> method but not implement the <tt class="docutils literal"><span class="pre">size()</span></tt> method. Using
+<tt class="docutils literal"><span class="pre">empty()</span></tt> whenever possible makes it easier to switch to another container in
+the future.</p>
+<p>The check issues warning if a container has <tt class="docutils literal"><span class="pre">size()</span></tt> and <tt class="docutils literal"><span class="pre">empty()</span></tt> methods
+matching following signatures:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="n">size_type</span> <span class="nf">size</span><span class="p">()</span> <span class="k">const</span><span class="p">;</span>
+<span class="kt">bool</span> <span class="nf">empty</span><span class="p">()</span> <span class="k">const</span><span class="p">;</span>
+</pre></div>
+</div>
+<p><cite>size_type</cite> can be any kind of integer type.</p>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="readability-braces-around-statements.html">readability-braces-around-statements</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-delete-null-pointer.html">readability-delete-null-pointer</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-delete-null-pointer.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-delete-null-pointer.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-delete-null-pointer.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-delete-null-pointer.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,81 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - readability-delete-null-pointer — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="readability-deleted-default" href="readability-deleted-default.html" />
+    <link rel="prev" title="readability-container-size-empty" href="readability-container-size-empty.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - readability-delete-null-pointer</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="readability-container-size-empty.html">readability-container-size-empty</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-deleted-default.html">readability-deleted-default</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="readability-delete-null-pointer">
+<h1>readability-delete-null-pointer<a class="headerlink" href="#readability-delete-null-pointer" title="Permalink to this headline">¶</a></h1>
+<p>Checks the <tt class="docutils literal"><span class="pre">if</span></tt> statements where a pointer’s existence is checked and then deletes the pointer.
+The check is unnecessary as deleting a null pointer has no effect.</p>
+<div class="code c++ highlight-python"><div class="highlight"><pre><span></span>int *p;
+if (p)
+  delete p;
+</pre></div>
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="readability-container-size-empty.html">readability-container-size-empty</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-deleted-default.html">readability-deleted-default</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-deleted-default.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-deleted-default.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-deleted-default.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-deleted-default.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,90 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - readability-deleted-default — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="readability-else-after-return" href="readability-else-after-return.html" />
+    <link rel="prev" title="readability-delete-null-pointer" href="readability-delete-null-pointer.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - readability-deleted-default</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="readability-delete-null-pointer.html">readability-delete-null-pointer</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-else-after-return.html">readability-else-after-return</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="readability-deleted-default">
+<h1>readability-deleted-default<a class="headerlink" href="#readability-deleted-default" title="Permalink to this headline">¶</a></h1>
+<p>Checks that constructors and assignment operators marked as <tt class="docutils literal"><span class="pre">=</span> <span class="pre">default</span></tt> are
+not actually deleted by the compiler.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">class</span> <span class="nc">Example</span> <span class="p">{</span>
+<span class="k">public</span><span class="o">:</span>
+  <span class="c1">// This constructor is deleted because I is missing a default value.</span>
+  <span class="n">Example</span><span class="p">()</span> <span class="o">=</span> <span class="k">default</span><span class="p">;</span>
+  <span class="c1">// This is fine.</span>
+  <span class="n">Example</span><span class="p">(</span><span class="k">const</span> <span class="n">Example</span><span class="o">&</span> <span class="n">Other</span><span class="p">)</span> <span class="o">=</span> <span class="k">default</span><span class="p">;</span>
+  <span class="c1">// This operator is deleted because I cannot be assigned (it is const).</span>
+  <span class="n">Example</span><span class="o">&</span> <span class="k">operator</span><span class="o">=</span><span class="p">(</span><span class="k">const</span> <span class="n">Example</span><span class="o">&</span> <span class="n">Other</span><span class="p">)</span> <span class="o">=</span> <span class="k">default</span><span class="p">;</span>
+
+<span class="k">private</span><span class="o">:</span>
+  <span class="k">const</span> <span class="kt">int</span> <span class="n">I</span><span class="p">;</span>
+<span class="p">};</span>
+</pre></div>
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="readability-delete-null-pointer.html">readability-delete-null-pointer</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-else-after-return.html">readability-else-after-return</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-else-after-return.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-else-after-return.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-else-after-return.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-else-after-return.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,125 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - readability-else-after-return — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="readability-function-size" href="readability-function-size.html" />
+    <link rel="prev" title="readability-deleted-default" href="readability-deleted-default.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - readability-else-after-return</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="readability-deleted-default.html">readability-deleted-default</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-function-size.html">readability-function-size</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="readability-else-after-return">
+<h1>readability-else-after-return<a class="headerlink" href="#readability-else-after-return" title="Permalink to this headline">¶</a></h1>
+<p><a class="reference external" href="http://llvm.org/docs/CodingStandards.html">LLVM Coding Standards</a> advises to
+reduce indentation where possible and where it makes understanding code easier.
+Early exit is one of the suggested enforcements of that. Please do not use
+<tt class="docutils literal"><span class="pre">else</span></tt> or <tt class="docutils literal"><span class="pre">else</span> <span class="pre">if</span></tt> after something that interrupts control flow - like
+<tt class="docutils literal"><span class="pre">return</span></tt>, <tt class="docutils literal"><span class="pre">break</span></tt>, <tt class="docutils literal"><span class="pre">continue</span></tt>, <tt class="docutils literal"><span class="pre">throw</span></tt>.</p>
+<p>The following piece of code illustrates how the check works. This piece of code:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="kt">void</span> <span class="nf">foo</span><span class="p">(</span><span class="kt">int</span> <span class="n">Value</span><span class="p">)</span> <span class="p">{</span>
+  <span class="kt">int</span> <span class="n">Local</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
+  <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o"><</span> <span class="mi">42</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
+    <span class="k">if</span> <span class="p">(</span><span class="n">Value</span> <span class="o">==</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span>
+      <span class="k">return</span><span class="p">;</span>
+    <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
+      <span class="n">Local</span><span class="o">++</span><span class="p">;</span>
+    <span class="p">}</span>
+
+    <span class="k">if</span> <span class="p">(</span><span class="n">Value</span> <span class="o">==</span> <span class="mi">2</span><span class="p">)</span>
+      <span class="k">continue</span><span class="p">;</span>
+    <span class="k">else</span>
+      <span class="n">Local</span><span class="o">++</span><span class="p">;</span>
+
+    <span class="k">if</span> <span class="p">(</span><span class="n">Value</span> <span class="o">==</span> <span class="mi">3</span><span class="p">)</span> <span class="p">{</span>
+      <span class="k">throw</span> <span class="mi">42</span><span class="p">;</span>
+    <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
+      <span class="n">Local</span><span class="o">++</span><span class="p">;</span>
+    <span class="p">}</span>
+  <span class="p">}</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<p>Would be transformed into:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="kt">void</span> <span class="nf">foo</span><span class="p">(</span><span class="kt">int</span> <span class="n">Value</span><span class="p">)</span> <span class="p">{</span>
+  <span class="kt">int</span> <span class="n">Local</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
+  <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o"><</span> <span class="mi">42</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
+    <span class="k">if</span> <span class="p">(</span><span class="n">Value</span> <span class="o">==</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span>
+      <span class="k">return</span><span class="p">;</span>
+    <span class="p">}</span>
+    <span class="n">Local</span><span class="o">++</span><span class="p">;</span>
+
+    <span class="k">if</span> <span class="p">(</span><span class="n">Value</span> <span class="o">==</span> <span class="mi">2</span><span class="p">)</span>
+      <span class="k">continue</span><span class="p">;</span>
+    <span class="n">Local</span><span class="o">++</span><span class="p">;</span>
+
+    <span class="k">if</span> <span class="p">(</span><span class="n">Value</span> <span class="o">==</span> <span class="mi">3</span><span class="p">)</span> <span class="p">{</span>
+      <span class="k">throw</span> <span class="mi">42</span><span class="p">;</span>
+    <span class="p">}</span>
+    <span class="n">Local</span><span class="o">++</span><span class="p">;</span>
+  <span class="p">}</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<p>This check helps to enforce this <a class="reference external" href="http://llvm.org/docs/CodingStandards.html#don-t-use-else-after-a-return">LLVM Coding Standards recommendation</a>.</p>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="readability-deleted-default.html">readability-deleted-default</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-function-size.html">readability-function-size</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-function-size.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-function-size.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-function-size.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-function-size.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,116 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - readability-function-size — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="readability-identifier-naming" href="readability-identifier-naming.html" />
+    <link rel="prev" title="readability-else-after-return" href="readability-else-after-return.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - readability-function-size</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="readability-else-after-return.html">readability-else-after-return</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-identifier-naming.html">readability-identifier-naming</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="readability-function-size">
+<h1>readability-function-size<a class="headerlink" href="#readability-function-size" title="Permalink to this headline">¶</a></h1>
+<p><cite>google-readability-function-size</cite> redirects here as an alias for this check.</p>
+<p>Checks for large functions based on various metrics.</p>
+<div class="section" id="options">
+<h2>Options<a class="headerlink" href="#options" title="Permalink to this headline">¶</a></h2>
+<dl class="option">
+<dt id="cmdoption-arg-LineThreshold">
+<tt class="descname">LineThreshold</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-LineThreshold" title="Permalink to this definition">¶</a></dt>
+<dd><p>Flag functions exceeding this number of lines. The default is <cite>-1</cite> (ignore
+the number of lines).</p>
+</dd></dl>
+
+<dl class="option">
+<dt id="cmdoption-arg-StatementThreshold">
+<tt class="descname">StatementThreshold</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-StatementThreshold" title="Permalink to this definition">¶</a></dt>
+<dd><p>Flag functions exceeding this number of statements. This may differ
+significantly from the number of lines for macro-heavy code. The default is
+<cite>800</cite>.</p>
+</dd></dl>
+
+<dl class="option">
+<dt id="cmdoption-arg-BranchThreshold">
+<tt class="descname">BranchThreshold</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-BranchThreshold" title="Permalink to this definition">¶</a></dt>
+<dd><p>Flag functions exceeding this number of control statements. The default is
+<cite>-1</cite> (ignore the number of branches).</p>
+</dd></dl>
+
+<dl class="option">
+<dt id="cmdoption-arg-ParameterThreshold">
+<tt class="descname">ParameterThreshold</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-ParameterThreshold" title="Permalink to this definition">¶</a></dt>
+<dd><p>Flag functions that exceed a specified number of parameters. The default
+is <cite>-1</cite> (ignore the number of parameters).</p>
+</dd></dl>
+
+<dl class="option">
+<dt id="cmdoption-arg-NestingThreshold">
+<tt class="descname">NestingThreshold</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-NestingThreshold" title="Permalink to this definition">¶</a></dt>
+<dd><p>Flag compound statements which create next nesting level after
+<cite>NestingThreshold</cite>. This may differ significantly from the expected value
+for macro-heavy code. The default is <cite>-1</cite> (ignore the nesting level).</p>
+</dd></dl>
+
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="readability-else-after-return.html">readability-else-after-return</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-identifier-naming.html">readability-identifier-naming</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-identifier-naming.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-identifier-naming.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-identifier-naming.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-identifier-naming.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,84 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - readability-identifier-naming — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="readability-implicit-bool-cast" href="readability-implicit-bool-cast.html" />
+    <link rel="prev" title="readability-function-size" href="readability-function-size.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - readability-identifier-naming</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="readability-function-size.html">readability-function-size</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-implicit-bool-cast.html">readability-implicit-bool-cast</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="readability-identifier-naming">
+<h1>readability-identifier-naming<a class="headerlink" href="#readability-identifier-naming" title="Permalink to this headline">¶</a></h1>
+<p>Checks for identifiers naming style mismatch.</p>
+<p>This check will try to enforce coding guidelines on the identifiers naming.
+It supports <cite>lower_case</cite>, <cite>UPPER_CASE</cite>, <cite>camelBack</cite> and <cite>CamelCase</cite> casing and
+tries to convert from one to another if a mismatch is detected.</p>
+<p>It also supports a fixed prefix and suffix that will be prepended or
+appended to the identifiers, regardless of the casing.</p>
+<p>Many configuration options are available, in order to be able to create
+different rules for different kind of identifier. In general, the
+rules are falling back to a more generic rule if the specific case is not
+configured.</p>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="readability-function-size.html">readability-function-size</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-implicit-bool-cast.html">readability-implicit-bool-cast</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-implicit-bool-cast.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-implicit-bool-cast.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-implicit-bool-cast.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-implicit-bool-cast.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,190 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - readability-implicit-bool-cast — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="readability-inconsistent-declaration-parameter-name" href="readability-inconsistent-declaration-parameter-name.html" />
+    <link rel="prev" title="readability-identifier-naming" href="readability-identifier-naming.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - readability-implicit-bool-cast</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="readability-identifier-naming.html">readability-identifier-naming</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-inconsistent-declaration-parameter-name.html">readability-inconsistent-declaration-parameter-name</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="readability-implicit-bool-cast">
+<h1>readability-implicit-bool-cast<a class="headerlink" href="#readability-implicit-bool-cast" title="Permalink to this headline">¶</a></h1>
+<p>This check can be used to find implicit conversions between built-in types and
+booleans. Depending on use case, it may simply help with readability of the code,
+or in some cases, point to potential bugs which remain unnoticed due to implicit
+conversions.</p>
+<p>The following is a real-world example of bug which was hiding behind implicit
+<tt class="docutils literal"><span class="pre">bool</span></tt> cast:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">class</span> <span class="nc">Foo</span> <span class="p">{</span>
+  <span class="kt">int</span> <span class="n">m_foo</span><span class="p">;</span>
+
+<span class="k">public</span><span class="o">:</span>
+  <span class="kt">void</span> <span class="n">setFoo</span><span class="p">(</span><span class="kt">bool</span> <span class="n">foo</span><span class="p">)</span> <span class="p">{</span> <span class="n">m_foo</span> <span class="o">=</span> <span class="n">foo</span><span class="p">;</span> <span class="p">}</span> <span class="c1">// warning: implicit cast bool -> int</span>
+  <span class="kt">int</span> <span class="n">getFoo</span><span class="p">()</span> <span class="p">{</span> <span class="k">return</span> <span class="n">m_foo</span><span class="p">;</span> <span class="p">}</span>
+<span class="p">};</span>
+
+<span class="kt">void</span> <span class="nf">use</span><span class="p">(</span><span class="n">Foo</span><span class="o">&</span> <span class="n">foo</span><span class="p">)</span> <span class="p">{</span>
+  <span class="kt">bool</span> <span class="n">value</span> <span class="o">=</span> <span class="n">foo</span><span class="p">.</span><span class="n">getFoo</span><span class="p">();</span> <span class="c1">// warning: implicit cast int -> bool</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<p>This code is the result of unsuccessful refactoring, where type of <tt class="docutils literal"><span class="pre">m_foo</span></tt>
+changed from <tt class="docutils literal"><span class="pre">bool</span></tt> to <tt class="docutils literal"><span class="pre">int</span></tt>. The programmer forgot to change all
+occurrences of <tt class="docutils literal"><span class="pre">bool</span></tt>, and the remaining code is no longer correct, yet it
+still compiles without any visible warnings.</p>
+<p>In addition to issuing warnings, fix-it hints are provided to help solve the
+reported issues. This can be used for improving readability of code, for
+example:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="kt">void</span> <span class="nf">conversionsToBool</span><span class="p">()</span> <span class="p">{</span>
+  <span class="kt">float</span> <span class="n">floating</span><span class="p">;</span>
+  <span class="kt">bool</span> <span class="n">boolean</span> <span class="o">=</span> <span class="n">floating</span><span class="p">;</span>
+  <span class="c1">// ^ propose replacement: bool boolean = floating != 0.0f;</span>
+
+  <span class="kt">int</span> <span class="n">integer</span><span class="p">;</span>
+  <span class="k">if</span> <span class="p">(</span><span class="n">integer</span><span class="p">)</span> <span class="p">{}</span>
+  <span class="c1">// ^ propose replacement: if (integer != 0) {}</span>
+
+  <span class="kt">int</span><span class="o">*</span> <span class="n">pointer</span><span class="p">;</span>
+  <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="n">pointer</span><span class="p">)</span> <span class="p">{}</span>
+  <span class="c1">// ^ propose replacement: if (pointer == nullptr) {}</span>
+
+  <span class="k">while</span> <span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="p">{}</span>
+  <span class="c1">// ^ propose replacement: while (true) {}</span>
+<span class="p">}</span>
+
+<span class="kt">void</span> <span class="nf">functionTakingInt</span><span class="p">(</span><span class="kt">int</span> <span class="n">param</span><span class="p">);</span>
+
+<span class="kt">void</span> <span class="nf">conversionsFromBool</span><span class="p">()</span> <span class="p">{</span>
+  <span class="kt">bool</span> <span class="n">boolean</span><span class="p">;</span>
+  <span class="n">functionTakingInt</span><span class="p">(</span><span class="n">boolean</span><span class="p">);</span>
+  <span class="c1">// ^ propose replacement: functionTakingInt(static_cast<int>(boolean));</span>
+
+  <span class="n">functionTakingInt</span><span class="p">(</span><span class="nb">true</span><span class="p">);</span>
+  <span class="c1">// ^ propose replacement: functionTakingInt(1);</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<p>In general, the following cast types are checked:</p>
+<ul class="simple">
+<li>integer expression/literal to boolean,</li>
+<li>floating expression/literal to boolean,</li>
+<li>pointer/pointer to member/<tt class="docutils literal"><span class="pre">nullptr</span></tt>/<tt class="docutils literal"><span class="pre">NULL</span></tt> to boolean,</li>
+<li>boolean expression/literal to integer,</li>
+<li>boolean expression/literal to floating.</li>
+</ul>
+<p>The rules for generating fix-it hints are:</p>
+<ul class="simple">
+<li>in case of casts from other built-in type to bool, an explicit comparison
+is proposed to make it clear what exaclty is being compared:<ul>
+<li><tt class="docutils literal"><span class="pre">bool</span> <span class="pre">boolean</span> <span class="pre">=</span> <span class="pre">floating;</span></tt> is changed to
+<tt class="docutils literal"><span class="pre">bool</span> <span class="pre">boolean</span> <span class="pre">=</span> <span class="pre">floating</span> <span class="pre">==</span> <span class="pre">0.0f;</span></tt>,</li>
+<li>for other types, appropriate literals are used (<tt class="docutils literal"><span class="pre">0</span></tt>, <tt class="docutils literal"><span class="pre">0u</span></tt>, <tt class="docutils literal"><span class="pre">0.0f</span></tt>,
+<tt class="docutils literal"><span class="pre">0.0</span></tt>, <tt class="docutils literal"><span class="pre">nullptr</span></tt>),</li>
+</ul>
+</li>
+<li>in case of negated expressions cast to bool, the proposed replacement with
+comparison is simplified:<ul>
+<li><tt class="docutils literal"><span class="pre">if</span> <span class="pre">(!pointer)</span></tt> is changed to <tt class="docutils literal"><span class="pre">if</span> <span class="pre">(pointer</span> <span class="pre">==</span> <span class="pre">nullptr)</span></tt>,</li>
+</ul>
+</li>
+<li>in case of casts from bool to other built-in types, an explicit <tt class="docutils literal"><span class="pre">static_cast</span></tt>
+is proposed to make it clear that a cast is taking place:<ul>
+<li><tt class="docutils literal"><span class="pre">int</span> <span class="pre">integer</span> <span class="pre">=</span> <span class="pre">boolean;</span></tt> is changed to
+<tt class="docutils literal"><span class="pre">int</span> <span class="pre">integer</span> <span class="pre">=</span> <span class="pre">static_cast<int>(boolean);</span></tt>,</li>
+</ul>
+</li>
+<li>if the cast is performed on type literals, an equivalent literal is proposed,
+according to what type is actually expected, for example:<ul>
+<li><tt class="docutils literal"><span class="pre">functionTakingBool(0);</span></tt> is changed to <tt class="docutils literal"><span class="pre">functionTakingBool(false);</span></tt>,</li>
+<li><tt class="docutils literal"><span class="pre">functionTakingInt(true);</span></tt> is changed to <tt class="docutils literal"><span class="pre">functionTakingInt(1);</span></tt>,</li>
+<li>for other types, appropriate literals are used (<tt class="docutils literal"><span class="pre">false</span></tt>, <tt class="docutils literal"><span class="pre">true</span></tt>, <tt class="docutils literal"><span class="pre">0</span></tt>,
+<tt class="docutils literal"><span class="pre">1</span></tt>, <tt class="docutils literal"><span class="pre">0u</span></tt>, <tt class="docutils literal"><span class="pre">1u</span></tt>, <tt class="docutils literal"><span class="pre">0.0f</span></tt>, <tt class="docutils literal"><span class="pre">1.0f</span></tt>, <tt class="docutils literal"><span class="pre">0.0</span></tt>, <tt class="docutils literal"><span class="pre">1.0f</span></tt>).</li>
+</ul>
+</li>
+</ul>
+<p>Some additional accommodations are made for pre-C++11 dialects:</p>
+<ul class="simple">
+<li><tt class="docutils literal"><span class="pre">false</span></tt> literal cast to pointer is detected,</li>
+<li>instead of <tt class="docutils literal"><span class="pre">nullptr</span></tt> literal, <tt class="docutils literal"><span class="pre">0</span></tt> is proposed as replacement.</li>
+</ul>
+<p>Occurrences of implicit casts inside macros and template instantiations are
+deliberately ignored, as it is not clear how to deal with such cases.</p>
+<div class="section" id="options">
+<h2>Options<a class="headerlink" href="#options" title="Permalink to this headline">¶</a></h2>
+<dl class="option">
+<dt id="cmdoption-arg-AllowConditionalIntegerCasts">
+<tt class="descname">AllowConditionalIntegerCasts</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-AllowConditionalIntegerCasts" title="Permalink to this definition">¶</a></dt>
+<dd><p>When non-zero, the check will allow conditional integer casts. Default is
+<cite>0</cite>.</p>
+</dd></dl>
+
+<dl class="option">
+<dt id="cmdoption-arg-AllowConditionalPointerCasts">
+<tt class="descname">AllowConditionalPointerCasts</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-AllowConditionalPointerCasts" title="Permalink to this definition">¶</a></dt>
+<dd><p>When non-zero, the check will allow conditional pointer casts. Default is <cite>0</cite>.</p>
+</dd></dl>
+
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="readability-identifier-naming.html">readability-identifier-naming</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-inconsistent-declaration-parameter-name.html">readability-inconsistent-declaration-parameter-name</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-inconsistent-declaration-parameter-name.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-inconsistent-declaration-parameter-name.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-inconsistent-declaration-parameter-name.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-inconsistent-declaration-parameter-name.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,105 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - readability-inconsistent-declaration-parameter-name — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="readability-misleading-indentation" href="readability-misleading-indentation.html" />
+    <link rel="prev" title="readability-implicit-bool-cast" href="readability-implicit-bool-cast.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - readability-inconsistent-declaration-parameter-name</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="readability-implicit-bool-cast.html">readability-implicit-bool-cast</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-misleading-indentation.html">readability-misleading-indentation</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="readability-inconsistent-declaration-parameter-name">
+<h1>readability-inconsistent-declaration-parameter-name<a class="headerlink" href="#readability-inconsistent-declaration-parameter-name" title="Permalink to this headline">¶</a></h1>
+<p>Find function declarations which differ in parameter names.</p>
+<p>Example:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="c1">// in foo.hpp:</span>
+<span class="kt">void</span> <span class="nf">foo</span><span class="p">(</span><span class="kt">int</span> <span class="n">a</span><span class="p">,</span> <span class="kt">int</span> <span class="n">b</span><span class="p">,</span> <span class="kt">int</span> <span class="n">c</span><span class="p">);</span>
+
+<span class="c1">// in foo.cpp:</span>
+<span class="kt">void</span> <span class="nf">foo</span><span class="p">(</span><span class="kt">int</span> <span class="n">d</span><span class="p">,</span> <span class="kt">int</span> <span class="n">e</span><span class="p">,</span> <span class="kt">int</span> <span class="n">f</span><span class="p">);</span> <span class="c1">// warning</span>
+</pre></div>
+</div>
+<p>This check should help to enforce consistency in large projects, where it often
+happens that a definition of function is refactored, changing the parameter
+names, but its declaration in header file is not updated. With this check, we
+can easily find and correct such inconsistencies, keeping declaration and
+definition always in sync.</p>
+<p>Unnamed parameters are allowed and are not taken into account when comparing
+function declarations, for example:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="kt">void</span> <span class="nf">foo</span><span class="p">(</span><span class="kt">int</span> <span class="n">a</span><span class="p">);</span>
+<span class="kt">void</span> <span class="nf">foo</span><span class="p">(</span><span class="kt">int</span><span class="p">);</span> <span class="c1">// no warning</span>
+</pre></div>
+</div>
+<p>To help with refactoring, in some cases fix-it hints are generated to align
+parameter names to a single naming convention. This works with the assumption
+that the function definition is the most up-to-date version, as it directly
+references parameter names in its body. Example:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="kt">void</span> <span class="nf">foo</span><span class="p">(</span><span class="kt">int</span> <span class="n">a</span><span class="p">);</span> <span class="c1">// warning and fix-it hint (replace "a" to "b")</span>
+<span class="kt">int</span> <span class="nf">foo</span><span class="p">(</span><span class="kt">int</span> <span class="n">b</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="n">b</span> <span class="o">+</span> <span class="mi">2</span><span class="p">;</span> <span class="p">}</span> <span class="c1">// definition with use of "b"</span>
+</pre></div>
+</div>
+<p>In the case of multiple redeclarations or function template specializations,
+a warning is issued for every redeclaration or specialization inconsistent with
+the definition or the first declaration seen in a translation unit.</p>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="readability-implicit-bool-cast.html">readability-implicit-bool-cast</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-misleading-indentation.html">readability-misleading-indentation</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-misleading-indentation.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-misleading-indentation.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-misleading-indentation.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-misleading-indentation.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,102 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - readability-misleading-indentation — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="readability-misplaced-array-index" href="readability-misplaced-array-index.html" />
+    <link rel="prev" title="readability-inconsistent-declaration-parameter-name" href="readability-inconsistent-declaration-parameter-name.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - readability-misleading-indentation</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="readability-inconsistent-declaration-parameter-name.html">readability-inconsistent-declaration-parameter-name</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-misplaced-array-index.html">readability-misplaced-array-index</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="readability-misleading-indentation">
+<h1>readability-misleading-indentation<a class="headerlink" href="#readability-misleading-indentation" title="Permalink to this headline">¶</a></h1>
+<p>Correct indentation helps to understand code. Mismatch of the syntactical
+structure and the indentation of the code may hide serious problems.
+Missing braces can also make it significantly harder to read the code,
+therefore it is important to use braces.</p>
+<p>The way to avoid dangling else is to always check that an <tt class="docutils literal"><span class="pre">else</span></tt> belongs
+to the <tt class="docutils literal"><span class="pre">if</span></tt> that begins in the same column.</p>
+<p>You can omit braces when your inner part of e.g. an <tt class="docutils literal"><span class="pre">if</span></tt> statement has only
+one statement in it. Although in that case you should begin the next statement
+in the same column with the <tt class="docutils literal"><span class="pre">if</span></tt>.</p>
+<p>Examples:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="c1">// Dangling else:</span>
+<span class="k">if</span> <span class="p">(</span><span class="n">cond1</span><span class="p">)</span>
+  <span class="k">if</span> <span class="p">(</span><span class="n">cond2</span><span class="p">)</span>
+    <span class="n">foo1</span><span class="p">();</span>
+<span class="k">else</span>
+  <span class="nf">foo2</span><span class="p">();</span>  <span class="c1">// Wrong indentation: else belongs to if(cond2) statement.</span>
+
+<span class="c1">// Missing braces:</span>
+<span class="k">if</span> <span class="p">(</span><span class="n">cond1</span><span class="p">)</span>
+  <span class="n">foo1</span><span class="p">();</span>
+  <span class="n">foo2</span><span class="p">();</span>  <span class="c1">// Not guarded by if(cond1).</span>
+</pre></div>
+</div>
+<div class="section" id="limitations">
+<h2>Limitations<a class="headerlink" href="#limitations" title="Permalink to this headline">¶</a></h2>
+<p>Note that this check only works as expected when the tabs or spaces are used
+consistently and not mixed.</p>
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="readability-inconsistent-declaration-parameter-name.html">readability-inconsistent-declaration-parameter-name</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-misplaced-array-index.html">readability-misplaced-array-index</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-misplaced-array-index.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-misplaced-array-index.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-misplaced-array-index.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-misplaced-array-index.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,95 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - readability-misplaced-array-index — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="readability-named-parameter" href="readability-named-parameter.html" />
+    <link rel="prev" title="readability-misleading-indentation" href="readability-misleading-indentation.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - readability-misplaced-array-index</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="readability-misleading-indentation.html">readability-misleading-indentation</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-named-parameter.html">readability-named-parameter</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="readability-misplaced-array-index">
+<h1>readability-misplaced-array-index<a class="headerlink" href="#readability-misplaced-array-index" title="Permalink to this headline">¶</a></h1>
+<p>This check warns for unusual array index syntax.</p>
+<p>The following code has unusual array index syntax:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="kt">void</span> <span class="nf">f</span><span class="p">(</span><span class="kt">int</span> <span class="o">*</span><span class="n">X</span><span class="p">,</span> <span class="kt">int</span> <span class="n">Y</span><span class="p">)</span> <span class="p">{</span>
+  <span class="n">Y</span><span class="p">[</span><span class="n">X</span><span class="p">]</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<p>becomes</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="kt">void</span> <span class="nf">f</span><span class="p">(</span><span class="kt">int</span> <span class="o">*</span><span class="n">X</span><span class="p">,</span> <span class="kt">int</span> <span class="n">Y</span><span class="p">)</span> <span class="p">{</span>
+  <span class="n">X</span><span class="p">[</span><span class="n">Y</span><span class="p">]</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<dl class="docutils">
+<dt>The check warns about such unusual syntax for readability reasons:</dt>
+<dd><ul class="first last simple">
+<li>There are programmers that are not familiar with this unusual syntax.</li>
+<li>It is possible that variables are mixed up.</li>
+</ul>
+</dd>
+</dl>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="readability-misleading-indentation.html">readability-misleading-indentation</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-named-parameter.html">readability-named-parameter</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-named-parameter.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-named-parameter.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-named-parameter.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-named-parameter.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,81 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - readability-named-parameter — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="readability-non-const-parameter" href="readability-non-const-parameter.html" />
+    <link rel="prev" title="readability-misplaced-array-index" href="readability-misplaced-array-index.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - readability-named-parameter</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="readability-misplaced-array-index.html">readability-misplaced-array-index</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-non-const-parameter.html">readability-non-const-parameter</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="readability-named-parameter">
+<h1>readability-named-parameter<a class="headerlink" href="#readability-named-parameter" title="Permalink to this headline">¶</a></h1>
+<p>Find functions with unnamed arguments.</p>
+<p>The check implements the following rule originating in the Google C++ Style
+Guide:</p>
+<p><a class="reference external" href="https://google.github.io/styleguide/cppguide.html#Function_Declarations_and_Definitions">https://google.github.io/styleguide/cppguide.html#Function_Declarations_and_Definitions</a></p>
+<p>All parameters should be named, with identical names in the declaration and
+implementation.</p>
+<p>Corresponding cpplint.py check name: <cite>readability/function</cite>.</p>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="readability-misplaced-array-index.html">readability-misplaced-array-index</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-non-const-parameter.html">readability-non-const-parameter</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-non-const-parameter.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-non-const-parameter.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-non-const-parameter.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-non-const-parameter.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,111 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - readability-non-const-parameter — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="readability-redundant-control-flow" href="readability-redundant-control-flow.html" />
+    <link rel="prev" title="readability-named-parameter" href="readability-named-parameter.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - readability-non-const-parameter</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="readability-named-parameter.html">readability-named-parameter</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-redundant-control-flow.html">readability-redundant-control-flow</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="readability-non-const-parameter">
+<h1>readability-non-const-parameter<a class="headerlink" href="#readability-non-const-parameter" title="Permalink to this headline">¶</a></h1>
+<p>The check finds function parameters of a pointer type that could be changed to
+point to a constant type instead.</p>
+<p>When <tt class="docutils literal"><span class="pre">const</span></tt> is used properly, many mistakes can be avoided. Advantages when
+using <tt class="docutils literal"><span class="pre">const</span></tt> properly:</p>
+<ul class="simple">
+<li>prevent unintentional modification of data;</li>
+<li>get additional warnings such as using uninitialized data;</li>
+<li>make it easier for developers to see possible side effects.</li>
+</ul>
+<p>This check is not strict about constness, it only warns when the constness will
+make the function interface safer.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="c1">// warning here; the declaration "const char *p" would make the function</span>
+<span class="c1">// interface safer.</span>
+<span class="kt">char</span> <span class="nf">f1</span><span class="p">(</span><span class="kt">char</span> <span class="o">*</span><span class="n">p</span><span class="p">)</span> <span class="p">{</span>
+  <span class="k">return</span> <span class="o">*</span><span class="n">p</span><span class="p">;</span>
+<span class="p">}</span>
+
+<span class="c1">// no warning; the declaration could be more const "const int * const p" but</span>
+<span class="c1">// that does not make the function interface safer.</span>
+<span class="kt">int</span> <span class="nf">f2</span><span class="p">(</span><span class="k">const</span> <span class="kt">int</span> <span class="o">*</span><span class="n">p</span><span class="p">)</span> <span class="p">{</span>
+  <span class="k">return</span> <span class="o">*</span><span class="n">p</span><span class="p">;</span>
+<span class="p">}</span>
+
+<span class="c1">// no warning; making x const does not make the function interface safer</span>
+<span class="kt">int</span> <span class="nf">f3</span><span class="p">(</span><span class="kt">int</span> <span class="n">x</span><span class="p">)</span> <span class="p">{</span>
+  <span class="k">return</span> <span class="n">x</span><span class="p">;</span>
+<span class="p">}</span>
+
+<span class="c1">// no warning; Technically, *p can be const ("const struct S *p"). But making</span>
+<span class="c1">// *p const could be misleading. People might think that it's safe to pass</span>
+<span class="c1">// const data to this function.</span>
+<span class="k">struct</span> <span class="n">S</span> <span class="p">{</span> <span class="kt">int</span> <span class="o">*</span><span class="n">a</span><span class="p">;</span> <span class="kt">int</span> <span class="o">*</span><span class="n">b</span><span class="p">;</span> <span class="p">};</span>
+<span class="kt">int</span> <span class="nf">f3</span><span class="p">(</span><span class="k">struct</span> <span class="n">S</span> <span class="o">*</span><span class="n">p</span><span class="p">)</span> <span class="p">{</span>
+  <span class="o">*</span><span class="p">(</span><span class="n">p</span><span class="o">-></span><span class="n">a</span><span class="p">)</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="readability-named-parameter.html">readability-named-parameter</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-redundant-control-flow.html">readability-redundant-control-flow</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-redundant-control-flow.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-redundant-control-flow.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-redundant-control-flow.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-redundant-control-flow.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,109 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - readability-redundant-control-flow — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="readability-redundant-declaration" href="readability-redundant-declaration.html" />
+    <link rel="prev" title="readability-non-const-parameter" href="readability-non-const-parameter.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - readability-redundant-control-flow</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="readability-non-const-parameter.html">readability-non-const-parameter</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-redundant-declaration.html">readability-redundant-declaration</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="readability-redundant-control-flow">
+<h1>readability-redundant-control-flow<a class="headerlink" href="#readability-redundant-control-flow" title="Permalink to this headline">¶</a></h1>
+<p>This check looks for procedures (functions returning no value) with <tt class="docutils literal"><span class="pre">return</span></tt>
+statements at the end of the function. Such <tt class="docutils literal"><span class="pre">return</span></tt> statements are redundant.</p>
+<p>Loop statements (<tt class="docutils literal"><span class="pre">for</span></tt>, <tt class="docutils literal"><span class="pre">while</span></tt>, <tt class="docutils literal"><span class="pre">do</span> <span class="pre">while</span></tt>) are checked for redundant
+<tt class="docutils literal"><span class="pre">continue</span></tt> statements at the end of the loop body.</p>
+<p>Examples:</p>
+<p>The following function <cite>f</cite> contains a redundant <tt class="docutils literal"><span class="pre">return</span></tt> statement:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">extern</span> <span class="kt">void</span> <span class="nf">g</span><span class="p">();</span>
+<span class="kt">void</span> <span class="nf">f</span><span class="p">()</span> <span class="p">{</span>
+  <span class="n">g</span><span class="p">();</span>
+  <span class="k">return</span><span class="p">;</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<p>becomes</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">extern</span> <span class="kt">void</span> <span class="nf">g</span><span class="p">();</span>
+<span class="kt">void</span> <span class="nf">f</span><span class="p">()</span> <span class="p">{</span>
+  <span class="n">g</span><span class="p">();</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<p>The following function <cite>k</cite> contains a redundant <tt class="docutils literal"><span class="pre">continue</span></tt> statement:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="kt">void</span> <span class="nf">k</span><span class="p">()</span> <span class="p">{</span>
+  <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o"><</span> <span class="mi">10</span><span class="p">;</span> <span class="o">++</span><span class="n">i</span><span class="p">)</span> <span class="p">{</span>
+    <span class="k">continue</span><span class="p">;</span>
+  <span class="p">}</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<p>becomes</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="kt">void</span> <span class="nf">k</span><span class="p">()</span> <span class="p">{</span>
+  <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o"><</span> <span class="mi">10</span><span class="p">;</span> <span class="o">++</span><span class="n">i</span><span class="p">)</span> <span class="p">{</span>
+  <span class="p">}</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="readability-non-const-parameter.html">readability-non-const-parameter</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-redundant-declaration.html">readability-redundant-declaration</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-redundant-declaration.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-redundant-declaration.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-redundant-declaration.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-redundant-declaration.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,94 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - readability-redundant-declaration — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="readability-redundant-function-ptr-dereference" href="readability-redundant-function-ptr-dereference.html" />
+    <link rel="prev" title="readability-redundant-control-flow" href="readability-redundant-control-flow.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - readability-redundant-declaration</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="readability-redundant-control-flow.html">readability-redundant-control-flow</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-redundant-function-ptr-dereference.html">readability-redundant-function-ptr-dereference</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="readability-redundant-declaration">
+<h1>readability-redundant-declaration<a class="headerlink" href="#readability-redundant-declaration" title="Permalink to this headline">¶</a></h1>
+<p>Finds redundant variable and function declarations.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">extern</span> <span class="kt">int</span> <span class="n">X</span><span class="p">;</span>
+<span class="k">extern</span> <span class="kt">int</span> <span class="n">X</span><span class="p">;</span>
+</pre></div>
+</div>
+<p>becomes</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">extern</span> <span class="kt">int</span> <span class="n">X</span><span class="p">;</span>
+</pre></div>
+</div>
+<p>Such redundant declarations can be removed without changing program behaviour.
+They can for instance be unintentional left overs from previous refactorings
+when code has been moved around. Having redundant declarations could in worst
+case mean that there are typos in the code that cause bugs.</p>
+<p>Normally the code can be automatically fixed, <strong class="program">clang-tidy</strong> can remove
+the second declaration. However there are 2 cases when you need to fix the code
+manually:</p>
+<ul class="simple">
+<li>When the declarations are in different header files;</li>
+<li>When multiple variables are declared together.</li>
+</ul>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="readability-redundant-control-flow.html">readability-redundant-control-flow</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-redundant-function-ptr-dereference.html">readability-redundant-function-ptr-dereference</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-redundant-function-ptr-dereference.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-redundant-function-ptr-dereference.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-redundant-function-ptr-dereference.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-redundant-function-ptr-dereference.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,89 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - readability-redundant-function-ptr-dereference — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="readability-redundant-member-init" href="readability-redundant-member-init.html" />
+    <link rel="prev" title="readability-redundant-declaration" href="readability-redundant-declaration.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - readability-redundant-function-ptr-dereference</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="readability-redundant-declaration.html">readability-redundant-declaration</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-redundant-member-init.html">readability-redundant-member-init</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="readability-redundant-function-ptr-dereference">
+<h1>readability-redundant-function-ptr-dereference<a class="headerlink" href="#readability-redundant-function-ptr-dereference" title="Permalink to this headline">¶</a></h1>
+<p>Finds redundant dereferences of a function pointer.</p>
+<p>Before:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="kt">int</span> <span class="nf">f</span><span class="p">(</span><span class="kt">int</span><span class="p">,</span><span class="kt">int</span><span class="p">);</span>
+<span class="kt">int</span> <span class="p">(</span><span class="o">*</span><span class="n">p</span><span class="p">)(</span><span class="kt">int</span><span class="p">,</span> <span class="kt">int</span><span class="p">)</span> <span class="o">=</span> <span class="o">&</span><span class="n">f</span><span class="p">;</span>
+
+<span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="p">(</span><span class="o">**</span><span class="n">p</span><span class="p">)(</span><span class="mi">10</span><span class="p">,</span> <span class="mi">50</span><span class="p">);</span>
+</pre></div>
+</div>
+<p>After:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="kt">int</span> <span class="nf">f</span><span class="p">(</span><span class="kt">int</span><span class="p">,</span><span class="kt">int</span><span class="p">);</span>
+<span class="kt">int</span> <span class="p">(</span><span class="o">*</span><span class="n">p</span><span class="p">)(</span><span class="kt">int</span><span class="p">,</span> <span class="kt">int</span><span class="p">)</span> <span class="o">=</span> <span class="o">&</span><span class="n">f</span><span class="p">;</span>
+
+<span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="p">(</span><span class="o">*</span><span class="n">p</span><span class="p">)(</span><span class="mi">10</span><span class="p">,</span> <span class="mi">50</span><span class="p">);</span>
+</pre></div>
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="readability-redundant-declaration.html">readability-redundant-declaration</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-redundant-member-init.html">readability-redundant-member-init</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-redundant-member-init.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-redundant-member-init.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-redundant-member-init.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-redundant-member-init.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,87 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - readability-redundant-member-init — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="readability-redundant-smartptr-get" href="readability-redundant-smartptr-get.html" />
+    <link rel="prev" title="readability-redundant-function-ptr-dereference" href="readability-redundant-function-ptr-dereference.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - readability-redundant-member-init</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="readability-redundant-function-ptr-dereference.html">readability-redundant-function-ptr-dereference</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-redundant-smartptr-get.html">readability-redundant-smartptr-get</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="readability-redundant-member-init">
+<h1>readability-redundant-member-init<a class="headerlink" href="#readability-redundant-member-init" title="Permalink to this headline">¶</a></h1>
+<p>Finds member initializations that are unnecessary because the same default
+constructor would be called if they were not present.</p>
+<p>Example:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="c1">// Explicitly initializing the member s is unnecessary.</span>
+<span class="k">class</span> <span class="nc">Foo</span> <span class="p">{</span>
+<span class="k">public</span><span class="o">:</span>
+  <span class="n">Foo</span><span class="p">()</span> <span class="o">:</span> <span class="n">s</span><span class="p">()</span> <span class="p">{}</span>
+
+<span class="k">private</span><span class="o">:</span>
+  <span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="n">s</span><span class="p">;</span>
+<span class="p">};</span>
+</pre></div>
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="readability-redundant-function-ptr-dereference.html">readability-redundant-function-ptr-dereference</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-redundant-smartptr-get.html">readability-redundant-smartptr-get</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-redundant-smartptr-get.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-redundant-smartptr-get.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-redundant-smartptr-get.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-redundant-smartptr-get.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - readability-redundant-smartptr-get — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="readability-redundant-string-cstr" href="readability-redundant-string-cstr.html" />
+    <link rel="prev" title="readability-redundant-member-init" href="readability-redundant-member-init.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - readability-redundant-smartptr-get</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="readability-redundant-member-init.html">readability-redundant-member-init</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-redundant-string-cstr.html">readability-redundant-string-cstr</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="readability-redundant-smartptr-get">
+<h1>readability-redundant-smartptr-get<a class="headerlink" href="#readability-redundant-smartptr-get" title="Permalink to this headline">¶</a></h1>
+<p><cite>google-readability-redundant-smartptr-get</cite> redirects here as an alias for this
+check.</p>
+<p>Find and remove redundant calls to smart pointer’s <tt class="docutils literal"><span class="pre">.get()</span></tt> method.</p>
+<p>Examples:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="n">ptr</span><span class="p">.</span><span class="n">get</span><span class="p">()</span><span class="o">-></span><span class="n">Foo</span><span class="p">()</span>  <span class="o">==></span>  <span class="n">ptr</span><span class="o">-></span><span class="n">Foo</span><span class="p">()</span>
+<span class="o">*</span><span class="n">ptr</span><span class="p">.</span><span class="n">get</span><span class="p">()</span>  <span class="o">==></span>  <span class="o">*</span><span class="n">ptr</span>
+<span class="o">*</span><span class="n">ptr</span><span class="o">-></span><span class="n">get</span><span class="p">()</span>  <span class="o">==></span>  <span class="o">**</span><span class="n">ptr</span>
+</pre></div>
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="readability-redundant-member-init.html">readability-redundant-member-init</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-redundant-string-cstr.html">readability-redundant-string-cstr</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-redundant-string-cstr.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-redundant-string-cstr.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-redundant-string-cstr.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-redundant-string-cstr.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,75 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - readability-redundant-string-cstr — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="readability-redundant-string-init" href="readability-redundant-string-init.html" />
+    <link rel="prev" title="readability-redundant-smartptr-get" href="readability-redundant-smartptr-get.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - readability-redundant-string-cstr</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="readability-redundant-smartptr-get.html">readability-redundant-smartptr-get</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-redundant-string-init.html">readability-redundant-string-init</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="readability-redundant-string-cstr">
+<h1>readability-redundant-string-cstr<a class="headerlink" href="#readability-redundant-string-cstr" title="Permalink to this headline">¶</a></h1>
+<p>Finds unnecessary calls to <tt class="docutils literal"><span class="pre">std::string::c_str()</span></tt> and <tt class="docutils literal"><span class="pre">std::string::data()</span></tt>.</p>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="readability-redundant-smartptr-get.html">readability-redundant-smartptr-get</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-redundant-string-init.html">readability-redundant-string-init</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-redundant-string-init.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-redundant-string-init.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-redundant-string-init.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-redundant-string-init.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,86 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - readability-redundant-string-init — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="readability-simplify-boolean-expr" href="readability-simplify-boolean-expr.html" />
+    <link rel="prev" title="readability-redundant-string-cstr" href="readability-redundant-string-cstr.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - readability-redundant-string-init</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="readability-redundant-string-cstr.html">readability-redundant-string-cstr</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-simplify-boolean-expr.html">readability-simplify-boolean-expr</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="readability-redundant-string-init">
+<h1>readability-redundant-string-init<a class="headerlink" href="#readability-redundant-string-init" title="Permalink to this headline">¶</a></h1>
+<p>Finds unnecessary string initializations.</p>
+<p>Examples:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="c1">// Initializing string with empty string literal is unnecessary.</span>
+<span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="n">a</span> <span class="o">=</span> <span class="s">""</span><span class="p">;</span>
+<span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="n">b</span><span class="p">(</span><span class="s">""</span><span class="p">);</span>
+
+<span class="c1">// becomes</span>
+
+<span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="n">a</span><span class="p">;</span>
+<span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="n">b</span><span class="p">;</span>
+</pre></div>
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="readability-redundant-string-cstr.html">readability-redundant-string-cstr</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-simplify-boolean-expr.html">readability-simplify-boolean-expr</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-simplify-boolean-expr.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-simplify-boolean-expr.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-simplify-boolean-expr.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-simplify-boolean-expr.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,201 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - readability-simplify-boolean-expr — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="readability-static-definition-in-anonymous-namespace" href="readability-static-definition-in-anonymous-namespace.html" />
+    <link rel="prev" title="readability-redundant-string-init" href="readability-redundant-string-init.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - readability-simplify-boolean-expr</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="readability-redundant-string-init.html">readability-redundant-string-init</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-static-definition-in-anonymous-namespace.html">readability-static-definition-in-anonymous-namespace</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="readability-simplify-boolean-expr">
+<h1>readability-simplify-boolean-expr<a class="headerlink" href="#readability-simplify-boolean-expr" title="Permalink to this headline">¶</a></h1>
+<p>Looks for boolean expressions involving boolean constants and simplifies
+them to use the appropriate boolean expression directly.</p>
+<p>Examples:</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="73%" />
+<col width="27%" />
+</colgroup>
+<tbody valign="top">
+<tr class="row-odd"><td>Initial expression</td>
+<td>Result</td>
+</tr>
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">if</span> <span class="pre">(b</span> <span class="pre">==</span> <span class="pre">true)</span></tt></td>
+<td><tt class="docutils literal"><span class="pre">if</span> <span class="pre">(b)</span></tt></td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">if</span> <span class="pre">(b</span> <span class="pre">==</span> <span class="pre">false)</span></tt></td>
+<td><tt class="docutils literal"><span class="pre">if</span> <span class="pre">(!b)</span></tt></td>
+</tr>
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">if</span> <span class="pre">(b</span> <span class="pre">&&</span> <span class="pre">true)</span></tt></td>
+<td><tt class="docutils literal"><span class="pre">if</span> <span class="pre">(b)</span></tt></td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">if</span> <span class="pre">(b</span> <span class="pre">&&</span> <span class="pre">false)</span></tt></td>
+<td><tt class="docutils literal"><span class="pre">if</span> <span class="pre">(false)</span></tt></td>
+</tr>
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">if</span> <span class="pre">(b</span> <span class="pre">||</span> <span class="pre">true)</span></tt></td>
+<td><tt class="docutils literal"><span class="pre">if</span> <span class="pre">(true)</span></tt></td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">if</span> <span class="pre">(b</span> <span class="pre">||</span> <span class="pre">false)</span></tt></td>
+<td><tt class="docutils literal"><span class="pre">if</span> <span class="pre">(b)</span></tt></td>
+</tr>
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">e</span> <span class="pre">?</span> <span class="pre">true</span> <span class="pre">:</span> <span class="pre">false</span></tt></td>
+<td><tt class="docutils literal"><span class="pre">e</span></tt></td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">e</span> <span class="pre">?</span> <span class="pre">false</span> <span class="pre">:</span> <span class="pre">true</span></tt></td>
+<td><tt class="docutils literal"><span class="pre">!e</span></tt></td>
+</tr>
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">if</span> <span class="pre">(true)</span> <span class="pre">t();</span> <span class="pre">else</span> <span class="pre">f();</span></tt></td>
+<td><tt class="docutils literal"><span class="pre">t();</span></tt></td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">if</span> <span class="pre">(false)</span> <span class="pre">t();</span> <span class="pre">else</span> <span class="pre">f();</span></tt></td>
+<td><tt class="docutils literal"><span class="pre">f();</span></tt></td>
+</tr>
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">if</span> <span class="pre">(e)</span> <span class="pre">return</span> <span class="pre">true;</span> <span class="pre">else</span> <span class="pre">return</span> <span class="pre">false;</span></tt></td>
+<td><tt class="docutils literal"><span class="pre">return</span> <span class="pre">e;</span></tt></td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">if</span> <span class="pre">(e)</span> <span class="pre">return</span> <span class="pre">false;</span> <span class="pre">else</span> <span class="pre">return</span> <span class="pre">true;</span></tt></td>
+<td><tt class="docutils literal"><span class="pre">return</span> <span class="pre">!e;</span></tt></td>
+</tr>
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">if</span> <span class="pre">(e)</span> <span class="pre">b</span> <span class="pre">=</span> <span class="pre">true;</span> <span class="pre">else</span> <span class="pre">b</span> <span class="pre">=</span> <span class="pre">false;</span></tt></td>
+<td><tt class="docutils literal"><span class="pre">b</span> <span class="pre">=</span> <span class="pre">e;</span></tt></td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">if</span> <span class="pre">(e)</span> <span class="pre">b</span> <span class="pre">=</span> <span class="pre">false;</span> <span class="pre">else</span> <span class="pre">b</span> <span class="pre">=</span> <span class="pre">true;</span></tt></td>
+<td><tt class="docutils literal"><span class="pre">b</span> <span class="pre">=</span> <span class="pre">!e;</span></tt></td>
+</tr>
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">if</span> <span class="pre">(e)</span> <span class="pre">return</span> <span class="pre">true;</span> <span class="pre">return</span> <span class="pre">false;</span></tt></td>
+<td><tt class="docutils literal"><span class="pre">return</span> <span class="pre">e;</span></tt></td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">if</span> <span class="pre">(e)</span> <span class="pre">return</span> <span class="pre">false;</span> <span class="pre">return</span> <span class="pre">true;</span></tt></td>
+<td><tt class="docutils literal"><span class="pre">return</span> <span class="pre">!e;</span></tt></td>
+</tr>
+</tbody>
+</table>
+<dl class="docutils">
+<dt>The resulting expression <tt class="docutils literal"><span class="pre">e</span></tt> is modified as follows:</dt>
+<dd><ol class="first last arabic simple">
+<li>Unnecessary parentheses around the expression are removed.</li>
+<li>Negated applications of <tt class="docutils literal"><span class="pre">!</span></tt> are eliminated.</li>
+<li>Negated applications of comparison operators are changed to use the
+opposite condition.</li>
+<li>Implicit conversions of pointers, including pointers to members, to
+<tt class="docutils literal"><span class="pre">bool</span></tt> are replaced with explicit comparisons to <tt class="docutils literal"><span class="pre">nullptr</span></tt> in C++11
+or <tt class="docutils literal"><span class="pre">NULL</span></tt> in C++98/03.</li>
+<li>Implicit casts to <tt class="docutils literal"><span class="pre">bool</span></tt> are replaced with explicit casts to <tt class="docutils literal"><span class="pre">bool</span></tt>.</li>
+<li>Object expressions with <tt class="docutils literal"><span class="pre">explicit</span> <span class="pre">operator</span> <span class="pre">bool</span></tt> conversion operators
+are replaced with explicit casts to <tt class="docutils literal"><span class="pre">bool</span></tt>.</li>
+<li>Implicit conversions of integral types to <tt class="docutils literal"><span class="pre">bool</span></tt> are replaced with
+explicit comparisons to <tt class="docutils literal"><span class="pre">0</span></tt>.</li>
+</ol>
+</dd>
+<dt>Examples:</dt>
+<dd><ol class="first last arabic">
+<li><p class="first">The ternary assignment <tt class="docutils literal"><span class="pre">bool</span> <span class="pre">b</span> <span class="pre">=</span> <span class="pre">(i</span> <span class="pre"><</span> <span class="pre">0)</span> <span class="pre">?</span> <span class="pre">true</span> <span class="pre">:</span> <span class="pre">false;</span></tt> has redundant
+parentheses and becomes <tt class="docutils literal"><span class="pre">bool</span> <span class="pre">b</span> <span class="pre">=</span> <span class="pre">i</span> <span class="pre"><</span> <span class="pre">0;</span></tt>.</p>
+</li>
+<li><p class="first">The conditional return <tt class="docutils literal"><span class="pre">if</span> <span class="pre">(!b)</span> <span class="pre">return</span> <span class="pre">false;</span> <span class="pre">return</span> <span class="pre">true;</span></tt> has an
+implied double negation and becomes <tt class="docutils literal"><span class="pre">return</span> <span class="pre">b;</span></tt>.</p>
+</li>
+<li><p class="first">The conditional return <tt class="docutils literal"><span class="pre">if</span> <span class="pre">(i</span> <span class="pre"><</span> <span class="pre">0)</span> <span class="pre">return</span> <span class="pre">false;</span> <span class="pre">return</span> <span class="pre">true;</span></tt> becomes
+<tt class="docutils literal"><span class="pre">return</span> <span class="pre">i</span> <span class="pre">>=</span> <span class="pre">0;</span></tt>.</p>
+<p>The conditional return <tt class="docutils literal"><span class="pre">if</span> <span class="pre">(i</span> <span class="pre">!=</span> <span class="pre">0)</span> <span class="pre">return</span> <span class="pre">false;</span> <span class="pre">return</span> <span class="pre">true;</span></tt> becomes
+<tt class="docutils literal"><span class="pre">return</span> <span class="pre">i</span> <span class="pre">==</span> <span class="pre">0;</span></tt>.</p>
+</li>
+<li><p class="first">The conditional return <tt class="docutils literal"><span class="pre">if</span> <span class="pre">(p)</span> <span class="pre">return</span> <span class="pre">true;</span> <span class="pre">return</span> <span class="pre">false;</span></tt> has an
+implicit conversion of a pointer to <tt class="docutils literal"><span class="pre">bool</span></tt> and becomes
+<tt class="docutils literal"><span class="pre">return</span> <span class="pre">p</span> <span class="pre">!=</span> <span class="pre">nullptr;</span></tt>.</p>
+<p>The ternary assignment <tt class="docutils literal"><span class="pre">bool</span> <span class="pre">b</span> <span class="pre">=</span> <span class="pre">(i</span> <span class="pre">&</span> <span class="pre">1)</span> <span class="pre">?</span> <span class="pre">true</span> <span class="pre">:</span> <span class="pre">false;</span></tt> has an
+implicit conversion of <tt class="docutils literal"><span class="pre">i</span> <span class="pre">&</span> <span class="pre">1</span></tt> to <tt class="docutils literal"><span class="pre">bool</span></tt> and becomes
+<tt class="docutils literal"><span class="pre">bool</span> <span class="pre">b</span> <span class="pre">=</span> <span class="pre">(i</span> <span class="pre">&</span> <span class="pre">1)</span> <span class="pre">!=</span> <span class="pre">0;</span></tt>.</p>
+</li>
+<li><p class="first">The conditional return <tt class="docutils literal"><span class="pre">if</span> <span class="pre">(i</span> <span class="pre">&</span> <span class="pre">1)</span> <span class="pre">return</span> <span class="pre">true;</span> <span class="pre">else</span> <span class="pre">return</span> <span class="pre">false;</span></tt> has
+an implicit conversion of an integer quantity <tt class="docutils literal"><span class="pre">i</span> <span class="pre">&</span> <span class="pre">1</span></tt> to <tt class="docutils literal"><span class="pre">bool</span></tt> and
+becomes <tt class="docutils literal"><span class="pre">return</span> <span class="pre">(i</span> <span class="pre">&</span> <span class="pre">1)</span> <span class="pre">!=</span> <span class="pre">0;</span></tt></p>
+</li>
+<li><p class="first">Given <tt class="docutils literal"><span class="pre">struct</span> <span class="pre">X</span> <span class="pre">{</span> <span class="pre">explicit</span> <span class="pre">operator</span> <span class="pre">bool();</span> <span class="pre">};</span></tt>, and an instance <tt class="docutils literal"><span class="pre">x</span></tt> of
+<tt class="docutils literal"><span class="pre">struct</span> <span class="pre">X</span></tt>, the conditional return <tt class="docutils literal"><span class="pre">if</span> <span class="pre">(x)</span> <span class="pre">return</span> <span class="pre">true;</span> <span class="pre">return</span> <span class="pre">false;</span></tt>
+becomes <tt class="docutils literal"><span class="pre">return</span> <span class="pre">static_cast<bool>(x);</span></tt></p>
+</li>
+</ol>
+</dd>
+</dl>
+<div class="section" id="options">
+<h2>Options<a class="headerlink" href="#options" title="Permalink to this headline">¶</a></h2>
+<dl class="option">
+<dt id="cmdoption-arg-ChainedConditionalReturn">
+<tt class="descname">ChainedConditionalReturn</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-ChainedConditionalReturn" title="Permalink to this definition">¶</a></dt>
+<dd><p>If non-zero, conditional boolean return statements at the end of an
+<tt class="docutils literal"><span class="pre">if/else</span> <span class="pre">if</span></tt> chain will be transformed. Default is <cite>0</cite>.</p>
+</dd></dl>
+
+<dl class="option">
+<dt id="cmdoption-arg-ChainedConditionalAssignment">
+<tt class="descname">ChainedConditionalAssignment</tt><tt class="descclassname"></tt><a class="headerlink" href="#cmdoption-arg-ChainedConditionalAssignment" title="Permalink to this definition">¶</a></dt>
+<dd><p>If non-zero, conditional boolean assignments at the end of an <tt class="docutils literal"><span class="pre">if/else</span>
+<span class="pre">if</span></tt> chain will be transformed. Default is <cite>0</cite>.</p>
+</dd></dl>
+
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="readability-redundant-string-init.html">readability-redundant-string-init</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-static-definition-in-anonymous-namespace.html">readability-static-definition-in-anonymous-namespace</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-static-definition-in-anonymous-namespace.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-static-definition-in-anonymous-namespace.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-static-definition-in-anonymous-namespace.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-static-definition-in-anonymous-namespace.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,84 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - readability-static-definition-in-anonymous-namespace — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="readability-uniqueptr-delete-release" href="readability-uniqueptr-delete-release.html" />
+    <link rel="prev" title="readability-simplify-boolean-expr" href="readability-simplify-boolean-expr.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - readability-static-definition-in-anonymous-namespace</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="readability-simplify-boolean-expr.html">readability-simplify-boolean-expr</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-uniqueptr-delete-release.html">readability-uniqueptr-delete-release</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="readability-static-definition-in-anonymous-namespace">
+<h1>readability-static-definition-in-anonymous-namespace<a class="headerlink" href="#readability-static-definition-in-anonymous-namespace" title="Permalink to this headline">¶</a></h1>
+<p>Finds static function and variable definitions in anonymous namespace.</p>
+<p>In this case, <tt class="docutils literal"><span class="pre">static</span></tt> is redundant, because anonymous namespace limits the
+visibility of definitions to a single translation unit.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">namespace</span> <span class="p">{</span>
+  <span class="k">static</span> <span class="kt">int</span> <span class="n">a</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="c1">// Warning.</span>
+  <span class="k">static</span> <span class="k">const</span> <span class="n">b</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="c1">// Warning.</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<p>The check will apply a fix by removing the redundant <tt class="docutils literal"><span class="pre">static</span></tt> qualifier.</p>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="readability-simplify-boolean-expr.html">readability-simplify-boolean-expr</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="readability-uniqueptr-delete-release.html">readability-uniqueptr-delete-release</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-uniqueptr-delete-release.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-uniqueptr-delete-release.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-uniqueptr-delete-release.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/readability-uniqueptr-delete-release.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,85 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>clang-tidy - readability-uniqueptr-delete-release — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../../_static/jquery.js"></script>
+    <script type="text/javascript" src="../../_static/underscore.js"></script>
+    <script type="text/javascript" src="../../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../../index.html" />
+    <link rel="up" title="Clang-Tidy Checks" href="list.html" />
+    <link rel="next" title="Clang-Include-Fixer" href="../../include-fixer.html" />
+    <link rel="prev" title="readability-static-definition-in-anonymous-namespace" href="readability-static-definition-in-anonymous-namespace.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>clang-tidy - readability-uniqueptr-delete-release</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="readability-static-definition-in-anonymous-namespace.html">readability-static-definition-in-anonymous-namespace</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="../../include-fixer.html">Clang-Include-Fixer</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="readability-uniqueptr-delete-release">
+<h1>readability-uniqueptr-delete-release<a class="headerlink" href="#readability-uniqueptr-delete-release" title="Permalink to this headline">¶</a></h1>
+<p>Replace <tt class="docutils literal"><span class="pre">delete</span> <span class="pre"><unique_ptr>.release()</span></tt> with <tt class="docutils literal"><span class="pre"><unique_ptr></span> <span class="pre">=</span> <span class="pre">nullptr</span></tt>.
+The latter is shorter, simpler and does not require use of raw pointer APIs.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="n">std</span><span class="o">::</span><span class="n">unique_ptr</span><span class="o"><</span><span class="kt">int</span><span class="o">></span> <span class="n">P</span><span class="p">;</span>
+<span class="k">delete</span> <span class="n">P</span><span class="p">.</span><span class="n">release</span><span class="p">();</span>
+
+<span class="c1">// becomes</span>
+
+<span class="n">std</span><span class="o">::</span><span class="n">unique_ptr</span><span class="o"><</span><span class="kt">int</span><span class="o">></span> <span class="n">P</span><span class="p">;</span>
+<span class="n">P</span> <span class="o">=</span> <span class="k">nullptr</span><span class="p">;</span>
+</pre></div>
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="readability-static-definition-in-anonymous-namespace.html">readability-static-definition-in-anonymous-namespace</a>
+          ::  
+        <a class="uplink" href="../../index.html">Contents</a>
+          ::  
+        <a href="../../include-fixer.html">Clang-Include-Fixer</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/index.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/index.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/index.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clang-tidy/index.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,696 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>Clang-Tidy — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="../_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '../',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="../_static/jquery.js"></script>
+    <script type="text/javascript" src="../_static/underscore.js"></script>
+    <script type="text/javascript" src="../_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="../index.html" />
+    <link rel="next" title="Clang-Tidy Checks" href="checks/list.html" />
+    <link rel="prev" title="Extra Clang Tools 5.0.0 Release Notes" href="../ReleaseNotes.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="../index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>Clang-Tidy</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="../ReleaseNotes.html">Extra Clang Tools 5.0.0 Release Notes</a>
+          ::  
+        <a class="uplink" href="../index.html">Contents</a>
+          ::  
+        <a href="checks/list.html">Clang-Tidy Checks</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="clang-tidy">
+<h1><a class="toc-backref" href="#id2">Clang-Tidy</a><a class="headerlink" href="#clang-tidy" title="Permalink to this headline">¶</a></h1>
+<div class="contents topic" id="contents">
+<p class="topic-title first">Contents</p>
+<ul class="simple">
+<li><a class="reference internal" href="#clang-tidy" id="id2">Clang-Tidy</a><ul>
+<li><a class="reference internal" href="#using-clang-tidy" id="id3">Using clang-tidy</a></li>
+<li><a class="reference internal" href="#getting-involved" id="id4">Getting Involved</a><ul>
+<li><a class="reference internal" href="#choosing-the-right-place-for-your-check" id="id5">Choosing the Right Place for your Check</a></li>
+<li><a class="reference internal" href="#preparing-your-workspace" id="id6">Preparing your Workspace</a></li>
+<li><a class="reference internal" href="#the-directory-structure" id="id7">The Directory Structure</a></li>
+<li><a class="reference internal" href="#writing-a-clang-tidy-check" id="id8">Writing a clang-tidy Check</a></li>
+<li><a class="reference internal" href="#registering-your-check" id="id9">Registering your Check</a></li>
+<li><a class="reference internal" href="#configuring-checks" id="id10">Configuring Checks</a></li>
+<li><a class="reference internal" href="#testing-checks" id="id11">Testing Checks</a></li>
+<li><a class="reference internal" href="#running-clang-tidy-on-llvm" id="id12">Running clang-tidy on LLVM</a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<p>See also:</p>
+<div class="toctree-wrapper compound">
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="checks/list.html">The list of clang-tidy checks</a></li>
+</ul>
+</div>
+<p><strong class="program">clang-tidy</strong> is a clang-based C++ “linter” tool. Its purpose is to
+provide an extensible framework for diagnosing and fixing typical programming
+errors, like style violations, interface misuse, or bugs that can be deduced via
+static analysis. <strong class="program">clang-tidy</strong> is modular and provides a convenient
+interface for writing new checks.</p>
+<div class="section" id="using-clang-tidy">
+<h2><a class="toc-backref" href="#id3">Using clang-tidy</a><a class="headerlink" href="#using-clang-tidy" title="Permalink to this headline">¶</a></h2>
+<p><strong class="program">clang-tidy</strong> is a <a class="reference external" href="http://clang.llvm.org/docs/LibTooling.html">LibTooling</a>-based tool, and it’s easier to work
+with if you set up a compile command database for your project (for an example
+of how to do this see <a class="reference external" href="http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html">How To Setup Tooling For LLVM</a>). You can also specify
+compilation options on the command line after <tt class="docutils literal"><span class="pre">--</span></tt>:</p>
+<div class="highlight-console"><div class="highlight"><pre><span></span><span class="gp">$</span> clang-tidy test.cpp -- -Imy_project/include -DMY_DEFINES ...
+</pre></div>
+</div>
+<p><strong class="program">clang-tidy</strong> has its own checks and can also run Clang static analyzer
+checks. Each check has a name and the checks to run can be chosen using the
+<tt class="docutils literal"><span class="pre">-checks=</span></tt> option, which specifies a comma-separated list of positive and
+negative (prefixed with <tt class="docutils literal"><span class="pre">-</span></tt>) globs. Positive globs add subsets of checks,
+negative globs remove them. For example,</p>
+<div class="highlight-console"><div class="highlight"><pre><span></span><span class="gp">$</span> clang-tidy test.cpp -checks<span class="o">=</span>-*,clang-analyzer-*,-clang-analyzer-cplusplus*
+</pre></div>
+</div>
+<p>will disable all default checks (<tt class="docutils literal"><span class="pre">-*</span></tt>) and enable all <tt class="docutils literal"><span class="pre">clang-analyzer-*</span></tt>
+checks except for <tt class="docutils literal"><span class="pre">clang-analyzer-cplusplus*</span></tt> ones.</p>
+<p>The <tt class="docutils literal"><span class="pre">-list-checks</span></tt> option lists all the enabled checks. When used without
+<tt class="docutils literal"><span class="pre">-checks=</span></tt>, it shows checks enabled by default. Use <tt class="docutils literal"><span class="pre">-checks=*</span></tt> to see all
+available checks or with any other value of <tt class="docutils literal"><span class="pre">-checks=</span></tt> to see which checks are
+enabled by this value.</p>
+<p id="checks-groups-table">There are currently the following groups of checks:</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="28%" />
+<col width="72%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Name prefix</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">android-</span></tt></td>
+<td>Checks related to Android.</td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">boost-</span></tt></td>
+<td>Checks related to Boost library.</td>
+</tr>
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">bugprone-</span></tt></td>
+<td>Checks that target bugprone code constructs.</td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">cert-</span></tt></td>
+<td>Checks related to CERT Secure Coding Guidelines.</td>
+</tr>
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">cppcoreguidelines-</span></tt></td>
+<td>Checks related to C++ Core Guidelines.</td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">clang-analyzer-</span></tt></td>
+<td>Clang Static Analyzer checks.</td>
+</tr>
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">google-</span></tt></td>
+<td>Checks related to Google coding conventions.</td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">hicpp-</span></tt></td>
+<td>Checks related to High Integrity C++ Coding Standard.</td>
+</tr>
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">llvm-</span></tt></td>
+<td>Checks related to the LLVM coding conventions.</td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">misc-</span></tt></td>
+<td>Checks that we didn’t have a better category for.</td>
+</tr>
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">modernize-</span></tt></td>
+<td>Checks that advocate usage of modern (currently “modern”
+means “C++11”) language constructs.</td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">mpi-</span></tt></td>
+<td>Checks related to MPI (Message Passing Interface).</td>
+</tr>
+<tr class="row-even"><td><tt class="docutils literal"><span class="pre">performance-</span></tt></td>
+<td>Checks that target performance-related issues.</td>
+</tr>
+<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">readability-</span></tt></td>
+<td>Checks that target readability-related issues that don’t
+relate to any particular coding style.</td>
+</tr>
+</tbody>
+</table>
+<p>Clang diagnostics are treated in a similar way as check diagnostics. Clang
+diagnostics are displayed by <strong class="program">clang-tidy</strong> and can be filtered out using
+<tt class="docutils literal"><span class="pre">-checks=</span></tt> option. However, the <tt class="docutils literal"><span class="pre">-checks=</span></tt> option does not affect
+compilation arguments, so it can not turn on Clang warnings which are not
+already turned on in build configuration. The <tt class="docutils literal"><span class="pre">-warnings-as-errors=</span></tt> option
+upgrades any warnings emitted under the <tt class="docutils literal"><span class="pre">-checks=</span></tt> flag to errors (but it
+does not enable any checks itself).</p>
+<p>Clang diagnostics have check names starting with <tt class="docutils literal"><span class="pre">clang-diagnostic-</span></tt>.
+Diagnostics which have a corresponding warning option, are named
+<tt class="docutils literal"><span class="pre">clang-diagnostic-<warning-option></span></tt>, e.g. Clang warning controlled by
+<tt class="docutils literal"><span class="pre">-Wliteral-conversion</span></tt> will be reported with check name
+<tt class="docutils literal"><span class="pre">clang-diagnostic-literal-conversion</span></tt>.</p>
+<p>The <tt class="docutils literal"><span class="pre">-fix</span></tt> flag instructs <strong class="program">clang-tidy</strong> to fix found errors if
+supported by corresponding checks.</p>
+<p>An overview of all the command-line options:</p>
+<div class="highlight-console"><div class="highlight"><pre><span></span><span class="gp">$</span> clang-tidy -help
+<span class="go">USAGE: clang-tidy [options] <source0> [... <sourceN>]</span>
+
+<span class="go">OPTIONS:</span>
+
+<span class="go">Generic Options:</span>
+
+<span class="go">  -help                        - Display available options (-help-hidden for more)</span>
+<span class="go">  -help-list                   - Display list of available options (-help-list-hidden for more)</span>
+<span class="go">  -version                     - Display the version of this program</span>
+
+<span class="go">clang-tidy options:</span>
+
+<span class="go">  -analyze-temporary-dtors     -</span>
+<span class="go">                                 Enable temporary destructor-aware analysis in</span>
+<span class="go">                                 clang-analyzer- checks.</span>
+<span class="go">                                 This option overrides the value read from a</span>
+<span class="go">                                 .clang-tidy file.</span>
+<span class="go">  -checks=<string>             -</span>
+<span class="go">                                 Comma-separated list of globs with optional '-'</span>
+<span class="go">                                 prefix. Globs are processed in order of</span>
+<span class="go">                                 appearance in the list. Globs without '-'</span>
+<span class="go">                                 prefix add checks with matching names to the</span>
+<span class="go">                                 set, globs with the '-' prefix remove checks</span>
+<span class="go">                                 with matching names from the set of enabled</span>
+<span class="go">                                 checks. This option's value is appended to the</span>
+<span class="go">                                 value of the 'Checks' option in .clang-tidy</span>
+<span class="go">                                 file, if any.</span>
+<span class="go">  -config=<string>             -</span>
+<span class="go">                                 Specifies a configuration in YAML/JSON format:</span>
+<span class="go">                                   -config="{Checks: '*',</span>
+<span class="go">                                             CheckOptions: [{key: x,</span>
+<span class="go">                                                             value: y}]}"</span>
+<span class="go">                                 When the value is empty, clang-tidy will</span>
+<span class="go">                                 attempt to find a file named .clang-tidy for</span>
+<span class="go">                                 each source file in its parent directories.</span>
+<span class="go">  -dump-config                 -</span>
+<span class="go">                                 Dumps configuration in the YAML format to</span>
+<span class="go">                                 stdout. This option can be used along with a</span>
+<span class="go">                                 file name (and '--' if the file is outside of a</span>
+<span class="go">                                 project with configured compilation database).</span>
+<span class="go">                                 The configuration used for this file will be</span>
+<span class="go">                                 printed.</span>
+<span class="go">                                 Use along with -checks=* to include</span>
+<span class="go">                                 configuration of all checks.</span>
+<span class="go">  -enable-check-profile        -</span>
+<span class="go">                                 Enable per-check timing profiles, and print a</span>
+<span class="go">                                 report to stderr.</span>
+<span class="go">  -explain-config              -</span>
+<span class="go">                                 For each enabled check explains, where it is</span>
+<span class="go">                                 enabled, i.e. in clang-tidy binary, command</span>
+<span class="go">                                 line or a specific configuration file.</span>
+<span class="go">  -export-fixes=<filename>     -</span>
+<span class="go">                                 YAML file to store suggested fixes in. The</span>
+<span class="go">                                 stored fixes can be applied to the input source</span>
+<span class="go">                                 code with clang-apply-replacements.</span>
+<span class="go">  -extra-arg=<string>          - Additional argument to append to the compiler command line</span>
+<span class="go">  -extra-arg-before=<string>   - Additional argument to prepend to the compiler command line</span>
+<span class="go">  -fix                         -</span>
+<span class="go">                                 Apply suggested fixes. Without -fix-errors</span>
+<span class="go">                                 clang-tidy will bail out if any compilation</span>
+<span class="go">                                 errors were found.</span>
+<span class="go">  -fix-errors                  -</span>
+<span class="go">                                 Apply suggested fixes even if compilation</span>
+<span class="go">                                 errors were found. If compiler errors have</span>
+<span class="go">                                 attached fix-its, clang-tidy will apply them as</span>
+<span class="go">                                 well.</span>
+<span class="go">  -format-style=<string>       -</span>
+<span class="go">                                 Style for formatting code around applied fixes:</span>
+<span class="go">                                   - 'none' (default) turns off formatting</span>
+<span class="go">                                   - 'file' (literally 'file', not a placeholder)</span>
+<span class="go">                                     uses .clang-format file in the closest parent</span>
+<span class="go">                                     directory</span>
+<span class="go">                                   - '{ <json> }' specifies options inline, e.g.</span>
+<span class="go">                                     -format-style='{BasedOnStyle: llvm, IndentWidth: 8}'</span>
+<span class="go">                                   - 'llvm', 'google', 'webkit', 'mozilla'</span>
+<span class="go">                                 See clang-format documentation for the up-to-date</span>
+<span class="go">                                 information about formatting styles and options.</span>
+<span class="go">                                 This option overrides the 'FormatStyle` option in</span>
+<span class="go">                                 .clang-tidy file, if any.</span>
+<span class="go">  -header-filter=<string>      -</span>
+<span class="go">                                 Regular expression matching the names of the</span>
+<span class="go">                                 headers to output diagnostics from. Diagnostics</span>
+<span class="go">                                 from the main file of each translation unit are</span>
+<span class="go">                                 always displayed.</span>
+<span class="go">                                 Can be used together with -line-filter.</span>
+<span class="go">                                 This option overrides the 'HeaderFilter' option</span>
+<span class="go">                                 in .clang-tidy file, if any.</span>
+<span class="go">  -line-filter=<string>        -</span>
+<span class="go">                                 List of files with line ranges to filter the</span>
+<span class="go">                                 warnings. Can be used together with</span>
+<span class="go">                                 -header-filter. The format of the list is a</span>
+<span class="go">                                 JSON array of objects:</span>
+<span class="go">                                   [</span>
+<span class="go">                                     {"name":"file1.cpp","lines":[[1,3],[5,7]]},</span>
+<span class="go">                                     {"name":"file2.h"}</span>
+<span class="go">                                   ]</span>
+<span class="go">  -list-checks                 -</span>
+<span class="go">                                 List all enabled checks and exit. Use with</span>
+<span class="go">                                 -checks=* to list all available checks.</span>
+<span class="go">  -p=<string>                  - Build path</span>
+<span class="go">  -quiet                       -</span>
+<span class="go">                                 Run clang-tidy in quiet mode. This suppresses</span>
+<span class="go">                                 printing statistics about ignored warnings and</span>
+<span class="go">                                 warnings treated as errors if the respective</span>
+<span class="go">                                 options are specified.</span>
+<span class="go">  -system-headers              - Display the errors from system headers.</span>
+<span class="go">  -warnings-as-errors=<string> -</span>
+<span class="go">                                 Upgrades warnings to errors. Same format as</span>
+<span class="go">                                 '-checks'.</span>
+<span class="go">                                 This option's value is appended to the value of</span>
+<span class="go">                                 the 'WarningsAsErrors' option in .clang-tidy</span>
+<span class="go">                                 file, if any.</span>
+
+<span class="go">-p <build-path> is used to read a compile command database.</span>
+
+<span class="go">        For example, it can be a CMake build directory in which a file named</span>
+<span class="go">        compile_commands.json exists (use -DCMAKE_EXPORT_COMPILE_COMMANDS=ON</span>
+<span class="go">        CMake option to get this output). When no build path is specified,</span>
+<span class="go">        a search for compile_commands.json will be attempted through all</span>
+<span class="go">        parent paths of the first input file . See:</span>
+<span class="go">        http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html for an</span>
+<span class="go">        example of setting up Clang Tooling on a source tree.</span>
+
+<span class="go"><source0> ... specify the paths of source files. These paths are</span>
+<span class="go">        looked up in the compile command database. If the path of a file is</span>
+<span class="go">        absolute, it needs to point into CMake's source tree. If the path is</span>
+<span class="go">        relative, the current working directory needs to be in the CMake</span>
+<span class="go">        source tree and the file must be in a subdirectory of the current</span>
+<span class="go">        working directory. "./" prefixes in the relative files will be</span>
+<span class="go">        automatically removed, but the rest of a relative path must be a</span>
+<span class="go">        suffix of a path in the compile command database.</span>
+
+
+<span class="go">Configuration files:</span>
+<span class="go">  clang-tidy attempts to read configuration for each source file from a</span>
+<span class="go">  .clang-tidy file located in the closest parent directory of the source</span>
+<span class="go">  file. If any configuration options have a corresponding command-line</span>
+<span class="go">  option, command-line option takes precedence. The effective</span>
+<span class="go">  configuration can be inspected using -dump-config:</span>
+
+<span class="gp">    $</span> clang-tidy -dump-config
+<span class="go">    ---</span>
+<span class="go">    Checks:          '-*,some-check'</span>
+<span class="go">    WarningsAsErrors: ''</span>
+<span class="go">    HeaderFilterRegex: ''</span>
+<span class="go">    AnalyzeTemporaryDtors: false</span>
+<span class="go">    FormatStyle:     none</span>
+<span class="go">    User:            user</span>
+<span class="go">    CheckOptions:</span>
+<span class="go">      - key:             some-check.SomeOption</span>
+<span class="go">        value:           'some value'</span>
+<span class="go">    ...</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="getting-involved">
+<h2><a class="toc-backref" href="#id4">Getting Involved</a><a class="headerlink" href="#getting-involved" title="Permalink to this headline">¶</a></h2>
+<p><strong class="program">clang-tidy</strong> has several own checks and can run Clang static analyzer
+checks, but its power is in the ability to easily write custom checks.</p>
+<p>Checks are organized in modules, which can be linked into <strong class="program">clang-tidy</strong>
+with minimal or no code changes in <strong class="program">clang-tidy</strong>.</p>
+<p>Checks can plug into the analysis on the preprocessor level using <a class="reference external" href="http://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html">PPCallbacks</a>
+or on the AST level using <a class="reference external" href="http://clang.llvm.org/docs/LibASTMatchers.html">AST Matchers</a>. When an error is found, checks can
+report them in a way similar to how Clang diagnostics work. A fix-it hint can be
+attached to a diagnostic message.</p>
+<p>The interface provided by <strong class="program">clang-tidy</strong> makes it easy to write useful
+and precise checks in just a few lines of code. If you have an idea for a good
+check, the rest of this document explains how to do this.</p>
+<dl class="docutils">
+<dt>There are a few tools particularly useful when developing clang-tidy checks:</dt>
+<dd><ul class="first last simple">
+<li><tt class="docutils literal"><span class="pre">add_new_check.py</span></tt> is a script to automate the process of adding a new
+check, it will create the check, update the CMake file and create a test;</li>
+<li><tt class="docutils literal"><span class="pre">rename_check.py</span></tt> does what the script name suggests, renames an existing
+check;</li>
+<li><strong class="program">clang-query</strong> is invaluable for interactive prototyping of AST
+matchers and exploration of the Clang AST;</li>
+<li><a class="reference external" href="http://clang.llvm.org/docs/ClangCheck.html">clang-check</a> with the <tt class="docutils literal"><span class="pre">-ast-dump</span></tt> (and optionally <tt class="docutils literal"><span class="pre">-ast-dump-filter</span></tt>)
+provides a convenient way to dump AST of a C++ program.</li>
+</ul>
+</dd>
+</dl>
+<div class="section" id="choosing-the-right-place-for-your-check">
+<h3><a class="toc-backref" href="#id5">Choosing the Right Place for your Check</a><a class="headerlink" href="#choosing-the-right-place-for-your-check" title="Permalink to this headline">¶</a></h3>
+<p>If you have an idea of a check, you should decide whether it should be
+implemented as a:</p>
+<ul class="simple">
+<li><em>Clang diagnostic</em>: if the check is generic enough, targets code patterns that
+most probably are bugs (rather than style or readability issues), can be
+implemented effectively and with extremely low false positive rate, it may
+make a good Clang diagnostic.</li>
+<li><em>Clang static analyzer check</em>: if the check requires some sort of control flow
+analysis, it should probably be implemented as a static analyzer check.</li>
+<li><em>clang-tidy check</em> is a good choice for linter-style checks, checks that are
+related to a certain coding style, checks that address code readability, etc.</li>
+</ul>
+</div>
+<div class="section" id="preparing-your-workspace">
+<h3><a class="toc-backref" href="#id6">Preparing your Workspace</a><a class="headerlink" href="#preparing-your-workspace" title="Permalink to this headline">¶</a></h3>
+<p>If you are new to LLVM development, you should read the <a class="reference external" href="http://llvm.org/docs/GettingStarted.html">Getting Started with
+the LLVM System</a>, <a class="reference external" href="http://clang.llvm.org/docs/ClangTools.html">Using Clang Tools</a> and <a class="reference external" href="http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html">How To Setup Tooling For LLVM</a>
+documents to check out and build LLVM, Clang and Clang Extra Tools with CMake.</p>
+<p>Once you are done, change to the <tt class="docutils literal"><span class="pre">llvm/tools/clang/tools/extra</span></tt> directory, and
+let’s start!</p>
+</div>
+<div class="section" id="the-directory-structure">
+<h3><a class="toc-backref" href="#id7">The Directory Structure</a><a class="headerlink" href="#the-directory-structure" title="Permalink to this headline">¶</a></h3>
+<p><strong class="program">clang-tidy</strong> source code resides in the
+<tt class="docutils literal"><span class="pre">llvm/tools/clang/tools/extra</span></tt> directory and is structured as follows:</p>
+<div class="highlight-python"><div class="highlight"><pre><span></span>clang-tidy/                       # Clang-tidy core.
+|-- ClangTidy.h                   # Interfaces for users and checks.
+|-- ClangTidyModule.h             # Interface for clang-tidy modules.
+|-- ClangTidyModuleRegistry.h     # Interface for registering of modules.
+   ...
+|-- google/                       # Google clang-tidy module.
+|-+
+  |-- GoogleTidyModule.cpp
+  |-- GoogleTidyModule.h
+        ...
+|-- llvm/                         # LLVM clang-tidy module.
+|-+
+  |-- LLVMTidyModule.cpp
+  |-- LLVMTidyModule.h
+        ...
+|-- tool/                         # Sources of the clang-tidy binary.
+        ...
+test/clang-tidy/                  # Integration tests.
+    ...
+unittests/clang-tidy/             # Unit tests.
+|-- ClangTidyTest.h
+|-- GoogleModuleTest.cpp
+|-- LLVMModuleTest.cpp
+    ...
+</pre></div>
+</div>
+</div>
+<div class="section" id="writing-a-clang-tidy-check">
+<h3><a class="toc-backref" href="#id8">Writing a clang-tidy Check</a><a class="headerlink" href="#writing-a-clang-tidy-check" title="Permalink to this headline">¶</a></h3>
+<p>So you have an idea of a useful check for <strong class="program">clang-tidy</strong>.</p>
+<p>First, if you’re not familiar with LLVM development, read through the <a class="reference external" href="http://llvm.org/docs/GettingStarted.html">Getting
+Started with LLVM</a> document for instructions on setting up your workflow and
+the <a class="reference external" href="http://llvm.org/docs/CodingStandards.html">LLVM Coding Standards</a> document to familiarize yourself with the coding
+style used in the project. For code reviews we mostly use <a class="reference external" href="http://llvm.org/docs/Phabricator.html">LLVM Phabricator</a>.</p>
+<p>Next, you need to decide which module the check belongs to. Modules
+are located in subdirectories of <a class="reference external" href="http://reviews.llvm.org/diffusion/L/browse/clang-tools-extra/trunk/clang-tidy/">clang-tidy/</a>
+and contain checks targeting a certain aspect of code quality (performance,
+readability, etc.), certain coding style or standard (Google, LLVM, CERT, etc.)
+or a widely used API (e.g. MPI). Their names are same as user-facing check
+groups names described <a class="reference internal" href="#checks-groups-table"><em>above</em></a>.</p>
+<p>After choosing the module and the name for the check, run the
+<tt class="docutils literal"><span class="pre">clang-tidy/add_new_check.py</span></tt> script to create the skeleton of the check and
+plug it to <strong class="program">clang-tidy</strong>. It’s the recommended way of adding new checks.</p>
+<p>If we want to create a <cite>readability-awesome-function-names</cite>, we would run:</p>
+<div class="highlight-console"><div class="highlight"><pre><span></span><span class="gp">$</span> clang-tidy/add_new_check.py readability awesome-function-names
+</pre></div>
+</div>
+<dl class="docutils">
+<dt>The <tt class="docutils literal"><span class="pre">add_new_check.py</span></tt> script will:</dt>
+<dd><ul class="first last simple">
+<li>create the class for your check inside the specified module’s directory and
+register it in the module and in the build system;</li>
+<li>create a lit test file in the <tt class="docutils literal"><span class="pre">test/clang-tidy/</span></tt> directory;</li>
+<li>create a documentation file and include it into the
+<tt class="docutils literal"><span class="pre">docs/clang-tidy/checks/list.rst</span></tt>.</li>
+</ul>
+</dd>
+</dl>
+<p>Let’s see in more detail at the check class definition:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="p">...</span>
+
+<span class="cp">#include</span> <span class="cpf">"../ClangTidy.h"</span><span class="cp"></span>
+
+<span class="k">namespace</span> <span class="n">clang</span> <span class="p">{</span>
+<span class="k">namespace</span> <span class="n">tidy</span> <span class="p">{</span>
+<span class="k">namespace</span> <span class="n">readability</span> <span class="p">{</span>
+
+<span class="p">...</span>
+<span class="k">class</span> <span class="nc">AwesomeFunctionNamesCheck</span> <span class="o">:</span> <span class="k">public</span> <span class="n">ClangTidyCheck</span> <span class="p">{</span>
+<span class="k">public</span><span class="o">:</span>
+  <span class="n">AwesomeFunctionNamesCheck</span><span class="p">(</span><span class="n">StringRef</span> <span class="n">Name</span><span class="p">,</span> <span class="n">ClangTidyContext</span> <span class="o">*</span><span class="n">Context</span><span class="p">)</span>
+      <span class="o">:</span> <span class="n">ClangTidyCheck</span><span class="p">(</span><span class="n">Name</span><span class="p">,</span> <span class="n">Context</span><span class="p">)</span> <span class="p">{}</span>
+  <span class="kt">void</span> <span class="n">registerMatchers</span><span class="p">(</span><span class="n">ast_matchers</span><span class="o">::</span><span class="n">MatchFinder</span> <span class="o">*</span><span class="n">Finder</span><span class="p">)</span> <span class="k">override</span><span class="p">;</span>
+  <span class="kt">void</span> <span class="nf">check</span><span class="p">(</span><span class="k">const</span> <span class="n">ast_matchers</span><span class="o">::</span><span class="n">MatchFinder</span><span class="o">::</span><span class="n">MatchResult</span> <span class="o">&</span><span class="n">Result</span><span class="p">)</span> <span class="k">override</span><span class="p">;</span>
+<span class="p">};</span>
+
+<span class="p">}</span> <span class="c1">// namespace readability</span>
+<span class="p">}</span> <span class="c1">// namespace tidy</span>
+<span class="p">}</span> <span class="c1">// namespace clang</span>
+
+<span class="p">...</span>
+</pre></div>
+</div>
+<p>Constructor of the check receives the <tt class="docutils literal"><span class="pre">Name</span></tt> and <tt class="docutils literal"><span class="pre">Context</span></tt> parameters, and
+must forward them to the <tt class="docutils literal"><span class="pre">ClangTidyCheck</span></tt> constructor.</p>
+<p>In our case the check needs to operate on the AST level and it overrides the
+<tt class="docutils literal"><span class="pre">registerMatchers</span></tt> and <tt class="docutils literal"><span class="pre">check</span></tt> methods. If we wanted to analyze code on the
+preprocessor level, we’d need instead to override the <tt class="docutils literal"><span class="pre">registerPPCallbacks</span></tt>
+method.</p>
+<p>In the <tt class="docutils literal"><span class="pre">registerMatchers</span></tt> method we create an AST Matcher (see <a class="reference external" href="http://clang.llvm.org/docs/LibASTMatchers.html">AST Matchers</a>
+for more information) that will find the pattern in the AST that we want to
+inspect. The results of the matching are passed to the <tt class="docutils literal"><span class="pre">check</span></tt> method, which
+can further inspect them and report diagnostics.</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">using</span> <span class="k">namespace</span> <span class="n">ast_matchers</span><span class="p">;</span>
+
+<span class="kt">void</span> <span class="n">AwesomeFunctionNamesCheck</span><span class="o">::</span><span class="n">registerMatchers</span><span class="p">(</span><span class="n">MatchFinder</span> <span class="o">*</span><span class="n">Finder</span><span class="p">)</span> <span class="p">{</span>
+  <span class="n">Finder</span><span class="o">-></span><span class="n">addMatcher</span><span class="p">(</span><span class="n">functionDecl</span><span class="p">().</span><span class="n">bind</span><span class="p">(</span><span class="s">"x"</span><span class="p">),</span> <span class="k">this</span><span class="p">);</span>
+<span class="p">}</span>
+
+<span class="kt">void</span> <span class="n">AwesomeFunctionNamesCheck</span><span class="o">::</span><span class="n">check</span><span class="p">(</span><span class="k">const</span> <span class="n">MatchFinder</span><span class="o">::</span><span class="n">MatchResult</span> <span class="o">&</span><span class="n">Result</span><span class="p">)</span> <span class="p">{</span>
+  <span class="k">const</span> <span class="k">auto</span> <span class="o">*</span><span class="n">MatchedDecl</span> <span class="o">=</span> <span class="n">Result</span><span class="p">.</span><span class="n">Nodes</span><span class="p">.</span><span class="n">getNodeAs</span><span class="o"><</span><span class="n">FunctionDecl</span><span class="o">></span><span class="p">(</span><span class="s">"x"</span><span class="p">);</span>
+  <span class="k">if</span> <span class="p">(</span><span class="n">MatchedDecl</span><span class="o">-></span><span class="n">getName</span><span class="p">().</span><span class="n">startswith</span><span class="p">(</span><span class="s">"awesome_"</span><span class="p">))</span>
+    <span class="k">return</span><span class="p">;</span>
+  <span class="n">diag</span><span class="p">(</span><span class="n">MatchedDecl</span><span class="o">-></span><span class="n">getLocation</span><span class="p">(),</span> <span class="s">"function %0 is insufficiently awesome"</span><span class="p">)</span>
+      <span class="o"><<</span> <span class="n">MatchedDecl</span>
+      <span class="o"><<</span> <span class="n">FixItHint</span><span class="o">::</span><span class="n">CreateInsertion</span><span class="p">(</span><span class="n">MatchedDecl</span><span class="o">-></span><span class="n">getLocation</span><span class="p">(),</span> <span class="s">"awesome_"</span><span class="p">);</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<p>(If you want to see an example of a useful check, look at
+<a class="reference external" href="http://reviews.llvm.org/diffusion/L/browse/clang-tools-extra/trunk/clang-tidy/google/ExplicitConstructorCheck.h">clang-tidy/google/ExplicitConstructorCheck.h</a>
+and <a class="reference external" href="http://reviews.llvm.org/diffusion/L/browse/clang-tools-extra/trunk/clang-tidy/google/ExplicitConstructorCheck.cpp">clang-tidy/google/ExplicitConstructorCheck.cpp</a>).</p>
+</div>
+<div class="section" id="registering-your-check">
+<h3><a class="toc-backref" href="#id9">Registering your Check</a><a class="headerlink" href="#registering-your-check" title="Permalink to this headline">¶</a></h3>
+<p>(The <tt class="docutils literal"><span class="pre">add_new_check.py</span></tt> takes care of registering the check in an existing
+module. If you want to create a new module or know the details, read on.)</p>
+<p>The check should be registered in the corresponding module with a distinct name:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">class</span> <span class="nc">MyModule</span> <span class="o">:</span> <span class="k">public</span> <span class="n">ClangTidyModule</span> <span class="p">{</span>
+ <span class="k">public</span><span class="o">:</span>
+  <span class="kt">void</span> <span class="n">addCheckFactories</span><span class="p">(</span><span class="n">ClangTidyCheckFactories</span> <span class="o">&</span><span class="n">CheckFactories</span><span class="p">)</span> <span class="k">override</span> <span class="p">{</span>
+    <span class="n">CheckFactories</span><span class="p">.</span><span class="n">registerCheck</span><span class="o"><</span><span class="n">ExplicitConstructorCheck</span><span class="o">></span><span class="p">(</span>
+        <span class="s">"my-explicit-constructor"</span><span class="p">);</span>
+  <span class="p">}</span>
+<span class="p">};</span>
+</pre></div>
+</div>
+<p>Now we need to register the module in the <tt class="docutils literal"><span class="pre">ClangTidyModuleRegistry</span></tt> using a
+statically initialized variable:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">static</span> <span class="n">ClangTidyModuleRegistry</span><span class="o">::</span><span class="n">Add</span><span class="o"><</span><span class="n">MyModule</span><span class="o">></span> <span class="n">X</span><span class="p">(</span><span class="s">"my-module"</span><span class="p">,</span>
+                                                <span class="s">"Adds my lint checks."</span><span class="p">);</span>
+</pre></div>
+</div>
+<p>When using LLVM build system, we need to use the following hack to ensure the
+module is linked into the <strong class="program">clang-tidy</strong> binary:</p>
+<p>Add this near the <tt class="docutils literal"><span class="pre">ClangTidyModuleRegistry::Add<MyModule></span></tt> variable:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="c1">// This anchor is used to force the linker to link in the generated object file</span>
+<span class="c1">// and thus register the MyModule.</span>
+<span class="k">volatile</span> <span class="kt">int</span> <span class="n">MyModuleAnchorSource</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
+</pre></div>
+</div>
+<p>And this to the main translation unit of the <strong class="program">clang-tidy</strong> binary (or
+the binary you link the <tt class="docutils literal"><span class="pre">clang-tidy</span></tt> library in)
+<tt class="docutils literal"><span class="pre">clang-tidy/tool/ClangTidyMain.cpp</span></tt>:</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="c1">// This anchor is used to force the linker to link the MyModule.</span>
+<span class="k">extern</span> <span class="k">volatile</span> <span class="kt">int</span> <span class="n">MyModuleAnchorSource</span><span class="p">;</span>
+<span class="k">static</span> <span class="kt">int</span> <span class="n">MyModuleAnchorDestination</span> <span class="o">=</span> <span class="n">MyModuleAnchorSource</span><span class="p">;</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="configuring-checks">
+<h3><a class="toc-backref" href="#id10">Configuring Checks</a><a class="headerlink" href="#configuring-checks" title="Permalink to this headline">¶</a></h3>
+<p>If a check needs configuration options, it can access check-specific options
+using the <tt class="docutils literal"><span class="pre">Options.get<Type>("SomeOption",</span> <span class="pre">DefaultValue)</span></tt> call in the check
+constructor. In this case the check should also override the
+<tt class="docutils literal"><span class="pre">ClangTidyCheck::storeOptions</span></tt> method to make the options provided by the
+check discoverable. This method lets <strong class="program">clang-tidy</strong> know which options
+the check implements and what the current values are (e.g. for the
+<tt class="docutils literal"><span class="pre">-dump-config</span></tt> command line option).</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="k">class</span> <span class="nc">MyCheck</span> <span class="o">:</span> <span class="k">public</span> <span class="n">ClangTidyCheck</span> <span class="p">{</span>
+  <span class="k">const</span> <span class="kt">unsigned</span> <span class="n">SomeOption1</span><span class="p">;</span>
+  <span class="k">const</span> <span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="n">SomeOption2</span><span class="p">;</span>
+
+<span class="k">public</span><span class="o">:</span>
+  <span class="n">MyCheck</span><span class="p">(</span><span class="n">StringRef</span> <span class="n">Name</span><span class="p">,</span> <span class="n">ClangTidyContext</span> <span class="o">*</span><span class="n">Context</span><span class="p">)</span>
+    <span class="o">:</span> <span class="n">ClangTidyCheck</span><span class="p">(</span><span class="n">Name</span><span class="p">,</span> <span class="n">Context</span><span class="p">),</span>
+      <span class="n">SomeOption</span><span class="p">(</span><span class="n">Options</span><span class="p">.</span><span class="n">get</span><span class="p">(</span><span class="s">"SomeOption1"</span><span class="p">,</span> <span class="o">-</span><span class="mi">1U</span><span class="p">)),</span>
+      <span class="n">SomeOption</span><span class="p">(</span><span class="n">Options</span><span class="p">.</span><span class="n">get</span><span class="p">(</span><span class="s">"SomeOption2"</span><span class="p">,</span> <span class="s">"some default"</span><span class="p">))</span> <span class="p">{}</span>
+
+  <span class="kt">void</span> <span class="n">storeOptions</span><span class="p">(</span><span class="n">ClangTidyOptions</span><span class="o">::</span><span class="n">OptionMap</span> <span class="o">&</span><span class="n">Opts</span><span class="p">)</span> <span class="k">override</span> <span class="p">{</span>
+    <span class="n">Options</span><span class="p">.</span><span class="n">store</span><span class="p">(</span><span class="n">Opts</span><span class="p">,</span> <span class="s">"SomeOption1"</span><span class="p">,</span> <span class="n">SomeOption1</span><span class="p">);</span>
+    <span class="n">Options</span><span class="p">.</span><span class="n">store</span><span class="p">(</span><span class="n">Opts</span><span class="p">,</span> <span class="s">"SomeOption2"</span><span class="p">,</span> <span class="n">SomeOption2</span><span class="p">);</span>
+  <span class="p">}</span>
+  <span class="p">...</span>
+</pre></div>
+</div>
+<p>Assuming the check is registered with the name “my-check”, the option can then
+be set in a <tt class="docutils literal"><span class="pre">.clang-tidy</span></tt> file in the following way:</p>
+<div class="highlight-yaml"><div class="highlight"><pre><span></span><span class="l l-Scalar l-Scalar-Plain">CheckOptions</span><span class="p p-Indicator">:</span>
+  <span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">key</span><span class="p p-Indicator">:</span> <span class="l l-Scalar l-Scalar-Plain">my-check.SomeOption1</span>
+    <span class="l l-Scalar l-Scalar-Plain">value</span><span class="p p-Indicator">:</span> <span class="l l-Scalar l-Scalar-Plain">123</span>
+  <span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">key</span><span class="p p-Indicator">:</span> <span class="l l-Scalar l-Scalar-Plain">my-check.SomeOption2</span>
+    <span class="l l-Scalar l-Scalar-Plain">value</span><span class="p p-Indicator">:</span> <span class="s">'some</span><span class="nv"> </span><span class="s">other</span><span class="nv"> </span><span class="s">value'</span>
+</pre></div>
+</div>
+<p>If you need to specify check options on a command line, you can use the inline
+YAML format:</p>
+<div class="highlight-console"><div class="highlight"><pre><span></span><span class="gp">$</span> clang-tidy -config<span class="o">=</span><span class="s2">"{CheckOptions: [{key: a, value: b}, {key: x, value: y}]}"</span> ...
+</pre></div>
+</div>
+</div>
+<div class="section" id="testing-checks">
+<h3><a class="toc-backref" href="#id11">Testing Checks</a><a class="headerlink" href="#testing-checks" title="Permalink to this headline">¶</a></h3>
+<p>To run tests for <strong class="program">clang-tidy</strong> use the command:</p>
+<div class="highlight-console"><div class="highlight"><pre><span></span><span class="gp">$</span> ninja check-clang-tools
+</pre></div>
+</div>
+<p><strong class="program">clang-tidy</strong> checks can be tested using either unit tests or
+<a class="reference external" href="http://llvm.org/docs/CommandGuide/lit.html">lit</a> tests. Unit tests may be more convenient to test complex replacements
+with strict checks. <a class="reference external" href="http://llvm.org/docs/CommandGuide/lit.html">Lit</a> tests allow using partial text matching and regular
+expressions which makes them more suitable for writing compact tests for
+diagnostic messages.</p>
+<p>The <tt class="docutils literal"><span class="pre">check_clang_tidy.py</span></tt> script provides an easy way to test both
+diagnostic messages and fix-its. It filters out <tt class="docutils literal"><span class="pre">CHECK</span></tt> lines from the test
+file, runs <strong class="program">clang-tidy</strong> and verifies messages and fixes with two
+separate <a class="reference external" href="http://llvm.org/docs/CommandGuide/FileCheck.html">FileCheck</a> invocations: once with FileCheck’s directive
+prefix set to <tt class="docutils literal"><span class="pre">CHECK-MESSAGES</span></tt>, validating the diagnostic messages,
+and once with the directive prefix set to <tt class="docutils literal"><span class="pre">CHECK-FIXES</span></tt>, running
+against the fixed code (i.e., the code after generated fix-its are
+applied). In particular, <tt class="docutils literal"><span class="pre">CHECK-FIXES:</span></tt> can be used to check
+that code was not modified by fix-its, by checking that it is present
+unchanged in the fixed code. The full set of <a class="reference external" href="http://llvm.org/docs/CommandGuide/FileCheck.html">FileCheck</a> directives
+is available (e.g., <tt class="docutils literal"><span class="pre">CHECK-MESSAGES-SAME:</span></tt>, <tt class="docutils literal"><span class="pre">CHECK-MESSAGES-NOT:</span></tt>), though
+typically the basic <tt class="docutils literal"><span class="pre">CHECK</span></tt> forms (<tt class="docutils literal"><span class="pre">CHECK-MESSAGES</span></tt> and <tt class="docutils literal"><span class="pre">CHECK-FIXES</span></tt>)
+are sufficient for clang-tidy tests. Note that the <a class="reference external" href="http://llvm.org/docs/CommandGuide/FileCheck.html">FileCheck</a>
+documentation mostly assumes the default prefix (<tt class="docutils literal"><span class="pre">CHECK</span></tt>), and hence
+describes the directive as <tt class="docutils literal"><span class="pre">CHECK:</span></tt>, <tt class="docutils literal"><span class="pre">CHECK-SAME:</span></tt>, <tt class="docutils literal"><span class="pre">CHECK-NOT:</span></tt>, etc.
+Replace <tt class="docutils literal"><span class="pre">CHECK</span></tt> by either <tt class="docutils literal"><span class="pre">CHECK-FIXES</span></tt> or <tt class="docutils literal"><span class="pre">CHECK-MESSAGES</span></tt> for
+clang-tidy tests.</p>
+<p>An additional check enabled by <tt class="docutils literal"><span class="pre">check_clang_tidy.py</span></tt> ensures that
+if <cite>CHECK-MESSAGES:</cite> is used in a file then every warning or error
+must have an associated CHECK in that file.</p>
+<p>To use the <tt class="docutils literal"><span class="pre">check_clang_tidy.py</span></tt> script, put a .cpp file with the
+appropriate <tt class="docutils literal"><span class="pre">RUN</span></tt> line in the <tt class="docutils literal"><span class="pre">test/clang-tidy</span></tt> directory. Use
+<tt class="docutils literal"><span class="pre">CHECK-MESSAGES:</span></tt> and <tt class="docutils literal"><span class="pre">CHECK-FIXES:</span></tt> lines to write checks against
+diagnostic messages and fixed code.</p>
+<p>It’s advised to make the checks as specific as possible to avoid checks matching
+to incorrect parts of the input. Use <tt class="docutils literal"><span class="pre">[[@LINE+X]]</span></tt>/<tt class="docutils literal"><span class="pre">[[@LINE-X]]</span></tt>
+substitutions and distinct function and variable names in the test code.</p>
+<p>Here’s an example of a test using the <tt class="docutils literal"><span class="pre">check_clang_tidy.py</span></tt> script (the full
+source code is at <a class="reference external" href="http://reviews.llvm.org/diffusion/L/browse/clang-tools-extra/trunk/test/clang-tidy/google-readability-casting.cpp">test/clang-tidy/google-readability-casting.cpp</a>):</p>
+<div class="highlight-c++"><div class="highlight"><pre><span></span><span class="c1">// RUN: %check_clang_tidy %s google-readability-casting %t</span>
+
+<span class="kt">void</span> <span class="nf">f</span><span class="p">(</span><span class="kt">int</span> <span class="n">a</span><span class="p">)</span> <span class="p">{</span>
+  <span class="kt">int</span> <span class="n">b</span> <span class="o">=</span> <span class="p">(</span><span class="kt">int</span><span class="p">)</span><span class="n">a</span><span class="p">;</span>
+  <span class="c1">// CHECK-MESSAGES: :[[@LINE-1]]:11: warning: redundant cast to the same type [google-readability-casting]</span>
+  <span class="c1">// CHECK-FIXES: int b = a;</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<p>There are many dark corners in the C++ language, and it may be difficult to make
+your check work perfectly in all cases, especially if it issues fix-it hints. The
+most frequent pitfalls are macros and templates:</p>
+<ol class="arabic simple">
+<li>code written in a macro body/template definition may have a different meaning
+depending on the macro expansion/template instantiation;</li>
+<li>multiple macro expansions/template instantiations may result in the same code
+being inspected by the check multiple times (possibly, with different
+meanings, see 1), and the same warning (or a slightly different one) may be
+issued by the check multiple times; <strong class="program">clang-tidy</strong> will deduplicate
+_identical_ warnings, but if the warnings are slightly different, all of them
+will be shown to the user (and used for applying fixes, if any);</li>
+<li>making replacements to a macro body/template definition may be fine for some
+macro expansions/template instantiations, but easily break some other
+expansions/instantiations.</li>
+</ol>
+</div>
+<div class="section" id="running-clang-tidy-on-llvm">
+<h3><a class="toc-backref" href="#id12">Running clang-tidy on LLVM</a><a class="headerlink" href="#running-clang-tidy-on-llvm" title="Permalink to this headline">¶</a></h3>
+<p>To test a check it’s best to try it out on a larger code base. LLVM and Clang
+are the natural targets as you already have the source code around. The most
+convenient way to run <strong class="program">clang-tidy</strong> is with a compile command database;
+CMake can automatically generate one, for a description of how to enable it see
+<a class="reference external" href="http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html">How To Setup Tooling For LLVM</a>. Once <tt class="docutils literal"><span class="pre">compile_commands.json</span></tt> is in place and
+a working version of <strong class="program">clang-tidy</strong> is in <tt class="docutils literal"><span class="pre">PATH</span></tt> the entire code base
+can be analyzed with <tt class="docutils literal"><span class="pre">clang-tidy/tool/run-clang-tidy.py</span></tt>. The script executes
+<strong class="program">clang-tidy</strong> with the default set of checks on every translation unit
+in the compile command database and displays the resulting warnings and errors.
+The script provides multiple configuration flags.</p>
+<ul class="simple">
+<li>The default set of checks can be overridden using the <tt class="docutils literal"><span class="pre">-checks</span></tt> argument,
+taking the identical format as <strong class="program">clang-tidy</strong> does. For example
+<tt class="docutils literal"><span class="pre">-checks=-*,modernize-use-override</span></tt> will run the <tt class="docutils literal"><span class="pre">modernize-use-override</span></tt>
+check only.</li>
+<li>To restrict the files examined you can provide one or more regex arguments
+that the file names are matched against.
+<tt class="docutils literal"><span class="pre">run-clang-tidy.py</span> <span class="pre">clang-tidy/.*Check\.cpp</span></tt> will only analyze clang-tidy
+checks. It may also be necessary to restrict the header files warnings are
+displayed from using the <tt class="docutils literal"><span class="pre">-header-filter</span></tt> flag. It has the same behavior
+as the corresponding <strong class="program">clang-tidy</strong> flag.</li>
+<li>To apply suggested fixes <tt class="docutils literal"><span class="pre">-fix</span></tt> can be passed as an argument. This gathers
+all changes in a temporary directory and applies them. Passing <tt class="docutils literal"><span class="pre">-format</span></tt>
+will run clang-format over changed lines.</li>
+</ul>
+</div>
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="../ReleaseNotes.html">Extra Clang Tools 5.0.0 Release Notes</a>
+          ::  
+        <a class="uplink" href="../index.html">Contents</a>
+          ::  
+        <a href="checks/list.html">Clang-Tidy Checks</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clangd.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clangd.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clangd.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/clangd.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,225 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>Clangd — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    './',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/underscore.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="index.html" />
+    <link rel="prev" title="Clang-Rename" href="clang-rename.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>Clangd</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="clang-rename.html">Clang-Rename</a>
+          ::  
+        <a class="uplink" href="index.html">Contents</a>
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="clangd">
+<h1><a class="toc-backref" href="#id2">Clangd</a><a class="headerlink" href="#clangd" title="Permalink to this headline">¶</a></h1>
+<div class="contents topic" id="contents">
+<p class="topic-title first">Contents</p>
+<ul class="simple">
+<li><a class="reference internal" href="#clangd" id="id2">Clangd</a><ul>
+<li><a class="reference internal" href="#using-clangd" id="id3">Using Clangd</a></li>
+<li><a class="reference internal" href="#building-clangd" id="id4">Building Clangd</a></li>
+<li><a class="reference internal" href="#current-status" id="id5">Current Status</a></li>
+<li><a class="reference internal" href="#getting-involved" id="id6">Getting Involved</a></li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="toctree-wrapper compound">
+<ul class="simple">
+</ul>
+</div>
+<p><strong class="program">Clangd</strong> is an implementation of the <a class="reference external" href="https://github.com/Microsoft/language-server-protocol">Language Server Protocol</a> leveraging Clang.
+Clangd’s goal is to provide language “smartness” features like code completion,
+find references, etc. for clients such as C/C++ Editors.</p>
+<div class="section" id="using-clangd">
+<h2><a class="toc-backref" href="#id3">Using Clangd</a><a class="headerlink" href="#using-clangd" title="Permalink to this headline">¶</a></h2>
+<p><strong class="program">Clangd</strong> is not meant to be used by C/C++ developers directly but
+rather from a client implementing the protocol. A client would be typically
+implemented in an IDE or an editor.</p>
+<p>At the moment, <a class="reference external" href="https://code.visualstudio.com/">Visual Studio Code</a> is mainly
+used in order to test <strong class="program">Clangd</strong> but more clients are likely to make
+use of <strong class="program">Clangd</strong> in the future as it matures and becomes a production
+quality tool. If you are interested in trying <strong class="program">Clangd</strong> in combination
+with Visual Studio Code, you can start by <a class="reference internal" href="#building-clangd">building Clangd</a>, then open Visual
+Studio Code in the clangd-vscode folder and launch the extension.</p>
+</div>
+<div class="section" id="building-clangd">
+<h2><a class="toc-backref" href="#id4">Building Clangd</a><a class="headerlink" href="#building-clangd" title="Permalink to this headline">¶</a></h2>
+<p>You can follow the instructions for <a class="reference external" href="https://clang.llvm.org/get_started.html">building Clang</a> but “extra Clang tools” is <strong>not</strong>
+optional.</p>
+</div>
+<div class="section" id="current-status">
+<h2><a class="toc-backref" href="#id5">Current Status</a><a class="headerlink" href="#current-status" title="Permalink to this headline">¶</a></h2>
+<p>Many features could be implemented in <strong class="program">Clangd</strong>.
+Here is a list of features that could be useful with the status of whether or
+not they are already implemented in <strong class="program">Clangd</strong> and specified in the
+Language Server Protocol. Note that for some of the features, it is not clear
+whether or not they should be part of the Language Server Protocol, so those
+features might be eventually developed outside <strong class="program">Clangd</strong>.</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="63%" />
+<col width="20%" />
+<col width="17%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">C/C++ Editor feature</th>
+<th class="head">LSP</th>
+<th class="head">Clangd</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td>Formatting</td>
+<td>Yes</td>
+<td>Yes</td>
+</tr>
+<tr class="row-odd"><td>Completion</td>
+<td>Yes</td>
+<td>Yes</td>
+</tr>
+<tr class="row-even"><td>Diagnostics</td>
+<td>Yes</td>
+<td>Yes</td>
+</tr>
+<tr class="row-odd"><td>Fix-its</td>
+<td>Yes</td>
+<td>Yes</td>
+</tr>
+<tr class="row-even"><td>Go to Definition</td>
+<td>Yes</td>
+<td>Yes</td>
+</tr>
+<tr class="row-odd"><td>Source hover</td>
+<td>Yes</td>
+<td>No</td>
+</tr>
+<tr class="row-even"><td>Signature Help</td>
+<td>Yes</td>
+<td>No</td>
+</tr>
+<tr class="row-odd"><td>Find References</td>
+<td>Yes</td>
+<td>No</td>
+</tr>
+<tr class="row-even"><td>Document Highlights</td>
+<td>Yes</td>
+<td>No</td>
+</tr>
+<tr class="row-odd"><td>Rename</td>
+<td>Yes</td>
+<td>No</td>
+</tr>
+<tr class="row-even"><td>Code Lens</td>
+<td>Yes</td>
+<td>No</td>
+</tr>
+<tr class="row-odd"><td>Syntax and Semantic Coloring</td>
+<td>No</td>
+<td>No</td>
+</tr>
+<tr class="row-even"><td>Code folding</td>
+<td>No</td>
+<td>No</td>
+</tr>
+<tr class="row-odd"><td>Call hierarchy</td>
+<td>No</td>
+<td>No</td>
+</tr>
+<tr class="row-even"><td>Type hierarchy</td>
+<td>No</td>
+<td>No</td>
+</tr>
+<tr class="row-odd"><td>Organize Includes</td>
+<td>No</td>
+<td>No</td>
+</tr>
+<tr class="row-even"><td>Quick Assist</td>
+<td>No</td>
+<td>No</td>
+</tr>
+<tr class="row-odd"><td>Extract Local Variable</td>
+<td>No</td>
+<td>No</td>
+</tr>
+<tr class="row-even"><td>Extract Function/Method</td>
+<td>No</td>
+<td>No</td>
+</tr>
+<tr class="row-odd"><td>Hide Method</td>
+<td>No</td>
+<td>No</td>
+</tr>
+<tr class="row-even"><td>Implement Method</td>
+<td>No</td>
+<td>No</td>
+</tr>
+<tr class="row-odd"><td>Gen. Getters/Setters</td>
+<td>No</td>
+<td>No</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="section" id="getting-involved">
+<h2><a class="toc-backref" href="#id6">Getting Involved</a><a class="headerlink" href="#getting-involved" title="Permalink to this headline">¶</a></h2>
+<p>A good place for interested contributors is the <a class="reference external" href="http://lists.llvm.org/mailman/listinfo/cfe-dev">Clang developer mailing list</a>.
+If you’re also interested in contributing patches to <strong class="program">Clangd</strong>, take a
+look at the <a class="reference external" href="http://llvm.org/docs/DeveloperPolicy.html">LLVM Developer Policy</a> and <a class="reference external" href="http://llvm.org/docs/Phabricator.html">Code Reviews</a> page. Contributions of new features
+to the <a class="reference external" href="https://github.com/Microsoft/language-server-protocol">Language Server Protocol</a> itself would also be
+very useful, so that <strong class="program">Clangd</strong> can eventually implement them in a
+conforming way.</p>
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="clang-rename.html">Clang-Rename</a>
+          ::  
+        <a class="uplink" href="index.html">Contents</a>
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/cpp11-migrate.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/cpp11-migrate.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/cpp11-migrate.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/cpp11-migrate.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,62 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title><no title> — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    './',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/underscore.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="index.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span><no title></span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        <a class="uplink" href="index.html">Contents</a>
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <p>All <strong class="program">clang-modernize</strong> transforms have moved to <a class="reference internal" href="clang-tidy/index.html"><em>Clang-Tidy</em></a>
+(see the <tt class="docutils literal"><span class="pre">modernize</span></tt> module).</p>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        <a class="uplink" href="index.html">Contents</a>
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/genindex.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/genindex.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/genindex.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/genindex.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,1288 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>Index — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    './',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/underscore.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="index.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>Index</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        <a class="uplink" href="index.html">Contents</a>
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+
+<h1 id="index">Index</h1>
+
+<div class="genindex-jumpbox">
+ <a href="#Symbols"><strong>Symbols</strong></a>
+ | <a href="#A"><strong>A</strong></a>
+ | <a href="#B"><strong>B</strong></a>
+ | <a href="#C"><strong>C</strong></a>
+ | <a href="#D"><strong>D</strong></a>
+ | <a href="#G"><strong>G</strong></a>
+ | <a href="#H"><strong>H</strong></a>
+ | <a href="#I"><strong>I</strong></a>
+ | <a href="#L"><strong>L</strong></a>
+ | <a href="#M"><strong>M</strong></a>
+ | <a href="#N"><strong>N</strong></a>
+ | <a href="#P"><strong>P</strong></a>
+ | <a href="#R"><strong>R</strong></a>
+ | <a href="#S"><strong>S</strong></a>
+ | <a href="#T"><strong>T</strong></a>
+ | <a href="#U"><strong>U</strong></a>
+ | <a href="#V"><strong>V</strong></a>
+ | <a href="#W"><strong>W</strong></a>
+ 
+</div>
+<h2 id="Symbols">Symbols</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt>
+    -block-check-header-list-only
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="ModularizeUsage.html#cmdoption-block-check-header-list-only">command line option</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt>
+    -coverage-check-only
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="ModularizeUsage.html#cmdoption-coverage-check-only">command line option</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt>
+    -display-file-lists
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="ModularizeUsage.html#cmdoption-display-file-lists">command line option</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt>
+    -ignore <callback-name-list>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="pp-trace.html#cmdoption-ignore">command line option</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt>
+    -module-map-path=<module-map-path>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="ModularizeUsage.html#cmdoption-module-map-path">command line option</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt>
+    -no-coverage-check
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="ModularizeUsage.html#cmdoption-no-coverage-check">command line option</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt>
+    -output <output-file>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="pp-trace.html#cmdoption-output">command line option</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt>
+    -prefix=<header-path>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="ModularizeUsage.html#cmdoption-prefix">command line option</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt>
+    -problem-files-list=<problem-files-list-file-name>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="ModularizeUsage.html#cmdoption-problem-files-list">command line option</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt>
+    -root-module=<root-name>
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="ModularizeUsage.html#cmdoption-root-module">command line option</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+</tr></table>
+
+<h2 id="A">A</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt>
+    Allocations
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/cppcoreguidelines-no-malloc.html#cmdoption-arg-Allocations">command line option</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt>
+    AllowConditionalIntegerCasts
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/readability-implicit-bool-cast.html#cmdoption-arg-AllowConditionalIntegerCasts">command line option</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt>
+    AllowConditionalPointerCasts
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/readability-implicit-bool-cast.html#cmdoption-arg-AllowConditionalPointerCasts">command line option</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt>
+    AllowMissingMoveFunctions
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/cppcoreguidelines-special-member-functions.html#cmdoption-arg-AllowMissingMoveFunctions">command line option</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt>
+    AllowSoleDefaultDtor
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/cppcoreguidelines-special-member-functions.html#cmdoption-arg-AllowSoleDefaultDtor">command line option</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt>
+    AssertMacros
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/misc-assert-side-effect.html#cmdoption-arg-AssertMacros">command line option</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+</tr></table>
+
+<h2 id="B">B</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt>
+    BranchThreshold
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/readability-function-size.html#cmdoption-arg-BranchThreshold">command line option</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+</tr></table>
+
+<h2 id="C">C</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt>
+    ChainedConditionalAssignment
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/readability-simplify-boolean-expr.html#cmdoption-arg-ChainedConditionalAssignment">command line option</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt>
+    ChainedConditionalReturn
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/readability-simplify-boolean-expr.html#cmdoption-arg-ChainedConditionalReturn">command line option</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt>
+    CheckFunctionCalls
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/misc-assert-side-effect.html#cmdoption-arg-CheckFunctionCalls">command line option</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt>
+    CheckImplicitCasts
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/misc-misplaced-widening-cast.html#cmdoption-arg-CheckImplicitCasts">command line option</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt>
+    CheckThrowTemporaries
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/misc-throw-by-value-catch-by-reference.html#cmdoption-arg-CheckThrowTemporaries">command line option</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt>
+    command line option
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="ModularizeUsage.html#cmdoption-block-check-header-list-only">-block-check-header-list-only</a>
+  </dt>
+
+        
+  <dt><a href="ModularizeUsage.html#cmdoption-coverage-check-only">-coverage-check-only</a>
+  </dt>
+
+        
+  <dt><a href="ModularizeUsage.html#cmdoption-display-file-lists">-display-file-lists</a>
+  </dt>
+
+        
+  <dt><a href="pp-trace.html#cmdoption-ignore">-ignore <callback-name-list></a>
+  </dt>
+
+        
+  <dt><a href="ModularizeUsage.html#cmdoption-module-map-path">-module-map-path=<module-map-path></a>
+  </dt>
+
+        
+  <dt><a href="ModularizeUsage.html#cmdoption-no-coverage-check">-no-coverage-check</a>
+  </dt>
+
+        
+  <dt><a href="pp-trace.html#cmdoption-output">-output <output-file></a>
+  </dt>
+
+        
+  <dt><a href="ModularizeUsage.html#cmdoption-prefix">-prefix=<header-path></a>
+  </dt>
+
+        
+  <dt><a href="ModularizeUsage.html#cmdoption-problem-files-list">-problem-files-list=<problem-files-list-file-name></a>
+  </dt>
+
+        
+  <dt><a href="ModularizeUsage.html#cmdoption-root-module">-root-module=<root-name></a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/cppcoreguidelines-no-malloc.html#cmdoption-arg-Allocations">Allocations</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/readability-implicit-bool-cast.html#cmdoption-arg-AllowConditionalIntegerCasts">AllowConditionalIntegerCasts</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/readability-implicit-bool-cast.html#cmdoption-arg-AllowConditionalPointerCasts">AllowConditionalPointerCasts</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/cppcoreguidelines-special-member-functions.html#cmdoption-arg-AllowMissingMoveFunctions">AllowMissingMoveFunctions</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/cppcoreguidelines-special-member-functions.html#cmdoption-arg-AllowSoleDefaultDtor">AllowSoleDefaultDtor</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/misc-assert-side-effect.html#cmdoption-arg-AssertMacros">AssertMacros</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/readability-function-size.html#cmdoption-arg-BranchThreshold">BranchThreshold</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/readability-simplify-boolean-expr.html#cmdoption-arg-ChainedConditionalAssignment">ChainedConditionalAssignment</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/readability-simplify-boolean-expr.html#cmdoption-arg-ChainedConditionalReturn">ChainedConditionalReturn</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/misc-assert-side-effect.html#cmdoption-arg-CheckFunctionCalls">CheckFunctionCalls</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/misc-misplaced-widening-cast.html#cmdoption-arg-CheckImplicitCasts">CheckImplicitCasts</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/misc-throw-by-value-catch-by-reference.html#cmdoption-arg-CheckThrowTemporaries">CheckThrowTemporaries</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/modernize-use-emplace.html#cmdoption-arg-ContainersWithPushBack">ContainersWithPushBack</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/cppcoreguidelines-no-malloc.html#cmdoption-arg-Deallocations">Deallocations</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/cppcoreguidelines-pro-bounds-constant-array-index.html#cmdoption-arg-GslHeader">GslHeader</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/misc-dangling-handle.html#cmdoption-arg-HandleClasses">HandleClasses</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/google-global-names-in-headers.html#cmdoption-arg-HeaderFileExtensions">HeaderFileExtensions</a>, <a href="clang-tidy/checks/misc-definitions-in-headers.html#cmdoption-arg-HeaderFileExtensions">[1]</a>, <a href="clang-tidy/checks/llvm-header-guard.html#cmdoption-arg-HeaderFileExtensions">[2]</a>, <a href="clang-tidy/checks/google-build-namespaces.html#cmdoption-arg-HeaderFileExtensions">[3]</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/cppcoreguidelines-pro-type-member-init.html#cmdoption-arg-IgnoreArrays">IgnoreArrays</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/modernize-use-default-member-init.html#cmdoption-arg-IgnoreMacros">IgnoreMacros</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/modernize-replace-auto-ptr.html#cmdoption-arg-IncludeStyle">IncludeStyle</a>, <a href="clang-tidy/checks/modernize-make-shared.html#cmdoption-arg-IncludeStyle">[1]</a>, <a href="clang-tidy/checks/modernize-make-unique.html#cmdoption-arg-IncludeStyle">[2]</a>, <a href="clang-tidy/checks/cppcoreguidelines-pro-bounds-constant-array-index.html#cmdoption-arg-IncludeStyle">[3]</a>, <a href="clang-tidy/checks/modernize-pass-by-value.html#cmdoption-arg-IncludeStyle">[4]</a>, <a href="clang-tidy/checks/performance-unnecessary-value-param.html#cmdoption-arg-IncludeStyle">[5]</a>, <a href="clang-tidy/checks/misc-move-constructor-init.html#cmdoption-arg-IncludeStyle">[6]</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/misc-string-constructor.html#cmdoption-arg-LargeLengthThreshold">LargeLengthThreshold</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/readability-function-size.html#cmdoption-arg-LineThreshold">LineThreshold</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/modernize-make-shared.html#cmdoption-arg-MakeSmartPtrFunction">MakeSmartPtrFunction</a>, <a href="clang-tidy/checks/modernize-make-unique.html#cmdoption-arg-MakeSmartPtrFunction">[1]</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/modernize-make-shared.html#cmdoption-arg-MakeSmartPtrFunctionHeader">MakeSmartPtrFunctionHeader</a>, <a href="clang-tidy/checks/modernize-make-unique.html#cmdoption-arg-MakeSmartPtrFunctionHeader">[1]</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/misc-suspicious-missing-comma.html#cmdoption-arg-MaxConcatenatedTokens">MaxConcatenatedTokens</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/readability-function-size.html#cmdoption-arg-NestingThreshold">NestingThreshold</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/modernize-use-nullptr.html#cmdoption-arg-NullMacros">NullMacros</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/readability-function-size.html#cmdoption-arg-ParameterThreshold">ParameterThreshold</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/misc-suspicious-missing-comma.html#cmdoption-arg-RatioThreshold">RatioThreshold</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/cppcoreguidelines-no-malloc.html#cmdoption-arg-Reallocations">Reallocations</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/modernize-use-auto.html#cmdoption-arg-RemoveStars">RemoveStars</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/modernize-use-noexcept.html#cmdoption-arg-ReplacementString">ReplacementString</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/modernize-use-transparent-functors.html#cmdoption-arg-SafeMode">SafeMode</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/llvm-namespace-comment.html#cmdoption-arg-ShortNamespaceLines">ShortNamespaceLines</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/readability-braces-around-statements.html#cmdoption-arg-ShortStatementLines">ShortStatementLines</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/google-runtime-int.html#cmdoption-arg-SignedTypePrefix">SignedTypePrefix</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/misc-suspicious-missing-comma.html#cmdoption-arg-SizeThreshold">SizeThreshold</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/modernize-use-emplace.html#cmdoption-arg-SmartPointers">SmartPointers</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/llvm-namespace-comment.html#cmdoption-arg-SpacesBeforeComments">SpacesBeforeComments</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/readability-function-size.html#cmdoption-arg-StatementThreshold">StatementThreshold</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/misc-suspicious-enum-usage.html#cmdoption-arg-StrictMode">StrictMode</a>, <a href="clang-tidy/checks/misc-argument-comment.html#cmdoption-arg-StrictMode">[1]</a>, <a href="clang-tidy/checks/performance-inefficient-string-concatenation.html#cmdoption-arg-StrictMode">[2]</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/misc-suspicious-string-compare.html#cmdoption-arg-StringCompareLikeFunctions">StringCompareLikeFunctions</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/performance-faster-string-find.html#cmdoption-arg-StringLikeClasses">StringLikeClasses</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/modernize-use-emplace.html#cmdoption-arg-TupleMakeFunctions">TupleMakeFunctions</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/modernize-use-emplace.html#cmdoption-arg-TupleTypes">TupleTypes</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/google-runtime-int.html#cmdoption-arg-TypeSuffix">TypeSuffix</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/google-runtime-int.html#cmdoption-arg-UnsignedTypePrefix">UnsignedTypePrefix</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/modernize-use-default-member-init.html#cmdoption-arg-UseAssignment">UseAssignment</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/misc-definitions-in-headers.html#cmdoption-arg-UseHeaderFileExtension">UseHeaderFileExtension</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/modernize-use-noexcept.html#cmdoption-arg-UseNoexceptFalse">UseNoexceptFalse</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/modernize-pass-by-value.html#cmdoption-arg-ValuesOnly">ValuesOnly</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/performance-inefficient-vector-operation.html#cmdoption-arg-VectorLikeClasses">VectorLikeClasses</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/performance-for-range-copy.html#cmdoption-arg-WarnOnAllAutoCopies">WarnOnAllAutoCopies</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/misc-suspicious-string-compare.html#cmdoption-arg-WarnOnImplicitComparison">WarnOnImplicitComparison</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/misc-string-constructor.html#cmdoption-arg-WarnOnLargeLength">WarnOnLargeLength</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/misc-suspicious-string-compare.html#cmdoption-arg-WarnOnLogicalNotComparison">WarnOnLogicalNotComparison</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/misc-sizeof-expression.html#cmdoption-arg-WarnOnSizeOfCompareToConstant">WarnOnSizeOfCompareToConstant</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/misc-sizeof-expression.html#cmdoption-arg-WarnOnSizeOfConstant">WarnOnSizeOfConstant</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/misc-sizeof-expression.html#cmdoption-arg-WarnOnSizeOfThis">WarnOnSizeOfThis</a>
+  </dt>
+
+        
+  <dt><a href="clang-tidy/checks/google-runtime-references.html#cmdoption-arg-WhiteListTypes">WhiteListTypes</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt>
+    ContainersWithPushBack
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/modernize-use-emplace.html#cmdoption-arg-ContainersWithPushBack">command line option</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+</tr></table>
+
+<h2 id="D">D</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt>
+    Deallocations
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/cppcoreguidelines-no-malloc.html#cmdoption-arg-Deallocations">command line option</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+</tr></table>
+
+<h2 id="G">G</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt>
+    GslHeader
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/cppcoreguidelines-pro-bounds-constant-array-index.html#cmdoption-arg-GslHeader">command line option</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+</tr></table>
+
+<h2 id="H">H</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt>
+    HandleClasses
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/misc-dangling-handle.html#cmdoption-arg-HandleClasses">command line option</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt>
+    HeaderFileExtensions
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/google-global-names-in-headers.html#cmdoption-arg-HeaderFileExtensions">command line option</a>, <a href="clang-tidy/checks/misc-definitions-in-headers.html#cmdoption-arg-HeaderFileExtensions">[1]</a>, <a href="clang-tidy/checks/llvm-header-guard.html#cmdoption-arg-HeaderFileExtensions">[2]</a>, <a href="clang-tidy/checks/google-build-namespaces.html#cmdoption-arg-HeaderFileExtensions">[3]</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+</tr></table>
+
+<h2 id="I">I</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt>
+    IgnoreArrays
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/cppcoreguidelines-pro-type-member-init.html#cmdoption-arg-IgnoreArrays">command line option</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt>
+    IgnoreMacros
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/modernize-use-default-member-init.html#cmdoption-arg-IgnoreMacros">command line option</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt>
+    IncludeStyle
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/modernize-replace-auto-ptr.html#cmdoption-arg-IncludeStyle">command line option</a>, <a href="clang-tidy/checks/modernize-make-shared.html#cmdoption-arg-IncludeStyle">[1]</a>, <a href="clang-tidy/checks/modernize-make-unique.html#cmdoption-arg-IncludeStyle">[2]</a>, <a href="clang-tidy/checks/cppcoreguidelines-pro-bounds-constant-array-index.html#cmdoption-arg-IncludeStyle">[3]</a>, <a href="clang-tidy/checks/modernize-pass-by-value.html#cmdoption-arg-IncludeStyle">[4]</a>, <a href="clang-tidy/checks/performance-unnecessary-value-param.html#cmdoption-arg-IncludeStyle">[5]</a>, <a href="clang-tidy/checks/misc-move-constructor-init.html#cmdoption-arg-IncludeStyle">[6]</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+</tr></table>
+
+<h2 id="L">L</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt>
+    LargeLengthThreshold
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/misc-string-constructor.html#cmdoption-arg-LargeLengthThreshold">command line option</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt>
+    LineThreshold
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/readability-function-size.html#cmdoption-arg-LineThreshold">command line option</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+</tr></table>
+
+<h2 id="M">M</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt>
+    MakeSmartPtrFunction
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/modernize-make-shared.html#cmdoption-arg-MakeSmartPtrFunction">command line option</a>, <a href="clang-tidy/checks/modernize-make-unique.html#cmdoption-arg-MakeSmartPtrFunction">[1]</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt>
+    MakeSmartPtrFunctionHeader
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/modernize-make-shared.html#cmdoption-arg-MakeSmartPtrFunctionHeader">command line option</a>, <a href="clang-tidy/checks/modernize-make-unique.html#cmdoption-arg-MakeSmartPtrFunctionHeader">[1]</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt>
+    MaxConcatenatedTokens
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/misc-suspicious-missing-comma.html#cmdoption-arg-MaxConcatenatedTokens">command line option</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt><a href="modularize.html#index-0">modularize</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="N">N</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt>
+    NestingThreshold
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/readability-function-size.html#cmdoption-arg-NestingThreshold">command line option</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt>
+    NullMacros
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/modernize-use-nullptr.html#cmdoption-arg-NullMacros">command line option</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+</tr></table>
+
+<h2 id="P">P</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt>
+    ParameterThreshold
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/readability-function-size.html#cmdoption-arg-ParameterThreshold">command line option</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt><a href="pp-trace.html#index-0">pp-trace</a>
+  </dt>
+
+  </dl></td>
+</tr></table>
+
+<h2 id="R">R</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt>
+    RatioThreshold
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/misc-suspicious-missing-comma.html#cmdoption-arg-RatioThreshold">command line option</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt>
+    Reallocations
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/cppcoreguidelines-no-malloc.html#cmdoption-arg-Reallocations">command line option</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt>
+    RemoveStars
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/modernize-use-auto.html#cmdoption-arg-RemoveStars">command line option</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt>
+    ReplacementString
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/modernize-use-noexcept.html#cmdoption-arg-ReplacementString">command line option</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+</tr></table>
+
+<h2 id="S">S</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt>
+    SafeMode
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/modernize-use-transparent-functors.html#cmdoption-arg-SafeMode">command line option</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt>
+    ShortNamespaceLines
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/llvm-namespace-comment.html#cmdoption-arg-ShortNamespaceLines">command line option</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt>
+    ShortStatementLines
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/readability-braces-around-statements.html#cmdoption-arg-ShortStatementLines">command line option</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt>
+    SignedTypePrefix
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/google-runtime-int.html#cmdoption-arg-SignedTypePrefix">command line option</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt>
+    SizeThreshold
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/misc-suspicious-missing-comma.html#cmdoption-arg-SizeThreshold">command line option</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt>
+    SmartPointers
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/modernize-use-emplace.html#cmdoption-arg-SmartPointers">command line option</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt>
+    SpacesBeforeComments
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/llvm-namespace-comment.html#cmdoption-arg-SpacesBeforeComments">command line option</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt>
+    StatementThreshold
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/readability-function-size.html#cmdoption-arg-StatementThreshold">command line option</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt>
+    StrictMode
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/misc-suspicious-enum-usage.html#cmdoption-arg-StrictMode">command line option</a>, <a href="clang-tidy/checks/misc-argument-comment.html#cmdoption-arg-StrictMode">[1]</a>, <a href="clang-tidy/checks/performance-inefficient-string-concatenation.html#cmdoption-arg-StrictMode">[2]</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt>
+    StringCompareLikeFunctions
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/misc-suspicious-string-compare.html#cmdoption-arg-StringCompareLikeFunctions">command line option</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt>
+    StringLikeClasses
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/performance-faster-string-find.html#cmdoption-arg-StringLikeClasses">command line option</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+</tr></table>
+
+<h2 id="T">T</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt>
+    TupleMakeFunctions
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/modernize-use-emplace.html#cmdoption-arg-TupleMakeFunctions">command line option</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt>
+    TupleTypes
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/modernize-use-emplace.html#cmdoption-arg-TupleTypes">command line option</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt>
+    TypeSuffix
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/google-runtime-int.html#cmdoption-arg-TypeSuffix">command line option</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+</tr></table>
+
+<h2 id="U">U</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt>
+    UnsignedTypePrefix
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/google-runtime-int.html#cmdoption-arg-UnsignedTypePrefix">command line option</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt>
+    UseAssignment
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/modernize-use-default-member-init.html#cmdoption-arg-UseAssignment">command line option</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt>
+    UseHeaderFileExtension
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/misc-definitions-in-headers.html#cmdoption-arg-UseHeaderFileExtension">command line option</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt>
+    UseNoexceptFalse
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/modernize-use-noexcept.html#cmdoption-arg-UseNoexceptFalse">command line option</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+</tr></table>
+
+<h2 id="V">V</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt>
+    ValuesOnly
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/modernize-pass-by-value.html#cmdoption-arg-ValuesOnly">command line option</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt>
+    VectorLikeClasses
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/performance-inefficient-vector-operation.html#cmdoption-arg-VectorLikeClasses">command line option</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+</tr></table>
+
+<h2 id="W">W</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt>
+    WarnOnAllAutoCopies
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/performance-for-range-copy.html#cmdoption-arg-WarnOnAllAutoCopies">command line option</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt>
+    WarnOnImplicitComparison
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/misc-suspicious-string-compare.html#cmdoption-arg-WarnOnImplicitComparison">command line option</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt>
+    WarnOnLargeLength
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/misc-string-constructor.html#cmdoption-arg-WarnOnLargeLength">command line option</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt>
+    WarnOnLogicalNotComparison
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/misc-suspicious-string-compare.html#cmdoption-arg-WarnOnLogicalNotComparison">command line option</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+  <td style="width: 33%" valign="top"><dl>
+      
+  <dt>
+    WarnOnSizeOfCompareToConstant
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/misc-sizeof-expression.html#cmdoption-arg-WarnOnSizeOfCompareToConstant">command line option</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt>
+    WarnOnSizeOfConstant
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/misc-sizeof-expression.html#cmdoption-arg-WarnOnSizeOfConstant">command line option</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt>
+    WarnOnSizeOfThis
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/misc-sizeof-expression.html#cmdoption-arg-WarnOnSizeOfThis">command line option</a>
+  </dt>
+
+      </dl></dd>
+      
+  <dt>
+    WhiteListTypes
+  </dt>
+
+      <dd><dl>
+        
+  <dt><a href="clang-tidy/checks/google-runtime-references.html#cmdoption-arg-WhiteListTypes">command line option</a>
+  </dt>
+
+      </dl></dd>
+  </dl></td>
+</tr></table>
+
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        <a class="uplink" href="index.html">Contents</a>
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/include-fixer.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/include-fixer.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/include-fixer.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/include-fixer.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,216 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>Clang-Include-Fixer — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    './',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/underscore.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="index.html" />
+    <link rel="next" title="Modularize User’s Manual" href="modularize.html" />
+    <link rel="prev" title="readability-uniqueptr-delete-release" href="clang-tidy/checks/readability-uniqueptr-delete-release.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>Clang-Include-Fixer</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="clang-tidy/checks/readability-uniqueptr-delete-release.html">readability-uniqueptr-delete-release</a>
+          ::  
+        <a class="uplink" href="index.html">Contents</a>
+          ::  
+        <a href="modularize.html">Modularize User’s Manual</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="clang-include-fixer">
+<h1><a class="toc-backref" href="#id1">Clang-Include-Fixer</a><a class="headerlink" href="#clang-include-fixer" title="Permalink to this headline">¶</a></h1>
+<div class="contents topic" id="contents">
+<p class="topic-title first">Contents</p>
+<ul class="simple">
+<li><a class="reference internal" href="#clang-include-fixer" id="id1">Clang-Include-Fixer</a><ul>
+<li><a class="reference internal" href="#setup" id="id2">Setup</a><ul>
+<li><a class="reference internal" href="#creating-a-symbol-index-from-a-compilation-database" id="id3">Creating a Symbol Index From a Compilation Database</a></li>
+<li><a class="reference internal" href="#integrate-with-vim" id="id4">Integrate with Vim</a></li>
+<li><a class="reference internal" href="#integrate-with-emacs" id="id5">Integrate with Emacs</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#how-it-works" id="id6">How it Works</a></li>
+</ul>
+</li>
+</ul>
+</div>
+<p>One of the major nuisances of C++ compared to other languages is the manual
+management of <tt class="docutils literal"><span class="pre">#include</span></tt> directives in any file.
+<strong class="program">clang-include-fixer</strong> addresses one aspect of this problem by providing
+an automated way of adding <tt class="docutils literal"><span class="pre">#include</span></tt> directives for missing symbols in one
+translation unit.</p>
+<p>While inserting missing <tt class="docutils literal"><span class="pre">#include</span></tt>, <strong class="program">clang-include-fixer</strong> adds
+missing namespace qualifiers to all instances of an unidentified symbol if
+the symbol is missing some prefix namespace qualifiers.</p>
+<div class="section" id="setup">
+<h2><a class="toc-backref" href="#id2">Setup</a><a class="headerlink" href="#setup" title="Permalink to this headline">¶</a></h2>
+<p>To use <strong class="program">clang-include-fixer</strong> two databases are required. Both can be
+generated with existing tools.</p>
+<ul class="simple">
+<li>Compilation database. Contains the compiler commands for any given file in a
+project and can be generated by CMake, see <a class="reference external" href="http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html">How To Setup Tooling For LLVM</a>.</li>
+<li>Symbol index. Contains all symbol information in a project to match a given
+identifier to a header file.</li>
+</ul>
+<p>Ideally both databases (<tt class="docutils literal"><span class="pre">compile_commands.json</span></tt> and
+<tt class="docutils literal"><span class="pre">find_all_symbols_db.yaml</span></tt>) are linked into the root of the source tree they
+correspond to. Then the <strong class="program">clang-include-fixer</strong> can automatically pick
+them up if called with a source file from that tree. Note that by default
+<tt class="docutils literal"><span class="pre">compile_commands.json</span></tt> as generated by CMake does not include header files,
+so only implementation files can be handled by tools.</p>
+<div class="section" id="creating-a-symbol-index-from-a-compilation-database">
+<h3><a class="toc-backref" href="#id3">Creating a Symbol Index From a Compilation Database</a><a class="headerlink" href="#creating-a-symbol-index-from-a-compilation-database" title="Permalink to this headline">¶</a></h3>
+<p>The include fixer contains <strong class="program">find-all-symbols</strong>, a tool to create a
+symbol database in YAML format from a compilation database by parsing all
+source files listed in it. The following list of commands shows how to set up a
+database for LLVM, any project built by CMake should follow similar steps.</p>
+<div class="highlight-console"><div class="highlight"><pre><span></span><span class="gp">$</span> <span class="nb">cd</span> path/to/llvm-build
+<span class="gp">$</span> ninja find-all-symbols // build find-all-symbols tool.
+<span class="gp">$</span> ninja clang-include-fixer // build clang-include-fixer tool.
+<span class="gp">$</span> ls compile_commands.json <span class="c1"># Make sure compile_commands.json exists.</span>
+<span class="go">  compile_commands.json</span>
+<span class="gp">$</span> path/to/llvm/source/tools/clang/tools/extra/include-fixer/find-all-symbols/tool/run-find-all-symbols.py
+<span class="go">  ... wait as clang indexes the code base ...</span>
+<span class="gp">$</span> ln -s <span class="nv">$PWD</span>/find_all_symbols_db.yaml path/to/llvm/source/ <span class="c1"># Link database into the source tree.</span>
+<span class="gp">$</span> ln -s <span class="nv">$PWD</span>/compile_commands.json path/to/llvm/source/ <span class="c1"># Also link compilation database if it's not there already.</span>
+<span class="gp">$</span> <span class="nb">cd</span> path/to/llvm/source
+<span class="gp">$</span> /path/to/clang-include-fixer -db<span class="o">=</span>yaml path/to/file/with/missing/include.cpp
+<span class="go">  Added #include "foo.h"</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="integrate-with-vim">
+<h3><a class="toc-backref" href="#id4">Integrate with Vim</a><a class="headerlink" href="#integrate-with-vim" title="Permalink to this headline">¶</a></h3>
+<p>To run <cite>clang-include-fixer</cite> on a potentially unsaved buffer in Vim. Add the
+following key binding to your <tt class="docutils literal"><span class="pre">.vimrc</span></tt>:</p>
+<div class="highlight-console"><div class="highlight"><pre><span></span><span class="go">noremap <leader>cf :pyf path/to/llvm/source/tools/clang/tools/extra/include-fixer/tool/clang-include-fixer.py<cr></span>
+</pre></div>
+</div>
+<p>This enables <cite>clang-include-fixer</cite> for NORMAL and VISUAL mode. Change
+<cite><leader>cf</cite> to another binding if you need clang-include-fixer on a different
+key. The <a class="reference external" href="http://vim.wikia.com/wiki/Mapping_keys_in_Vim_-_Tutorial_(Part_3)#Map_leader"><leader> key</a>
+is a reference to a specific key defined by the mapleader variable and is bound
+to backslash by default.</p>
+<p>Make sure vim can find <strong class="program">clang-include-fixer</strong>:</p>
+<ul class="simple">
+<li>Add the path to <strong class="program">clang-include-fixer</strong> to the PATH environment variable.</li>
+<li>Or set <tt class="docutils literal"><span class="pre">g:clang_include_fixer_path</span></tt> in vimrc: <tt class="docutils literal"><span class="pre">let</span> <span class="pre">g:clang_include_fixer_path=path/to/clang-include-fixer</span></tt></li>
+</ul>
+<p>You can customize the number of headers being shown by setting
+<tt class="docutils literal"><span class="pre">let</span> <span class="pre">g:clang_include_fixer_maximum_suggested_headers=5</span></tt></p>
+<p>Customized settings in <cite>.vimrc</cite>:</p>
+<ul>
+<li><p class="first"><tt class="docutils literal"><span class="pre">let</span> <span class="pre">g:clang_include_fixer_path</span> <span class="pre">=</span> <span class="pre">"clang-include-fixer"</span></tt></p>
+<p>Set clang-include-fixer binary file path.</p>
+</li>
+<li><p class="first"><tt class="docutils literal"><span class="pre">let</span> <span class="pre">g:clang_include_fixer_maximum_suggested_headers</span> <span class="pre">=</span> <span class="pre">3</span></tt></p>
+<p>Set the maximum number of <tt class="docutils literal"><span class="pre">#includes</span></tt> to show. Default is 3.</p>
+</li>
+<li><p class="first"><tt class="docutils literal"><span class="pre">let</span> <span class="pre">g:clang_include_fixer_increment_num</span> <span class="pre">=</span> <span class="pre">5</span></tt></p>
+<p>Set the increment number of #includes to show every time when pressing <tt class="docutils literal"><span class="pre">m</span></tt>.
+Default is 5.</p>
+</li>
+<li><p class="first"><tt class="docutils literal"><span class="pre">let</span> <span class="pre">g:clang_include_fixer_jump_to_include</span> <span class="pre">=</span> <span class="pre">0</span></tt></p>
+<p>Set to 1 if you want to jump to the new inserted <tt class="docutils literal"><span class="pre">#include</span></tt> line. Default is
+0.</p>
+</li>
+<li><p class="first"><tt class="docutils literal"><span class="pre">let</span> <span class="pre">g:clang_include_fixer_query_mode</span> <span class="pre">=</span> <span class="pre">0</span></tt></p>
+<p>Set to 1 if you want to insert <tt class="docutils literal"><span class="pre">#include</span></tt> for the symbol under the cursor.
+Default is 0. Compared to normal mode, this mode won’t parse the source file
+and only search the sysmbol from database, which is faster than normal mode.</p>
+</li>
+</ul>
+<p>See <tt class="docutils literal"><span class="pre">clang-include-fixer.py</span></tt> for more details.</p>
+</div>
+<div class="section" id="integrate-with-emacs">
+<h3><a class="toc-backref" href="#id5">Integrate with Emacs</a><a class="headerlink" href="#integrate-with-emacs" title="Permalink to this headline">¶</a></h3>
+<p>To run <cite>clang-include-fixer</cite> on a potentially unsaved buffer in Emacs.
+Ensure that Emacs finds <tt class="docutils literal"><span class="pre">clang-include-fixer.el</span></tt> by adding the directory
+containing the file to the <tt class="docutils literal"><span class="pre">load-path</span></tt> and requiring the <cite>clang-include-fixer</cite>
+in your <tt class="docutils literal"><span class="pre">.emacs</span></tt>:</p>
+<div class="highlight-console"><div class="highlight"><pre><span></span><span class="go">(add-to-list 'load-path "path/to/llvm/source/tools/clang/tools/extra/include-fixer/tool/"</span>
+<span class="go">(require 'clang-include-fixer)</span>
+</pre></div>
+</div>
+<p>Within Emacs the tool can be invoked with the command
+<tt class="docutils literal"><span class="pre">M-x</span> <span class="pre">clang-include-fixer</span></tt>. This will insert the header that defines the
+first undefined symbol; if there is more than one header that would define the
+symbol, the user is prompted to select one.</p>
+<p>To include the header that defines the symbol at point, run
+<tt class="docutils literal"><span class="pre">M-x</span> <span class="pre">clang-include-fixer-at-point</span></tt>.</p>
+<p>Make sure Emacs can find <strong class="program">clang-include-fixer</strong>:</p>
+<ul class="simple">
+<li>Either add the parent directory of <strong class="program">clang-include-fixer</strong> to the PATH
+environment variable, or customize the Emacs user option
+<tt class="docutils literal"><span class="pre">clang-include-fixer-executable</span></tt> to point to the file name of the program.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="how-it-works">
+<h2><a class="toc-backref" href="#id6">How it Works</a><a class="headerlink" href="#how-it-works" title="Permalink to this headline">¶</a></h2>
+<p>To get the most information out of Clang at parse time,
+<strong class="program">clang-include-fixer</strong> runs in tandem with the parse and receives
+callbacks from Clang’s semantic analysis. In particular it reuses the existing
+support for typo corrections. Whenever Clang tries to correct a potential typo
+it emits a callback to the include fixer which then looks for a corresponding
+file. At this point rich lookup information is still available, which is not
+available in the AST at a later stage.</p>
+<p>The identifier that should be typo corrected is then sent to the database, if a
+header file is returned it is added as an include directive at the top of the
+file.</p>
+<p>Currently <strong class="program">clang-include-fixer</strong> only inserts a single include at a
+time to avoid getting caught in follow-up errors. If multiple <cite>#include</cite>
+additions are desired the program can be rerun until a fix-point is reached.</p>
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="clang-tidy/checks/readability-uniqueptr-delete-release.html">readability-uniqueptr-delete-release</a>
+          ::  
+        <a class="uplink" href="index.html">Contents</a>
+          ::  
+        <a href="modularize.html">Modularize User’s Manual</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/index.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/index.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/index.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/index.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,126 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>Welcome to Extra Clang Tools’s documentation! — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    './',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/underscore.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="#" />
+    <link rel="next" title="Extra Clang Tools 5.0.0 Release Notes" href="ReleaseNotes.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="#">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>Welcome to Extra Clang Tools’s documentation!</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        <a class="uplink" href="#">Contents</a>
+          ::  
+        <a href="ReleaseNotes.html">Extra Clang Tools 5.0.0 Release Notes</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="introduction">
+<h1>Introduction<a class="headerlink" href="#introduction" title="Permalink to this headline">¶</a></h1>
+<p>Welcome to the clang-tools-extra project which contains extra tools built using
+Clang’s tooling API’s.</p>
+<div class="toctree-wrapper compound">
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="ReleaseNotes.html">Extra Clang Tools 5.0.0 Release Notes</a></li>
+</ul>
+</div>
+</div>
+<div class="section" id="contents">
+<h1>Contents<a class="headerlink" href="#contents" title="Permalink to this headline">¶</a></h1>
+<div class="toctree-wrapper compound">
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="clang-tidy/index.html">Clang-Tidy</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="clang-tidy/checks/list.html">The list of clang-tidy checks</a></li>
+<li class="toctree-l2"><a class="reference internal" href="clang-tidy/index.html#using-clang-tidy">Using clang-tidy</a></li>
+<li class="toctree-l2"><a class="reference internal" href="clang-tidy/index.html#getting-involved">Getting Involved</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="include-fixer.html">Clang-Include-Fixer</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="include-fixer.html#setup">Setup</a></li>
+<li class="toctree-l2"><a class="reference internal" href="include-fixer.html#how-it-works">How it Works</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="modularize.html">Modularize User’s Manual</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="modularize.html#getting-started">Getting Started</a></li>
+<li class="toctree-l2"><a class="reference internal" href="modularize.html#what-modularize-checks">What Modularize Checks</a></li>
+<li class="toctree-l2"><a class="reference internal" href="modularize.html#module-map-coverage-check">Module Map Coverage Check</a></li>
+<li class="toctree-l2"><a class="reference internal" href="modularize.html#module-map-generation">Module Map Generation</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="pp-trace.html">pp-trace User’s Manual</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="pp-trace.html#pp-trace-usage">pp-trace Usage</a></li>
+<li class="toctree-l2"><a class="reference internal" href="pp-trace.html#pp-trace-output-format">pp-trace Output Format</a></li>
+<li class="toctree-l2"><a class="reference internal" href="pp-trace.html#building-pp-trace">Building pp-trace</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="clang-rename.html">Clang-Rename</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="clang-rename.html#using-clang-rename">Using Clang-Rename</a></li>
+<li class="toctree-l2"><a class="reference internal" href="clang-rename.html#vim-integration">Vim Integration</a></li>
+<li class="toctree-l2"><a class="reference internal" href="clang-rename.html#emacs-integration">Emacs Integration</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="clangd.html">Clangd</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="clangd.html#using-clangd">Using Clangd</a></li>
+<li class="toctree-l2"><a class="reference internal" href="clangd.html#building-clangd">Building Clangd</a></li>
+<li class="toctree-l2"><a class="reference internal" href="clangd.html#current-status">Current Status</a></li>
+<li class="toctree-l2"><a class="reference internal" href="clangd.html#getting-involved">Getting Involved</a></li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<div class="section" id="indices-and-tables">
+<h1>Indices and tables<a class="headerlink" href="#indices-and-tables" title="Permalink to this headline">¶</a></h1>
+<ul class="simple">
+<li><a class="reference internal" href="genindex.html"><em>Index</em></a></li>
+<li><a class="reference internal" href="search.html"><em>Search Page</em></a></li>
+</ul>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        <a class="uplink" href="#">Contents</a>
+          ::  
+        <a href="ReleaseNotes.html">Extra Clang Tools 5.0.0 Release Notes</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/modularize.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/modularize.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/modularize.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/modularize.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,309 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>Modularize User’s Manual — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    './',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/underscore.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="index.html" />
+    <link rel="next" title="Modularize Usage" href="ModularizeUsage.html" />
+    <link rel="prev" title="Clang-Include-Fixer" href="include-fixer.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>Modularize User’s Manual</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="include-fixer.html">Clang-Include-Fixer</a>
+          ::  
+        <a class="uplink" href="index.html">Contents</a>
+          ::  
+        <a href="ModularizeUsage.html">Modularize Usage</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="modularize-user-s-manual">
+<span id="index-0"></span><h1>Modularize User’s Manual<a class="headerlink" href="#modularize-user-s-manual" title="Permalink to this headline">¶</a></h1>
+<div class="toctree-wrapper compound">
+</div>
+<p><strong class="program">modularize</strong> is a standalone tool that checks whether a set of headers
+provides the consistent definitions required to use modules. For example, it
+detects whether the same entity (say, a NULL macro or size_t typedef) is
+defined in multiple headers or whether a header produces different definitions
+under different circumstances. These conditions cause modules built from the
+headers to behave poorly, and should be fixed before introducing a module
+map.</p>
+<p><strong class="program">modularize</strong> also has an assistant mode option for generating
+a module map file based on the provided header list. The generated file
+is a functional module map that can be used as a starting point for a
+module.map file.</p>
+<div class="section" id="getting-started">
+<h2>Getting Started<a class="headerlink" href="#getting-started" title="Permalink to this headline">¶</a></h2>
+<p>To build from source:</p>
+<ol class="arabic simple">
+<li>Read <a class="reference external" href="http://llvm.org/docs/GettingStarted.html">Getting Started with the LLVM System</a> and <a class="reference external" href="http://clang.llvm.org/docs/ClangTools.html">Clang Tools
+Documentation</a> for information on getting sources for LLVM, Clang, and
+Clang Extra Tools.</li>
+<li><a class="reference external" href="http://llvm.org/docs/GettingStarted.html">Getting Started with the LLVM System</a> and <a class="reference external" href="http://llvm.org/docs/CMake.html">Building LLVM with CMake</a> give
+directions for how to build. With sources all checked out into the
+right place the LLVM build will build Clang Extra Tools and their
+dependencies automatically.<ul>
+<li>If using CMake, you can also use the <tt class="docutils literal"><span class="pre">modularize</span></tt> target to build
+just the modularize tool and its dependencies.</li>
+</ul>
+</li>
+</ol>
+<p>Before continuing, take a look at <a class="reference internal" href="ModularizeUsage.html"><em>Modularize Usage</em></a> to see how to invoke
+modularize.</p>
+</div>
+<div class="section" id="what-modularize-checks">
+<h2>What Modularize Checks<a class="headerlink" href="#what-modularize-checks" title="Permalink to this headline">¶</a></h2>
+<p>Modularize will check for the following:</p>
+<ul class="simple">
+<li>Duplicate global type and variable definitions</li>
+<li>Duplicate macro definitions</li>
+<li>Macro instances, ‘defined(macro)’, or #if, #elif, #ifdef, #ifndef conditions
+that evaluate differently in a header</li>
+<li>#include directives inside ‘extern “C/C++” {}’ or ‘namespace (name) {}’ blocks</li>
+<li>Module map header coverage completeness (in the case of a module map input
+only)</li>
+</ul>
+<p>Modularize will do normal C/C++ parsing, reporting normal errors and warnings,
+but will also report special error messages like the following:</p>
+<div class="highlight-python"><div class="highlight"><pre><span></span>error: '(symbol)' defined at multiple locations:
+   (file):(row):(column)
+   (file):(row):(column)
+
+error: header '(file)' has different contents depending on how it was included
+</pre></div>
+</div>
+<p>The latter might be followed by messages like the following:</p>
+<div class="highlight-python"><div class="highlight"><pre><span></span>note: '(symbol)' in (file) at (row):(column) not always provided
+</pre></div>
+</div>
+<p>Checks will also be performed for macro expansions, defined(macro)
+expressions, and preprocessor conditional directives that evaluate
+inconsistently, and can produce error messages like the following:</p>
+<div class="highlight-python"><div class="highlight"><pre><span></span> (...)/SubHeader.h:11:5:
+#if SYMBOL == 1
+    ^
+error: Macro instance 'SYMBOL' has different values in this header,
+       depending on how it was included.
+  'SYMBOL' expanded to: '1' with respect to these inclusion paths:
+    (...)/Header1.h
+      (...)/SubHeader.h
+(...)/SubHeader.h:3:9:
+#define SYMBOL 1
+        ^
+Macro defined here.
+  'SYMBOL' expanded to: '2' with respect to these inclusion paths:
+    (...)/Header2.h
+        (...)/SubHeader.h
+(...)/SubHeader.h:7:9:
+#define SYMBOL 2
+        ^
+Macro defined here.
+</pre></div>
+</div>
+<p>Checks will also be performed for ‘#include’ directives that are
+nested inside ‘extern “C/C++” {}’ or ‘namespace (name) {}’ blocks,
+and can produce error message like the following:</p>
+<div class="highlight-python"><div class="highlight"><pre><span></span>IncludeInExtern.h:2:3:
+#include "Empty.h"
+^
+error: Include directive within extern "C" {}.
+IncludeInExtern.h:1:1:
+extern "C" {
+^
+The "extern "C" {}" block is here.
+</pre></div>
+</div>
+</div>
+<div class="section" id="module-map-coverage-check">
+<span id="module-map-coverage"></span><h2>Module Map Coverage Check<a class="headerlink" href="#module-map-coverage-check" title="Permalink to this headline">¶</a></h2>
+<p>The coverage check uses the Clang library to read and parse the
+module map file. Starting at the module map file directory, or just the
+include paths, if specified, it will collect the names of all the files it
+considers headers (no extension, .h, or .inc–if you need more, modify the
+isHeader function). It then compares the headers against those referenced
+in the module map, either explicitly named, or implicitly named via an
+umbrella directory or umbrella file, as parsed by the ModuleMap object.
+If headers are found which are not referenced or covered by an umbrella
+directory or file, warning messages will be produced, and this program
+will return an error code of 1. If no problems are found, an error code of
+0 is returned.</p>
+<p>Note that in the case of umbrella headers, this tool invokes the compiler
+to preprocess the file, and uses a callback to collect the header files
+included by the umbrella header or any of its nested includes. If any
+front end options are needed for these compiler invocations, these
+can be included on the command line after the module map file argument.</p>
+<p>Warning message have the form:</p>
+<blockquote>
+<div>warning: module.modulemap does not account for file: Level3A.h</div></blockquote>
+<p>Note that for the case of the module map referencing a file that does
+not exist, the module map parser in Clang will (at the time of this
+writing) display an error message.</p>
+<p>To limit the checks <strong class="program">modularize</strong> does to just the module
+map coverage check, use the <tt class="docutils literal"><span class="pre">-coverage-check-only</span> <span class="pre">option</span></tt>.</p>
+<p>For example:</p>
+<div class="highlight-python"><div class="highlight"><pre><span></span>modularize -coverage-check-only module.modulemap
+</pre></div>
+</div>
+</div>
+<div class="section" id="module-map-generation">
+<span id="id1"></span><h2>Module Map Generation<a class="headerlink" href="#module-map-generation" title="Permalink to this headline">¶</a></h2>
+<p>If you specify the <tt class="docutils literal"><span class="pre">-module-map-path=<module</span> <span class="pre">map</span> <span class="pre">file></span></tt>,
+<strong class="program">modularize</strong> will output a module map based on the input header list.
+A module will be created for each header. Also, if the header in the header
+list is a partial path, a nested module hierarchy will be created in which a
+module will be created for each subdirectory component in the header path,
+with the header itself represented by the innermost module. If other headers
+use the same subdirectories, they will be enclosed in these same modules also.</p>
+<p>For example, for the header list:</p>
+<div class="highlight-python"><div class="highlight"><pre><span></span><span class="n">SomeTypes</span><span class="o">.</span><span class="n">h</span>
+<span class="n">SomeDecls</span><span class="o">.</span><span class="n">h</span>
+<span class="n">SubModule1</span><span class="o">/</span><span class="n">Header1</span><span class="o">.</span><span class="n">h</span>
+<span class="n">SubModule1</span><span class="o">/</span><span class="n">Header2</span><span class="o">.</span><span class="n">h</span>
+<span class="n">SubModule2</span><span class="o">/</span><span class="n">Header3</span><span class="o">.</span><span class="n">h</span>
+<span class="n">SubModule2</span><span class="o">/</span><span class="n">Header4</span><span class="o">.</span><span class="n">h</span>
+<span class="n">SubModule2</span><span class="o">.</span><span class="n">h</span>
+</pre></div>
+</div>
+<p>The following module map will be generated:</p>
+<div class="highlight-python"><div class="highlight"><pre><span></span>// Output/NoProblemsAssistant.txt
+// Generated by: modularize -module-map-path=Output/NoProblemsAssistant.txt \
+     -root-module=Root NoProblemsAssistant.modularize
+
+module SomeTypes {
+  header "SomeTypes.h"
+  export *
+}
+module SomeDecls {
+  header "SomeDecls.h"
+  export *
+}
+module SubModule1 {
+  module Header1 {
+    header "SubModule1/Header1.h"
+    export *
+  }
+  module Header2 {
+    header "SubModule1/Header2.h"
+    export *
+  }
+}
+module SubModule2 {
+  module Header3 {
+    header "SubModule2/Header3.h"
+    export *
+  }
+  module Header4 {
+    header "SubModule2/Header4.h"
+    export *
+  }
+  header "SubModule2.h"
+  export *
+}
+</pre></div>
+</div>
+<p>An optional <tt class="docutils literal"><span class="pre">-root-module=<root-name></span></tt> option can be used to cause a root module
+to be created which encloses all the modules.</p>
+<p>An optional <tt class="docutils literal"><span class="pre">-problem-files-list=<problem-file-name></span></tt> can be used to input
+a list of files to be excluded, perhaps as a temporary stop-gap measure until
+problem headers can be fixed.</p>
+<p>For example, with the same header list from above:</p>
+<div class="highlight-python"><div class="highlight"><pre><span></span>// Output/NoProblemsAssistant.txt
+// Generated by: modularize -module-map-path=Output/NoProblemsAssistant.txt \
+     -root-module=Root NoProblemsAssistant.modularize
+
+module Root {
+  module SomeTypes {
+    header "SomeTypes.h"
+    export *
+  }
+  module SomeDecls {
+    header "SomeDecls.h"
+    export *
+  }
+  module SubModule1 {
+    module Header1 {
+      header "SubModule1/Header1.h"
+      export *
+    }
+    module Header2 {
+      header "SubModule1/Header2.h"
+      export *
+    }
+  }
+  module SubModule2 {
+    module Header3 {
+      header "SubModule2/Header3.h"
+      export *
+    }
+    module Header4 {
+      header "SubModule2/Header4.h"
+      export *
+    }
+    header "SubModule2.h"
+    export *
+  }
+}
+</pre></div>
+</div>
+<p>Note that headers with dependents will be ignored with a warning, as the
+Clang module mechanism doesn’t support headers the rely on other headers
+to be included first.</p>
+<p>The module map format defines some keywords which can’t be used in module
+names. If a header has one of these names, an underscore (‘_’) will be
+prepended to the name. For example, if the header name is <tt class="docutils literal"><span class="pre">header.h</span></tt>,
+because <tt class="docutils literal"><span class="pre">header</span></tt> is a keyword, the module name will be <tt class="docutils literal"><span class="pre">_header</span></tt>.
+For a list of the module map keywords, please see:
+<a class="reference external" href="http://clang.llvm.org/docs/Modules.html#lexical-structure">Lexical structure</a></p>
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="include-fixer.html">Clang-Include-Fixer</a>
+          ::  
+        <a class="uplink" href="index.html">Contents</a>
+          ::  
+        <a href="ModularizeUsage.html">Modularize Usage</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/objects.inv
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/objects.inv?rev=312731&view=auto
==============================================================================
Binary file - no diff available.

Propchange: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/objects.inv
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/pp-trace.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/pp-trace.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/pp-trace.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/pp-trace.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,1512 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>pp-trace User’s Manual — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    './',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/underscore.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="index.html" />
+    <link rel="next" title="Clang-Rename" href="clang-rename.html" />
+    <link rel="prev" title="Modularize Usage" href="ModularizeUsage.html" /> 
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>pp-trace User’s Manual</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        «  <a href="ModularizeUsage.html">Modularize Usage</a>
+          ::  
+        <a class="uplink" href="index.html">Contents</a>
+          ::  
+        <a href="clang-rename.html">Clang-Rename</a>  Â»
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <div class="section" id="pp-trace-user-s-manual">
+<span id="index-0"></span><h1>pp-trace User’s Manual<a class="headerlink" href="#pp-trace-user-s-manual" title="Permalink to this headline">¶</a></h1>
+<div class="toctree-wrapper compound">
+</div>
+<p><strong class="program">pp-trace</strong> is a standalone tool that traces preprocessor
+activity. It’s also used as a test of Clang’s PPCallbacks interface.
+It runs a given source file through the Clang preprocessor, displaying
+selected information from callback functions overridden in a
+<a class="reference external" href="http://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html">PPCallbacks</a>
+derivation. The output is in a high-level YAML format, described in
+<a class="reference internal" href="#outputformat"><em>pp-trace Output Format</em></a>.</p>
+<div class="section" id="pp-trace-usage">
+<span id="usage"></span><h2>pp-trace Usage<a class="headerlink" href="#pp-trace-usage" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="command-line-format">
+<h3>Command Line Format<a class="headerlink" href="#command-line-format" title="Permalink to this headline">¶</a></h3>
+<p><tt class="docutils literal"><span class="pre">pp-trace</span> <span class="pre">[<pp-trace-options>]</span> <span class="pre"><source-file></span> <span class="pre">[<front-end-options>]</span></tt></p>
+<p><tt class="docutils literal"><span class="pre"><pp-trace-options></span></tt> is a place-holder for options
+specific to pp-trace, which are described below in
+<a class="reference internal" href="#commandlineoptions"><em>Command Line Options</em></a>.</p>
+<p><tt class="docutils literal"><span class="pre"><source-file></span></tt> specifies the source file to run through the preprocessor.</p>
+<p><tt class="docutils literal"><span class="pre"><front-end-options></span></tt> is a place-holder for regular
+<a class="reference external" href="http://clang.llvm.org/docs/UsersManual.html#command-line-options">Clang Compiler Options</a>,
+which must follow the <source-file>.</p>
+</div>
+<div class="section" id="command-line-options">
+<span id="commandlineoptions"></span><h3>Command Line Options<a class="headerlink" href="#command-line-options" title="Permalink to this headline">¶</a></h3>
+<dl class="option">
+<dt id="cmdoption-ignore">
+<tt class="descname">-ignore</tt><tt class="descclassname"> <callback-name-list></tt><a class="headerlink" href="#cmdoption-ignore" title="Permalink to this definition">¶</a></dt>
+<dd><p>This option specifies a comma-separated list of names of callbacks
+that shouldn’t be traced. It can be used to eliminate unwanted
+trace output. The callback names are the name of the actual
+callback function names in the PPCallbacks class:</p>
+<ul class="simple">
+<li>FileChanged</li>
+<li>FileSkipped</li>
+<li>FileNotFound</li>
+<li>InclusionDirective</li>
+<li>moduleImport</li>
+<li>EndOfMainFile</li>
+<li>Ident</li>
+<li>PragmaDirective</li>
+<li>PragmaComment</li>
+<li>PragmaDetectMismatch</li>
+<li>PragmaDebug</li>
+<li>PragmaMessage</li>
+<li>PragmaDiagnosticPush</li>
+<li>PragmaDiagnosticPop</li>
+<li>PragmaDiagnostic</li>
+<li>PragmaOpenCLExtension</li>
+<li>PragmaWarning</li>
+<li>PragmaWarningPush</li>
+<li>PragmaWarningPop</li>
+<li>MacroExpands</li>
+<li>MacroDefined</li>
+<li>MacroUndefined</li>
+<li>Defined</li>
+<li>SourceRangeSkipped</li>
+<li>If</li>
+<li>Elif</li>
+<li>Ifdef</li>
+<li>Ifndef</li>
+<li>Else</li>
+<li>Endif</li>
+</ul>
+</dd></dl>
+
+<dl class="option">
+<dt id="cmdoption-output">
+<tt class="descname">-output</tt><tt class="descclassname"> <output-file></tt><a class="headerlink" href="#cmdoption-output" title="Permalink to this definition">¶</a></dt>
+<dd><p>By default, pp-trace outputs the trace information to stdout. Use this
+option to output the trace information to a file.</p>
+</dd></dl>
+
+</div>
+</div>
+<div class="section" id="pp-trace-output-format">
+<span id="outputformat"></span><h2>pp-trace Output Format<a class="headerlink" href="#pp-trace-output-format" title="Permalink to this headline">¶</a></h2>
+<p>The pp-trace output is formatted as YAML. See <a class="reference external" href="http://yaml.org/">http://yaml.org/</a> for general
+YAML information. It’s arranged as a sequence of information about the
+callback call, including the callback name and argument information, for
+example::</p>
+<div class="highlight-python"><div class="highlight"><pre><span></span>---
+- Callback: Name
+  Argument1: Value1
+  Argument2: Value2
+(etc.)
+...
+</pre></div>
+</div>
+<p>With real data::</p>
+<div class="highlight-python"><div class="highlight"><pre><span></span>---
+- Callback: FileChanged
+  Loc: "c:/Clang/llvm/tools/clang/tools/extra/test/pp-trace/pp-trace-include.cpp:1:1"
+  Reason: EnterFile
+  FileType: C_User
+  PrevFID: (invalid)
+  (etc.)
+- Callback: FileChanged
+  Loc: "D:/Clang/llvm/tools/clang/tools/extra/test/pp-trace/pp-trace-include.cpp:5:1"
+  Reason: ExitFile
+  FileType: C_User
+  PrevFID: "D:/Clang/llvm/tools/clang/tools/extra/test/pp-trace/Input/Level1B.h"
+- Callback: EndOfMainFile
+...
+</pre></div>
+</div>
+<p>In all but one case (MacroDirective) the “Argument” scalars have the same
+name as the argument in the corresponding PPCallbacks callback function.</p>
+<div class="section" id="callback-details">
+<h3>Callback Details<a class="headerlink" href="#callback-details" title="Permalink to this headline">¶</a></h3>
+<p>The following sections describe the pupose and output format for each callback.</p>
+<p>Click on the callback name in the section heading to see the Doxygen
+documentation for the callback.</p>
+<p>The argument descriptions table describes the callback argument information
+displayed.</p>
+<p>The Argument Name field in most (but not all) cases is the same name as the
+callback function parameter.</p>
+<p>The Argument Value Syntax field describes the values that will be displayed
+for the argument value. It uses an ad hoc representation that mixes literal
+and symbolic representations. Enumeration member symbols are shown as the
+actual enum member in a (member1|member2|...) form. A name in parentheses
+can either represent a place holder for the described value, or confusingly,
+it might be a literal, such as (null), for a null pointer.
+Locations are shown as quoted only to avoid confusing the documentation generator.</p>
+<p>The Clang C++ Type field is the type from the callback function declaration.</p>
+<p>The description describes the argument or what is displayed for it.</p>
+<p>Note that in some cases, such as when a structure pointer is an argument
+value, only some key member or members are shown to represent the value,
+instead of trying to display all members of the structure.</p>
+<div class="section" id="filechanged-callback">
+<h4><a class="reference external" href="http://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#a7cc8cfaf34114fc65e92af621cd6464e">FileChanged</a> Callback<a class="headerlink" href="#filechanged-callback" title="Permalink to this headline">¶</a></h4>
+<p>FileChanged is called when the preprocessor enters or exits a file, both the
+top level file being compiled, as well as any #include directives. It will
+also be called as a result of a system header pragma or in internal renaming
+of a file.</p>
+<p>Argument descriptions:</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="11%" />
+<col width="40%" />
+<col width="24%" />
+<col width="24%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Argument Name</th>
+<th class="head">Argument Value Syntax</th>
+<th class="head">Clang C++ Type</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td>Loc</td>
+<td>“(file):(line):(col)”</td>
+<td>SourceLocation</td>
+<td>The location of the directive.</td>
+</tr>
+<tr class="row-odd"><td>Reason</td>
+<td>(EnterFile|ExitFile|SystemHeaderPragma|RenameFile)</td>
+<td>PPCallbacks::FileChangeReason</td>
+<td>Reason for change.</td>
+</tr>
+<tr class="row-even"><td>FileType</td>
+<td>(C_User|C_System|C_ExternCSystem)</td>
+<td>SrcMgr::CharacteristicKind</td>
+<td>Include type.</td>
+</tr>
+<tr class="row-odd"><td>PrevFID</td>
+<td>((file)|(invalid))</td>
+<td>FileID</td>
+<td>Previous file, if any.</td>
+</tr>
+</tbody>
+</table>
+<p>Example::</p>
+<div class="highlight-python"><div class="highlight"><pre><span></span>- Callback: FileChanged
+  Loc: "D:/Clang/llvm/tools/clang/tools/extra/test/pp-trace/pp-trace-include.cpp:1:1"
+  Reason: EnterFile
+  FileType: C_User
+  PrevFID: (invalid)
+</pre></div>
+</div>
+</div>
+<div class="section" id="fileskipped-callback">
+<h4><a class="reference external" href="http://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#ab5b338a0670188eb05fa7685bbfb5128">FileSkipped</a> Callback<a class="headerlink" href="#fileskipped-callback" title="Permalink to this headline">¶</a></h4>
+<p>FileSkipped is called when a source file is skipped as the result of header
+guard optimization.</p>
+<p>Argument descriptions:</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="9%" />
+<col width="33%" />
+<col width="20%" />
+<col width="37%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Argument Name</th>
+<th class="head">Argument Value Syntax</th>
+<th class="head">Clang C++ Type</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td>ParentFile</td>
+<td>(“(file)” or (null))</td>
+<td>const FileEntry</td>
+<td>The file that #included the skipped file.</td>
+</tr>
+<tr class="row-odd"><td>FilenameTok</td>
+<td>(token)</td>
+<td>const Token</td>
+<td>The token in ParentFile that indicates the skipped file.</td>
+</tr>
+<tr class="row-even"><td>FileType</td>
+<td>(C_User|C_System|C_ExternCSystem)</td>
+<td>SrcMgr::CharacteristicKind</td>
+<td>The file type.</td>
+</tr>
+</tbody>
+</table>
+<p>Example::</p>
+<div class="highlight-python"><div class="highlight"><pre><span></span>- Callback: FileSkipped
+  ParentFile: "/path/filename.h"
+  FilenameTok: "filename.h"
+  FileType: C_User
+</pre></div>
+</div>
+</div>
+<div class="section" id="filenotfound-callback">
+<h4><a class="reference external" href="http://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#a3045151545f987256bfa8d978916ef00">FileNotFound</a> Callback<a class="headerlink" href="#filenotfound-callback" title="Permalink to this headline">¶</a></h4>
+<p>FileNotFound is called when an inclusion directive results in a file-not-found error.</p>
+<p>Argument descriptions:</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="6%" />
+<col width="22%" />
+<col width="13%" />
+<col width="59%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Argument Name</th>
+<th class="head">Argument Value Syntax</th>
+<th class="head">Clang C++ Type</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td>FileName</td>
+<td>“(file)”</td>
+<td>StringRef</td>
+<td>The name of the file being included, as written in the source code.</td>
+</tr>
+<tr class="row-odd"><td>RecoveryPath</td>
+<td>(path)</td>
+<td>SmallVectorImpl<char></td>
+<td>If this client indicates that it can recover from this missing file, the client should set this as an additional header search patch.</td>
+</tr>
+</tbody>
+</table>
+<p>Example::</p>
+<div class="highlight-python"><div class="highlight"><pre><span></span>- Callback: FileNotFound
+  FileName: "/path/filename.h"
+  RecoveryPath:
+</pre></div>
+</div>
+</div>
+<div class="section" id="inclusiondirective-callback">
+<h4><a class="reference external" href="http://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#a557d9738c329793513a6f57d6b60de52">InclusionDirective</a> Callback<a class="headerlink" href="#inclusiondirective-callback" title="Permalink to this headline">¶</a></h4>
+<p>InclusionDirective is called when an inclusion directive of any kind (#include</code>, #import</code>, etc.) has been processed, regardless of whether the inclusion will actually result in an inclusion.</p>
+<p>Argument descriptions:</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="7%" />
+<col width="25%" />
+<col width="15%" />
+<col width="53%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Argument Name</th>
+<th class="head">Argument Value Syntax</th>
+<th class="head">Clang C++ Type</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td>HashLoc</td>
+<td>“(file):(line):(col)”</td>
+<td>SourceLocation</td>
+<td>The location of the ‘#’ that starts the inclusion directive.</td>
+</tr>
+<tr class="row-odd"><td>IncludeTok</td>
+<td>(token)</td>
+<td>const Token</td>
+<td>The token that indicates the kind of inclusion directive, e.g., ‘include’ or ‘import’.</td>
+</tr>
+<tr class="row-even"><td>FileName</td>
+<td>“(file)”</td>
+<td>StringRef</td>
+<td>The name of the file being included, as written in the source code.</td>
+</tr>
+<tr class="row-odd"><td>IsAngled</td>
+<td>(true|false)</td>
+<td>bool</td>
+<td>Whether the file name was enclosed in angle brackets; otherwise, it was enclosed in quotes.</td>
+</tr>
+<tr class="row-even"><td>FilenameRange</td>
+<td>“(file)”</td>
+<td>CharSourceRange</td>
+<td>The character range of the quotes or angle brackets for the written file name.</td>
+</tr>
+<tr class="row-odd"><td>File</td>
+<td>“(file)”</td>
+<td>const FileEntry</td>
+<td>The actual file that may be included by this inclusion directive.</td>
+</tr>
+<tr class="row-even"><td>SearchPath</td>
+<td>“(path)”</td>
+<td>StringRef</td>
+<td>Contains the search path which was used to find the file in the file system.</td>
+</tr>
+<tr class="row-odd"><td>RelativePath</td>
+<td>“(path)”</td>
+<td>StringRef</td>
+<td>The path relative to SearchPath, at which the include file was found.</td>
+</tr>
+<tr class="row-even"><td>Imported</td>
+<td>((module name)|(null))</td>
+<td>const Module</td>
+<td>The module, whenever an inclusion directive was automatically turned into a module import or null otherwise.</td>
+</tr>
+</tbody>
+</table>
+<p>Example::</p>
+<div class="highlight-python"><div class="highlight"><pre><span></span>- Callback: InclusionDirective
+  IncludeTok: include
+  FileName: "Input/Level1B.h"
+  IsAngled: false
+  FilenameRange: "Input/Level1B.h"
+  File: "D:/Clang/llvmnewmod/tools/clang/tools/extra/test/pp-trace/Input/Level1B.h"
+  SearchPath: "D:/Clang/llvmnewmod/tools/clang/tools/extra/test/pp-trace"
+  RelativePath: "Input/Level1B.h"
+  Imported: (null)
+</pre></div>
+</div>
+</div>
+<div class="section" id="moduleimport-callback">
+<h4><a class="reference external" href="http://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#af32dcf1b8b7c179c7fcd3e24e89830fe">moduleImport</a> Callback<a class="headerlink" href="#moduleimport-callback" title="Permalink to this headline">¶</a></h4>
+<p>moduleImport is called when there was an explicit module-import syntax.</p>
+<p>Argument descriptions:</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="9%" />
+<col width="33%" />
+<col width="20%" />
+<col width="39%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Argument Name</th>
+<th class="head">Argument Value Syntax</th>
+<th class="head">Clang C++ Type</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td>ImportLoc</td>
+<td>“(file):(line):(col)”</td>
+<td>SourceLocation</td>
+<td>The location of import directive token.</td>
+</tr>
+<tr class="row-odd"><td>Path</td>
+<td>“(path)”</td>
+<td>ModuleIdPath</td>
+<td>The identifiers (and their locations) of the module “path”.</td>
+</tr>
+<tr class="row-even"><td>Imported</td>
+<td>((module name)|(null))</td>
+<td>const Module</td>
+<td>The imported module; can be null if importing failed.</td>
+</tr>
+</tbody>
+</table>
+<p>Example::</p>
+<div class="highlight-python"><div class="highlight"><pre><span></span>- Callback: moduleImport
+  ImportLoc: "d:/Clang/llvm/tools/clang/tools/extra/test/pp-trace/pp-trace-modules.cpp:4:2"
+  Path: [{Name: Level1B, Loc: "d:/Clang/llvmnewmod/tools/clang/tools/extra/test/pp-trace/pp-trace-modules.cpp:4:9"}, {Name: Level2B, Loc: "d:/Clang/llvmnewmod/tools/clang/tools/extra/test/pp-trace/pp-trace-modules.cpp:4:17"}]
+  Imported: Level2B
+</pre></div>
+</div>
+</div>
+<div class="section" id="endofmainfile-callback">
+<h4><a class="reference external" href="http://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#a63e170d069e99bc1c9c7ea0f3bed8bcc">EndOfMainFile</a> Callback<a class="headerlink" href="#endofmainfile-callback" title="Permalink to this headline">¶</a></h4>
+<p>EndOfMainFile is called when the end of the main file is reached.</p>
+<p>Argument descriptions:</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="12%" />
+<col width="43%" />
+<col width="26%" />
+<col width="19%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Argument Name</th>
+<th class="head">Argument Value Syntax</th>
+<th class="head">Clang C++ Type</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td>(no arguments)</td>
+<td> </td>
+<td> </td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p>Example::</p>
+<div class="highlight-python"><div class="highlight"><pre><span></span>- Callback: EndOfMainFile
+</pre></div>
+</div>
+</div>
+<div class="section" id="ident-callback">
+<h4><a class="reference external" href="http://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#a3683f1d1fa513e9b6193d446a5cc2b66">Ident</a> Callback<a class="headerlink" href="#ident-callback" title="Permalink to this headline">¶</a></h4>
+<p>Ident is called when a #ident or #sccs directive is read.</p>
+<p>Argument descriptions:</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="11%" />
+<col width="40%" />
+<col width="24%" />
+<col width="24%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Argument Name</th>
+<th class="head">Argument Value Syntax</th>
+<th class="head">Clang C++ Type</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td>Loc</td>
+<td>“(file):(line):(col)”</td>
+<td>SourceLocation</td>
+<td>The location of the directive.</td>
+</tr>
+<tr class="row-odd"><td>str</td>
+<td>(name)</td>
+<td>const std::string</td>
+<td>The text of the directive.</td>
+</tr>
+</tbody>
+</table>
+<p>Example::</p>
+<div class="highlight-python"><div class="highlight"><pre><span></span>- Callback: Ident
+  Loc: "D:/Clang/llvm/tools/clang/tools/extra/test/pp-trace/pp-trace-ident.cpp:3:1"
+  str: "$Id$"
+</pre></div>
+</div>
+</div>
+<div class="section" id="pragmadirective-callback">
+<h4><a class="reference external" href="http://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#a0a2d7a72c62184b3cbde31fb62c6f2f7">PragmaDirective</a> Callback<a class="headerlink" href="#pragmadirective-callback" title="Permalink to this headline">¶</a></h4>
+<p>PragmaDirective is called when start reading any pragma directive.</p>
+<p>Argument descriptions:</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="11%" />
+<col width="39%" />
+<col width="24%" />
+<col width="26%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Argument Name</th>
+<th class="head">Argument Value Syntax</th>
+<th class="head">Clang C++ Type</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td>Loc</td>
+<td>“(file):(line):(col)”</td>
+<td>SourceLocation</td>
+<td>The location of the directive.</td>
+</tr>
+<tr class="row-odd"><td>Introducer</td>
+<td>(PIK_HashPragma|PIK__Pragma|PIK___pragma)</td>
+<td>PragmaIntroducerKind</td>
+<td>The type of the pragma directive.</td>
+</tr>
+</tbody>
+</table>
+<p>Example::</p>
+<div class="highlight-python"><div class="highlight"><pre><span></span>- Callback: PragmaDirective
+  Loc: "D:/Clang/llvm/tools/clang/tools/extra/test/pp-trace/pp-trace-pragma.cpp:3:1"
+  Introducer: PIK_HashPragma
+</pre></div>
+</div>
+</div>
+<div class="section" id="pragmacomment-callback">
+<h4><a class="reference external" href="http://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#ace0d940fc2c12ab76441466aab58dc37">PragmaComment</a> Callback<a class="headerlink" href="#pragmacomment-callback" title="Permalink to this headline">¶</a></h4>
+<p>PragmaComment is called when a #pragma comment directive is read.</p>
+<p>Argument descriptions:</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="11%" />
+<col width="40%" />
+<col width="24%" />
+<col width="24%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Argument Name</th>
+<th class="head">Argument Value Syntax</th>
+<th class="head">Clang C++ Type</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td>Loc</td>
+<td>“(file):(line):(col)”</td>
+<td>SourceLocation</td>
+<td>The location of the directive.</td>
+</tr>
+<tr class="row-odd"><td>Kind</td>
+<td>((name)|(null))</td>
+<td>const IdentifierInfo</td>
+<td>The comment kind symbol.</td>
+</tr>
+<tr class="row-even"><td>Str</td>
+<td>(message directive)</td>
+<td>const std::string</td>
+<td>The comment message directive.</td>
+</tr>
+</tbody>
+</table>
+<p>Example::</p>
+<div class="highlight-python"><div class="highlight"><pre><span></span>- Callback: PragmaComment
+  Loc: "D:/Clang/llvm/tools/clang/tools/extra/test/pp-trace/pp-trace-pragma.cpp:3:1"
+  Kind: library
+  Str: kernel32.lib
+</pre></div>
+</div>
+</div>
+<div class="section" id="pragmadetectmismatch-callback">
+<h4><a class="reference external" href="http://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#ab11158c9149fb8ad8af1903f4a6cd65d">PragmaDetectMismatch</a> Callback<a class="headerlink" href="#pragmadetectmismatch-callback" title="Permalink to this headline">¶</a></h4>
+<p>PragmaDetectMismatch is called when a #pragma detect_mismatch directive is read.</p>
+<p>Argument descriptions:</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="11%" />
+<col width="40%" />
+<col width="24%" />
+<col width="24%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Argument Name</th>
+<th class="head">Argument Value Syntax</th>
+<th class="head">Clang C++ Type</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td>Loc</td>
+<td>“(file):(line):(col)”</td>
+<td>SourceLocation</td>
+<td>The location of the directive.</td>
+</tr>
+<tr class="row-odd"><td>Name</td>
+<td>“(name)”</td>
+<td>const std::string</td>
+<td>The name.</td>
+</tr>
+<tr class="row-even"><td>Value</td>
+<td>(string)</td>
+<td>const std::string</td>
+<td>The value.</td>
+</tr>
+</tbody>
+</table>
+<p>Example::</p>
+<div class="highlight-python"><div class="highlight"><pre><span></span>- Callback: PragmaDetectMismatch
+  Loc: "D:/Clang/llvm/tools/clang/tools/extra/test/pp-trace/pp-trace-pragma.cpp:3:1"
+  Name: name
+  Value: value
+</pre></div>
+</div>
+</div>
+<div class="section" id="pragmadebug-callback">
+<h4><a class="reference external" href="http://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#a57cdccb6dcc07e926513ac3d5b121466">PragmaDebug</a> Callback<a class="headerlink" href="#pragmadebug-callback" title="Permalink to this headline">¶</a></h4>
+<p>PragmaDebug is called when a #pragma clang __debug directive is read.</p>
+<p>Argument descriptions:</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="11%" />
+<col width="40%" />
+<col width="24%" />
+<col width="25%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Argument Name</th>
+<th class="head">Argument Value Syntax</th>
+<th class="head">Clang C++ Type</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td>Loc</td>
+<td>“(file):(line):(col)”</td>
+<td>SourceLocation</td>
+<td>The location of the directive.</td>
+</tr>
+<tr class="row-odd"><td>DebugType</td>
+<td>(string)</td>
+<td>StringRef</td>
+<td>Indicates type of debug message.</td>
+</tr>
+</tbody>
+</table>
+<p>Example::</p>
+<div class="highlight-python"><div class="highlight"><pre><span></span>- Callback: PragmaDebug
+  Loc: "D:/Clang/llvm/tools/clang/tools/extra/test/pp-trace/pp-trace-pragma.cpp:3:1"
+  DebugType: warning
+</pre></div>
+</div>
+</div>
+<div class="section" id="pragmamessage-callback">
+<h4><a class="reference external" href="http://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#abb42935d9a9fd8e2c4f51cfdc4ea2ae1">PragmaMessage</a> Callback<a class="headerlink" href="#pragmamessage-callback" title="Permalink to this headline">¶</a></h4>
+<p>PragmaMessage is called when a #pragma message directive is read.</p>
+<p>Argument descriptions:</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="11%" />
+<col width="38%" />
+<col width="23%" />
+<col width="29%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Argument Name</th>
+<th class="head">Argument Value Syntax</th>
+<th class="head">Clang C++ Type</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td>Loc</td>
+<td>“(file):(line):(col)”</td>
+<td>SourceLocation</td>
+<td>The location of the directive.</td>
+</tr>
+<tr class="row-odd"><td>Namespace</td>
+<td>(name)</td>
+<td>StringRef</td>
+<td>The namespace of the message directive.</td>
+</tr>
+<tr class="row-even"><td>Kind</td>
+<td>(PMK_Message|PMK_Warning|PMK_Error)</td>
+<td>PPCallbacks::PragmaMessageKind</td>
+<td>The type of the message directive.</td>
+</tr>
+<tr class="row-odd"><td>Str</td>
+<td>(string)</td>
+<td>StringRef</td>
+<td>The text of the message directive.</td>
+</tr>
+</tbody>
+</table>
+<p>Example::</p>
+<div class="highlight-python"><div class="highlight"><pre><span></span>- Callback: PragmaMessage
+  Loc: "D:/Clang/llvm/tools/clang/tools/extra/test/pp-trace/pp-trace-pragma.cpp:3:1"
+  Namespace: "GCC"
+  Kind: PMK_Message
+  Str: The message text.
+</pre></div>
+</div>
+</div>
+<div class="section" id="pragmadiagnosticpush-callback">
+<h4><a class="reference external" href="http://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#a0f3ff19762baa38fe6c5c58022d32979">PragmaDiagnosticPush</a> Callback<a class="headerlink" href="#pragmadiagnosticpush-callback" title="Permalink to this headline">¶</a></h4>
+<p>PragmaDiagnosticPush is called when a #pragma gcc dianostic push directive is read.</p>
+<p>Argument descriptions:</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="11%" />
+<col width="40%" />
+<col width="24%" />
+<col width="24%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Argument Name</th>
+<th class="head">Argument Value Syntax</th>
+<th class="head">Clang C++ Type</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td>Loc</td>
+<td>“(file):(line):(col)”</td>
+<td>SourceLocation</td>
+<td>The location of the directive.</td>
+</tr>
+<tr class="row-odd"><td>Namespace</td>
+<td>(name)</td>
+<td>StringRef</td>
+<td>Namespace name.</td>
+</tr>
+</tbody>
+</table>
+<p>Example::</p>
+<div class="highlight-python"><div class="highlight"><pre><span></span>- Callback: PragmaDiagnosticPush
+  Loc: "D:/Clang/llvm/tools/clang/tools/extra/test/pp-trace/pp-trace-pragma.cpp:3:1"
+  Namespace: "GCC"
+</pre></div>
+</div>
+</div>
+<div class="section" id="pragmadiagnosticpop-callback">
+<h4><a class="reference external" href="http://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#ac94d789873122221fba8d76f6c5ea45e">PragmaDiagnosticPop</a> Callback<a class="headerlink" href="#pragmadiagnosticpop-callback" title="Permalink to this headline">¶</a></h4>
+<p>PragmaDiagnosticPop is called when a #pragma gcc dianostic pop directive is read.</p>
+<p>Argument descriptions:</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="11%" />
+<col width="40%" />
+<col width="24%" />
+<col width="24%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Argument Name</th>
+<th class="head">Argument Value Syntax</th>
+<th class="head">Clang C++ Type</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td>Loc</td>
+<td>“(file):(line):(col)”</td>
+<td>SourceLocation</td>
+<td>The location of the directive.</td>
+</tr>
+<tr class="row-odd"><td>Namespace</td>
+<td>(name)</td>
+<td>StringRef</td>
+<td>Namespace name.</td>
+</tr>
+</tbody>
+</table>
+<p>Example::</p>
+<div class="highlight-python"><div class="highlight"><pre><span></span>- Callback: PragmaDiagnosticPop
+  Loc: "D:/Clang/llvm/tools/clang/tools/extra/test/pp-trace/pp-trace-pragma.cpp:3:1"
+  Namespace: "GCC"
+</pre></div>
+</div>
+</div>
+<div class="section" id="pragmadiagnostic-callback">
+<h4><a class="reference external" href="http://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#afe7938f38a83cb7b4b25a13edfdd7bdd">PragmaDiagnostic</a> Callback<a class="headerlink" href="#pragmadiagnostic-callback" title="Permalink to this headline">¶</a></h4>
+<p>PragmaDiagnostic is called when a #pragma gcc dianostic directive is read.</p>
+<p>Argument descriptions:</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="11%" />
+<col width="40%" />
+<col width="24%" />
+<col width="24%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Argument Name</th>
+<th class="head">Argument Value Syntax</th>
+<th class="head">Clang C++ Type</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td>Loc</td>
+<td>“(file):(line):(col)”</td>
+<td>SourceLocation</td>
+<td>The location of the directive.</td>
+</tr>
+<tr class="row-odd"><td>Namespace</td>
+<td>(name)</td>
+<td>StringRef</td>
+<td>Namespace name.</td>
+</tr>
+<tr class="row-even"><td>mapping</td>
+<td>(0|MAP_IGNORE|MAP_WARNING|MAP_ERROR|MAP_FATAL)</td>
+<td>diag::Severity</td>
+<td>Mapping type.</td>
+</tr>
+<tr class="row-odd"><td>Str</td>
+<td>(string)</td>
+<td>StringRef</td>
+<td>Warning/error name.</td>
+</tr>
+</tbody>
+</table>
+<p>Example::</p>
+<div class="highlight-python"><div class="highlight"><pre><span></span>- Callback: PragmaDiagnostic
+  Loc: "D:/Clang/llvm/tools/clang/tools/extra/test/pp-trace/pp-trace-pragma.cpp:3:1"
+  Namespace: "GCC"
+  mapping: MAP_WARNING
+  Str: WarningName
+</pre></div>
+</div>
+</div>
+<div class="section" id="pragmaopenclextension-callback">
+<h4><a class="reference external" href="http://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#a92a20a21fadbab4e2c788f4e27fe07e7">PragmaOpenCLExtension</a> Callback<a class="headerlink" href="#pragmaopenclextension-callback" title="Permalink to this headline">¶</a></h4>
+<p>PragmaOpenCLExtension is called when OpenCL extension is either disabled or enabled with a pragma.</p>
+<p>Argument descriptions:</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="12%" />
+<col width="42%" />
+<col width="25%" />
+<col width="22%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Argument Name</th>
+<th class="head">Argument Value Syntax</th>
+<th class="head">Clang C++ Type</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td>NameLoc</td>
+<td>“(file):(line):(col)”</td>
+<td>SourceLocation</td>
+<td>The location of the name.</td>
+</tr>
+<tr class="row-odd"><td>Name</td>
+<td>(name)</td>
+<td>const IdentifierInfo</td>
+<td>Name symbol.</td>
+</tr>
+<tr class="row-even"><td>StateLoc</td>
+<td>“(file):(line):(col)”</td>
+<td>SourceLocation</td>
+<td>The location of the state.</td>
+</tr>
+<tr class="row-odd"><td>State</td>
+<td>(1|0)</td>
+<td>unsigned</td>
+<td>Enabled/disabled state.</td>
+</tr>
+</tbody>
+</table>
+<p>Example::</p>
+<div class="highlight-python"><div class="highlight"><pre><span></span>- Callback: PragmaOpenCLExtension
+  NameLoc: "D:/Clang/llvm/tools/clang/tools/extra/test/pp-trace/pp-trace-pragma.cpp:3:10"
+  Name: Name
+  StateLoc: "D:/Clang/llvm/tools/clang/tools/extra/test/pp-trace/pp-trace-pragma.cpp:3:18"
+  State: 1
+</pre></div>
+</div>
+</div>
+<div class="section" id="pragmawarning-callback">
+<h4><a class="reference external" href="http://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#aa17169d25fa1cf0a6992fc944d1d8730">PragmaWarning</a> Callback<a class="headerlink" href="#pragmawarning-callback" title="Permalink to this headline">¶</a></h4>
+<p>PragmaWarning is called when a #pragma warning directive is read.</p>
+<p>Argument descriptions:</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="11%" />
+<col width="40%" />
+<col width="24%" />
+<col width="24%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Argument Name</th>
+<th class="head">Argument Value Syntax</th>
+<th class="head">Clang C++ Type</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td>Loc</td>
+<td>“(file):(line):(col)”</td>
+<td>SourceLocation</td>
+<td>The location of the directive.</td>
+</tr>
+<tr class="row-odd"><td>WarningSpec</td>
+<td>(string)</td>
+<td>StringRef</td>
+<td>The warning specifier.</td>
+</tr>
+<tr class="row-even"><td>Ids</td>
+<td>[(number)[, ...]]</td>
+<td>ArrayRef<int></td>
+<td>The warning numbers.</td>
+</tr>
+</tbody>
+</table>
+<p>Example::</p>
+<div class="highlight-python"><div class="highlight"><pre><span></span>- Callback: PragmaWarning
+  Loc: "D:/Clang/llvm/tools/clang/tools/extra/test/pp-trace/pp-trace-pragma.cpp:3:1"
+  WarningSpec: disable
+  Ids: 1,2,3
+</pre></div>
+</div>
+</div>
+<div class="section" id="pragmawarningpush-callback">
+<h4><a class="reference external" href="http://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#ae5626ef70502687a859f323a809ed0b6">PragmaWarningPush</a> Callback<a class="headerlink" href="#pragmawarningpush-callback" title="Permalink to this headline">¶</a></h4>
+<p>PragmaWarningPush is called when a #pragma warning(push) directive is read.</p>
+<p>Argument descriptions:</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="11%" />
+<col width="40%" />
+<col width="24%" />
+<col width="24%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Argument Name</th>
+<th class="head">Argument Value Syntax</th>
+<th class="head">Clang C++ Type</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td>Loc</td>
+<td>“(file):(line):(col)”</td>
+<td>SourceLocation</td>
+<td>The location of the directive.</td>
+</tr>
+<tr class="row-odd"><td>Level</td>
+<td>(number)</td>
+<td>int</td>
+<td>Warning level.</td>
+</tr>
+</tbody>
+</table>
+<p>Example::</p>
+<div class="highlight-python"><div class="highlight"><pre><span></span>- Callback: PragmaWarningPush
+  Loc: "D:/Clang/llvm/tools/clang/tools/extra/test/pp-trace/pp-trace-pragma.cpp:3:1"
+  Level: 1
+</pre></div>
+</div>
+</div>
+<div class="section" id="pragmawarningpop-callback">
+<h4><a class="reference external" href="http://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#ac98d502af8811b8a6e7342d7cd2b3b95">PragmaWarningPop</a> Callback<a class="headerlink" href="#pragmawarningpop-callback" title="Permalink to this headline">¶</a></h4>
+<p>PragmaWarningPop is called when a #pragma warning(pop) directive is read.</p>
+<p>Argument descriptions:</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="11%" />
+<col width="40%" />
+<col width="24%" />
+<col width="24%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Argument Name</th>
+<th class="head">Argument Value Syntax</th>
+<th class="head">Clang C++ Type</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td>Loc</td>
+<td>“(file):(line):(col)”</td>
+<td>SourceLocation</td>
+<td>The location of the directive.</td>
+</tr>
+</tbody>
+</table>
+<p>Example::</p>
+<div class="highlight-python"><div class="highlight"><pre><span></span>- Callback: PragmaWarningPop
+  Loc: "D:/Clang/llvm/tools/clang/tools/extra/test/pp-trace/pp-trace-pragma.cpp:3:1"
+</pre></div>
+</div>
+</div>
+<div class="section" id="macroexpands-callback">
+<h4><a class="reference external" href="http://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#a9bc725209d3a071ea649144ab996d515">MacroExpands</a> Callback<a class="headerlink" href="#macroexpands-callback" title="Permalink to this headline">¶</a></h4>
+<p>MacroExpands is called when ::HandleMacroExpandedIdentifier when a macro invocation is found.</p>
+<p>Argument descriptions:</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="7%" />
+<col width="26%" />
+<col width="15%" />
+<col width="52%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Argument Name</th>
+<th class="head">Argument Value Syntax</th>
+<th class="head">Clang C++ Type</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td>MacroNameTok</td>
+<td>(token)</td>
+<td>const Token</td>
+<td>The macro name token.</td>
+</tr>
+<tr class="row-odd"><td>MacroDirective</td>
+<td>(MD_Define|MD_Undefine|MD_Visibility)</td>
+<td>const MacroDirective</td>
+<td>The kind of macro directive from the MacroDirective structure.</td>
+</tr>
+<tr class="row-even"><td>Range</td>
+<td>[“(file):(line):(col)”, “(file):(line):(col)”]</td>
+<td>SourceRange</td>
+<td>The source range for the expansion.</td>
+</tr>
+<tr class="row-odd"><td>Args</td>
+<td>[(name)|(number)|<(token name)>[, ...]]</td>
+<td>const MacroArgs</td>
+<td>The argument tokens. Names and numbers are literal, everything else is of the form ‘<’ tokenName ‘>’.</td>
+</tr>
+</tbody>
+</table>
+<p>Example::</p>
+<div class="highlight-python"><div class="highlight"><pre><span></span>- Callback: MacroExpands
+  MacroNameTok: X_IMPL
+  MacroDirective: MD_Define
+  Range: [(nonfile), (nonfile)]
+  Args: [a <plus> y, b]
+</pre></div>
+</div>
+</div>
+<div class="section" id="macrodefined-callback">
+<h4><a class="reference external" href="http://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#a8448fc9f96f22ad1b93ff393cffc5a76">MacroDefined</a> Callback<a class="headerlink" href="#macrodefined-callback" title="Permalink to this headline">¶</a></h4>
+<p>MacroDefined is called when a macro definition is seen.</p>
+<p>Argument descriptions:</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="9%" />
+<col width="32%" />
+<col width="19%" />
+<col width="40%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Argument Name</th>
+<th class="head">Argument Value Syntax</th>
+<th class="head">Clang C++ Type</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td>MacroNameTok</td>
+<td>(token)</td>
+<td>const Token</td>
+<td>The macro name token.</td>
+</tr>
+<tr class="row-odd"><td>MacroDirective</td>
+<td>(MD_Define|MD_Undefine|MD_Visibility)</td>
+<td>const MacroDirective</td>
+<td>The kind of macro directive from the MacroDirective structure.</td>
+</tr>
+</tbody>
+</table>
+<p>Example::</p>
+<div class="highlight-python"><div class="highlight"><pre><span></span>- Callback: MacroDefined
+  MacroNameTok: X_IMPL
+  MacroDirective: MD_Define
+</pre></div>
+</div>
+</div>
+<div class="section" id="macroundefined-callback">
+<h4><a class="reference external" href="http://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#acb80fc6171a839db8e290945bf2c9d7a">MacroUndefined</a> Callback<a class="headerlink" href="#macroundefined-callback" title="Permalink to this headline">¶</a></h4>
+<p>MacroUndefined is called when a macro #undef is seen.</p>
+<p>Argument descriptions:</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="9%" />
+<col width="32%" />
+<col width="19%" />
+<col width="40%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Argument Name</th>
+<th class="head">Argument Value Syntax</th>
+<th class="head">Clang C++ Type</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td>MacroNameTok</td>
+<td>(token)</td>
+<td>const Token</td>
+<td>The macro name token.</td>
+</tr>
+<tr class="row-odd"><td>MacroDirective</td>
+<td>(MD_Define|MD_Undefine|MD_Visibility)</td>
+<td>const MacroDirective</td>
+<td>The kind of macro directive from the MacroDirective structure.</td>
+</tr>
+</tbody>
+</table>
+<p>Example::</p>
+<div class="highlight-python"><div class="highlight"><pre><span></span>- Callback: MacroUndefined
+  MacroNameTok: X_IMPL
+  MacroDirective: MD_Define
+</pre></div>
+</div>
+</div>
+<div class="section" id="defined-callback">
+<h4><a class="reference external" href="http://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#a3cc2a644533d0e4088a13d2baf90db94">Defined</a> Callback<a class="headerlink" href="#defined-callback" title="Permalink to this headline">¶</a></h4>
+<p>Defined is called when the ‘defined’ operator is seen.</p>
+<p>Argument descriptions:</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="9%" />
+<col width="32%" />
+<col width="19%" />
+<col width="40%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Argument Name</th>
+<th class="head">Argument Value Syntax</th>
+<th class="head">Clang C++ Type</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td>MacroNameTok</td>
+<td>(token)</td>
+<td>const Token</td>
+<td>The macro name token.</td>
+</tr>
+<tr class="row-odd"><td>MacroDirective</td>
+<td>(MD_Define|MD_Undefine|MD_Visibility)</td>
+<td>const MacroDirective</td>
+<td>The kind of macro directive from the MacroDirective structure.</td>
+</tr>
+<tr class="row-even"><td>Range</td>
+<td>[“(file):(line):(col)”, “(file):(line):(col)”]</td>
+<td>SourceRange</td>
+<td>The source range for the directive.</td>
+</tr>
+</tbody>
+</table>
+<p>Example::</p>
+<div class="highlight-python"><div class="highlight"><pre><span></span>- Callback: Defined
+  MacroNameTok: MACRO
+  MacroDirective: (null)
+  Range: ["D:/Clang/llvm/tools/clang/tools/extra/test/pp-trace/pp-trace-macro.cpp:8:5", "D:/Clang/llvm/tools/clang/tools/extra/test/pp-trace/pp-trace-macro.cpp:8:19"]
+</pre></div>
+</div>
+</div>
+<div class="section" id="sourcerangeskipped-callback">
+<h4><a class="reference external" href="http://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#abdb4ebe11610f079ac33515965794b46">SourceRangeSkipped</a> Callback<a class="headerlink" href="#sourcerangeskipped-callback" title="Permalink to this headline">¶</a></h4>
+<p>SourceRangeSkipped is called when a source range is skipped.</p>
+<p>Argument descriptions:</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="12%" />
+<col width="42%" />
+<col width="25%" />
+<col width="21%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Argument Name</th>
+<th class="head">Argument Value Syntax</th>
+<th class="head">Clang C++ Type</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td>Range</td>
+<td>[“(file):(line):(col)”, “(file):(line):(col)”]</td>
+<td>SourceRange</td>
+<td>The source range skipped.</td>
+</tr>
+</tbody>
+</table>
+<p>Example::</p>
+<div class="highlight-python"><div class="highlight"><pre><span></span>- Callback: SourceRangeSkipped
+  Range: [":/Clang/llvm/tools/clang/tools/extra/test/pp-trace/pp-trace-macro.cpp:8:2", ":/Clang/llvm/tools/clang/tools/extra/test/pp-trace/pp-trace-macro.cpp:9:2"]
+</pre></div>
+</div>
+</div>
+<div class="section" id="if-callback">
+<h4><a class="reference external" href="http://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#a645edcb0d6becbc6f256f02fd1287778">If</a> Callback<a class="headerlink" href="#if-callback" title="Permalink to this headline">¶</a></h4>
+<p>If is called when an #if is seen.</p>
+<p>Argument descriptions:</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="11%" />
+<col width="39%" />
+<col width="23%" />
+<col width="27%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Argument Name</th>
+<th class="head">Argument Value Syntax</th>
+<th class="head">Clang C++ Type</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td>Loc</td>
+<td>“(file):(line):(col)”</td>
+<td>SourceLocation</td>
+<td>The location of the directive.</td>
+</tr>
+<tr class="row-odd"><td>ConditionRange</td>
+<td>[“(file):(line):(col)”, “(file):(line):(col)”]</td>
+<td>SourceRange</td>
+<td>The source range for the condition.</td>
+</tr>
+<tr class="row-even"><td>ConditionValue</td>
+<td>(true|false)</td>
+<td>bool</td>
+<td>The condition value.</td>
+</tr>
+</tbody>
+</table>
+<p>Example::</p>
+<div class="highlight-python"><div class="highlight"><pre><span></span>- Callback: If
+  Loc: "D:/Clang/llvm/tools/clang/tools/extra/test/pp-trace/pp-trace-macro.cpp:8:2"
+  ConditionRange: ["D:/Clang/llvm/tools/clang/tools/extra/test/pp-trace/pp-trace-macro.cpp:8:4", "D:/Clang/llvm/tools/clang/tools/extra/test/pp-trace/pp-trace-macro.cpp:9:1"]
+  ConditionValue: false
+</pre></div>
+</div>
+</div>
+<div class="section" id="elif-callback">
+<h4><a class="reference external" href="http://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#a180c9e106a28d60a6112e16b1bb8302a">Elif</a> Callback<a class="headerlink" href="#elif-callback" title="Permalink to this headline">¶</a></h4>
+<p>Elif is called when an #elif is seen.</p>
+<p>Argument descriptions:</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="11%" />
+<col width="39%" />
+<col width="23%" />
+<col width="27%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Argument Name</th>
+<th class="head">Argument Value Syntax</th>
+<th class="head">Clang C++ Type</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td>Loc</td>
+<td>“(file):(line):(col)”</td>
+<td>SourceLocation</td>
+<td>The location of the directive.</td>
+</tr>
+<tr class="row-odd"><td>ConditionRange</td>
+<td>[“(file):(line):(col)”, “(file):(line):(col)”]</td>
+<td>SourceRange</td>
+<td>The source range for the condition.</td>
+</tr>
+<tr class="row-even"><td>ConditionValue</td>
+<td>(true|false)</td>
+<td>bool</td>
+<td>The condition value.</td>
+</tr>
+<tr class="row-odd"><td>IfLoc</td>
+<td>“(file):(line):(col)”</td>
+<td>SourceLocation</td>
+<td>The location of the directive.</td>
+</tr>
+</tbody>
+</table>
+<p>Example::</p>
+<div class="highlight-python"><div class="highlight"><pre><span></span>- Callback: Elif
+  Loc: "D:/Clang/llvm/tools/clang/tools/extra/test/pp-trace/pp-trace-macro.cpp:10:2"
+  ConditionRange: ["D:/Clang/llvm/tools/clang/tools/extra/test/pp-trace/pp-trace-macro.cpp:10:4", "D:/Clang/llvm/tools/clang/tools/extra/test/pp-trace/pp-trace-macro.cpp:11:1"]
+  ConditionValue: false
+  IfLoc: "D:/Clang/llvm/tools/clang/tools/extra/test/pp-trace/pp-trace-macro.cpp:8:2"
+</pre></div>
+</div>
+</div>
+<div class="section" id="ifdef-callback">
+<h4><a class="reference external" href="http://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#a0ce79575dda307784fd51a6dd4eec33d">Ifdef</a> Callback<a class="headerlink" href="#ifdef-callback" title="Permalink to this headline">¶</a></h4>
+<p>Ifdef is called when an #ifdef is seen.</p>
+<p>Argument descriptions:</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="9%" />
+<col width="32%" />
+<col width="19%" />
+<col width="40%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Argument Name</th>
+<th class="head">Argument Value Syntax</th>
+<th class="head">Clang C++ Type</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td>Loc</td>
+<td>“(file):(line):(col)”</td>
+<td>SourceLocation</td>
+<td>The location of the directive.</td>
+</tr>
+<tr class="row-odd"><td>MacroNameTok</td>
+<td>(token)</td>
+<td>const Token</td>
+<td>The macro name token.</td>
+</tr>
+<tr class="row-even"><td>MacroDirective</td>
+<td>(MD_Define|MD_Undefine|MD_Visibility)</td>
+<td>const MacroDirective</td>
+<td>The kind of macro directive from the MacroDirective structure.</td>
+</tr>
+</tbody>
+</table>
+<p>Example::</p>
+<div class="highlight-python"><div class="highlight"><pre><span></span>- Callback: Ifdef
+  Loc: "D:/Clang/llvm/tools/clang/tools/extra/test/pp-trace/pp-trace-conditional.cpp:3:1"
+  MacroNameTok: MACRO
+  MacroDirective: MD_Define
+</pre></div>
+</div>
+</div>
+<div class="section" id="ifndef-callback">
+<h4><a class="reference external" href="http://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#a767af69f1cdcc4cd880fa2ebf77ad3ad">Ifndef</a> Callback<a class="headerlink" href="#ifndef-callback" title="Permalink to this headline">¶</a></h4>
+<p>Ifndef is called when an #ifndef is seen.</p>
+<p>Argument descriptions:</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="9%" />
+<col width="32%" />
+<col width="19%" />
+<col width="40%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Argument Name</th>
+<th class="head">Argument Value Syntax</th>
+<th class="head">Clang C++ Type</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td>Loc</td>
+<td>“(file):(line):(col)”</td>
+<td>SourceLocation</td>
+<td>The location of the directive.</td>
+</tr>
+<tr class="row-odd"><td>MacroNameTok</td>
+<td>(token)</td>
+<td>const Token</td>
+<td>The macro name token.</td>
+</tr>
+<tr class="row-even"><td>MacroDirective</td>
+<td>(MD_Define|MD_Undefine|MD_Visibility)</td>
+<td>const MacroDirective</td>
+<td>The kind of macro directive from the MacroDirective structure.</td>
+</tr>
+</tbody>
+</table>
+<p>Example::</p>
+<div class="highlight-python"><div class="highlight"><pre><span></span>- Callback: Ifndef
+  Loc: "D:/Clang/llvm/tools/clang/tools/extra/test/pp-trace/pp-trace-conditional.cpp:3:1"
+  MacroNameTok: MACRO
+  MacroDirective: MD_Define
+</pre></div>
+</div>
+</div>
+<div class="section" id="else-callback">
+<h4><a class="reference external" href="http://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#ad57f91b6d9c3cbcca326a2bfb49e0314">Else</a> Callback<a class="headerlink" href="#else-callback" title="Permalink to this headline">¶</a></h4>
+<p>Else is called when an #else is seen.</p>
+<p>Argument descriptions:</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="11%" />
+<col width="39%" />
+<col width="23%" />
+<col width="27%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Argument Name</th>
+<th class="head">Argument Value Syntax</th>
+<th class="head">Clang C++ Type</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td>Loc</td>
+<td>“(file):(line):(col)”</td>
+<td>SourceLocation</td>
+<td>The location of the else directive.</td>
+</tr>
+<tr class="row-odd"><td>IfLoc</td>
+<td>“(file):(line):(col)”</td>
+<td>SourceLocation</td>
+<td>The location of the if directive.</td>
+</tr>
+</tbody>
+</table>
+<p>Example::</p>
+<div class="highlight-python"><div class="highlight"><pre><span></span>- Callback: Else
+  Loc: "D:/Clang/llvm/tools/clang/tools/extra/test/pp-trace/pp-trace-macro.cpp:10:2"
+  IfLoc: "D:/Clang/llvm/tools/clang/tools/extra/test/pp-trace/pp-trace-macro.cpp:8:2"
+</pre></div>
+</div>
+</div>
+<div class="section" id="endif-callback">
+<h4><a class="reference external" href="http://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html#afc62ca1401125f516d58b1629a2093ce">Endif</a> Callback<a class="headerlink" href="#endif-callback" title="Permalink to this headline">¶</a></h4>
+<p>Endif is called when an #endif is seen.</p>
+<p>Argument descriptions:</p>
+<table border="1" class="docutils">
+<colgroup>
+<col width="11%" />
+<col width="38%" />
+<col width="23%" />
+<col width="28%" />
+</colgroup>
+<thead valign="bottom">
+<tr class="row-odd"><th class="head">Argument Name</th>
+<th class="head">Argument Value Syntax</th>
+<th class="head">Clang C++ Type</th>
+<th class="head">Description</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr class="row-even"><td>Loc</td>
+<td>“(file):(line):(col)”</td>
+<td>SourceLocation</td>
+<td>The location of the endif directive.</td>
+</tr>
+<tr class="row-odd"><td>IfLoc</td>
+<td>“(file):(line):(col)”</td>
+<td>SourceLocation</td>
+<td>The location of the if directive.</td>
+</tr>
+</tbody>
+</table>
+<p>Example::</p>
+<div class="highlight-python"><div class="highlight"><pre><span></span>- Callback: Endif
+  Loc: "D:/Clang/llvm/tools/clang/tools/extra/test/pp-trace/pp-trace-macro.cpp:10:2"
+  IfLoc: "D:/Clang/llvm/tools/clang/tools/extra/test/pp-trace/pp-trace-macro.cpp:8:2"
+</pre></div>
+</div>
+</div>
+</div>
+</div>
+<div class="section" id="building-pp-trace">
+<h2>Building pp-trace<a class="headerlink" href="#building-pp-trace" title="Permalink to this headline">¶</a></h2>
+<p>To build from source:</p>
+<ol class="arabic simple">
+<li>Read <a class="reference external" href="http://llvm.org/docs/GettingStarted.html">Getting Started with the LLVM System</a> and <a class="reference external" href="http://clang.llvm.org/docs/ClangTools.html">Clang Tools
+Documentation</a> for information on getting sources for LLVM, Clang, and
+Clang Extra Tools.</li>
+<li><a class="reference external" href="http://llvm.org/docs/GettingStarted.html">Getting Started with the LLVM System</a> and <a class="reference external" href="http://llvm.org/docs/CMake.html">Building LLVM with CMake</a> give
+directions for how to build. With sources all checked out into the
+right place the LLVM build will build Clang Extra Tools and their
+dependencies automatically.<ul>
+<li>If using CMake, you can also use the <tt class="docutils literal"><span class="pre">pp-trace</span></tt> target to build
+just the pp-trace tool and its dependencies.</li>
+</ul>
+</li>
+</ol>
+</div>
+</div>
+
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        «  <a href="ModularizeUsage.html">Modularize Usage</a>
+          ::  
+        <a class="uplink" href="index.html">Contents</a>
+          ::  
+        <a href="clang-rename.html">Clang-Rename</a>  Â»
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/search.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/search.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/search.html (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/search.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,90 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>Search — Extra Clang Tools 5 documentation</title>
+    
+    <link rel="stylesheet" href="_static/haiku.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    './',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/underscore.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
+    <script type="text/javascript" src="_static/searchtools.js"></script>
+    <link rel="top" title="Extra Clang Tools 5 documentation" href="index.html" />
+  <script type="text/javascript">
+    jQuery(function() { Search.loadIndex("searchindex.js"); });
+  </script>
+  
+  <script type="text/javascript" id="searchindexloader"></script>
+   
+
+  </head>
+  <body>
+      <div class="header"><h1 class="heading"><a href="index.html">
+          <span>Extra Clang Tools 5 documentation</span></a></h1>
+        <h2 class="heading"><span>Search</span></h2>
+      </div>
+      <div class="topnav">
+      
+        <p>
+        <a class="uplink" href="index.html">Contents</a>
+        </p>
+
+      </div>
+      <div class="content">
+        
+        
+  <h1 id="search-documentation">Search</h1>
+  <div id="fallback" class="admonition warning">
+  <script type="text/javascript">$('#fallback').hide();</script>
+  <p>
+    Please activate JavaScript to enable the search
+    functionality.
+  </p>
+  </div>
+  <p>
+    From here you can search these documents. Enter your search
+    words into the box below and click "search". Note that the search
+    function will automatically search for all of the words. Pages
+    containing fewer words won't appear in the result list.
+  </p>
+  <form action="" method="get">
+    <input type="text" name="q" value="" />
+    <input type="submit" value="search" />
+    <span id="search-progress" style="padding-left: 10px"></span>
+  </form>
+  
+  <div id="search-results">
+  
+  </div>
+
+      </div>
+      <div class="bottomnav">
+      
+        <p>
+        <a class="uplink" href="index.html">Contents</a>
+        </p>
+
+      </div>
+
+    <div class="footer">
+        © Copyright 2007-2017, The Clang Team.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/searchindex.js
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/searchindex.js?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/searchindex.js (added)
+++ www-releases/trunk/5.0.0/tools/clang/tools/extra/docs/searchindex.js Thu Sep  7 10:47:16 2017
@@ -0,0 +1 @@
+Search.setIndex({envversion:42,terms:{poorli:28,prefix:[42,22,12,83,142,9,120,188,105],forget:[146,96,123],whose:17,integer_typ:42,"const":[10,145],swap:[177,79,70],under:[28,22,120],preprocess:28,spec:136,scoped_lock:34,idomat:58,everi:[0,22,120,185,40,160],risk:[183,29,161],"void":[43,8,19,31,70,10,105,81,119,39,146,60,178,158,54,55,79,159],clangtidymodul:120,clangtidytest:120,isangl:163,affect:[77,120,6,161],strcmpi:26,myptrtyp:15,vector:[161,146,0,35,186,99,2,79,132,176],verif:115,ast_match:120,initialis:97,unordered_multimap:[146,0],direct:[163,0,22,12,50,120,108,124,28,60],second:[17,49,146,2],aggreg:8,registercheck:120,even:[13,146,38,0,120],asin:179,hide:[54,35,162,16,64],neg:[183,13,120],make_shar:98,importloc:163,elimin:[163,147],manipul:35,submodule1:28,submodule2:28,never:[85,55,114],here:[123,2,5,58,62,106,161,17,162,19,170,120,28,81,35,126,24,142,88,93,187,189,172],"65536ll":40,undef:163,studio:162,path:[60,163,22,6,83,120,109,28,24],interpret:183,precis:[40,146,120,96],bitmask:88,portabl:48,map_warn:163,clangtidymain:120,characteristickind:163,strai:17,printf:55,txt:28,unit:[22,105,87,120,185,6,133],highli:6,describ:[35,163,83,0,120],would:[161,162,0,22,65,184,165,138,50,39,51,99,178,121,122,25,5,57,120],my_nul:82,call:[0,161,138,26,51,98,99,54,55,3,141,6,60,146,10,150,143,156,67,17,162,69,113,70,184,118,80,119,171,120,121,122,124,177,22,81,34,187,35,128,37,39,179,86,163,90],typo:[43,49,22],recommend:[183,145,120,25,59,6,109],get_ptr:124,type:[33,35,145,53,121,57,6],tell:83,relat:[10,120],warn:[43,94,97,52,2,54,56,26,183,8,184,5,105,153,60,158,16,17,51,163,166,167,117,73,80,76,146,120,122,50,28,176,177,81,127,35,179,123,96,145,39,87,185,88,131,132,90],exce:[106,96],macrodirect:163,loss:[40,96],explicitconstructorcheck:120,hold:60,must:[7,163,83,152,120,52],constrefer:184,word:0,setup:[120,6],work:[7,8,35,83,64,120,25,6,185],wors:13,verbos:99,root:[83,28,22],could:[162,156,0,167,49,99,53,54,131,5],overrid:119,phabric:120,dtor:120,warnonsizeofconst:8,give:[183,163,28,6,88],indic:[17,131],impair:0,want:[8,22,127,96,146,120,2,6,60],unsign:[42,163,19,70,123,120,88],end:[17,34,73,39,52,40,83,79],hoc:163,quot:[163,24],str2:[183,105],str1:183,how:[60,25,16,6,120],verifi:[10,115,94,120],config:120,collaps:39,dialect:16,open64:[35,165],openat:[35,165],after:[84,177,186,35,123,80,39,129,107,91,79,6],stdalign:160,befor:[60,29,43,146,160,19,70,34,116,126,120,166,99,6,2,15,89,28,59],wrong:[7,26,60,53,131,64],const_iter:0,attempt:[55,17,120,132,118],greet:146,exclud:[83,28],alias:35,maintain:[173,136,0],environ:22,enter:[34,163],exclus:146,worst:49,lambda:[35,79],order:[30,79,156],decl:[79,88],oper:[145,29,35,21,153],behav:[28,0],softwar:8,diagnos:[178,35,182,120,88,173],over:[161,49,120],becaus:[17,8,69,178,128,121,117,83,138,39,179,87,28,53,88,54,78,124,41,99],privileg:[57,165],systemheaderpragma:163,"37l":99,fit:79,fix:[43,136,137,48,49,50,6,159,9,155,16,67,162,120,28,22,81,35,83,182,39,129,87,185,102,131,188,132],better:[10,54,120,6,109],hidden:[8,120,6,60],my_param:0,easier:[120,173,25,5,6,90],them:[42,43,162,0,22,126,35,21,83,183,51,107,120,88,159,124,147],thei:[51,43,162,22,122,34,49,117,83,138,80,146,107,58,88,77,28],expensivetocopi:51,safe:[139,128,69,79,53],trail:[9,12,105,43,142],my_ptr:[98,113],"break":[25,120,160],interrupt:25,nline:24,stdarg:160,ipsum:146,accommod:16,each:[132,161,51,163,81,83,120,122,28],debug:[163,117],side:79,mean:[60,17,146,0,126,127,49,39,51,120,158,122,151,176],cppguid:[29,135,19,42,95,12,102,142,14,154,130],cppcoreguidelin:35,forgot:[16,88],map_error:163,processlin:17,extract:[162,83],newli:161,priu64:123,situat:[161,146,99,0,60],free:[91,132,31,93],standard:[45,0,48,60,141,56,58,146,62,10,152,115,118,89,120,25,33,35,145,39,160,93],identifierinfo:163,whitelisttyp:14,unintention:35,warnonlogicalnotcomparison:26,angl:163,s_other:146,filter:120,isn:[146,132,144],fd_cloexec:65,regress:99,subtl:8,confus:[54,163],rand:153,rang:[40,17,70,79,88],getloc:120,system:[60,163,120,28,118],restrict:[48,120],instruct:[162,120],take_ownership_fn:124,"__builtin_strcasecmp":26,rewritten:167,top:[77,163,83,22],sometim:39,master:[128,69,156,119,21,38,50,139,63,129,155,53,151],too:[167,6],memcmp:[8,26],shortstatementlin:126,chainedconditionalassign:147,my_point:0,namespac:[47,35,56,83,6],"0x8000":8,wchar:160,technic:5,reinterpret_cast:[63,151,0],target:[35,163,120,28],keyword:[15,8,82,28,126],provid:[132,162,136,22,155,35,50,16,182,28,120],expr:[44,79],"0xabcd":70,lvalu:[54,39,146,60],tree:[120,22],zero:[26,43,8,147,0,70,167,105,96,50,183,60,180,173,122,97,16,177],project:[61,185,22,6,120],matter:39,wchar_t:58,function_declarations_and_definit:154,prone:[173,146,91],uniniti:5,behavior:[146,34,35,13,117,38,39,120,3,56],close:19,modern:[11,35,23,18,54,100,79],elem:161,raw:79,dedupl:120,seed:153,increment:[145,17,22],seen:[163,185],incompat:8,unnecessarycopy2:184,unnecessarycopy1:184,latter:[40,83,28,101],weak_ptr:146,deref:79,simplifi:[183,8,79,16],functiontakingint:16,though:[173,146,120,0],usernam:95,glob:120,object:[29,156,119,35,4,84,152,145,89,143,53,3,79,132],lexic:28,regular:[163,120,83],operator_overload:135,phase:123,everyth:163,don:[120,83,160],pointe:[8,178,0],doc:[134,120,19],flow:[25,146,79],doe:[17,146,178,22,10,43,83,118,115,120,156,173,176,5,101,28,93],declar:[29,45,12,105,38,79,145,23,89,35],parentfil:163,enable_if_t:54,unchang:[124,24,120],pragma:163,opposit:147,whitelist:14,random:[35,177,79,153],constcast:38,syntax:[76,162,163,83],rst:120,f_textless:182,bail:120,involv:[141,147],despit:[58,121],fill_valu:70,explain:[161,146,120],configur:[188,132],explicit_constructor:29,num_of_end_cal:161,rich:22,folder:162,useassign:97,stop:28,rename_check:120,report:[10,6,16,102,28,120],smallvectorimpl:163,ratiothreshold:123,baz:[167,171],method:[67,162,183,120,158,127,73,50,51,184,86,99,52,130,122,187,90],twice:0,bad:77,tupletyp:[35,99],ban:151,bah:91,strncmp:26,ifdef:28,datatyp:115,"0x42":107,result:[0,26,99,3,56,143,59,146,147,186,153,16,17,163,120,173,176,178,31,81,35,96,88,40],respons:0,fail:[163,144],best:[120,60],awar:[54,161,120,2],checkfunctioncal:117,databas:[120,6],posix_memalign:132,invalu:120,unordered_set:[166,146,0],warnonlargelength:177,accord:[46,16],extend:[35,6],newnam:6,auto_ptr:[124,99],constexpr:[105,156],preprocessor:[123,163,120,28,59],c21:21,howev:[29,0,49,39,120,6],against:[132,120,28],includeinextern:28,filechangereason:163,logic:[8,26],fno:60,com:[128,69,156,119,21,38,50,139,63,129,155,53,151],col:163,widen:79,foobar:136,push_back:[166,161,35,99,186],guid:[42,95,12,14,154,108],assum:[17,146,69,128,83,120,54,60],duplic:[171,28],my_contain:0,three:[161,81,24,88],been:[161,146,163,35,49,39,129,174,176],accumul:40,trigger:[8,126,166,12,146,124,58],valu:[62,43,8,112,19,32,70,26,183,54,88,40,186,79,59],interest:[162,60],basic:120,quickli:83,suppress:[54,110,21,120],argument:[69,70,35,165,83,118,57,6,144],"catch":[112,79,32],emploi:[122,51],ident:[173,154,120],properti:153,aim:6,calcul:[96,59],depr:160,anchor:120,printabl:24,my_second_point:0,kernel32:163,sting:58,need:[44,22,49,83,50,120,2,173,28],sever:[163,120],dcl58:35,codingstandard:[134,19],incorrectli:123,perform:[161,10,35,50,60,2,151,79,6],suggest:[132,29,17,51,42,184,81,43,50,39,120,102,25,131,6],make:35,transpar:79,complex:[161,160,120,149],complet:[162,136,28,59],fragil:[128,69,53],raii:[79,132],hand:[146,88],action:6,rais:[161,17],ownership:124,handleclass:186,"2137ll":121,"_mbsnicmp_l":26,thu:[183,161,120,2],singlelin:24,pthread_mutex_t:62,client:[163,162,124],thi:[128,45,46,96,50,139,52,53,54,57,56,141,6,59,103,145,62,39,10,11,92,13,100,149,151,152,153,143,156,65,155,69,108,19,70,21,71,118,80,119,23,121,170,83,79,29,30,178,33,35,36,38,142,84,63,129,102,40,89,131,132,93],programm:[17,8,69,177,128,13,123,76,54,16],unordered_map:[146,0],left:[146,49,50,39,60,24],identifi:[161,79,6],just:[161,163,58,28,120],iso646:160,explicit_make_pair:144,c_externcsystem:163,yet:[78,146,16],languag:[162,69,22,128,83,50,120,60],easi:[146,120,53],opencl:163,had:128,builtin:[0,50],todo_com:95,reiniti:79,els:[10,146,79,126],save:6,opt:120,applic:[40,147,181,24,182],advis:[25,21,120],initializeobject:8,preserv:173,"_mbsnbicmp_l":26,background:79,ineffici:[35,79],measur:28,specif:[17,163,0,22,35,83,114,120,188,6,136],filenam:[163,165,12,142,9,120,105,6],manual:[61,22,49,60,132,176],rvalu:[60,39,146,99,104],choic:[120,88],cplusplu:120,unnecessari:[166,35,79,99],underli:178,right:[43,69,31,12,128,99,88,30],deal:16,negat:[147,16],clang_include_fixer_maximum_suggested_head:22,intern:[105,163],signedtypeprefix:42,make_pair:[35,99,144],parameter_nam:43,registerppcallback:120,x_impl:163,track:107,pmk_messag:163,condit:[17,146,163,114,0,126,172,169,117,16,88,28,147],foo:[161,43,104,22,70,184,167,105,143,138,183,39,171,6,108,136,25,185,187,16,60],unordered_multiset:[146,0],core:[128,69,156,119,21,38,50,139,63,129,120,53,151,132,155],plu:163,promot:79,nothrow:152,meyer:[54,99],plug:120,obj:161,slightli:[167,120],surround:59,unsav:22,"0abc":107,produc:[146,31,13,117,153,173,124,28],sometyp:28,"_strnicmp_l":26,"float":[40,121,13,79,33],encod:107,bound:6,down:105,opportun:78,bool:[29,43,79],storag:50,suffici:[94,120],support:[22,35,120,6,2,78,188,28,99],includetok:163,transform:[161,27,136,0,82,1,171,99,18,173,147,25,132,60],avail:[22,86,120,108,2,188,6],reli:[128,69,28],editor:[162,6],overhead:167,indentwidth:120,analysi:[161,120,22],head:163,form:[43,163,92,160,83,24,28,120],offer:[48,6,70],forc:[120,6],styleguid:[29,135,19,42,95,12,102,142,14,154,130],"true":[29,43,163,136,39,180,161,1,107,88,16,147],reset:79,removestar:0,arrays:8,maximum:[22,123],until:[28,22,126],assertmacro:117,inaccur:79,rerun:22,unrel:[63,151,155],emit:[146,94,22,35,80,120],featur:[35,162,6,123],semicolon:[186,14,79,132],wctype:160,diagnost:[162,120,129],readnexttoken:17,exist:[22,35,83,6,131,175,28,120],check:[42,128,45,46,47,48,50,139,135,83,53,112,141,56,143,144,103,145,10,11,92,100,149,4,111,152,153,14,155,156,95,130,66,68,69,108,70,20,72,21,71,118,80,23,121,125,151,29,30,157,32,33,35,36,38,142,84,63,129,74,89,102,132],readonli:60,awesomefunctionnamescheck:120,when:[43,136,0,161,49,26,184,52,5,59,60,8,10,151,105,64,16,67,17,163,167,21,119,146,23,120,173,122,124,177,178,22,34,99,96,39,185,88,93],refactor:[49,16,6,185],test:[34,177,6,123],shrink:79,node:120,matur:162,extern:[8,105,49,83,75,120,156,28],benefici:60,shrink_to_fit:86,intent:[29,17,8,96,146,90],consid:[29,161,146,177,0,67,10,127,35,21,70,123,80,39,166,99,54,186,28],lorem:146,receiv:[8,120,22,2],faster:[183,79],furthermor:[146,132,90],interval:88,cmath:179,fact:[17,176],time:[0,22,105,160,120,123,172,6,88,28,90],push:163,chain:147,"2line3":123,consum:146,known:[13,79],customari:70,row:28,decid:[54,120],depend:[163,180,83,183,16,28,120],tokennam:163,debugtyp:163,intermedi:83,vec:[161,2],x03:107,compile_command:[120,22],sourc:[110,162,163,0,22,165,83,24,136,28,120],string:[35,65,6],enable_if:54,wunus:159,level:[161,163,35,106,83,120,77],did:[127,143,158],iter:[161,146,52,79],item:[54,99],redeclar:185,team:35,quick:162,lexical_cast:[0,121],round:79,increment_two:169,discover:120,sign:42,to_wstr:121,unprotect:34,appear:[161,160,120,176],current:[146,166,160,96,60,156,6,120],is_speci:54,strtol:10,deriv:[60,163,119,155,158,99],gener:[136,0,50,60,54,6,61,153,16,69,80,120,123,22,128,83,129,185,102,131,91,188,90],someopt:120,satisfi:0,explicitli:[138,11,21,96,26,98,83,113,78,144,100,28,99],modif:[124,56,35,5],address:[120,22],along:[82,120],optionmap:120,wait:22,ret_ptr:82,queue:0,def:107,extrem:120,forward_list:[146,0],semant:[161,162,22,146,60,173],regardless:[17,163,188],extra:83,circumv:161,modul:[61,27,35,83,120,18],evaluat:172,prefer:[173,73],visibl:[87,16],instal:6,c145:119,regex:[24,120],memori:[35,70],univers:99,"_mbscmp":26,value2:163,value1:163,criteria:161,scope:[34,93],unsaf:[80,151],peopl:5,ctype:160,visual:[162,24,22],tandem:22,templat:[54,39,105,79,144],examin:120,easiest:176,array_of_str:127,strnicmp:26,emplace_back:[166,35,146,99],unsignedtypeprefix:42,uniqu:79,descriptor:[57,65],can:[94,0,49,97,96,120,54,56,58,59,60,8,104,186,5,105,160,64,136,153,107,6,156,159,16,155,110,161,17,162,163,151,166,167,21,117,73,80,119,146,99,24,124,28,176,31,22,35,83,183,63,129,185,40,131,92,132,90],imped:24,purpos:[120,6],predict:153,backslash:[22,6],critic:[50,2],checkthrowtemporari:58,occur:[8,146],alwai:[7,146,180,64,39,107,120,173,55,28,185],multipl:[105,79,6,149],otherwis:[43,44,163,0,96,160,124],arrayindex:129,write:[128,24,58,176],conditionvalu:163,global_mutex:34,map:[61,146,0,166,83,173,176],product:162,"_wcsicmp":26,makesmartptrfunct:[98,113],uint:[42,6],clang:83,mai:[123,60,56,59,8,106,64,108,16,161,163,166,146,89,120,50,124,180,35,99,39,90],shuffl:[35,79],underscor:[43,28],data:[163,165,166,105,150,53,5],strcasecmp:26,newlin:[24,83],double_express:13,inttyp:160,stdio:160,divid:8,explicit:[35,21],int_arrai:132,inform:[66,161,68,112,22,31,20,47,35,157,4,111,6,74,72,163,60,125,32,28,120],"switch":90,preced:[120,83],combin:[162,83],callabl:29,thread_loc:89,"_memicmp_l":26,file1:120,cstr:79,lsp:162,size_t:[8,28,70],still:[22,21,83,186,156,16],pointer:[118,70],dynam:[35,136],entiti:[8,28],group:120,polici:162,yaml:[163,22,6,120],window:60,mail:162,main:[89,163,120],non:[105,117,83,4,14,96,156,54,50,79,93],within:[161,22,107,55,28,93],matcher:120,initi:[161,30,137,0,35,2,123,37,170,97,171,156,88,40,89,50,79],therebi:39,half:88,now:[60,31,12,120,35,55,105,99],term:83,searchpath:163,name:[70,35,83,142,129,132,108,6,144],didn:120,separ:[67,163,186,166,105,82,83,26,9,14,99,117,142,12,132,120],minconfid:79,x12:107,confid:161,compil:[60,94,120,6,21,83,123,39,172,16,54,78,124,41,176],domain:[57,165],replac:[60,42,161,104,31,70,35,160,98,24,113,121,172,79,6,59],individu:146,continu:[75,25,28],ensur:[103,51,22,120,122,59],significantli:[106,64],warnonsizeofcomparetoconst:8,operand:8,happen:[146,81,26,119,6,40,185,58,60],shown:[161,163,120,22],"3rd":124,space:[83,19,64],profil:[128,69,156,21,38,50,139,63,129,120,53,151,155],correct:[103,134,69,22,46,64,183,185,16],do_incr:169,state:[39,163,60,50],migrat:124,string_view:186,org:[134,189,163,120,19],"byte":[8,107,70],care:[120,60],unbrac:169,wai:[60,17,162,0,22,167,64,171,24,2,114,6,120],badli:144,recov:163,thing:2,place:[43,146,92,96,123,39,83,2,16],createinsert:120,think:5,frequent:[120,0],first:[161,17,8,0,22,169,96,146,107,52,2,185,151,28,120],origin:[173,161,154,0],directli:[161,162,147,0,185,6,60],get_cwd:60,onc:[17,79,6],yourself:120,stringref:[163,120],submit:6,oppos:6,getfoo:16,open:[35,109],lexicograph:183,size:[35,50],given:[8,163,22,31,83,130,147],const_cast:[151,38,0],convent:[120,185],matcheddecl:120,caught:[58,22],moduleidpath:163,silenc:146,howtosetuptoolingforllvm:120,conveni:120,friend:67,warnonsizeofthi:8,especi:[119,120,0],checkimplicitcast:96,copi:[29,161,44,62,119,180,35,21,170,152,86,60,54,124,79],specifi:[42,136,0,26,51,98,60,6,144,94,106,113,162,163,19,170,120,123,124,28,177,83,129,160,132,99],"short":[60,42,94,88],enclos:[163,83,28],mostli:120,holder:[163,83],than:[161,183,8,19,22,35,160,26,136,86,120,88,54,178,0,177,60],wide:120,const_reverse_iter:0,f_t:137,posix:[35,56,62],were:[161,70,160,138,63,155,151,120],posit:[110,34,105,117,50,183,133,120],nuisanc:22,pre:16,fork:[57,165],sai:28,ani:[50,52,54,6,144,146,16,161,17,163,21,120,122,28,22,35,82,24,182,131,90,99],style:[134,42,45,0,95,98,60,124,12,9,14,154,113,51,69,108,170,120,151,35,129,102,188,132,99],mislead:[119,35,79,178],bitwis:88,srcmgr:163,destroi:[80,186],matchresult:120,note:83,ideal:22,take:[60,29,162,73,50,39,153,146,16,28,120],clangtidyopt:120,noth:[54,107],begin:[161,0,83,64,89,73,2,40],sure:[58,22],trace:61,normal:[83,49,28,22],multipli:8,clearer:90,pair:6,later:[22,182],quantiti:147,runtim:[35,70],pattern:[13,124,120,146,70],show:[183,120,22,90],cheap:60,hack:120,threshold:[177,123],corner:120,onli:[17,8,69,31,12,21,169,117,83,186,146,96,53,88,131,151,79,6,160],slow:13,ratio:123,activ:[163,124],behind:16,wcscmp:26,fenv:160,analyz:[17,146,120],startswith:120,fileentri:163,variou:[106,88],get:[69,70,128,83,53,6],largelengththreshold:177,fubo:6,cannot:[173,161,128,69,41],"_mbsnicmp":26,gen:162,requir:[161,22,31,35,19,173,99,15,101,28,120],analyzetemporarydtor:120,find_all_symbols_db:22,fixithint:120,nullptr:79,yield:8,through:[161,8,163,170,119,120,40,60],where:[44,0,60,181,175,13,152,107,155,16,161,21,186,89,120,173,122,25,124,176,31,33,35,185,88],int_ptr:[124,178],detect:[43,146,58,10,180,35,169,96,26,166,16,88,186,188,28],review:[162,120],enumer:[163,88],enough:[99,58,120],volatil:120,between:[8,21,123,183,88,16],"import":[50,163,64],across:[57,165],headerfileextens:[9,12,105,142],assumpt:185,parent:[120,22],nestingthreshold:[35,106],typedef:[178,137,115,15,0,28],bitset:127,uncondition:169,come:[124,88],"__builtin_memcmp":26,stdbool:160,clj:31,copyabl:[81,79,4],quiet:120,inconsist:79,mani:[162,35,146,120,5,188,60],improt:160,color:162,overview:120,unittest:120,pop:163,colon:83,"_memicmp":26,needlessli:[35,171],camelback:188,mark:[29,44,136,161,92,36,83,133,41],macroarg:163,wliter:120,derefer:[161,62,79],suscept:58,trailingspac:24,enterfil:163,llvmtidymodul:120,vimrc:22,dianost:163,those:[162,0,83,99,54,28,155],"case":[43,0,49,123,99,54,58,144,8,184,105,64,107,155,16,161,17,163,70,115,102,146,24,173,28,81,96,87,185,88,188,120],lstrcmpi:26,trick:86,invok:[51,22,184,50,122,28],invoc:[51,163,120,28],advantag:5,stdout:[163,120],metric:106,henc:120,destin:70,uncom:83,ascii:[24,70],memicmp:26,develop:[162,178,146,120,5,6],same:[44,163,0,160,2,37,83,64,146,6,120,88,158,131,138,28,93],binari:[120,31,22,59],html:[134,29,135,19,42,95,12,102,142,14,154,120,130],hxx:[9,12,105,142],closest:120,nest:[17,35,28,106],assist:[162,83,28],driver:83,std_arrai:127,level2b:163,appropri:[110,147,120,132,16,136],supportedformat:123,macro:[35,79,117],get_ref:124,without:[94,0,165,95,12,49,50,9,120,57,142,105,16,136],argument2:163,argument1:163,dereferenc:[146,94],execut:[146,22,169,118,89,120],wmemcmp:26,rest:120,aspect:[120,22],speed:[180,99,60],dynamic_cast:[155,0],struct:[29,8,136,184,127,105,21,97,80,119,146,133,143,158,147,78,5,131,132,60],hint:[132,185,120,16,136],filecheck:120,except:[146,136,127,35,152,89,99,58,120],param:79,setvalu:51,blob:[128,69,156,119,21,38,50,139,63,129,155,53,151],pow:88,vulner:8,earli:[183,25,6],hover:162,around:[35,83],c_user:163,read:[60,69,31,128,64,120,173,163,28,99],exaclti:16,dark:120,moo:91,world:[39,8,146,16],part:[139,161,162,69,53,128,155,35,21,38,64,84,63,129,120,156,54,50,151,92,60],oldnam:6,stranger:146,integ:[8,177,19,70,10,13,96,129,121,79],server:162,alexandrescu:58,either:[17,163,22,21,83,129,6,28,120],output:[61,146,83,120,55,28,24],strcmp:26,almostbitmask:88,consir:67,deduct:39,sync_with_stdio:1,vectorlikeclass:166,intend:[70,127,183,119,55,143,144],"_wcsicmp_l":26,definit:[45,19,21,50,79,6],protocol:162,exit:[17,163,25,120],complic:21,refer:[112,32,35,145,119,53,6],power:120,inspect:[131,120],llvmnewmod:163,broken:124,found:[163,6,120,2,131,28],"throw":[152,112,79,32,89],comparison:[183,29,147,16,26],warningnam:163,greatli:167,myfunctor:173,stand:107,wold:102,processor:118,effici:[67,167,172,90,6,99],wcscasecmp:26,your:[83,6,64],unconvent:79,loc:163,log:161,area:70,aren:[124,50],overwrit:6,warnonallautocopi:122,strict:[5,120],interfac:6,low:120,setfoo:16,tupl:[35,99],regard:88,functor:79,longer:[161,160,16,2],algorithm:[153,52,79],possibl:[161,8,173,0,70,166,151,35,39,76,146,120,54,25,5,90],"default":[21,83,50,129,6,142,132],sock_cloexec:[35,57],make_uniqu:113,unusu:76,stateloc:163,embed:79,creat:35,certain:[161,105,120],bugtrack:6,deep:176,functiondecl:120,file:[105,62,17,163,31,22,165,12,49,83,142,9,129,6,120,57,185,35,28,24],level3a:28,fill:[177,70],incorrect:79,again:146,makemytupl:99,googl:[47,35,129],o_cloexec:[35,109,165],prepend:[83,188,28,6,120],idiom:60,valid:[17,44,10,26,107,99,65,120],ignor:[7,43,8,163,161,34,6,106,83,16,105,28,120],you:[17,49,163,22,179,127,143,21,96,83,64,162,28,108,2,158,167,6,120],genuin:153,sequenc:[153,146,163],symbol:[160,6],multidimension:94,reduc:[34,25,86,97],assert:[35,79,125],directori:83,descript:[54,163,120,83],macronametok:163,to_str:[110,121],potenti:[146,22,70,105,168,99,131,35,16],includestyl:[51,170,129,98,60,113,124],cpp:[35,6],escap:79,dst:8,represent:[13,163],all:[44,45,0,128,50,139,27,133,53,163,141,6,146,186,152,154,143,108,16,155,69,18,115,21,89,120,151,28,22,81,127,35,126,96,183,63,129,160,88,131,38,52],skeleton:120,illustr:[25,60],selinux:[57,165],exitfil:163,scc:163,scalar:163,abil:120,follow:[0,26,51,60,120,54,6,8,147,92,166,154,108,16,110,161,162,163,19,70,115,21,75,76,146,24,173,122,25,123,151,28,178,22,83,182,88,40,132,90],parameterthreshold:[35,106],ptr:[178,98,79,113,161],comparearrai:8,init:[35,68],program:[22,155,49,120,63,6,151,28,24],skip:[115,163,82],introduc:[163,136,0,35,24,113,173,124,28],"__builtin_strncasecmp":26,liter:[110,8,69,177,70,35,44,79],fals:[110,161,44,163,136,120,34,180,105,117,50,1,133,147,16,99],subcommand:6,shortnamespacelin:19,mpi:79,util:[51,124,60],mechan:28,fall:188,veri:[34,158,162,6],condition:146,induct:33,md_visibl:163,list:[60,146,160,137,142,12,105,117,83,50,183,9,79,14,132,186,123,35,6,59],stderr:[120,6],googletidymodul:120,"_wcsnicmp":26,sync:185,"_stricmp":26,past:180,rate:[105,120],pass:[146,69,62,81,128,83,39,107,54,79],further:120,deleg:[37,143],abc:[107,99],sub:146,diag:[163,120],section:[146,163,119,95,12,149,39,160],ast:[120,22],abl:[35,146,99,188],overload:[66,103,135,35,145,121,79],delet:[66,21],version:[185,120,6,50],headerfilt:120,"public":[105,16,138,60,54,41,120],full:[105,120,83],themselv:156,vtabl:119,behaviour:[161,121,49,59],shouldn:163,staticfunctiona:159,variad:45,dequ:[166,146,99,0],modifi:[60,161,147,56,38,120,124,28,99],functiontakingbool:16,search:[61,163,120,22],eras:79,indetermin:39,popen:118,prior:6,pick:22,codebas:160,via:[120,99,28,50],warrai:129,readabl:35,registermatch:120,deprec:79,inappropri:52,heurist:[34,122,51],decrement:145,dangl:[80,79],select:[163,24,22],hexadecim:[107,24],x42:107,member_string_refer:80,distinct:120,two:[146,22,70,2,123,183,24,53,88,120],coverag:[61,83],taken:[43,185],mpi_send:[115,94],more:[161,47,68,99,5,6,60,146,92,4,111,157,66,67,17,162,112,19,20,167,72,172,120,125,78,28,32,22,35,86,160,74,188,90],desir:[22,70,12,142,9,105,6],randomfun:2,canon:34,mozilla:120,add_new_check:120,flag:[44,45,50,139,99,53,57,141,58,60,146,62,10,12,106,152,155,156,161,51,69,165,21,118,119,89,120,170,151,33,35,128,38,145,63,129,88,40,93],particular:[146,120,22],webkit:120,multiset:[146,0],document:[162,163,0,189,35,120,28],"_popen":118,none:120,cloexec:35,outlin:161,remain:[57,16,165],paragraph:24,"_mbsnbcmp":26,someobject:0,prompt:22,share:79,accept:6,minimum:[161,123],explor:120,whichev:146,cours:115,goal:162,secur:[120,165],rather:[132,162,120,178],anoth:[22,128,37,83,88,131,188,90],clangtidycheck:120,simpl:31,needl:67,ios_bas:1,resourc:132,referenc:[60,28],reflect:17,buffer:[79,6],o_trunc:109,associ:[161,99,73,120],circumst:28,github:[42,135,95,50,139,53,102,12,14,154,155,156,69,19,21,119,151,29,128,38,142,63,129,130],postfix:[145,35],check_clang_tidi:120,caus:[146,155,0,166,151,35,49,117,63,24,40,56,105,28,99],callback:[28,22],hicpp:35,help:[162,6,64,120,25,16,185],soon:186,pseudorandom:153,allowconditionalintegercast:16,scott:[54,99],hierarchi:[162,28],foo1:[6,64],foo2:[6,64],paramet:[35,14],critical_sect:34,get_valu:124,mpi_short:94,spacesbeforecom:19,might:[162,163,105,83,6,40,78,5,28,99],alter:17,fool:8,wouldn:99,good:[7,162,83,153,120,88,77],"return":[7,161,8,183,31,29,34,127,35,81,96,26,145,186,153,107,52,40,124,79,105],pollut:[12,108],framework:[34,120],compound:[34,35,106],ninja:[120,22],funciton:179,bigger:[177,96],tuplemakefunct:[35,99],eventu:[162,146],misplac:[79,143],int_sz:8,unlik:[34,29],maxconcatenatedtoken:123,easili:[132,8,80,185,6,120],token:[17,163,123],alreadi:[162,104,22,126,60,120],fulli:[132,6],unicod:58,truncat:[40,79,70],hard:31,idea:[120,6],procedur:75,heavi:[34,106],linkag:105,member1:163,expect:[146,106,64,39,107,40,16],member2:163,longjmp:141,beyond:50,safeti:[69,35,128,38,50,139,63,129,155,53,151],signitur:158,print:[161,120,6],occurr:[146,107,16,2],qualifi:[51,22,178,184,87,6,122,132],trucat:40,emplac:[35,79],o_wronli:109,suspici:35,fdelai:60,reason:[39,17,79],base:[114,37,50,119,155,158,170,79,6],somedecl:28,put:[17,96,83,77,6,120],thrown:89,mymoduleanchorsourc:120,launch:162,omit:64,conversionsfrombool:16,perhap:28,nonfil:163,assign:[36,21,44,79,50],feed:24,major:[35,22],dont:119,obviou:24,prevent:[5,24],misc:[66,103,68,112,125,32,35,36,4,84,79,143],number:[8,163,19,22,126,10,95,13,106,117,183,34,153,88,123],placehold:120,lstrcmp:26,calloc:132,basic_string_view:186,done:[123,124,99,58,120],construct:[60,178,0,186,35,36,50,152,99,124,120],stdlib:[10,160],miss:[119,79,59],stage:[22,6],differ:[161,8,22,34,49,106,83,117,120,88,188,102,28,185],script:120,interact:120,conversionstobool:16,least:[96,50],header2:[83,28],header3:[83,28],header1:[83,28],header4:28,store:[124,120,6,93],adher:9,map_ignor:163,statement:35,relationship:[183,21],similarli:161,getter:162,pars:79,myclass:99,std:[0,138,1,98,99,2,54,56,101,146,104,150,186,153,107,113,110,67,51,163,164,166,167,73,80,120,121,173,124,177,31,81,127,35,179,183,39,129,40,91,132,60],kind:[161,146,163,166,2,188,90],grep:6,whenev:[90,163,22,88],stl:[127,44,99,73],remov:[161,17,160,136,0,81,35,49,181,96,97,87,52,120,137,147,187,99],riski:79,reus:22,str:[67,146,163,177,105,80,107,60,121,91],arrang:163,comput:8,"_mbsnbcmp_l":26,msc50:72,ppcallback:[163,120],narrow_cast:0,pik__pragma:163,dedic:161,"null":[17,115,82,118,88,79],unintend:70,built:[61,28,22,16,97],equival:[161,8,31,123,65,16],self:0,violat:[105,63,120,151,58,155],lit:120,also:[0,50,98,99,2,54,6,59,183,146,104,186,105,64,83,113,161,162,163,120,28,22,35,96,145,40,93,188,90],unintent:[29,49,5],build:[47,6],brace:35,buff:10,exec:[57,165],previou:[35,49,163,160],reach:[146,163,22],chart:110,setjmp:[141,160],mpi_comm_world:[115,94],most:[161,17,8,163,22,127,37,120,88,185],plan:6,qualifiednam:6,clear:[162,146,16],cover:[28,70],charsourcerang:163,usual:[124,60,58,176],microsoft:60,awesom:120,strncasecmp:26,addmatch:120,tri:[43,132,22,188],recoverypath:163,particularli:120,fine:[120,41],find:[42,135,137,95,26,1,98,2,3,58,59,7,8,104,85,105,9,107,143,108,159,110,17,21,113,70,168,117,73,80,121,79,177,31,34,127,35,37,142,183,148,102],clang_include_fixer_query_mod:22,ineffect:96,less:[173,178,105,99,0],solut:176,unus:[131,79],strictmod:[167,43,88],linethreshold:106,express:[33,13,152,129,55,141,151,79,59],useheaderfileextens:105,wcsncmp:26,someoption2:120,someoption1:120,llvmmoduletest:120,common:[8,177,0,165,96,26,183,107,24,88,123,6],relativepath:163,handlemacroexpandedidentifi:163,arr:161,set:[161,173,146,163,0,22,166,21,82,73,97,83,129,6,120,136,65,50,28,99],cond1:64,dump:120,cond2:64,see:[134,130,47,50,139,83,53,54,112,5,6,146,63,4,111,155,156,157,66,161,68,69,18,20,72,21,119,120,125,151,28,29,22,32,27,35,128,38,39,129,74,163,132],arg:[79,6],lower_cas:188,reserv:166,bark:91,horizont:24,someth:[55,25,136],smallest:13,nontrivi:128,subscript:129,experi:6,altern:[139,160,6],signatur:[103,162,94,46,158,77,90],bar2:6,syntact:64,numer:110,sole:21,disallow:178,solv:[17,16],level1b:163,both:[146,163,22,2,13,80,119,120,88,54,6],last:[128,146,126],sizethreshold:123,checkopt:120,context:[60,17,120,26],whole:128,load:[22,6],simpli:[17,8,16],smartpoint:[99,132],point:[33,121,40,131,79,6],instanti:[124,120,16],enumconst:88,header:[83,142],mistak:[8,177,70,35,26,183,107,123,5],becom:[0,49,97,51,98,133,57,101,59,147,113,65,159,67,162,164,19,165,73,75,76,24,78,109,29,179,39,91],static_cast:[110,147,0,1,155,151,16],due:[161,31,180,183,52,16,59],empti:[42,17,146,177,142,35,105,83,79,9,14,182,26,12],implicit:[29,79],va_arg:69,dmy_defin:[120,6],stdint:160,wcsicmp:26,reformat:35,nonexist:6,fire:99,buflen:8,pmk_warn:163,unnecessarili:13,gap:28,understand:[25,43,64],func:[10,158,161],funk:158,intergr:48,look:[17,162,147,22,34,168,37,75,24,54,91,28,120],noexcept:35,erron:[161,146],durat:50,"while":[161,17,8,0,22,126,167,75,6,124,16],matchfind:120,"_mbsnbicmp":26,match:[161,43,0,22,115,83,97,120,54,176,124,90],abov:[161,17,183,39,120,28],error:[8,163,177,22,10,180,83,123,146,58,173,124,28,120],"_strnicmp":26,anonym:[79,58,142],stricmp:26,loop:[79,17,146,35,33],subsect:146,real:[163,58,16,88],malloc:35,itself:[162,44,28,0,120],minim:[120,126],belong:[120,64],tgmath:160,shorter:101,octal:24,higher:[15,173,99],get_str:60,optim:[67,78,163],mytyp:173,piec:25,getvector:161,moment:162,temporari:[58,34,37,80,186,99,143,28,120],user:[132,61,44,0,22,161,115,127,35,21,37,50,82,136,58,2,40,60,170,6,120],stack:[132,0],lower:[161,57,165,26],lib:163,older:[160,50],parenthes:79,person:54,expens:[122,176,51,2],gsl:[129,0],propos:[16,26],cout:[161,146],obscur:0,"21l":99,detect_mismatch:163,getinfo:0,prvalu:60,realloc:[166,35,132],input:[163,83,6,40,28,120],finder:120,vendor:24,format:[61,162,0,22,35,120,28],valuesonli:60,bit:99,allowconditionalpointercast:16,es63:119,signal:160,collect:28,"boolean":[79,16],popular:6,encount:6,subhead:28,often:[13,178,58,185],creation:[98,37,113,177],some:[161,162,163,22,160,35,21,73,50,146,99,16,120,102,185,28,90],back:188,random_shuffl:[35,2],sizeof:[79,132,70],surpris:39,scale:6,per:120,typesuffix:42,substitut:120,mathemat:153,larg:[177,106,6,185],reproduc:6,addcheckfactori:120,stringcomparelikefunct:26,run:[15,173,153,99,6],unnecessarycopi:184,step:22,subtract:53,size_typ:90,manag:[35,132,22,60],block:[83,58,28],file2:120,storeopt:120,doubl:[147,179,13,96,97,94],unsequenc:79,linter:120,prevfid:163,imy_project:[120,6],gslheader:129,contributor:162,chang:[161,163,147,22,34,124,49,121,6,2,185,5,16,120],"__func__":[55,35],fopen:35,inclus:[163,28],span:[139,53],errno:160,question:146,mytupl:99,textual:83,custom:[136,22,115,35,99,120],includ:[65,10,35,165,83,142,9,129,57,79,6],forward:[35,79],cstylecast:151,properli:[5,59],m_foo:16,lint:120,pwd:22,atoi:10,link:[120,22],translat:[22,105,123,87,120,185,6,133],info:99,concaten:[79,123],consist:[17,185,28,64],confusingli:163,caller:39,warningsaserror:120,getint:8,highlight:162,readlin:17,similar:[22,82,120,102,158,124],constant:35,mypair:[98,113],retriev:8,parser:28,"_identical_":120,doesn:[0,160,34,127,21,6,121,124,28,99],repres:[123,163,28,88],"char":[70,10,105,80,186,79,132],cmake:[163,28,22,120],invalid:53,bracket:163,"_mbscmp_l":26,llvm:[35,129,6,74,79,189],libtool:[120,6],clang_include_fixer_jump_to_includ:22,mymodul:120,fancyfunct:55,ternari:147,reverse_iter:0,downcast:151,readwhitespac:17,hello:[39,8,24,146],prototyp:120,code:[45,136,0,48,49,97,96,120,2,141,56,58,60,183,8,62,137,39,10,165,106,64,152,16,161,17,162,163,19,70,118,76,146,99,24,173,25,50,124,28,29,178,22,33,34,35,123,38,182,145,63,160,40,89,188,93],partial:[143,120,28],queri:[8,120],pik_hashpragma:163,kmessag:8,pragmaintroducerkind:163,compact:120,privat:[60,7,138,83,133,54,41,93],"__builtin_strcmp":26,sensit:[57,165],elsewher:[161,2],safemod:173,aris:167,sent:22,priority_queu:0,infostruct:0,containerswithpushback:99,untouch:[173,60],implicitli:[110,29,105,26,28,93],relev:[95,12,119],clangtidycheckfactori:120,stddef:160,md_undefin:163,"try":[105,162,163,120,188],initializer_list:[29,0],pleas:[66,68,112,125,32,20,47,35,157,4,111,6,74,25,72,28],impli:[17,147],natur:120,odr:105,memset:35,"_header":28,jump:22,fold:79,leakag:57,download:35,click:163,append:[167,120,6,188],twine:79,makesmartptrfunctionhead:[98,113],mymoduleanchordestin:120,compar:[43,79],access:[156,139,63,155,53,151],experiment:186,deduc:[39,120,0,144],absolut:[120,83],len:162,bodi:[161,17,19,126,166,50,75,120,78,185],"0x800000":177,sfina:69,let:[120,22],orderedvalu:8,sinf:179,safer:[146,5,172],vertic:24,sinc:[29,0,161,166,60,124,132,160],pmk_error:163,convert:[10,29,155,79,70],convers:[10,29,121],larger:[120,31],cert:35,upper_cas:188,typic:[39,8,120,162,180],ifloc:163,warnonimplicitcomparison:26,constmethd:51,appli:[161,51,137,178,34,35,184,87,133,122,120],wil:40,disciplin:[128,69],inequ:183,dyn_cast:0,api:[61,101,120],reference_argu:14,moveconstructor:36,from:[0,49,52,55,6,146,105,106,186,108,158,16,17,162,156,114,167,102,80,24,121,124,177,120,126,34,35,128,83,84,39,179,160,88,188,99],sourcerang:163,upgrad:120,next:[35,106,120,64],few:120,advoc:120,checker:88,sort:[183,120],my_map:176,mismatch:[40,79],about:[146,35,50,6,79,132],c_system:163,hashloc:163,account:[43,146,185,28,50],usenoexceptfals:136,alia:[46,47,100,58,103,62,11,92,149,4,111,143,157,66,68,112,19,20,72,71,170,23,172,79,30,125,32,36,142,84,74,93],advanatag:73,sutter:58,control:[25,146,79,106],modulemap:28,process:[163,120],lock:34,high:[35,163,48,120],allowmissingmovefunct:21,tab:[24,64],basic_str:[110,67,146,167],delai:79,gcc:163,uchar:160,awesome_:120,subdirectori:[120,28],instead:[44,136,60,5,6,146,10,16,161,163,70,167,170,8,120,124,176,177,127,96,183,39,90,99],sin:179,noproblemsassist:28,overridden:[163,120],unidentifi:22,"_wcsnicmp_l":26,mymap:0,physic:24,alloc:[161,132,93],bind:79,counter:[166,33],correspond:[42,135,45,95,50,98,99,141,56,144,60,62,10,152,14,154,113,163,108,70,21,118,80,89,120,22,33,142,145,102,93],element:[161,8,166,105,73,142,9,52,88,12,99],issu:[17,6,120,54,185,16,90],allow:[60,69,0,70,35,97,16,185,124,105,58,120],"_stricmp_l":26,elif:28,move:[29,68,35,21,18,189],ignoremacro:97,comma:[12,117,142,9,79,105],perfect:[54,35],chosen:120,memberinit:50,therefor:[39,161,146,156,64],multimap:[146,0],crash:6,greater:[173,8,177,26],handl:[10,89,79,132],auto:[161,31,73,98,113,121,40,79],spell:[6,0],innermost:28,ctor:[54,143,170],front:[163,83,28],bar:[43,136,184,167,39,171,60,6],dcl21:35,edit:6,mode:[22,35,120,65,109,28,144],mycheck:120,subset:120,dcmake_export_compile_command:120,make_tupl:[35,99],basedonstyl:120,wstr:121,our:[161,120],patch:[162,163],unique_ptr:[146,104,99,113,124,101],out:[161,146,163,22,70,6,83,129,120,28],variabl:[0,49,50,58,146,184,105,6,15,155,161,162,119,76,89,120,122,151,28,176,22,81,33,38,63,87,88,91,132],some_str:132,defaultvalu:120,"__function__":[55,35],categori:120,typenam:[0,105,39,60,54,124],suitabl:[120,83],rel:[163,120,83],ref:[161,176],math:[79,160],statist:[153,120],umbrella:28,insid:[35,169,83,6,79,143],workflow:[120,6],mpi_char:[115,94],random_devic:2,standalon:[163,28],clangtidi:120,indent:[35,17,25,19,79],unwant:[173,163],unnam:[154,185],keep:[105,107,185],length:[107,177,70],enforc:[69,92,128,149,185,25,188],outsid:[161,162,120,58],unexpectedli:17,suffix:[42,120,188],md_defin:163,"0def":107,qualiti:[162,120],hpp:[9,12,142,105,185],date:[120,185],shared_ptr:[146,98,99],suffic:[183,122,51,184],getnodea:120,"long":[42,96,19,0,123],start:[166,61,162,120,83],flrag:58,scanf:10,perfectli:120,capac:86,messag:[146,163,94,115,83,120,28],attach:120,maplead:[22,6],termin:[183,107],default_argu:130,checkfactori:120,headerfilterregex:120,arrayref:163,ishead:28,exactli:146,pupos:163,nul:79,structur:[167,64],charact:[110,67,8,163,177,70,107,24,58],sens:[17,8,124],seriou:64,f10:105,linker:120,have:[0,49,50,60,27,6,59,103,146,46,18,65,161,17,51,163,19,170,120,122,28,126,127,35,83,129,160,88,93],epxr:8,disjoint:88,turn:[35,159,163,99,120],"0x00":[107,70],"0x01":107,"0x02":107,mix:[76,163,64],forbidden:[48,108],which:[0,1,98,60,54,55,6,61,8,105,106,113,16,161,51,163,21,73,118,146,120,122,170,124,28,176,29,22,180,35,83,129,185,88,40,131,91,172],"__normal_iter":0,singl:[29,17,94,22,67,166,35,182,87,24,53,6,185],fileid:163,stringlikeclass:67,unless:83,clangtidymoduleregistri:120,"class":[138,97,99,54,6,60,7,8,85,105,186,107,155,15,158,16,67,163,166,167,21,170,146,120,50,124,30,127,37,41,93],pyf:22,"_mbsncmp":26,placement:93,gather:120,request:6,face:120,googlemoduletest:120,determin:[161,17,83],updat:[185,120,60],push_front:99,text:[136,163,24,6,120],filetyp:163,purposefulli:83,trivial:[51,81,34,184,122,78],setter:162,redirect:[62,19,126,106,170,172,142,187,79,58,93],locat:[163,96,6,102,28,120],"_mbsicmp_l":26,should:[94,0,139,53,57,8,186,12,64,9,107,154,65,161,162,163,165,167,73,120,77,28,29,177,22,126,35,142,145,39,185,102,91,105,132,90],won:[22,21,123,99,26,124],local:79,meant:[179,17,162,37,62],contribut:[162,60],familiar:[76,120],memcpi:[3,8,35],autom:[43,120,22,102],increas:[161,117],enabl:[163,136,22,21,96,120,78,60],organ:[162,120],integr:35,contain:[44,70,12,73,50,83,79,129,52,35,132],clangtidycontext:120,filenamerang:163,warningspec:163,view:186,conform:162,o_creat:109,shrinkabl:86,range_express:166,danger:96,polymorph:119,statu:35,correctli:8,mainli:162,misus:[8,120,88],tend:0,written:[146,163,0,35,128,96,39,120],kei:[163,22,6,120],entir:[146,120],unnot:16,addit:[146,163,0,22,83,6,120,5,16,99],mylist:0,doxygen:163,extens:[162,163,12,142,9,120,105,28,60],etc:[110,161,162,163,120,60,6,59],instanc:[17,178,22,167,49,96,123,80,147,28,93],unimpl:133,guidelin:[128,69,156,119,21,38,50,139,63,129,120,53,151,188,132,155],cpplint:[42,135,70,95,142,80,154,108,102,144],distinguish:105,respect:[51,83,28,120],quit:[80,2],evalu:[146,44,117,8,172,79,59],addition:[26,88],clang_include_fixer_increment_num:22,insuffici:[94,120],compon:28,"int":[29,70,10,119,121,56,132,109],json:[120,22],treat:[186,78,117,120],chainedconditionalreturn:147,immedi:80,nullmacro:82,"_mbsicmp":26,presenc:[24,118],sock_stream:57,deliber:16,togeth:[49,120],wcsnicmp:26,present:[35,138,120,58],multi:6,align:185,harder:64,cursor:[22,6],defin:[8,45,0,22,126,115,35,21,169,82,50,44,28,146,170,105,6,93],helper:58,almost:55,site:35,welcom:[61,160,24,60],parti:124,ifndef:28,android:35,probabl:[8,177,179,127,2,120,88],difficult:120,http:[134,42,135,95,50,139,53,163,102,12,14,154,155,156,69,19,21,119,120,151,29,128,38,142,63,129,130,189],allowsoledefaultdtor:21,expans:[163,120,28],effect:79,dealloc:[132,93],expand:[34,28,59],"__gnu_cxx":0,off:120,well:[29,163,35,83,120,93],"0x12":107,exampl:[44,83,54,55,57,56,58,8,104,85,165,186,107,6,158,65,17,180,114,70,21,169,119,146,79,109,29,177,81,34,127,96,183,39,88],intxx:42,choos:[44,60],undefin:35,latest:35,unari:[35,135,79,59],map_iter:0,clang_include_fixer_path:22,sourcen:[120,6],obtain:[184,122],mistaken:178,memmov:[3,35],formatstyl:120,web:35,static_assert:[35,172,182],field:[60,51,163,99,50],bell:24,bar1:6,triviallycopy:[3,35],my_first_point:0,add:[60,161,146,22,31,35,50,99,88,26,124,177,120],sysmbol:22,smart:[162,187,99],correspondig:42,rememb:146,conditionrang:163,nameloc:163,wstring:[110,121],camelcas:188,source0:[120,6],five:21,know:[17,120,58],press:[22,6],o_rdwr:165,insert:[166,29,99,22,50],resid:120,like:[94,0,161,123,99,54,55,8,165,52,186,107,67,162,70,166,167,146,24,121,25,28,178,34,127,35,37,83,39,40,132,120],"__builtin_strncmp":26,necessari:[124,120,60],"0xff":107,resiz:186,page:[61,162],exceed:106,captur:31,randomfunc:2,"export":[28,6,120],replacementstr:136,proper:96,guarante:[173,146,160,90],ignorearrai:50,librari:[163,179,160,120,124,28,60],filenametok:163,lead:[105,43,8,53,156],leak:[99,165],avoid:[29,146,83,183,96,57,91,79,6],leav:[0,34,12,50,80,9,142,105],"__debug":163,leader:[22,6],getnam:120,investig:88,"enum":79,branchthreshold:106,unsuccess:16,although:[105,58,6,64],offset:[6,123],simpler:101,c_str:150,actual:[163,81,85,155,118,63,16,151,41,52],socket:35,column:[28,6,64],constructor:[35,21,68,50],discard:119,disabl:[163,136,117,60,54,120],own:120,bugpron:35,automat:[132,163,22,49,50,120,28],isocpp:[128,69,156,119,21,38,50,139,63,129,155,53,151],guard:79,pitfal:120,destructor:[128,136,34,21,51,120,122],getmessag:8,leverag:162,val:[0,88],byte_count:70,transfer:124,much:124,inner:[126,60,64],arg1:31,pik___pragma:163,"function":[45,70,10,35,165,119,153,132,156,69,3,6],map_fat:163,statementthreshold:106,unexpect:59,overflow:40,inlin:[48,105,120],buf:[115,8,94],bug:[165,95,49,6,16,120],count:[34,126,73,70],made:[132,16],temp:39,whether:[161,17,162,163,117,146,120,54,77,28,90],displai:[83,163,28,6,120],record:50,below:[161,146,163,0,2,13,83,88],limit:[79,83,160],uniqueptr:79,"static":[35,129,89,125],problem:[110,22,13,83,64,156,88,28],ttwo:24,noremap:22,vscode:162,dure:[161,50],implement:[0,133,2,100,143,103,146,11,92,154,108,162,71,73,23,120,30,22,35,84,90,93],rule:[42,128,45,46,50,139,53,141,56,58,103,146,62,39,10,11,92,100,149,152,14,154,143,156,16,155,69,108,21,71,118,23,151,30,33,36,38,84,63,129,89,188,93],inc:28,mutual:146,"_mbsncmp_l":26,some_struct:132,detail:[22,35,119,120,54,160],virtual:[119,21,23,79,130],other:[136,0,97,60,92,146,10,105,9,16,133,161,21,169,120,28,22,35,83,142,12,41,99],lookup:22,futur:[162,146,99,6,90],branch:[146,106],renamefil:163,repeat:[35,79],star:0,stai:124,myvec:0,mt19937:2,pragmamessagekind:163,sourceloc:163,reinterpretcast:63},objtypes:{"0":"std:option"},objnames:{"0":["std","option","option"]},filenames:["clang-tidy/checks/modernize-use-auto","clang-tidy/checks/modernize-use-bool-literals","clang-tidy/checks/modernize-replace-random-shuffle","clang-tidy/checks/bugprone-undefined-memory-manipulation","clang-tidy/checks/cert-fio38-c","clang-tidy/checks/readability-non-const-parameter","clang-rename","clang-tidy/checks/misc-unconventional-assign-operator","clang-tidy/checks/misc-sizeof-expression","clang-tidy/checks/llvm-header-guard","clang-tidy/checks/cert-err34-c","clang-tidy/checks/hicpp-use-equals-default","clang-tidy/checks/google-global-names-in-headers","clang-tidy/checks/misc-incorrect-roundings","clang-tidy/checks/google-runtime-references","clang-tidy/checks/modernize-use-using","clang-tidy/checks/readability-implicit-bool-cast","clang-tidy/checks/misc-suspicious-semicolon","clang-modernize","clang-tidy/checks/llvm-namespace-comment","clang-tidy/checks/google-readability-function-size","clang-tidy/checks/cppcoreguidelines-special-member-functions","include-fixer","clang-tidy/checks/hicpp-use-override","clang-tidy/checks/modernize-raw-string-literal","clang-tidy/checks/readability-else-after-return","clang-tidy/checks/misc-suspicious-string-compare","cpp11-migrate","modularize","clang-tidy/checks/google-explicit-constructor","clang-tidy/checks/hicpp-member-init","clang-tidy/checks/modernize-avoid-bind","clang-tidy/checks/cert-err09-cpp","clang-tidy/checks/cert-flp30-c","clang-tidy/checks/misc-unused-raii","ReleaseNotes","clang-tidy/checks/hicpp-noexcept-move","clang-tidy/checks/misc-undelegated-constructor","clang-tidy/checks/cppcoreguidelines-pro-type-const-cast","clang-tidy/checks/misc-move-forwarding-reference","clang-tidy/checks/misc-fold-init-type","clang-tidy/checks/readability-deleted-default","clang-tidy/checks/google-runtime-int","clang-tidy/checks/misc-argument-comment","clang-tidy/checks/misc-noexcept-move-constructor","clang-tidy/checks/cert-dcl50-cpp","clang-tidy/checks/hicpp-special-member-functions","clang-tidy/checks/cert-dcl59-cpp","clang-tidy/checks/hicpp-no-assembler","clang-tidy/checks/readability-redundant-declaration","clang-tidy/checks/cppcoreguidelines-pro-type-member-init","clang-tidy/checks/performance-unnecessary-value-param","clang-tidy/checks/misc-inaccurate-erase","clang-tidy/checks/cppcoreguidelines-pro-bounds-pointer-arithmetic","clang-tidy/checks/misc-forwarding-reference-overload","clang-tidy/checks/misc-lambda-function-name","clang-tidy/checks/cert-dcl58-cpp","clang-tidy/checks/android-cloexec-socket","clang-tidy/checks/misc-throw-by-value-catch-by-reference","clang-tidy/checks/misc-macro-parentheses","clang-tidy/checks/modernize-pass-by-value","index","clang-tidy/checks/misc-non-copyable-objects","clang-tidy/checks/cppcoreguidelines-pro-type-reinterpret-cast","clang-tidy/checks/readability-misleading-indentation","clang-tidy/checks/android-cloexec-fopen","clang-tidy/checks/cert-dcl54-cpp","clang-tidy/checks/performance-faster-string-find","clang-tidy/checks/cert-oop11-cpp","clang-tidy/checks/cppcoreguidelines-pro-type-vararg","clang-tidy/checks/bugprone-suspicious-memset-usage","clang-tidy/checks/hicpp-named-parameter","clang-tidy/checks/cert-msc30-c","clang-tidy/checks/misc-inefficient-algorithm","clang-tidy/checks/google-readability-namespace-comments","clang-tidy/checks/readability-redundant-control-flow","clang-tidy/checks/readability-misplaced-array-index","clang-tidy/checks/readability-avoid-const-params-in-decls","clang-tidy/checks/modernize-use-equals-default","clang-tidy/checks/list","clang-tidy/checks/google-runtime-member-string-references","clang-tidy/checks/misc-move-const-arg","clang-tidy/checks/modernize-use-nullptr","ModularizeUsage","clang-tidy/checks/hicpp-invalid-access-moved","clang-tidy/checks/misc-unused-using-decls","clang-tidy/checks/modernize-shrink-to-fit","clang-tidy/checks/readability-static-definition-in-anonymous-namespace","clang-tidy/checks/misc-suspicious-enum-usage","clang-tidy/checks/cert-err58-cpp","clang-tidy/checks/readability-container-size-empty","clang-tidy/checks/llvm-twine-local","clang-tidy/checks/hicpp-explicit-conversions","clang-tidy/checks/misc-new-delete-overloads","clang-tidy/checks/mpi-buffer-deref","clang-tidy/checks/google-readability-todo","clang-tidy/checks/misc-misplaced-widening-cast","clang-tidy/checks/modernize-use-default-member-init","clang-tidy/checks/modernize-make-shared","clang-tidy/checks/modernize-use-emplace","clang-tidy/checks/hicpp-use-equals-delete","clang-tidy/checks/readability-uniqueptr-delete-release","clang-tidy/checks/google-readability-casting","clang-tidy/checks/hicpp-new-delete-operators","clang-tidy/checks/misc-uniqueptr-reset-release","clang-tidy/checks/misc-definitions-in-headers","clang-tidy/checks/readability-function-size","clang-tidy/checks/misc-string-literal-with-embedded-nul","clang-tidy/checks/google-build-using-namespace","clang-tidy/checks/android-cloexec-creat","clang-tidy/checks/misc-string-integer-assignment","clang-tidy/checks/google-readability-braces-around-statements","clang-tidy/checks/cert-err61-cpp","clang-tidy/checks/modernize-make-unique","clang-tidy/checks/misc-bool-pointer-implicit-conversion","clang-tidy/checks/mpi-type-mismatch","clang-tidy/checks/readability-redundant-function-ptr-dereference","clang-tidy/checks/misc-assert-side-effect","clang-tidy/checks/cert-env33-c","clang-tidy/checks/cppcoreguidelines-slicing","clang-tidy/index","clang-tidy/checks/boost-use-to-string","clang-tidy/checks/performance-for-range-copy","clang-tidy/checks/misc-suspicious-missing-comma","clang-tidy/checks/modernize-replace-auto-ptr","clang-tidy/checks/cert-dcl03-c","clang-tidy/checks/readability-braces-around-statements","clang-tidy/checks/misc-sizeof-container","clang-tidy/checks/cppcoreguidelines-pro-type-union-access","clang-tidy/checks/cppcoreguidelines-pro-bounds-constant-array-index","clang-tidy/checks/google-default-arguments","clang-tidy/checks/misc-forward-declaration-namespace","clang-tidy/checks/cppcoreguidelines-no-malloc","clang-tidy/checks/modernize-use-equals-delete","clang-tidy/checks/llvm-include-order","clang-tidy/checks/google-runtime-operator","clang-tidy/checks/modernize-use-noexcept","clang-tidy/checks/modernize-redundant-void-arg","clang-tidy/checks/readability-redundant-member-init","clang-tidy/checks/cppcoreguidelines-pro-bounds-array-to-pointer-decay","clang-tidy/checks/misc-macro-repeated-side-effects","clang-tidy/checks/cert-err52-cpp","clang-tidy/checks/google-build-namespaces","clang-tidy/checks/hicpp-undelegated-constructor","clang-tidy/checks/google-build-explicit-make-pair","clang-tidy/checks/cert-dcl21-cpp","clang-tidy/checks/misc-use-after-move","clang-tidy/checks/readability-simplify-boolean-expr","clang-tidy/checks/misc-unused-alias-decls","clang-tidy/checks/hicpp-function-size","clang-tidy/checks/readability-redundant-string-cstr","clang-tidy/checks/cppcoreguidelines-pro-type-cstyle-cast","clang-tidy/checks/cert-err60-cpp","clang-tidy/checks/cert-msc50-cpp","clang-tidy/checks/readability-named-parameter","clang-tidy/checks/cppcoreguidelines-pro-type-static-cast-downcast","clang-tidy/checks/cppcoreguidelines-interfaces-global-init","clang-tidy/checks/google-readability-redundant-smartptr-get","clang-tidy/checks/misc-virtual-near-miss","clang-tidy/checks/misc-unused-parameters","clang-tidy/checks/modernize-deprecated-headers","clang-tidy/checks/modernize-loop-convert","clangd","pp-trace","clang-tidy/checks/readability-redundant-string-init","clang-tidy/checks/android-cloexec-open","clang-tidy/checks/performance-inefficient-vector-operation","clang-tidy/checks/performance-inefficient-string-concatenation","clang-tidy/checks/misc-swapped-arguments","clang-tidy/checks/misc-multiple-statement-macro","clang-tidy/checks/misc-move-constructor-init","clang-tidy/checks/modernize-return-braced-init-list","clang-tidy/checks/misc-static-assert","clang-tidy/checks/modernize-use-transparent-functors","clang-tidy/checks/modernize-use-default","clang-tidy/checks/readability-delete-null-pointer","clang-tidy/checks/performance-implicit-cast-in-loop","clang-tidy/checks/misc-string-constructor","clang-tidy/checks/misc-misplaced-const","clang-tidy/checks/performance-type-promotion-in-math-fn","clang-tidy/checks/misc-redundant-expression","clang-tidy/checks/modernize-use-override","clang-tidy/checks/modernize-unary-static-assert","clang-tidy/checks/misc-string-compare","clang-tidy/checks/performance-unnecessary-copy-initialization","clang-tidy/checks/readability-inconsistent-declaration-parameter-name","clang-tidy/checks/misc-dangling-handle","clang-tidy/checks/readability-redundant-smartptr-get","clang-tidy/checks/readability-identifier-naming","clang-tidy"],titles:["clang-tidy - modernize-use-auto","clang-tidy - modernize-use-bool-literals","clang-tidy - modernize-replace-random-shuffle","clang-tidy - bugprone-undefined-memory-manipulation","clang-tidy - cert-fio38-c","clang-tidy - readability-non-const-parameter","Clang-Rename","clang-tidy - misc-unconventional-assign-operator","clang-tidy - misc-sizeof-expression","clang-tidy - llvm-header-guard","clang-tidy - cert-err34-c","clang-tidy - hicpp-use-equals-defaults","clang-tidy - google-global-names-in-headers","clang-tidy - misc-incorrect-roundings","clang-tidy - google-runtime-references","clang-tidy - modernize-use-using","clang-tidy - readability-implicit-bool-cast","clang-tidy - misc-suspicious-semicolon","<no title>","clang-tidy - llvm-namespace-comment","clang-tidy - google-readability-function-size","clang-tidy - cppcoreguidelines-special-member-functions","Clang-Include-Fixer","clang-tidy - hicpp-use-override","clang-tidy - modernize-raw-string-literal","clang-tidy - readability-else-after-return","clang-tidy - misc-suspicious-string-compare","<no title>","Modularize User’s Manual","clang-tidy - google-explicit-constructor","clang-tidy - hicpp-member-init","clang-tidy - modernize-avoid-bind","clang-tidy - cert-err09-cpp","clang-tidy - cert-flp30-c","clang-tidy - misc-unused-raii","Extra Clang Tools 5.0.0 Release Notes","clang-tidy - hicpp-noexcept-move","clang-tidy - misc-undelegated-constructor","clang-tidy - cppcoreguidelines-pro-type-const-cast","clang-tidy - misc-move-forwarding-reference","clang-tidy - misc-fold-init-type","clang-tidy - readability-deleted-default","clang-tidy - google-runtime-int","clang-tidy - misc-argument-comment","clang-tidy - misc-noexcept-move-constructor","clang-tidy - cert-dcl50-cpp","clang-tidy - hicpp-special-member-functions","clang-tidy - cert-dcl59-cpp","clang-tidy - hicpp-no-assembler","clang-tidy - readability-redundant-declaration","clang-tidy - cppcoreguidelines-pro-type-member-init","clang-tidy - performance-unnecessary-value-param","clang-tidy - misc-inaccurate-erase","clang-tidy - cppcoreguidelines-pro-bounds-pointer-arithmetic","clang-tidy - misc-forwarding-reference-overload","clang-tidy - misc-lambda-function-name","clang-tidy - cert-dcl58-cpp","clang-tidy - android-cloexec-socket","clang-tidy - misc-throw-by-value-catch-by-reference","clang-tidy - misc-macro-parentheses","clang-tidy - modernize-pass-by-value","Welcome to Extra Clang Tools’s documentation!","clang-tidy - misc-non-copyable-objects","clang-tidy - cppcoreguidelines-pro-type-reinterpret-cast","clang-tidy - readability-misleading-indentation","clang-tidy - android-cloexec-fopen","clang-tidy - cert-dcl54-cpp","clang-tidy - performance-faster-string-find","clang-tidy - cert-oop11-cpp","clang-tidy - cppcoreguidelines-pro-type-vararg","clang-tidy - bugprone-suspicious-memset-usage","clang-tidy - hicpp-named-parameter","clang-tidy - cert-msc30-c","clang-tidy - misc-inefficient-algorithm","clang-tidy - google-readability-namespace-comments","clang-tidy - readability-redundant-control-flow","clang-tidy - readability-misplaced-array-index","clang-tidy - readability-avoid-const-params-in-decls","clang-tidy - modernize-use-equals-default","clang-tidy - Clang-Tidy Checks","clang-tidy - google-runtime-member-string-references","clang-tidy - misc-move-const-arg","clang-tidy - modernize-use-nullptr","Modularize Usage","clang-tidy - hicpp-invalid-access-moved","clang-tidy - misc-unused-using-decls","clang-tidy - modernize-shrink-to-fit","clang-tidy - readability-static-definition-in-anonymous-namespace","clang-tidy - misc-suspicious-enum-usage","clang-tidy - cert-err58-cpp","clang-tidy - readability-container-size-empty","clang-tidy - llvm-twine-local","clang-tidy - hicpp-explicit-conversions","clang-tidy - misc-new-delete-overloads","clang-tidy - mpi-buffer-deref","clang-tidy - google-readability-todo","clang-tidy - misc-misplaced-widening-cast","clang-tidy - modernize-use-default-member-init","clang-tidy - modernize-make-shared","clang-tidy - modernize-use-emplace","clang-tidy - hicpp-use-equals-delete","clang-tidy - readability-uniqueptr-delete-release","clang-tidy - google-readability-casting","clang-tidy - hicpp-new-delete-operators","clang-tidy - misc-uniqueptr-reset-release","clang-tidy - misc-definitions-in-headers","clang-tidy - readability-function-size","clang-tidy - misc-string-literal-with-embedded-nul","clang-tidy - google-build-using-namespace","clang-tidy - android-cloexec-creat","clang-tidy - misc-string-integer-assignment","clang-tidy - google-readability-braces-around-statements","clang-tidy - cert-err61-cpp","clang-tidy - modernize-make-unique","clang-tidy - misc-bool-pointer-implicit-conversion","clang-tidy - mpi-type-mismatch","clang-tidy - readability-redundant-function-ptr-dereference","clang-tidy - misc-assert-side-effect","clang-tidy - cert-env33-c","clang-tidy - cppcoreguidelines-slicing","Clang-Tidy","clang-tidy - boost-use-to-string","clang-tidy - performance-for-range-copy","clang-tidy - misc-suspicious-missing-comma","clang-tidy - modernize-replace-auto-ptr","clang-tidy - cert-dcl03-c","clang-tidy - readability-braces-around-statements","clang-tidy - misc-sizeof-container","clang-tidy - cppcoreguidelines-pro-type-union-access","clang-tidy - cppcoreguidelines-pro-bounds-constant-array-index","clang-tidy - google-default-arguments","clang-tidy - misc-forward-declaration-namespace","clang-tidy - cppcoreguidelines-no-malloc","clang-tidy - modernize-use-equals-delete","clang-tidy - llvm-include-order","clang-tidy - google-runtime-operator","clang-tidy - modernize-use-noexcept","clang-tidy - modernize-redundant-void-arg","clang-tidy - readability-redundant-member-init","clang-tidy - cppcoreguidelines-pro-bounds-array-to-pointer-decay","clang-tidy - misc-macro-repeated-side-effects","clang-tidy - cert-err52-cpp","clang-tidy - google-build-namespaces","clang-tidy - hicpp-undelegated-construtor","clang-tidy - google-build-explicit-make-pair","clang-tidy - cert-dcl21-cpp","clang-tidy - misc-use-after-move","clang-tidy - readability-simplify-boolean-expr","clang-tidy - misc-unused-alias-decls","clang-tidy - hicpp-function-size","clang-tidy - readability-redundant-string-cstr","clang-tidy - cppcoreguidelines-pro-type-cstyle-cast","clang-tidy - cert-err60-cpp","clang-tidy - cert-msc50-cpp","clang-tidy - readability-named-parameter","clang-tidy - cppcoreguidelines-pro-type-static-cast-downcast","clang-tidy - cppcoreguidelines-interfaces-global-init","clang-tidy - google-readability-redundant-smartptr-get","clang-tidy - misc-virtual-near-miss","clang-tidy - misc-unused-parameters","clang-tidy - modernize-deprecated-headers","clang-tidy - modernize-loop-convert","Clangd","pp-trace User’s Manual","clang-tidy - readability-redundant-string-init","clang-tidy - android-cloexec-open","clang-tidy - performance-inefficient-vector-operation","clang-tidy - performance-inefficient-string-concatenation","clang-tidy - misc-swapped-arguments","clang-tidy - misc-multiple-statement-macro","clang-tidy - misc-move-constructor-init","clang-tidy - modernize-return-braced-init-list","clang-tidy - misc-static-assert","clang-tidy - modernize-use-transparent-functors","clang-tidy - modernize-use-default","clang-tidy - readability-delete-null-pointer","clang-tidy - performance-implicit-cast-in-loop","clang-tidy - misc-string-constructor","clang-tidy - misc-misplaced-const","clang-tidy - performance-type-promotion-in-math-fn","clang-tidy - misc-redundant-expression","clang-tidy - modernize-use-override","clang-tidy - modernize-unary-static-assert","clang-tidy - misc-string-compare","clang-tidy - performance-unnecessary-copy-initialization","clang-tidy - readability-inconsistent-declaration-parameter-name","clang-tidy - misc-dangling-handle","clang-tidy - readability-redundant-smartptr-get","clang-tidy - readability-identifier-naming","<no title>"],objects:{"":{SmartPointers:[99,0,1,"cmdoption-arg-SmartPointers"],WhiteListTypes:[14,0,1,"cmdoption-arg-WhiteListTypes"],StatementThreshold:[106,0,1,"cmdoption-arg-StatementThreshold"],WarnOnImplicitComparison:[26,0,1,"cmdoption-arg-WarnOnImplicitComparison"],WarnOnLogicalNotComparison:[26,0,1,"cmdoption-arg-WarnOnLogicalNotComparison"],HandleClasses:[186,0,1,"cmdoption-arg-HandleClasses"],"-ignore":[163,0,1,"cmdoption-ignore"],CheckImplicitCasts:[96,0,1,"cmdoption-arg-CheckImplicitCasts"],NestingThreshold:[106,0,1,"cmdoption-arg-NestingThreshold"],RemoveStars:[0,0,1,"cmdoption-arg-RemoveStars"],"-prefix":[83,0,1,"cmdoption-prefix"],TupleTypes:[99,0,1,"cmdoption-arg-TupleTypes"],AssertMacros:[117,0,1,"cmdoption-arg-AssertMacros"],"-no-coverage-check":[83,0,1,"cmdoption-no-coverage-check"],ReplacementString:[136,0,1,"cmdoption-arg-ReplacementString"],"-root-module":[83,0,1,"cmdoption-root-module"],GslHeader:[129,0,1,"cmdoption-arg-GslHeader"],ChainedConditionalReturn:[147,0,1,"cmdoption-arg-ChainedConditionalReturn"],StringLikeClasses:[67,0,1,"cmdoption-arg-StringLikeClasses"],ParameterThreshold:[106,0,1,"cmdoption-arg-ParameterThreshold"],ChainedConditionalAssignment:[147,0,1,"cmdoption-arg-ChainedConditionalAssignment"],"-problem-files-list":[83,0,1,"cmdoption-problem-files-list"],RatioThreshold:[123,0,1,"cmdoption-arg-RatioThreshold"],IgnoreMacros:[97,0,1,"cmdoption-arg-IgnoreMacros"],AllowMissingMoveFunctions:[21,0,1,"cmdoption-arg-AllowMissingMoveFunctions"],LargeLengthThreshold:[177,0,1,"cmdoption-arg-LargeLengthThreshold"],StrictMode:[167,0,1,"cmdoption-arg-StrictMode"],ShortStatementLines:[126,0,1,"cmdoption-arg-ShortStatementLines"],"-display-file-lists":[83,0,1,"cmdoption-display-file-lists"],CheckThrowTemporaries:[58,0,1,"cmdoption-arg-CheckThrowTemporaries"],HeaderFileExtensions:[105,0,1,"cmdoption-arg-HeaderFileExtensions"],"-module-map-path":[83,0,1,"cmdoption-module-map-path"],AllowConditionalIntegerCasts:[16,0,1,"cmdoption-arg-AllowConditionalIntegerCasts"],MakeSmartPtrFunctionHeader:[113,0,1,"cmdoption-arg-MakeSmartPtrFunctionHeader"],SpacesBeforeComments:[19,0,1,"cmdoption-arg-SpacesBeforeComments"],UseAssignment:[97,0,1,"cmdoption-arg-UseAssignment"],AllowConditionalPointerCasts:[16,0,1,"cmdoption-arg-AllowConditionalPointerCasts"],SizeThreshold:[123,0,1,"cmdoption-arg-SizeThreshold"],AllowSoleDefaultDtor:[21,0,1,"cmdoption-arg-AllowSoleDefaultDtor"],LineThreshold:[106,0,1,"cmdoption-arg-LineThreshold"],UnsignedTypePrefix:[42,0,1,"cmdoption-arg-UnsignedTypePrefix"],BranchThreshold:[106,0,1,"cmdoption-arg-BranchThreshold"],ContainersWithPushBack:[99,0,1,"cmdoption-arg-ContainersWithPushBack"],VectorLikeClasses:[166,0,1,"cmdoption-arg-VectorLikeClasses"],StringCompareLikeFunctions:[26,0,1,"cmdoption-arg-StringCompareLikeFunctions"],ShortNamespaceLines:[19,0,1,"cmdoption-arg-ShortNamespaceLines"],UseNoexceptFalse:[136,0,1,"cmdoption-arg-UseNoexceptFalse"],UseHeaderFileExtension:[105,0,1,"cmdoption-arg-UseHeaderFileExtension"],Allocations:[132,0,1,"cmdoption-arg-Allocations"],WarnOnLargeLength:[177,0,1,"cmdoption-arg-WarnOnLargeLength"],ValuesOnly:[60,0,1,"cmdoption-arg-ValuesOnly"],IncludeStyle:[51,0,1,"cmdoption-arg-IncludeStyle"],WarnOnAllAutoCopies:[122,0,1,"cmdoption-arg-WarnOnAllAutoCopies"],TupleMakeFunctions:[99,0,1,"cmdoption-arg-TupleMakeFunctions"],NullMacros:[82,0,1,"cmdoption-arg-NullMacros"],Deallocations:[132,0,1,"cmdoption-arg-Deallocations"],Reallocations:[132,0,1,"cmdoption-arg-Reallocations"],CheckFunctionCalls:[117,0,1,"cmdoption-arg-CheckFunctionCalls"],MaxConcatenatedTokens:[123,0,1,"cmdoption-arg-MaxConcatenatedTokens"],WarnOnSizeOfCompareToConstant:[8,0,1,"cmdoption-arg-WarnOnSizeOfCompareToConstant"],WarnOnSizeOfConstant:[8,0,1,"cmdoption-arg-WarnOnSizeOfConstant"],SafeMode:[173,0,1,"cmdoption-arg-SafeMode"],TypeSuffix:[42,0,1,"cmdoption-arg-TypeSuffix"],"-block-check-header-list-only":[83,0,1,"cmdoption-block-check-header-list-only"],WarnOnSizeOfThis:[8,0,1,"cmdoption-arg-WarnOnSizeOfThis"],SignedTypePrefix:[42,0,1,"cmdoption-arg-SignedTypePrefix"],"-output":[163,0,1,"cmdoption-output"],"-coverage-check-only":[83,0,1,"cmdoption-coverage-check-only"],IgnoreArrays:[50,0,1,"cmdoption-arg-IgnoreArrays"],MakeSmartPtrFunction:[113,0,1,"cmdoption-arg-MakeSmartPtrFunction"]}},titleterms:{decl:[85,77,148],unari:182,elif:163,assembl:48,identifi:188,expr:147,global:[12,156],llvm:[134,9,91,120,19],misplac:[76,178,96],"catch":58,macrodefin:163,downcast:155,comma:123,invalid:[84,107],macroexpand:163,faster:67,pointer:[139,161,175,114,53],ptr:[116,124],paramet:[154,71,5,185,159],involv:[162,120],current:162,onli:161,"const":[77,5,178,38,81],fit:86,configur:120,readabl:[95,49,138,150,5,101,147,106,64,111,154,157,16,164,20,116,102,75,76,77,25,175,126,87,185,74,187,188,41,90],param:[77,51],bugpron:[3,70],init:[30,164,170,138,50,171,156,40,97],swap:168,creat:[22,109],decai:139,els:[25,163],macroundefin:163,local:91,arrai:[139,76,129],pair:144,non:[5,62],move:[44,81,36,170,84,39,146],"return":[25,171],string:[110,67,183,164,167,26,80,107,24,121,150,177],nul:107,get:[162,187,120,28,157],handl:186,auto:[124,0],"void":137,express:[180,8,0],clang:[120,35,22,6,79],mpi:[115,94],reinterpret:63,msc50:153,background:[54,39],"new":[103,35,0,93],introduct:[61,35],redund:[164,137,180,116,49,138,150,75,157,187],end:161,moduleimport:163,name:[12,71,154,185,55,188],fio38:4,dcl21:145,command:[163,83],list:171,fixer:22,integ:110,random:2,"default":[161,11,97,130,78,174,41],env33:118,vector:166,minconfid:161,integr:[22,6],contain:[127,161,90],output:163,side:[161,140,117],err60:152,err61:112,compil:22,right:120,map:28,replac:[124,2],pass:60,memset:70,functor:173,cppcoreguidelin:[128,69,156,119,21,38,50,139,63,129,155,53,151,132],fold:40,emac:[22,6],clangd:162,"static":[172,87,155,182],iter:0,arg:[137,81],emplac:99,sizeof:[127,8],todo:95,special:[21,46],index:[76,129,22],what:[35,28],slice:119,compar:[183,26],cast:[0,155,96,63,38,102,151,16,176],databas:22,avoid:[77,31],extra:35,definit:[105,87],pragmadetectmismatch:163,overload:[54,161,93],find:67,content:[61,162,22,6,120],delet:[103,175,133,100,101,41,93],err58:89,directori:120,inclusiondirect:163,err52:141,size:[20,149,106,90],boost:121,unus:[34,85,148,159],refer:[161,80,39,14,54,58],manipul:3,run:120,insid:161,declar:[131,49,185],gener:28,"enum":88,usag:[8,163,83,70,88],suspici:[17,8,70,26,88,123],ineffici:[166,167,73],modular:[83,28],reason:161,base:161,dcl58:56,promot:179,releas:[35,101,104],implicit:[114,96,16,176],valu:[51,60,58],unnecessari:[184,51],manual:[163,28],convert:161,indent:64,socket:57,statu:162,copyabl:62,pragmadirect:163,memori:3,flp30:33,comment:[161,43,19,74],round:13,nullptr:82,cert:[66,68,45,125,32,33,10,47,72,4,145,152,153,89,112,141,118,56],inconsist:185,pragmamessag:163,truncat:107,constructor:[29,44,177,37,170,60,143],pragmaopenclextens:163,improv:35,assign:[110,7],lambda:55,oper:[103,7,135,166,161],overrid:[23,181],rang:[122,161],note:[35,60],widen:96,pragmadebug:163,point:96,unsequenc:146,reiniti:146,modul:28,"float":96,misc:[43,44,26,140,148,52,54,55,58,59,7,8,62,85,105,13,186,107,158,159,110,17,180,114,168,169,117,73,170,146,172,123,104,177,178,81,34,127,37,96,183,39,88,40,131,93],bound:[139,129,53],vim:[22,6],cstyle:151,guard:9,"boolean":147,math:179,fopen:65,miss:[158,123],dangl:186,smartptr:[187,157],unconvent:7,pragmawarningpop:163,from:22,err34:10,vararg:69,union:128,test:120,incorrect:13,regist:120,coverag:28,"throw":58,start:28,arithmet:53,includ:[134,22],statement:[111,169,126],exampl:[136,161,82,99],forward:[54,39,131],interfac:156,type:[69,179,115,128,38,50,63,155,40,151],pro:[69,128,38,50,139,63,129,155,53,151],"function":[46,20,116,21,106,149,55],setup:22,option:[42,43,136,0,161,96,26,98,99,50,58,8,147,186,12,106,9,14,113,16,67,51,163,19,166,167,21,117,170,173,122,97,124,177,126,123,82,83,142,129,88,105,132,60],derefer:116,namespac:[19,142,87,108,74,131],tool:35,copi:[184,122],mismatch:115,about:60,assert:[172,117,182],pars:60,templat:60,workspac:120,known:[124,60,0],renam:6,line:[163,83],msc30:72,reset:104,concaten:167,ident:163,cloexec:[57,109,65,165],filechang:163,alia:148,prepar:120,access:[84,128],onc:161,uniqu:113,structur:120,riski:161,work:22,defin:163,inaccur:52,dcl54:66,limit:[161,124,60,0,64],fileskip:163,uniqueptr:[101,104],anonym:87,initi:184,loop:[161,176],control:75,endofmainfil:163,empti:90,undeleg:[37,143],constant:129,deref:94,semicolon:17,"int":42,explicit:[29,92,144],sourcerangeskip:163,modern:[136,0,97,1,98,60,2,174,137,181,113,15,133,161,171,24,173,78,124,31,82,182,86,160,99],share:98,argument:[43,168,130],indic:61,equal:[11,78,100,133],"char":8,raw:24,pragmadiagnosticpush:163,liter:[1,107,24],eras:52,tabl:61,dcl03:125,tidi:[35,79,120],check:[79,28,120],dcl59:47,around:[111,126],delai:60,oop11:68,macro:[140,169,59],shuffl:2,googl:[29,135,111,157,42,20,95,12,130,142,80,14,108,74,102,144],open:165,perform:[67,51,179,166,167,184,122,176],pragmawarningpush:163,make:[98,113,144],transpar:173,header:[9,12,160,105,161],detail:163,virtual:158,member:[30,46,21,138,50,80,97],how:22,pragmawarn:163,bool:[1,114,16],build:[162,163,142,108,144],evalu:161,ifndef:163,place:120,android:[57,109,65,165],filenotfound:163,brace:[111,171,126],shrink:86,convers:[92,114],runtim:[80,42,14,135],simplifi:147,repeat:140,trace:163,twine:91,buffer:94,raii:34,symbol:22,after:[25,146],"null":175,effect:[161,140,117],undefin:3,user:[163,28],cstr:150,multipl:169,noexcept:[36,44,136],choos:120,pragmadiagnosticpop:163,your:120,err09:32,safe:161,format:163,deprec:160,pragmacom:163,algorithm:73,pragmadiagnost:163,ifdef:163,bind:31,cpp:[66,68,45,32,47,145,152,153,89,112,141,56],flow:75,parenthes:59,object:62,dcl50:45,mislead:64,callback:163,write:120,malloc:132,hicpp:[103,30,46,11,48,36,71,149,84,23,100,92,143],thi:8,endif:163,embed:107,escap:107,order:134}})
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/lld/docs/.buildinfo
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/lld/docs/.buildinfo?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/lld/docs/.buildinfo (added)
+++ www-releases/trunk/5.0.0/tools/lld/docs/.buildinfo Thu Sep  7 10:47:16 2017
@@ -0,0 +1,4 @@
+# Sphinx build info version 1
+# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
+config: 344da4c906258ab5296d008d00fbecd6
+tags: 645f666f9bcd5a90fca523b33c5a78b7

Added: www-releases/trunk/5.0.0/tools/lld/docs/AtomLLD.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/lld/docs/AtomLLD.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/lld/docs/AtomLLD.html (added)
+++ www-releases/trunk/5.0.0/tools/lld/docs/AtomLLD.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,218 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>ATOM-based lld — lld 5 documentation</title>
+    
+    <link rel="stylesheet" href="_static/llvm.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    './',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/underscore.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <link rel="shortcut icon" href="_static/favicon.ico"/>
+    <link rel="top" title="lld 5 documentation" href="index.html" />
+    <link rel="next" title="Linker Design" href="design.html" />
+    <link rel="prev" title="The ELF and COFF Linkers" href="NewLLD.html" />
+<style type="text/css">
+  table.right { float: right; margin-left: 20px; }
+  table.right td { border: 1px solid #ccc; }
+</style>
+
+  </head>
+  <body>
+<div class="logo">
+<a href="index.html"><img src="_static/logo.png" alt="LLVM Documentation"/></a>
+</div>
+
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="design.html" title="Linker Design"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="NewLLD.html" title="The ELF and COFF Linkers"
+             accesskey="P">previous</a> |</li>
+  <li><a href="index.html">lld Home</a> | </li>
+ 
+      </ul>
+    </div>
+
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+  <h3><a href="index.html">Table Of Contents</a></h3>
+  <ul>
+<li><a class="reference internal" href="#">ATOM-based lld</a><ul>
+<li><a class="reference internal" href="#why-a-new-linker">Why a new linker?</a></li>
+<li><a class="reference internal" href="#contents">Contents</a></li>
+<li><a class="reference internal" href="#indices-and-tables">Indices and tables</a></li>
+</ul>
+</li>
+</ul>
+
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="NewLLD.html"
+                        title="previous chapter">The ELF and COFF Linkers</a></p>
+  <h4>Next topic</h4>
+  <p class="topless"><a href="design.html"
+                        title="next chapter">Linker Design</a></p>
+  <h3>This Page</h3>
+  <ul class="this-page-menu">
+    <li><a href="_sources/AtomLLD.txt"
+           rel="nofollow">Show Source</a></li>
+  </ul>
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <div class="section" id="atom-based-lld">
+<h1>ATOM-based lld<a class="headerlink" href="#atom-based-lld" title="Permalink to this headline">¶</a></h1>
+<p>Note: this document discuss Mach-O port of LLD. For ELF and COFF,
+see <a class="reference internal" href="index.html"><em>LLD - The LLVM Linker</em></a>.</p>
+<p>ATOM-based lld is a new set of modular code for creating linker tools.
+Currently it supports Mach-O.</p>
+<ul class="simple">
+<li>End-User Features:<ul>
+<li>Compatible with existing linker options</li>
+<li>Reads standard Object Files</li>
+<li>Writes standard Executable Files</li>
+<li>Remove clang’s reliance on “the system linker”</li>
+<li>Uses the LLVM <a class="reference external" href="http://llvm.org/docs/DeveloperPolicy.html#license">“UIUC” BSD-Style license</a>.</li>
+</ul>
+</li>
+<li>Applications:<ul>
+<li>Modular design</li>
+<li>Support cross linking</li>
+<li>Easy to add new CPU support</li>
+<li>Can be built as static tool or library</li>
+</ul>
+</li>
+<li>Design and Implementation:<ul>
+<li>Extensive unit tests</li>
+<li>Internal linker model can be dumped/read to textual format</li>
+<li>Additional linking features can be plugged in as “passes”</li>
+<li>OS specific and CPU specific code factored out</li>
+</ul>
+</li>
+</ul>
+<div class="section" id="why-a-new-linker">
+<h2>Why a new linker?<a class="headerlink" href="#why-a-new-linker" title="Permalink to this headline">¶</a></h2>
+<p>The fact that clang relies on whatever linker tool you happen to have installed
+means that clang has been very conservative adopting features which require a
+recent linker.</p>
+<p>In the same way that the MC layer of LLVM has removed clang’s reliance on the
+system assembler tool, the lld project will remove clang’s reliance on the
+system linker tool.</p>
+</div>
+<div class="section" id="contents">
+<h2>Contents<a class="headerlink" href="#contents" title="Permalink to this headline">¶</a></h2>
+<div class="toctree-wrapper compound">
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="design.html">Linker Design</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="design.html#introduction">Introduction</a></li>
+<li class="toctree-l2"><a class="reference internal" href="design.html#atom-model">Atom Model</a></li>
+<li class="toctree-l2"><a class="reference internal" href="design.html#file-model">File Model</a></li>
+<li class="toctree-l2"><a class="reference internal" href="design.html#linking-steps">Linking Steps</a></li>
+<li class="toctree-l2"><a class="reference internal" href="design.html#lld-file-representations">lld::File representations</a></li>
+<li class="toctree-l2"><a class="reference internal" href="design.html#testing">Testing</a></li>
+<li class="toctree-l2"><a class="reference internal" href="design.html#design-issues">Design Issues</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="getting_started.html">Getting Started: Building and Running lld</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="getting_started.html#building-lld">Building lld</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="development.html">Development</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="development.html#creating-a-reader">Creating a Reader</a></li>
+<li class="toctree-l2"><a class="reference internal" href="development.html#modifying-the-driver">Modifying the Driver</a></li>
+<li class="toctree-l2"><a class="reference internal" href="development.html#debugging">Debugging</a></li>
+<li class="toctree-l2"><a class="reference internal" href="development.html#documentation">Documentation</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="open_projects.html">Open Projects</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="open_projects.html#include-lld-core">include/lld/Core</a></li>
+<li class="toctree-l2"><a class="reference internal" href="open_projects.html#documentation-todos">Documentation TODOs</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="sphinx_intro.html">Sphinx Introduction for LLVM Developers</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="sphinx_intro.html#quickstart">Quickstart</a></li>
+<li class="toctree-l2"><a class="reference internal" href="sphinx_intro.html#learning-more">Learning More</a></li>
+<li class="toctree-l2"><a class="reference internal" href="sphinx_intro.html#installing-sphinx-in-a-virtual-environment">Installing Sphinx in a Virtual Environment</a></li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<div class="section" id="indices-and-tables">
+<h2>Indices and tables<a class="headerlink" href="#indices-and-tables" title="Permalink to this headline">¶</a></h2>
+<ul class="simple">
+<li><a class="reference internal" href="genindex.html"><em>Index</em></a></li>
+<li><a class="reference internal" href="search.html"><em>Search Page</em></a></li>
+</ul>
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             >index</a></li>
+        <li class="right" >
+          <a href="design.html" title="Linker Design"
+             >next</a> |</li>
+        <li class="right" >
+          <a href="NewLLD.html" title="The ELF and COFF Linkers"
+             >previous</a> |</li>
+  <li><a href="index.html">lld Home</a> | </li>
+ 
+      </ul>
+    </div>
+    <div class="footer">
+        © Copyright 2011-2017, LLVM Project.
+      Last updated on 2017-09-05.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/lld/docs/Driver.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/lld/docs/Driver.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/lld/docs/Driver.html (added)
+++ www-releases/trunk/5.0.0/tools/lld/docs/Driver.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,227 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>Driver — lld 5 documentation</title>
+    
+    <link rel="stylesheet" href="_static/llvm.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    './',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/underscore.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <link rel="shortcut icon" href="_static/favicon.ico"/>
+    <link rel="top" title="lld 5 documentation" href="index.html" />
+    <link rel="up" title="Development" href="development.html" />
+    <link rel="next" title="Open Projects" href="open_projects.html" />
+    <link rel="prev" title="Developing lld Readers" href="Readers.html" />
+<style type="text/css">
+  table.right { float: right; margin-left: 20px; }
+  table.right td { border: 1px solid #ccc; }
+</style>
+
+  </head>
+  <body>
+<div class="logo">
+<a href="index.html"><img src="_static/logo.png" alt="LLVM Documentation"/></a>
+</div>
+
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="open_projects.html" title="Open Projects"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="Readers.html" title="Developing lld Readers"
+             accesskey="P">previous</a> |</li>
+  <li><a href="index.html">lld Home</a> | </li>
+
+          <li><a href="AtomLLD.html" >ATOM-based lld</a> »</li>
+          <li><a href="development.html" accesskey="U">Development</a> »</li> 
+      </ul>
+    </div>
+
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+  <h3><a href="index.html">Table Of Contents</a></h3>
+  <ul>
+<li><a class="reference internal" href="#">Driver</a><ul>
+<li><a class="reference internal" href="#introduction">Introduction</a></li>
+<li><a class="reference internal" href="#overview">Overview</a><ul>
+<li><a class="reference internal" href="#flavors">Flavors</a><ul>
+<li><a class="reference internal" href="#selecting-a-flavor">Selecting a Flavor</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a class="reference internal" href="#adding-an-option-to-an-existing-flavor">Adding an Option to an existing Flavor</a></li>
+<li><a class="reference internal" href="#adding-a-flavor">Adding a Flavor</a></li>
+</ul>
+</li>
+</ul>
+
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="Readers.html"
+                        title="previous chapter">Developing lld Readers</a></p>
+  <h4>Next topic</h4>
+  <p class="topless"><a href="open_projects.html"
+                        title="next chapter">Open Projects</a></p>
+  <h3>This Page</h3>
+  <ul class="this-page-menu">
+    <li><a href="_sources/Driver.txt"
+           rel="nofollow">Show Source</a></li>
+  </ul>
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <div class="section" id="driver">
+<h1>Driver<a class="headerlink" href="#driver" title="Permalink to this headline">¶</a></h1>
+<p>Note: this document discuss Mach-O port of LLD. For ELF and COFF,
+see <a class="reference internal" href="index.html"><em>LLD - The LLVM Linker</em></a>.</p>
+<div class="contents local topic" id="contents">
+<ul class="simple">
+<li><a class="reference internal" href="#introduction" id="id1">Introduction</a></li>
+<li><a class="reference internal" href="#overview" id="id2">Overview</a><ul>
+<li><a class="reference internal" href="#flavors" id="id3">Flavors</a><ul>
+<li><a class="reference internal" href="#selecting-a-flavor" id="id4">Selecting a Flavor</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a class="reference internal" href="#adding-an-option-to-an-existing-flavor" id="id5">Adding an Option to an existing Flavor</a></li>
+<li><a class="reference internal" href="#adding-a-flavor" id="id6">Adding a Flavor</a></li>
+</ul>
+</div>
+<div class="section" id="introduction">
+<h2><a class="toc-backref" href="#id1">Introduction</a><a class="headerlink" href="#introduction" title="Permalink to this headline">¶</a></h2>
+<p>This document describes the lld driver. The purpose of this document is to
+describe both the motivation and design goals for the driver, as well as details
+of the internal implementation.</p>
+</div>
+<div class="section" id="overview">
+<h2><a class="toc-backref" href="#id2">Overview</a><a class="headerlink" href="#overview" title="Permalink to this headline">¶</a></h2>
+<p>The lld driver is designed to support a number of different command line
+interfaces. The main interfaces we plan to support are binutils’ ld, Apple’s
+ld, and Microsoft’s link.exe.</p>
+<div class="section" id="flavors">
+<h3><a class="toc-backref" href="#id3">Flavors</a><a class="headerlink" href="#flavors" title="Permalink to this headline">¶</a></h3>
+<p>Each of these different interfaces is referred to as a flavor. There is also an
+extra flavor “core” which is used to exercise the core functionality of the
+linker it the test suite.</p>
+<ul class="simple">
+<li>gnu</li>
+<li>darwin</li>
+<li>link</li>
+<li>core</li>
+</ul>
+<div class="section" id="selecting-a-flavor">
+<h4><a class="toc-backref" href="#id4">Selecting a Flavor</a><a class="headerlink" href="#selecting-a-flavor" title="Permalink to this headline">¶</a></h4>
+<p>There are two different ways to tell lld which flavor to be. They are checked in
+order, so the second overrides the first. The first is to symlink <strong class="program">lld</strong>
+as <strong class="program">lld-{flavor}</strong> or just <strong class="program">{flavor}</strong>. You can also specify
+it as the first command line argument using <tt class="docutils literal"><span class="pre">-flavor</span></tt>:</p>
+<div class="highlight-python"><div class="highlight"><pre><span></span>$ lld -flavor gnu
+</pre></div>
+</div>
+<p>There is a shortcut for <tt class="docutils literal"><span class="pre">-flavor</span> <span class="pre">core</span></tt> as <tt class="docutils literal"><span class="pre">-core</span></tt>.</p>
+</div>
+</div>
+</div>
+<div class="section" id="adding-an-option-to-an-existing-flavor">
+<h2><a class="toc-backref" href="#id5">Adding an Option to an existing Flavor</a><a class="headerlink" href="#adding-an-option-to-an-existing-flavor" title="Permalink to this headline">¶</a></h2>
+<ol class="arabic simple">
+<li>Add the option to the desired <tt class="file docutils literal"><span class="pre">lib/Driver/</span><em><span class="pre">flavor</span></em><span class="pre">Options.td</span></tt>.</li>
+<li>Add to <tt class="xref cpp cpp-class docutils literal"><span class="pre">lld::FlavorLinkingContext</span></tt> a getter and setter method
+for the option.</li>
+<li>Modify <tt class="xref cpp cpp-func docutils literal"><span class="pre">lld::FlavorDriver::parse()</span></tt> in :file:
+<cite>lib/Driver/{Flavor}Driver.cpp</cite> to call the targetInfo setter
+for corresponding to the option.</li>
+<li>Modify {Flavor}Reader and {Flavor}Writer to use the new targtInfo option.</li>
+</ol>
+</div>
+<div class="section" id="adding-a-flavor">
+<h2><a class="toc-backref" href="#id6">Adding a Flavor</a><a class="headerlink" href="#adding-a-flavor" title="Permalink to this headline">¶</a></h2>
+<ol class="arabic simple">
+<li>Add an entry for the flavor in <tt class="file docutils literal"><span class="pre">include/lld/Driver/Driver.h</span></tt> to
+<tt class="xref cpp cpp-class docutils literal"><span class="pre">lld::UniversalDriver::Flavor</span></tt>.</li>
+<li>Add an entry in <tt class="file docutils literal"><span class="pre">lib/Driver/UniversalDriver.cpp</span></tt> to
+<tt class="xref cpp cpp-func docutils literal"><span class="pre">lld::Driver::strToFlavor()</span></tt> and
+<tt class="xref cpp cpp-func docutils literal"><span class="pre">lld::UniversalDriver::link()</span></tt>.
+This allows the flavor to be selected via symlink and <cite>-flavor</cite>.</li>
+<li>Add a tablegen file called <tt class="file docutils literal"><span class="pre">lib/Driver/</span><em><span class="pre">flavor</span></em><span class="pre">Options.td</span></tt> that
+describes the options. If the options are a superset of another driver, that
+driver’s td file can simply be included. The <tt class="file docutils literal"><em><span class="pre">flavor</span></em><span class="pre">Options.td</span></tt> file
+must also be added to <tt class="file docutils literal"><span class="pre">lib/Driver/CMakeLists.txt</span></tt>.</li>
+<li>Add a <tt class="docutils literal"><span class="pre">{flavor}Driver</span></tt> as a subclass of <tt class="xref cpp cpp-class docutils literal"><span class="pre">lld::Driver</span></tt>
+in <tt class="file docutils literal"><span class="pre">lib/Driver/</span><em><span class="pre">flavor</span></em><span class="pre">Driver.cpp</span></tt>.</li>
+</ol>
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             >index</a></li>
+        <li class="right" >
+          <a href="open_projects.html" title="Open Projects"
+             >next</a> |</li>
+        <li class="right" >
+          <a href="Readers.html" title="Developing lld Readers"
+             >previous</a> |</li>
+  <li><a href="index.html">lld Home</a> | </li>
+
+          <li><a href="AtomLLD.html" >ATOM-based lld</a> »</li>
+          <li><a href="development.html" >Development</a> »</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        © Copyright 2011-2017, LLVM Project.
+      Last updated on 2017-09-05.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/lld/docs/NewLLD.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/lld/docs/NewLLD.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/lld/docs/NewLLD.html (added)
+++ www-releases/trunk/5.0.0/tools/lld/docs/NewLLD.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,412 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>The ELF and COFF Linkers — lld 5 documentation</title>
+    
+    <link rel="stylesheet" href="_static/llvm.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    './',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/underscore.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <link rel="shortcut icon" href="_static/favicon.ico"/>
+    <link rel="top" title="lld 5 documentation" href="index.html" />
+    <link rel="next" title="ATOM-based lld" href="AtomLLD.html" />
+    <link rel="prev" title="LLD - The LLVM Linker" href="index.html" />
+<style type="text/css">
+  table.right { float: right; margin-left: 20px; }
+  table.right td { border: 1px solid #ccc; }
+</style>
+
+  </head>
+  <body>
+<div class="logo">
+<a href="index.html"><img src="_static/logo.png" alt="LLVM Documentation"/></a>
+</div>
+
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="AtomLLD.html" title="ATOM-based lld"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="index.html" title="LLD - The LLVM Linker"
+             accesskey="P">previous</a> |</li>
+  <li><a href="index.html">lld Home</a> | </li>
+ 
+      </ul>
+    </div>
+
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+  <h3><a href="index.html">Table Of Contents</a></h3>
+  <ul>
+<li><a class="reference internal" href="#">The ELF and COFF Linkers</a><ul>
+<li><a class="reference internal" href="#the-elf-linker-as-a-library">The ELF Linker as a Library</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#design">Design</a><ul>
+<li><a class="reference internal" href="#key-concepts">Key Concepts</a></li>
+<li><a class="reference internal" href="#numbers-you-want-to-know">Numbers You Want to Know</a></li>
+<li><a class="reference internal" href="#important-data-structures">Important Data Structures</a></li>
+<li><a class="reference internal" href="#link-time-optimization">Link-Time Optimization</a></li>
+<li><a class="reference internal" href="#glossary">Glossary</a></li>
+</ul>
+</li>
+</ul>
+
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="index.html"
+                        title="previous chapter">LLD - The LLVM Linker</a></p>
+  <h4>Next topic</h4>
+  <p class="topless"><a href="AtomLLD.html"
+                        title="next chapter">ATOM-based lld</a></p>
+  <h3>This Page</h3>
+  <ul class="this-page-menu">
+    <li><a href="_sources/NewLLD.txt"
+           rel="nofollow">Show Source</a></li>
+  </ul>
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <div class="section" id="the-elf-and-coff-linkers">
+<h1>The ELF and COFF Linkers<a class="headerlink" href="#the-elf-and-coff-linkers" title="Permalink to this headline">¶</a></h1>
+<div class="section" id="the-elf-linker-as-a-library">
+<h2>The ELF Linker as a Library<a class="headerlink" href="#the-elf-linker-as-a-library" title="Permalink to this headline">¶</a></h2>
+<p>You can embed LLD to your program by linking against it and calling the linker’s
+entry point function lld::elf::link.</p>
+<p>The current policy is that it is your reponsibility to give trustworthy object
+files. The function is guaranteed to return as long as you do not pass corrupted
+or malicious object files. A corrupted file could cause a fatal error or SEGV.
+That being said, you don’t need to worry too much about it if you create object
+files in the usual way and give them to the linker. It is naturally expected to
+work, or otherwise it’s a linker’s bug.</p>
+</div>
+</div>
+<div class="section" id="design">
+<h1>Design<a class="headerlink" href="#design" title="Permalink to this headline">¶</a></h1>
+<p>We will describe the design of the linkers in the rest of the document.</p>
+<div class="section" id="key-concepts">
+<h2>Key Concepts<a class="headerlink" href="#key-concepts" title="Permalink to this headline">¶</a></h2>
+<p>Linkers are fairly large pieces of software.
+There are many design choices you have to make to create a complete linker.</p>
+<p>This is a list of design choices we’ve made for ELF and COFF LLD.
+We believe that these high-level design choices achieved a right balance
+between speed, simplicity and extensibility.</p>
+<ul>
+<li><p class="first">Implement as native linkers</p>
+<p>We implemented the linkers as native linkers for each file format.</p>
+<p>The two linkers share the same design but do not share code.
+Sharing code makes sense if the benefit is worth its cost.
+In our case, ELF and COFF are different enough that we thought the layer to
+abstract the differences wouldn’t worth its complexity and run-time cost.
+Elimination of the abstract layer has greatly simplified the implementation.</p>
+</li>
+<li><p class="first">Speed by design</p>
+<p>One of the most important things in archiving high performance is to
+do less rather than do it efficiently.
+Therefore, the high-level design matters more than local optimizations.
+Since we are trying to create a high-performance linker,
+it is very important to keep the design as efficient as possible.</p>
+<p>Broadly speaking, we do not do anything until we have to do it.
+For example, we do not read section contents or relocations
+until we need them to continue linking.
+When we need to do some costly operation (such as looking up
+a hash table for each symbol), we do it only once.
+We obtain a handler (which is typically just a pointer to actual data)
+on the first operation and use it throughout the process.</p>
+</li>
+<li><p class="first">Efficient archive file handling</p>
+<p>LLD’s handling of archive files (the files with ”.a” file extension) is different
+from the traditional Unix linkers and similar to Windows linkers.
+We’ll describe how the traditional Unix linker handles archive files,
+what the problem is, and how LLD approached the problem.</p>
+<p>The traditional Unix linker maintains a set of undefined symbols during linking.
+The linker visits each file in the order as they appeared in the command line
+until the set becomes empty. What the linker would do depends on file type.</p>
+<ul class="simple">
+<li>If the linker visits an object file, the linker links object files to the result,
+and undefined symbols in the object file are added to the set.</li>
+<li>If the linker visits an archive file, it checks for the archive file’s symbol table
+and extracts all object files that have definitions for any symbols in the set.</li>
+</ul>
+<p>This algorithm sometimes leads to a counter-intuitive behavior.
+If you give archive files before object files, nothing will happen
+because when the linker visits archives, there is no undefined symbols in the set.
+As a result, no files are extracted from the first archive file,
+and the link is done at that point because the set is empty after it visits one file.</p>
+<p>You can fix the problem by reordering the files,
+but that cannot fix the issue of mutually-dependent archive files.</p>
+<p>Linking mutually-dependent archive files is tricky.
+You may specify the same archive file multiple times to
+let the linker visit it more than once.
+Or, you may use the special command line options, <cite>–start-group</cite> and <cite>–end-group</cite>,
+to let the linker loop over the files between the options until
+no new symbols are added to the set.</p>
+<p>Visiting the same archive files multiple makes the linker slower.</p>
+<p>Here is how LLD approaches the problem. Instead of memorizing only undefined symbols,
+we program LLD so that it memorizes all symbols.
+When it sees an undefined symbol that can be resolved by extracting an object file
+from an archive file it previously visited, it immediately extracts the file and link it.
+It is doable because LLD does not forget symbols it have seen in archive files.</p>
+<p>We believe that the LLD’s way is efficient and easy to justify.</p>
+<p>The semantics of LLD’s archive handling is different from the traditional Unix’s.
+You can observe it if you carefully craft archive files to exploit it.
+However, in reality, we don’t know any program that cannot link
+with our algorithm so far, so it’s not going to cause trouble.</p>
+</li>
+</ul>
+</div>
+<div class="section" id="numbers-you-want-to-know">
+<h2>Numbers You Want to Know<a class="headerlink" href="#numbers-you-want-to-know" title="Permalink to this headline">¶</a></h2>
+<p>To give you intuition about what kinds of data the linker is mainly working on,
+I’ll give you the list of objects and their numbers LLD has to read and process
+in order to link a very large executable. In order to link Chrome with debug info,
+which is roughly 2 GB in output size, LLD reads</p>
+<ul class="simple">
+<li>17,000 files,</li>
+<li>1,800,000 sections,</li>
+<li>6,300,000 symbols, and</li>
+<li>13,000,000 relocations.</li>
+</ul>
+<p>LLD produces the 2 GB executable in 15 seconds.</p>
+<p>These numbers vary depending on your program, but in general,
+you have a lot of relocations and symbols for each file.
+If your program is written in C++, symbol names are likely to be
+pretty long because of name mangling.</p>
+<p>It is important to not waste time on relocations and symbols.</p>
+<p>In the above case, the total amount of symbol strings is 450 MB,
+and inserting all of them to a hash table takes 1.5 seconds.
+Therefore, if you causally add a hash table lookup for each symbol,
+it would slow down the linker by 10%. So, don’t do that.</p>
+<p>On the other hand, you don’t have to pursue efficiency
+when handling files.</p>
+</div>
+<div class="section" id="important-data-structures">
+<h2>Important Data Structures<a class="headerlink" href="#important-data-structures" title="Permalink to this headline">¶</a></h2>
+<p>We will describe the key data structures in LLD in this section.
+The linker can be understood as the interactions between them.
+Once you understand their functions, the code of the linker should look obvious to you.</p>
+<ul>
+<li><p class="first">SymbolBody</p>
+<p>SymbolBody is a class to represent symbols.
+They are created for symbols in object files or archive files.
+The linker creates linker-defined symbols as well.</p>
+<p>There are basically three types of SymbolBodies: Defined, Undefined, or Lazy.</p>
+<ul class="simple">
+<li>Defined symbols are for all symbols that are considered as “resolved”,
+including real defined symbols, COMDAT symbols, common symbols,
+absolute symbols, linker-created symbols, etc.</li>
+<li>Undefined symbols represent undefined symbols, which need to be replaced by
+Defined symbols by the resolver until the link is complete.</li>
+<li>Lazy symbols represent symbols we found in archive file headers
+which can turn into Defined if we read archieve members.</li>
+</ul>
+</li>
+<li><p class="first">Symbol</p>
+<p>A Symbol is a container for a SymbolBody. There’s only one Symbol for each
+unique symbol name (this uniqueness is guaranteed by the symbol table).
+Each global symbol has only one SymbolBody at any one time, which is
+the SymbolBody stored within a memory region of the Symbol large enough
+to store any SymbolBody.</p>
+<p>As the resolver reads symbols from input files, it replaces the Symbol’s
+SymbolBody with the “best” SymbolBody for its symbol name by constructing
+the new SymbolBody in place on top of the existing SymbolBody. For example,
+if the resolver is given a defined symbol, and the SymbolBody with its name
+is undefined, it will construct a Defined SymbolBody over the Undefined
+SymbolBody.</p>
+<p>This means that each SymbolBody pointer always points to the best SymbolBody,
+and it is possible to get from a SymbolBody to a Symbol, or vice versa,
+by adding or subtracting a fixed offset. This memory layout helps reduce
+the cache miss rate through high locality and a small number of required
+pointer indirections.</p>
+</li>
+<li><p class="first">SymbolTable</p>
+<p>SymbolTable is basically a hash table from strings to Symbols
+with logic to resolve symbol conflicts. It resolves conflicts by symbol type.</p>
+<ul class="simple">
+<li>If we add Defined and Undefined symbols, the symbol table will keep the former.</li>
+<li>If we add Defined and Lazy symbols, it will keep the former.</li>
+<li>If we add Lazy and Undefined, it will keep the former,
+but it will also trigger the Lazy symbol to load the archive member
+to actually resolve the symbol.</li>
+</ul>
+</li>
+<li><p class="first">Chunk (COFF specific)</p>
+<p>Chunk represents a chunk of data that will occupy space in an output.
+Each regular section becomes a chunk.
+Chunks created for common or BSS symbols are not backed by sections.
+The linker may create chunks to append additional data to an output as well.</p>
+<p>Chunks know about their size, how to copy their data to mmap’ed outputs,
+and how to apply relocations to them.
+Specifically, section-based chunks know how to read relocation tables
+and how to apply them.</p>
+</li>
+<li><p class="first">InputSection (ELF specific)</p>
+<p>Since we have less synthesized data for ELF, we don’t abstract slices of
+input files as Chunks for ELF. Instead, we directly use the input section
+as an internal data type.</p>
+<p>InputSection knows about their size and how to copy themselves to
+mmap’ed outputs, just like COFF Chunks.</p>
+</li>
+<li><p class="first">OutputSection</p>
+<p>OutputSection is a container of InputSections (ELF) or Chunks (COFF).
+An InputSection or Chunk belongs to at most one OutputSection.</p>
+</li>
+</ul>
+<p>There are mainly three actors in this linker.</p>
+<ul>
+<li><p class="first">InputFile</p>
+<p>InputFile is a superclass of file readers.
+We have a different subclass for each input file type,
+such as regular object file, archive file, etc.
+They are responsible for creating and owning SymbolBodies and
+InputSections/Chunks.</p>
+</li>
+<li><p class="first">Writer</p>
+<p>The writer is responsible for writing file headers and InputSections/Chunks to a file.
+It creates OutputSections, put all InputSections/Chunks into them,
+assign unique, non-overlapping addresses and file offsets to them,
+and then write them down to a file.</p>
+</li>
+<li><p class="first">Driver</p>
+<p>The linking process is driven by the driver. The driver:</p>
+<ul class="simple">
+<li>processes command line options,</li>
+<li>creates a symbol table,</li>
+<li>creates an InputFile for each input file and puts all symbols within into the symbol table,</li>
+<li>checks if there’s no remaining undefined symbols,</li>
+<li>creates a writer,</li>
+<li>and passes the symbol table to the writer to write the result to a file.</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="section" id="link-time-optimization">
+<h2>Link-Time Optimization<a class="headerlink" href="#link-time-optimization" title="Permalink to this headline">¶</a></h2>
+<p>LTO is implemented by handling LLVM bitcode files as object files.
+The linker resolves symbols in bitcode files normally. If all symbols
+are successfully resolved, it then runs LLVM passes
+with all bitcode files to convert them to one big regular ELF/COFF file.
+Finally, the linker replaces bitcode symbols with ELF/COFF symbols,
+so that they are linked as if they were in the native format from the beginning.</p>
+<p>The details are described in this document.
+<a class="reference external" href="http://llvm.org/docs/LinkTimeOptimization.html">http://llvm.org/docs/LinkTimeOptimization.html</a></p>
+</div>
+<div class="section" id="glossary">
+<h2>Glossary<a class="headerlink" href="#glossary" title="Permalink to this headline">¶</a></h2>
+<ul>
+<li><p class="first">RVA (COFF)</p>
+<p>Short for Relative Virtual Address.</p>
+<p>Windows executables or DLLs are not position-independent; they are
+linked against a fixed address called an image base. RVAs are
+offsets from an image base.</p>
+<p>Default image bases are 0x140000000 for executables and 0x18000000
+for DLLs. For example, when we are creating an executable, we assume
+that the executable will be loaded at address 0x140000000 by the
+loader, so we apply relocations accordingly. Result texts and data
+will contain raw absolute addresses.</p>
+</li>
+<li><p class="first">VA</p>
+<p>Short for Virtual Address. For COFF, it is equivalent to RVA + image base.</p>
+</li>
+<li><p class="first">Base relocations (COFF)</p>
+<p>Relocation information for the loader. If the loader decides to map
+an executable or a DLL to a different address than their image
+bases, it fixes up binaries using information contained in the base
+relocation table. A base relocation table consists of a list of
+locations containing addresses. The loader adds a difference between
+RVA and actual load address to all locations listed there.</p>
+<p>Note that this run-time relocation mechanism is much simpler than ELF.
+There’s no PLT or GOT. Images are relocated as a whole just
+by shifting entire images in memory by some offsets. Although doing
+this breaks text sharing, I think this mechanism is not actually bad
+on today’s computers.</p>
+</li>
+<li><p class="first">ICF</p>
+<p>Short for Identical COMDAT Folding (COFF) or Identical Code Folding (ELF).</p>
+<p>ICF is an optimization to reduce output size by merging read-only sections
+by not only their names but by their contents. If two read-only sections
+happen to have the same metadata, actual contents and relocations,
+they are merged by ICF. It is known as an effective technique,
+and it usually reduces C++ program’s size by a few percent or more.</p>
+<p>Note that this is not entirely sound optimization. C/C++ require
+different functions have different addresses. If a program depends on
+that property, it would fail at runtime.</p>
+<p>On Windows, that’s not really an issue because MSVC link.exe enabled
+the optimization by default. As long as your program works
+with the linker’s default settings, your program should be safe with ICF.</p>
+<p>On Unix, your program is generally not guaranteed to be safe with ICF,
+although large programs happen to work correctly.
+LLD works fine with ICF for example.</p>
+</li>
+</ul>
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             >index</a></li>
+        <li class="right" >
+          <a href="AtomLLD.html" title="ATOM-based lld"
+             >next</a> |</li>
+        <li class="right" >
+          <a href="index.html" title="LLD - The LLVM Linker"
+             >previous</a> |</li>
+  <li><a href="index.html">lld Home</a> | </li>
+ 
+      </ul>
+    </div>
+    <div class="footer">
+        © Copyright 2011-2017, LLVM Project.
+      Last updated on 2017-09-05.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/lld/docs/Readers.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/lld/docs/Readers.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/lld/docs/Readers.html (added)
+++ www-releases/trunk/5.0.0/tools/lld/docs/Readers.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,300 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>Developing lld Readers — lld 5 documentation</title>
+    
+    <link rel="stylesheet" href="_static/llvm.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    './',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/underscore.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <link rel="shortcut icon" href="_static/favicon.ico"/>
+    <link rel="top" title="lld 5 documentation" href="index.html" />
+    <link rel="up" title="Development" href="development.html" />
+    <link rel="next" title="Driver" href="Driver.html" />
+    <link rel="prev" title="Development" href="development.html" />
+<style type="text/css">
+  table.right { float: right; margin-left: 20px; }
+  table.right td { border: 1px solid #ccc; }
+</style>
+
+  </head>
+  <body>
+<div class="logo">
+<a href="index.html"><img src="_static/logo.png" alt="LLVM Documentation"/></a>
+</div>
+
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="Driver.html" title="Driver"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="development.html" title="Development"
+             accesskey="P">previous</a> |</li>
+  <li><a href="index.html">lld Home</a> | </li>
+
+          <li><a href="AtomLLD.html" >ATOM-based lld</a> »</li>
+          <li><a href="development.html" accesskey="U">Development</a> »</li> 
+      </ul>
+    </div>
+
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+  <h3><a href="index.html">Table Of Contents</a></h3>
+  <ul>
+<li><a class="reference internal" href="#">Developing lld Readers</a><ul>
+<li><a class="reference internal" href="#introduction">Introduction</a></li>
+<li><a class="reference internal" href="#where-to-start">Where to start</a></li>
+<li><a class="reference internal" href="#readers-are-factories">Readers are factories</a></li>
+<li><a class="reference internal" href="#memory-ownership">Memory Ownership</a></li>
+<li><a class="reference internal" href="#making-atoms">Making Atoms</a></li>
+<li><a class="reference internal" href="#performance">Performance</a></li>
+<li><a class="reference internal" href="#testing">Testing</a></li>
+</ul>
+</li>
+</ul>
+
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="development.html"
+                        title="previous chapter">Development</a></p>
+  <h4>Next topic</h4>
+  <p class="topless"><a href="Driver.html"
+                        title="next chapter">Driver</a></p>
+  <h3>This Page</h3>
+  <ul class="this-page-menu">
+    <li><a href="_sources/Readers.txt"
+           rel="nofollow">Show Source</a></li>
+  </ul>
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <div class="section" id="developing-lld-readers">
+<span id="readers"></span><h1>Developing lld Readers<a class="headerlink" href="#developing-lld-readers" title="Permalink to this headline">¶</a></h1>
+<p>Note: this document discuss Mach-O port of LLD. For ELF and COFF,
+see <a class="reference internal" href="index.html"><em>LLD - The LLVM Linker</em></a>.</p>
+<div class="section" id="introduction">
+<h2>Introduction<a class="headerlink" href="#introduction" title="Permalink to this headline">¶</a></h2>
+<p>The purpose of a “Reader” is to take an object file in a particular format
+and create an <tt class="xref cpp cpp-class docutils literal"><span class="pre">lld::File</span></tt> (which is a graph of Atoms)
+representing the object file.  A Reader inherits from
+<tt class="xref cpp cpp-class docutils literal"><span class="pre">lld::Reader</span></tt> which lives in
+<tt class="file docutils literal"><span class="pre">include/lld/Core/Reader.h</span></tt> and
+<tt class="file docutils literal"><span class="pre">lib/Core/Reader.cpp</span></tt>.</p>
+<p>The Reader infrastructure for an object format <tt class="docutils literal"><span class="pre">Foo</span></tt> requires the
+following pieces in order to fit into lld:</p>
+<p><tt class="file docutils literal"><span class="pre">include/lld/ReaderWriter/ReaderFoo.h</span></tt></p>
+<blockquote>
+<div><dl class="class">
+<dt id="ReaderOptionsFoo">
+<em class="property">class </em><tt class="descname">ReaderOptionsFoo</tt> : <em class="property">public</em> <em>ReaderOptions</em><a class="headerlink" href="#ReaderOptionsFoo" title="Permalink to this definition">¶</a></dt>
+<dd><p>This Options class is the only way to configure how the Reader will
+parse any file into an <tt class="xref cpp cpp-class docutils literal"><span class="pre">lld::Reader</span></tt> object.  This class
+should be declared in the <tt class="xref cpp cpp-class docutils literal"><span class="pre">lld</span></tt> namespace.</p>
+</dd></dl>
+
+<dl class="function">
+<dt id="createReaderFoo__ReaderOptionsFooR">
+Reader* <tt class="descname">createReaderFoo</tt><big>(</big>ReaderOptionsFoo& <em>reader</em><big>)</big><a class="headerlink" href="#createReaderFoo__ReaderOptionsFooR" title="Permalink to this definition">¶</a></dt>
+<dd><p>This factory function configures and create the Reader. This function
+should be declared in the <tt class="xref cpp cpp-class docutils literal"><span class="pre">lld</span></tt> namespace.</p>
+</dd></dl>
+
+</div></blockquote>
+<p><tt class="file docutils literal"><span class="pre">lib/ReaderWriter/Foo/ReaderFoo.cpp</span></tt></p>
+<blockquote>
+<div><dl class="class">
+<dt id="ReaderFoo">
+<em class="property">class </em><tt class="descname">ReaderFoo</tt> : <em class="property">public</em> <em>Reader</em><a class="headerlink" href="#ReaderFoo" title="Permalink to this definition">¶</a></dt>
+<dd><p>This is the concrete Reader class which can be called to parse
+object files. It should be declared in an anonymous namespace or
+if there is shared code with the <tt class="xref cpp cpp-class docutils literal"><span class="pre">lld::WriterFoo</span></tt> you
+can make a nested namespace (e.g. <tt class="xref cpp cpp-class docutils literal"><span class="pre">lld::foo</span></tt>).</p>
+</dd></dl>
+
+</div></blockquote>
+<p>You may have noticed that <a class="reference internal" href="#ReaderFoo" title="ReaderFoo"><tt class="xref cpp cpp-class docutils literal"><span class="pre">ReaderFoo</span></tt></a> is not declared in the
+<tt class="docutils literal"><span class="pre">.h</span></tt> file. An important design aspect of lld is that all Readers are
+created <em>only</em> through an object-format-specific
+<a class="reference internal" href="#createReaderFoo__ReaderOptionsFooR" title="createReaderFoo"><tt class="xref cpp cpp-func docutils literal"><span class="pre">createReaderFoo()</span></tt></a> factory function. The creation of the Reader is
+parametrized through a <a class="reference internal" href="#ReaderOptionsFoo" title="ReaderOptionsFoo"><tt class="xref cpp cpp-class docutils literal"><span class="pre">ReaderOptionsFoo</span></tt></a> class. This options
+class is the one-and-only way to control how the Reader operates when
+parsing an input file into an Atom graph. For instance, you may want the
+Reader to only accept certain architectures. The options class can be
+instantiated from command line options or be programmatically configured.</p>
+</div>
+<div class="section" id="where-to-start">
+<h2>Where to start<a class="headerlink" href="#where-to-start" title="Permalink to this headline">¶</a></h2>
+<p>The lld project already has a skeleton of source code for Readers for
+<tt class="docutils literal"><span class="pre">ELF</span></tt>, <tt class="docutils literal"><span class="pre">PECOFF</span></tt>, <tt class="docutils literal"><span class="pre">MachO</span></tt>, and lld’s native <tt class="docutils literal"><span class="pre">YAML</span></tt> graph format.
+If your file format is a variant of one of those, you should modify the
+existing Reader to support your variant. This is done by customizing the Options
+class for the Reader and making appropriate changes to the <tt class="docutils literal"><span class="pre">.cpp</span></tt> file to
+interpret those options and act accordingly.</p>
+<p>If your object file format is not a variant of any existing Reader, you’ll need
+to create a new Reader subclass with the organization described above.</p>
+</div>
+<div class="section" id="readers-are-factories">
+<h2>Readers are factories<a class="headerlink" href="#readers-are-factories" title="Permalink to this headline">¶</a></h2>
+<p>The linker will usually only instantiate your Reader once.  That one Reader will
+have its loadFile() method called many times with different input files.
+To support multithreaded linking, the Reader may be parsing multiple input
+files in parallel. Therefore, there should be no parsing state in you Reader
+object.  Any parsing state should be in ivars of your File subclass or in
+some temporary object.</p>
+<p>The key method to implement in a reader is:</p>
+<div class="highlight-python"><div class="highlight"><pre><span></span>virtual error_code loadFile(LinkerInput &input,
+                            std::vector<std::unique_ptr<File>> &result);
+</pre></div>
+</div>
+<p>It takes a memory buffer (which contains the contents of the object file
+being read) and returns an instantiated lld::File object which is
+a collection of Atoms. The result is a vector of File pointers (instead of
+simple a File pointer) because some file formats allow multiple object
+“files” to be encoded in one file system file.</p>
+</div>
+<div class="section" id="memory-ownership">
+<h2>Memory Ownership<a class="headerlink" href="#memory-ownership" title="Permalink to this headline">¶</a></h2>
+<p>Atoms are always owned by their File object. During core linking when Atoms
+are coalesced or stripped away, core linking does not delete them.
+Core linking just removes those unused Atoms from its internal list.
+The destructor of a File object is responsible for deleting all Atoms it
+owns, and if ownership of the MemoryBuffer was passed to it, the File
+destructor needs to delete that too.</p>
+</div>
+<div class="section" id="making-atoms">
+<h2>Making Atoms<a class="headerlink" href="#making-atoms" title="Permalink to this headline">¶</a></h2>
+<p>The internal model of lld is purely Atom based.  But most object files do not
+have an explicit concept of Atoms, instead most have “sections”. The way
+to think of this is that a section is just a list of Atoms with common
+attributes.</p>
+<p>The first step in parsing section-based object files is to cleave each
+section into a list of Atoms. The technique may vary by section type. For
+code sections (e.g. .text), there are usually symbols at the start of each
+function. Those symbol addresses are the points at which the section is
+cleaved into discrete Atoms.  Some file formats (like ELF) also include the
+length of each symbol in the symbol table. Otherwise, the length of each
+Atom is calculated to run to the start of the next symbol or the end of the
+section.</p>
+<p>Other sections types can be implicitly cleaved. For instance c-string literals
+or unwind info (e.g. .eh_frame) can be cleaved by having the Reader look at
+the content of the section.  It is important to cleave sections into Atoms
+to remove false dependencies. For instance the .eh_frame section often
+has no symbols, but contains “pointers” to the functions for which it
+has unwind info.  If the .eh_frame section was not cleaved (but left as one
+big Atom), there would always be a reference (from the eh_frame Atom) to
+each function.  So the linker would be unable to coalesce or dead stripped
+away the function atoms.</p>
+<p>The lld Atom model also requires that a reference to an undefined symbol be
+modeled as a Reference to an UndefinedAtom. So the Reader also needs to
+create an UndefinedAtom for each undefined symbol in the object file.</p>
+<p>Once all Atoms have been created, the second step is to create References
+(recall that Atoms are “nodes” and References are “edges”). Most References
+are created by looking at the “relocation records” in the object file. If
+a function contains a call to “malloc”, there is usually a relocation record
+specifying the address in the section and the symbol table index. Your
+Reader will need to convert the address to an Atom and offset and the symbol
+table index into a target Atom. If “malloc” is not defined in the object file,
+the target Atom of the Reference will be an UndefinedAtom.</p>
+</div>
+<div class="section" id="performance">
+<h2>Performance<a class="headerlink" href="#performance" title="Permalink to this headline">¶</a></h2>
+<p>Once you have the above working to parse an object file into Atoms and
+References, you’ll want to look at performance.  Some techniques that can
+help performance are:</p>
+<ul class="simple">
+<li>Use llvm::BumpPtrAllocator or pre-allocate one big vector<Reference> and then
+just have each atom point to its subrange of References in that vector.
+This can be faster that allocating each Reference as separate object.</li>
+<li>Pre-scan the symbol table and determine how many atoms are in each section
+then allocate space for all the Atom objects at once.</li>
+<li>Don’t copy symbol names or section content to each Atom, instead use
+StringRef and ArrayRef in each Atom to point to its name and content in the
+MemoryBuffer.</li>
+</ul>
+</div>
+<div class="section" id="testing">
+<h2>Testing<a class="headerlink" href="#testing" title="Permalink to this headline">¶</a></h2>
+<p>We are still working on infrastructure to test Readers. The issue is that
+you don’t want to check in binary files to the test suite. And the tools
+for creating your object file from assembly source may not be available on
+every OS.</p>
+<p>We are investigating a way to use YAML to describe the section, symbols,
+and content of a file. Then have some code which will write out an object
+file from that YAML description.</p>
+<p>Once that is in place, you can write test cases that contain section/symbols
+YAML and is run through the linker to produce Atom/References based YAML which
+is then run through FileCheck to verify the Atoms and References are as
+expected.</p>
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             >index</a></li>
+        <li class="right" >
+          <a href="Driver.html" title="Driver"
+             >next</a> |</li>
+        <li class="right" >
+          <a href="development.html" title="Development"
+             >previous</a> |</li>
+  <li><a href="index.html">lld Home</a> | </li>
+
+          <li><a href="AtomLLD.html" >ATOM-based lld</a> »</li>
+          <li><a href="development.html" >Development</a> »</li> 
+      </ul>
+    </div>
+    <div class="footer">
+        © Copyright 2011-2017, LLVM Project.
+      Last updated on 2017-09-05.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/lld/docs/ReleaseNotes.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/lld/docs/ReleaseNotes.html?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/lld/docs/ReleaseNotes.html (added)
+++ www-releases/trunk/5.0.0/tools/lld/docs/ReleaseNotes.html Thu Sep  7 10:47:16 2017
@@ -0,0 +1,300 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    
+    <title>lld 5.0.0 Release Notes — lld 5 documentation</title>
+    
+    <link rel="stylesheet" href="_static/llvm.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    './',
+        VERSION:     '5',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '.html',
+        HAS_SOURCE:  true
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/underscore.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <link rel="shortcut icon" href="_static/favicon.ico"/>
+    <link rel="top" title="lld 5 documentation" href="index.html" />
+    <link rel="prev" title="Windows support" href="windows_support.html" />
+<style type="text/css">
+  table.right { float: right; margin-left: 20px; }
+  table.right td { border: 1px solid #ccc; }
+</style>
+
+  </head>
+  <body>
+<div class="logo">
+<a href="index.html"><img src="_static/logo.png" alt="LLVM Documentation"/></a>
+</div>
+
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="windows_support.html" title="Windows support"
+             accesskey="P">previous</a> |</li>
+  <li><a href="index.html">lld Home</a> | </li>
+ 
+      </ul>
+    </div>
+
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+  <h3><a href="index.html">Table Of Contents</a></h3>
+  <ul>
+<li><a class="reference internal" href="#">lld 5.0.0 Release Notes</a><ul>
+<li><a class="reference internal" href="#introduction">Introduction</a></li>
+<li><a class="reference internal" href="#non-comprehensive-list-of-changes-in-this-release">Non-comprehensive list of changes in this release</a><ul>
+<li><a class="reference internal" href="#elf-improvements">ELF Improvements</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#contributors-to-lld-5-0">Contributors to lld 5.0</a></li>
+</ul>
+</li>
+</ul>
+
+  <h4>Previous topic</h4>
+  <p class="topless"><a href="windows_support.html"
+                        title="previous chapter">Windows support</a></p>
+  <h3>This Page</h3>
+  <ul class="this-page-menu">
+    <li><a href="_sources/ReleaseNotes.txt"
+           rel="nofollow">Show Source</a></li>
+  </ul>
+<div id="searchbox" style="display: none">
+  <h3>Quick search</h3>
+    <form class="search" action="search.html" method="get">
+      <input type="text" name="q" />
+      <input type="submit" value="Go" />
+      <input type="hidden" name="check_keywords" value="yes" />
+      <input type="hidden" name="area" value="default" />
+    </form>
+    <p class="searchtip" style="font-size: 90%">
+    Enter search terms or a module, class or function name.
+    </p>
+</div>
+<script type="text/javascript">$('#searchbox').show(0);</script>
+        </div>
+      </div>
+
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  <div class="section" id="lld-5-0-0-release-notes">
+<h1>lld 5.0.0 Release Notes<a class="headerlink" href="#lld-5-0-0-release-notes" title="Permalink to this headline">¶</a></h1>
+<div class="contents local topic" id="contents">
+<ul class="simple">
+<li><a class="reference internal" href="#introduction" id="id1">Introduction</a></li>
+<li><a class="reference internal" href="#non-comprehensive-list-of-changes-in-this-release" id="id2">Non-comprehensive list of changes in this release</a><ul>
+<li><a class="reference internal" href="#elf-improvements" id="id3">ELF Improvements</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#contributors-to-lld-5-0" id="id4">Contributors to lld 5.0</a></li>
+</ul>
+</div>
+<div class="section" id="introduction">
+<h2><a class="toc-backref" href="#id1">Introduction</a><a class="headerlink" href="#introduction" title="Permalink to this headline">¶</a></h2>
+<p>lld is a linker from the LLVM project. It supports ELF (Unix), COFF (Windows)
+and Mach-O (macOS), and it is generally faster than the GNU bfd or gold linkers
+or the MSVC linker.</p>
+<p>lld is designed to be a drop-in replacement for the system linkers, so that
+users don’t need to change their build systems other than swapping the linker
+command.</p>
+<p>All lld releases may be downloaded from the <a class="reference external" href="http://llvm.org/releases/">LLVM releases web site</a>.</p>
+</div>
+<div class="section" id="non-comprehensive-list-of-changes-in-this-release">
+<h2><a class="toc-backref" href="#id2">Non-comprehensive list of changes in this release</a><a class="headerlink" href="#non-comprehensive-list-of-changes-in-this-release" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="elf-improvements">
+<h3><a class="toc-backref" href="#id3">ELF Improvements</a><a class="headerlink" href="#elf-improvements" title="Permalink to this headline">¶</a></h3>
+<ul>
+<li><p class="first">First and foremost, a lot of compatibility issues and bugs have been fixed.
+Linker script support has significantly improved. As a result, we believe you
+are very likely to be able to link your programs with lld without experiencing
+any problem now.</p>
+</li>
+<li><p class="first">Error message format has changed in order to improve readability.
+Traditionally, linker’s error messages are concise and arguably too terse.
+This is an example of lld 4.0.0’s error message (they are actually in one line):</p>
+<div class="highlight-python"><div class="highlight"><pre><span></span>/ssd/clang/bin/ld.lld: error: /ssd/llvm-project/lld/ELF/Writer.cpp:207:
+  undefined symbol 'lld::elf::EhFrameSection::addSection()'
+</pre></div>
+</div>
+<p>It is not easy to read because too much information is packed into a single line
+and the embedded text, particularly a symbol name, is sometimes too long.
+In lld 5.0.0, we use more vertical space to print out error messages in a more
+structured manner like this:</p>
+<div class="highlight-python"><div class="highlight"><pre><span></span>bin/ld.lld: error: undefined symbol: lld::elf::EhFrameSection::addSection()
+>>> Referenced by Writer.cpp:207 (/ssd/llvm-project/lld/ELF/Writer.cpp:207)
+>>>               Writer.cpp.o in archive lib/liblldELF.a
+</pre></div>
+</div>
+<p>As a bonus, the new error message contains source code location of the error
+if it is available from debug info.</p>
+</li>
+<li><p class="first"><tt class="docutils literal"><span class="pre">./configure</span></tt> scripts generated by GNU autoconf determines whether a linker
+supports modern GNU-compatible features or not by searching for “GNU” in the
+<tt class="docutils literal"><span class="pre">--help</span></tt> message. To be compatible with the scripts, we decided to add a
+string “(compatible with GNU linkers)” to our <tt class="docutils literal"><span class="pre">--help</span></tt> message. This is a
+hack, but just like the web browser’s User-Agent string (which everyone still
+claim they are “Mozilla/5.0”), we had no choice other than doing this to claim
+that we accept GNU-compatible options.</p>
+</li>
+<li><p class="first">The <tt class="docutils literal"><span class="pre">-Map</span></tt> option is added. The option is to make the linker to print out how
+input files are mapped to the output file. Here is an example:</p>
+<div class="highlight-python"><div class="highlight"><pre><span></span>Address          Size             Align Out     In      Symbol
+00000000016d84d8 00000000008f8f50     8 .eh_frame
+00000000016d84d8 00000000008f8f50     8         <internal>:(.eh_frame)
+0000000001fd2000 00000000034b3bd0    16 .text
+0000000001fd2000 000000000000002a     1         /usr/lib/x86_64-linux-gnu/crt1.o:(.text)
+0000000001fd2000 0000000000000000     0                 _start
+0000000001fd202a 0000000000000000     1         /usr/lib/x86_64-linux-gnu/crti.o:(.text)
+0000000001fd2030 00000000000000bd    16         /usr/lib/gcc/x86_64-linux-gnu/4.8/crtbegin.o:(.text)
+0000000001fd2030 0000000000000000     0                 deregister_tm_clones
+0000000001fd2060 0000000000000000     0                 register_tm_clones
+</pre></div>
+</div>
+<p>This format is not the same as GNU linkers as our linker internal data
+structure is different from them but contains the same amount of information
+and should be more readable than their outputs.</p>
+<p>As with other lld features, the <tt class="docutils literal"><span class="pre">-Map</span></tt> option is designed with speed in mind.
+The option would generate a hundred megabyte text file if you link a large
+program with it. lld can usually do that in a few seconds, and it is generally
+a few times faster than the GNU gold’s <tt class="docutils literal"><span class="pre">-Map</span></tt> option.</p>
+</li>
+<li><p class="first">lld’s <tt class="docutils literal"><span class="pre">--gdb-index</span></tt> option used to be slow, but we sped it up so that it is
+at least as fast as the GNU gold.</p>
+</li>
+<li><p class="first">Some nonstandard relocations, such as R_X86_64_8 or R_X86_64_16, are supported.
+They are not used for 32/64-bit applications, but some 16-bit bootloaders need
+them.</p>
+</li>
+<li><p class="first">Paddings in executable text sections are now filled with trap instructions
+(such as INT3) instead of being left as null bytes. This change improves
+disassembler outputs because it now prints out trap instructions instead of
+trying to decode 0x00 as an instruction. It also makes debugging of some type
+of program easier because when the control reaches a padding, the program
+immediately raises an error.</p>
+</li>
+<li><p class="first">The following options are added: <tt class="docutils literal"><span class="pre">-M</span></tt>, <tt class="docutils literal"><span class="pre">-Map</span></tt>,
+<tt class="docutils literal"><span class="pre">-compress-debug-sections</span></tt>, <tt class="docutils literal"><span class="pre">-emit-relocs</span></tt>,
+<tt class="docutils literal"><span class="pre">-error-unresolved-symbols</span></tt>, <tt class="docutils literal"><span class="pre">-exclude-libs</span></tt>, <tt class="docutils literal"><span class="pre">-filter</span></tt>,
+<tt class="docutils literal"><span class="pre">-no-dynamic-linker</span></tt>, <tt class="docutils literal"><span class="pre">-no-export-dynamic</span></tt>, <tt class="docutils literal"><span class="pre">-no-fatal-warnings</span></tt>,
+<tt class="docutils literal"><span class="pre">-print-map</span></tt>, <tt class="docutils literal"><span class="pre">-warn-unresolved-symbols</span></tt>, <tt class="docutils literal"><span class="pre">-z</span> <span class="pre">nocopyreloc</span></tt>,
+<tt class="docutils literal"><span class="pre">-z</span> <span class="pre">notext</span></tt>, <tt class="docutils literal"><span class="pre">-z</span> <span class="pre">rodynamic</span></tt></p>
+</li>
+</ul>
+</div>
+</div>
+<div class="section" id="contributors-to-lld-5-0">
+<h2><a class="toc-backref" href="#id4">Contributors to lld 5.0</a><a class="headerlink" href="#contributors-to-lld-5-0" title="Permalink to this headline">¶</a></h2>
+<p>We had 63 individuals contribute to lld 5.0. Thank you so much!</p>
+<ul class="simple">
+<li>Adrian McCarthy</li>
+<li>Alberto Magni</li>
+<li>Alexander Richardson</li>
+<li>Andre Vieira</li>
+<li>Andrew Ng</li>
+<li>Anton Korobeynikov</li>
+<li>Bob Haarman</li>
+<li>David Blaikie</li>
+<li>Davide Italiano</li>
+<li>David L. Jones</li>
+<li>Dmitry Mikulin</li>
+<li>Ed Maste</li>
+<li>Ed Schouten</li>
+<li>Eric Beckmann</li>
+<li>Eric Fiselier</li>
+<li>Eugene Leviant</li>
+<li>Evgeniy Stepanov</li>
+<li>Galina Kistanova</li>
+<li>George Rimar</li>
+<li>Hans Wennborg</li>
+<li>Igor Kudrin</li>
+<li>Ismail Donmez</li>
+<li>Jake Ehrlich</li>
+<li>James Henderson</li>
+<li>Joel Jones</li>
+<li>Jon Chesterfield</li>
+<li>Kamil Rytarowski</li>
+<li>Kevin Enderby</li>
+<li>Konstantin Zhuravlyov</li>
+<li>Kyungwoo Lee</li>
+<li>Leslie Zhai</li>
+<li>Mark Kettenis</li>
+<li>Martell Malone</li>
+<li>Martin Storsjo</li>
+<li>Meador Inge</li>
+<li>Mehdi Amini</li>
+<li>Michal Gorny</li>
+<li>NAKAMURA Takumi</li>
+<li>Paul Robinson</li>
+<li>Pavel Labath</li>
+<li>Petar Jovanovic</li>
+<li>Peter Collingbourne</li>
+<li>Peter Smith</li>
+<li>Petr Hosek</li>
+<li>Rafael Espindola</li>
+<li>Reid Kleckner</li>
+<li>Richard Smith</li>
+<li>Robert Clarke</li>
+<li>Rui Ueyama</li>
+<li>Saleem Abdulrasool</li>
+<li>Sam Clegg</li>
+<li>Sean Eveson</li>
+<li>Sean Silva</li>
+<li>Shankar Easwaran</li>
+<li>Shoaib Meenai</li>
+<li>Simon Atanasyan</li>
+<li>Simon Dardis</li>
+<li>Simon Tatham</li>
+<li>Sylvestre Ledru</li>
+<li>Tom Stellard</li>
+<li>Vitaly Buka</li>
+<li>Yuka Takahashi</li>
+<li>Zachary Turner</li>
+</ul>
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             >index</a></li>
+        <li class="right" >
+          <a href="windows_support.html" title="Windows support"
+             >previous</a> |</li>
+  <li><a href="index.html">lld Home</a> | </li>
+ 
+      </ul>
+    </div>
+    <div class="footer">
+        © Copyright 2011-2017, LLVM Project.
+      Last updated on 2017-09-05.
+      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
+    </div>
+  </body>
+</html>
\ No newline at end of file

Added: www-releases/trunk/5.0.0/tools/lld/docs/_images/hello.png
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/lld/docs/_images/hello.png?rev=312731&view=auto
==============================================================================
Binary file - no diff available.

Propchange: www-releases/trunk/5.0.0/tools/lld/docs/_images/hello.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: www-releases/trunk/5.0.0/tools/lld/docs/_sources/AtomLLD.txt
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/lld/docs/_sources/AtomLLD.txt?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/lld/docs/_sources/AtomLLD.txt (added)
+++ www-releases/trunk/5.0.0/tools/lld/docs/_sources/AtomLLD.txt Thu Sep  7 10:47:16 2017
@@ -0,0 +1,62 @@
+ATOM-based lld
+==============
+
+Note: this document discuss Mach-O port of LLD. For ELF and COFF,
+see :doc:`index`.
+
+ATOM-based lld is a new set of modular code for creating linker tools.
+Currently it supports Mach-O.
+
+* End-User Features:
+
+  * Compatible with existing linker options
+  * Reads standard Object Files
+  * Writes standard Executable Files
+  * Remove clang's reliance on "the system linker"
+  * Uses the LLVM `"UIUC" BSD-Style license`__.
+
+* Applications:
+
+  * Modular design
+  * Support cross linking
+  * Easy to add new CPU support
+  * Can be built as static tool or library
+
+* Design and Implementation:
+
+  * Extensive unit tests
+  * Internal linker model can be dumped/read to textual format
+  * Additional linking features can be plugged in as "passes"
+  * OS specific and CPU specific code factored out
+
+Why a new linker?
+-----------------
+
+The fact that clang relies on whatever linker tool you happen to have installed
+means that clang has been very conservative adopting features which require a
+recent linker.
+
+In the same way that the MC layer of LLVM has removed clang's reliance on the
+system assembler tool, the lld project will remove clang's reliance on the
+system linker tool.
+
+
+Contents
+--------
+
+.. toctree::
+   :maxdepth: 2
+
+   design
+   getting_started
+   development
+   open_projects
+   sphinx_intro
+
+Indices and tables
+------------------
+
+* :ref:`genindex`
+* :ref:`search`
+
+__ http://llvm.org/docs/DeveloperPolicy.html#license

Added: www-releases/trunk/5.0.0/tools/lld/docs/_sources/Driver.txt
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/lld/docs/_sources/Driver.txt?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/lld/docs/_sources/Driver.txt (added)
+++ www-releases/trunk/5.0.0/tools/lld/docs/_sources/Driver.txt Thu Sep  7 10:47:16 2017
@@ -0,0 +1,82 @@
+======
+Driver
+======
+
+Note: this document discuss Mach-O port of LLD. For ELF and COFF,
+see :doc:`index`.
+
+.. contents::
+   :local:
+
+Introduction
+============
+
+This document describes the lld driver. The purpose of this document is to
+describe both the motivation and design goals for the driver, as well as details
+of the internal implementation.
+
+Overview
+========
+
+The lld driver is designed to support a number of different command line
+interfaces. The main interfaces we plan to support are binutils' ld, Apple's
+ld, and Microsoft's link.exe.
+
+Flavors
+-------
+
+Each of these different interfaces is referred to as a flavor. There is also an
+extra flavor "core" which is used to exercise the core functionality of the
+linker it the test suite.
+
+* gnu
+* darwin
+* link
+* core
+
+Selecting a Flavor
+^^^^^^^^^^^^^^^^^^
+
+There are two different ways to tell lld which flavor to be. They are checked in
+order, so the second overrides the first. The first is to symlink :program:`lld`
+as :program:`lld-{flavor}` or just :program:`{flavor}`. You can also specify
+it as the first command line argument using ``-flavor``::
+
+  $ lld -flavor gnu
+
+There is a shortcut for ``-flavor core`` as ``-core``.
+
+
+Adding an Option to an existing Flavor
+======================================
+
+#. Add the option to the desired :file:`lib/Driver/{flavor}Options.td`.
+
+#. Add to :cpp:class:`lld::FlavorLinkingContext` a getter and setter method
+   for the option.
+
+#. Modify :cpp:func:`lld::FlavorDriver::parse` in :file:
+   `lib/Driver/{Flavor}Driver.cpp` to call the targetInfo setter
+   for corresponding to the option.
+
+#. Modify {Flavor}Reader and {Flavor}Writer to use the new targtInfo option.
+
+
+Adding a Flavor
+===============
+
+#. Add an entry for the flavor in :file:`include/lld/Driver/Driver.h` to
+   :cpp:class:`lld::UniversalDriver::Flavor`.
+
+#. Add an entry in :file:`lib/Driver/UniversalDriver.cpp` to
+   :cpp:func:`lld::Driver::strToFlavor` and
+   :cpp:func:`lld::UniversalDriver::link`.
+   This allows the flavor to be selected via symlink and `-flavor`.
+
+#. Add a tablegen file called :file:`lib/Driver/{flavor}Options.td` that
+   describes the options. If the options are a superset of another driver, that
+   driver's td file can simply be included. The :file:`{flavor}Options.td` file
+   must also be added to :file:`lib/Driver/CMakeLists.txt`.
+
+#. Add a ``{flavor}Driver`` as a subclass of :cpp:class:`lld::Driver`
+   in :file:`lib/Driver/{flavor}Driver.cpp`.

Added: www-releases/trunk/5.0.0/tools/lld/docs/_sources/NewLLD.txt
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/lld/docs/_sources/NewLLD.txt?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/lld/docs/_sources/NewLLD.txt (added)
+++ www-releases/trunk/5.0.0/tools/lld/docs/_sources/NewLLD.txt Thu Sep  7 10:47:16 2017
@@ -0,0 +1,314 @@
+The ELF and COFF Linkers
+========================
+
+The ELF Linker as a Library
+---------------------------
+
+You can embed LLD to your program by linking against it and calling the linker's
+entry point function lld::elf::link.
+
+The current policy is that it is your reponsibility to give trustworthy object
+files. The function is guaranteed to return as long as you do not pass corrupted
+or malicious object files. A corrupted file could cause a fatal error or SEGV.
+That being said, you don't need to worry too much about it if you create object
+files in the usual way and give them to the linker. It is naturally expected to
+work, or otherwise it's a linker's bug.
+
+Design
+======
+
+We will describe the design of the linkers in the rest of the document.
+
+Key Concepts
+------------
+
+Linkers are fairly large pieces of software.
+There are many design choices you have to make to create a complete linker.
+
+This is a list of design choices we've made for ELF and COFF LLD.
+We believe that these high-level design choices achieved a right balance
+between speed, simplicity and extensibility.
+
+* Implement as native linkers
+
+  We implemented the linkers as native linkers for each file format.
+
+  The two linkers share the same design but do not share code.
+  Sharing code makes sense if the benefit is worth its cost.
+  In our case, ELF and COFF are different enough that we thought the layer to
+  abstract the differences wouldn't worth its complexity and run-time cost.
+  Elimination of the abstract layer has greatly simplified the implementation.
+
+* Speed by design
+
+  One of the most important things in archiving high performance is to
+  do less rather than do it efficiently.
+  Therefore, the high-level design matters more than local optimizations.
+  Since we are trying to create a high-performance linker,
+  it is very important to keep the design as efficient as possible.
+
+  Broadly speaking, we do not do anything until we have to do it.
+  For example, we do not read section contents or relocations
+  until we need them to continue linking.
+  When we need to do some costly operation (such as looking up
+  a hash table for each symbol), we do it only once.
+  We obtain a handler (which is typically just a pointer to actual data)
+  on the first operation and use it throughout the process.
+
+* Efficient archive file handling
+
+  LLD's handling of archive files (the files with ".a" file extension) is different
+  from the traditional Unix linkers and similar to Windows linkers.
+  We'll describe how the traditional Unix linker handles archive files,
+  what the problem is, and how LLD approached the problem.
+
+  The traditional Unix linker maintains a set of undefined symbols during linking.
+  The linker visits each file in the order as they appeared in the command line
+  until the set becomes empty. What the linker would do depends on file type.
+
+  - If the linker visits an object file, the linker links object files to the result,
+    and undefined symbols in the object file are added to the set.
+
+  - If the linker visits an archive file, it checks for the archive file's symbol table
+    and extracts all object files that have definitions for any symbols in the set.
+
+  This algorithm sometimes leads to a counter-intuitive behavior.
+  If you give archive files before object files, nothing will happen
+  because when the linker visits archives, there is no undefined symbols in the set.
+  As a result, no files are extracted from the first archive file,
+  and the link is done at that point because the set is empty after it visits one file.
+
+  You can fix the problem by reordering the files,
+  but that cannot fix the issue of mutually-dependent archive files.
+
+  Linking mutually-dependent archive files is tricky.
+  You may specify the same archive file multiple times to
+  let the linker visit it more than once.
+  Or, you may use the special command line options, `--start-group` and `--end-group`,
+  to let the linker loop over the files between the options until
+  no new symbols are added to the set.
+
+  Visiting the same archive files multiple makes the linker slower.
+
+  Here is how LLD approaches the problem. Instead of memorizing only undefined symbols,
+  we program LLD so that it memorizes all symbols.
+  When it sees an undefined symbol that can be resolved by extracting an object file
+  from an archive file it previously visited, it immediately extracts the file and link it.
+  It is doable because LLD does not forget symbols it have seen in archive files.
+
+  We believe that the LLD's way is efficient and easy to justify.
+
+  The semantics of LLD's archive handling is different from the traditional Unix's.
+  You can observe it if you carefully craft archive files to exploit it.
+  However, in reality, we don't know any program that cannot link
+  with our algorithm so far, so it's not going to cause trouble.
+
+Numbers You Want to Know
+------------------------
+
+To give you intuition about what kinds of data the linker is mainly working on,
+I'll give you the list of objects and their numbers LLD has to read and process
+in order to link a very large executable. In order to link Chrome with debug info,
+which is roughly 2 GB in output size, LLD reads
+
+- 17,000 files,
+- 1,800,000 sections,
+- 6,300,000 symbols, and
+- 13,000,000 relocations.
+
+LLD produces the 2 GB executable in 15 seconds.
+
+These numbers vary depending on your program, but in general,
+you have a lot of relocations and symbols for each file.
+If your program is written in C++, symbol names are likely to be
+pretty long because of name mangling.
+
+It is important to not waste time on relocations and symbols.
+
+In the above case, the total amount of symbol strings is 450 MB,
+and inserting all of them to a hash table takes 1.5 seconds.
+Therefore, if you causally add a hash table lookup for each symbol,
+it would slow down the linker by 10%. So, don't do that.
+
+On the other hand, you don't have to pursue efficiency
+when handling files.
+
+Important Data Structures
+-------------------------
+
+We will describe the key data structures in LLD in this section.
+The linker can be understood as the interactions between them.
+Once you understand their functions, the code of the linker should look obvious to you.
+
+* SymbolBody
+
+  SymbolBody is a class to represent symbols.
+  They are created for symbols in object files or archive files.
+  The linker creates linker-defined symbols as well.
+
+  There are basically three types of SymbolBodies: Defined, Undefined, or Lazy.
+
+  - Defined symbols are for all symbols that are considered as "resolved",
+    including real defined symbols, COMDAT symbols, common symbols,
+    absolute symbols, linker-created symbols, etc.
+  - Undefined symbols represent undefined symbols, which need to be replaced by
+    Defined symbols by the resolver until the link is complete.
+  - Lazy symbols represent symbols we found in archive file headers
+    which can turn into Defined if we read archieve members.
+
+* Symbol
+
+  A Symbol is a container for a SymbolBody. There's only one Symbol for each
+  unique symbol name (this uniqueness is guaranteed by the symbol table).
+  Each global symbol has only one SymbolBody at any one time, which is
+  the SymbolBody stored within a memory region of the Symbol large enough
+  to store any SymbolBody.
+
+  As the resolver reads symbols from input files, it replaces the Symbol's
+  SymbolBody with the "best" SymbolBody for its symbol name by constructing
+  the new SymbolBody in place on top of the existing SymbolBody. For example,
+  if the resolver is given a defined symbol, and the SymbolBody with its name
+  is undefined, it will construct a Defined SymbolBody over the Undefined
+  SymbolBody.
+
+  This means that each SymbolBody pointer always points to the best SymbolBody,
+  and it is possible to get from a SymbolBody to a Symbol, or vice versa,
+  by adding or subtracting a fixed offset. This memory layout helps reduce
+  the cache miss rate through high locality and a small number of required
+  pointer indirections.
+
+* SymbolTable
+
+  SymbolTable is basically a hash table from strings to Symbols
+  with logic to resolve symbol conflicts. It resolves conflicts by symbol type.
+
+  - If we add Defined and Undefined symbols, the symbol table will keep the former.
+  - If we add Defined and Lazy symbols, it will keep the former.
+  - If we add Lazy and Undefined, it will keep the former,
+    but it will also trigger the Lazy symbol to load the archive member
+    to actually resolve the symbol.
+
+* Chunk (COFF specific)
+
+  Chunk represents a chunk of data that will occupy space in an output.
+  Each regular section becomes a chunk.
+  Chunks created for common or BSS symbols are not backed by sections.
+  The linker may create chunks to append additional data to an output as well.
+
+  Chunks know about their size, how to copy their data to mmap'ed outputs,
+  and how to apply relocations to them.
+  Specifically, section-based chunks know how to read relocation tables
+  and how to apply them.
+
+* InputSection (ELF specific)
+
+  Since we have less synthesized data for ELF, we don't abstract slices of
+  input files as Chunks for ELF. Instead, we directly use the input section
+  as an internal data type.
+
+  InputSection knows about their size and how to copy themselves to
+  mmap'ed outputs, just like COFF Chunks.
+
+* OutputSection
+
+  OutputSection is a container of InputSections (ELF) or Chunks (COFF).
+  An InputSection or Chunk belongs to at most one OutputSection.
+
+There are mainly three actors in this linker.
+
+* InputFile
+
+  InputFile is a superclass of file readers.
+  We have a different subclass for each input file type,
+  such as regular object file, archive file, etc.
+  They are responsible for creating and owning SymbolBodies and
+  InputSections/Chunks.
+
+* Writer
+
+  The writer is responsible for writing file headers and InputSections/Chunks to a file.
+  It creates OutputSections, put all InputSections/Chunks into them,
+  assign unique, non-overlapping addresses and file offsets to them,
+  and then write them down to a file.
+
+* Driver
+
+  The linking process is driven by the driver. The driver:
+
+  - processes command line options,
+  - creates a symbol table,
+  - creates an InputFile for each input file and puts all symbols within into the symbol table,
+  - checks if there's no remaining undefined symbols,
+  - creates a writer,
+  - and passes the symbol table to the writer to write the result to a file.
+
+Link-Time Optimization
+----------------------
+
+LTO is implemented by handling LLVM bitcode files as object files.
+The linker resolves symbols in bitcode files normally. If all symbols
+are successfully resolved, it then runs LLVM passes
+with all bitcode files to convert them to one big regular ELF/COFF file.
+Finally, the linker replaces bitcode symbols with ELF/COFF symbols,
+so that they are linked as if they were in the native format from the beginning.
+
+The details are described in this document.
+http://llvm.org/docs/LinkTimeOptimization.html
+
+Glossary
+--------
+
+* RVA (COFF)
+
+  Short for Relative Virtual Address.
+
+  Windows executables or DLLs are not position-independent; they are
+  linked against a fixed address called an image base. RVAs are
+  offsets from an image base.
+
+  Default image bases are 0x140000000 for executables and 0x18000000
+  for DLLs. For example, when we are creating an executable, we assume
+  that the executable will be loaded at address 0x140000000 by the
+  loader, so we apply relocations accordingly. Result texts and data
+  will contain raw absolute addresses.
+
+* VA
+
+  Short for Virtual Address. For COFF, it is equivalent to RVA + image base.
+
+* Base relocations (COFF)
+
+  Relocation information for the loader. If the loader decides to map
+  an executable or a DLL to a different address than their image
+  bases, it fixes up binaries using information contained in the base
+  relocation table. A base relocation table consists of a list of
+  locations containing addresses. The loader adds a difference between
+  RVA and actual load address to all locations listed there.
+
+  Note that this run-time relocation mechanism is much simpler than ELF.
+  There's no PLT or GOT. Images are relocated as a whole just
+  by shifting entire images in memory by some offsets. Although doing
+  this breaks text sharing, I think this mechanism is not actually bad
+  on today's computers.
+
+* ICF
+
+  Short for Identical COMDAT Folding (COFF) or Identical Code Folding (ELF).
+
+  ICF is an optimization to reduce output size by merging read-only sections
+  by not only their names but by their contents. If two read-only sections
+  happen to have the same metadata, actual contents and relocations,
+  they are merged by ICF. It is known as an effective technique,
+  and it usually reduces C++ program's size by a few percent or more.
+
+  Note that this is not entirely sound optimization. C/C++ require
+  different functions have different addresses. If a program depends on
+  that property, it would fail at runtime.
+
+  On Windows, that's not really an issue because MSVC link.exe enabled
+  the optimization by default. As long as your program works
+  with the linker's default settings, your program should be safe with ICF.
+
+  On Unix, your program is generally not guaranteed to be safe with ICF,
+  although large programs happen to work correctly.
+  LLD works fine with ICF for example.

Added: www-releases/trunk/5.0.0/tools/lld/docs/_sources/Readers.txt
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/5.0.0/tools/lld/docs/_sources/Readers.txt?rev=312731&view=auto
==============================================================================
--- www-releases/trunk/5.0.0/tools/lld/docs/_sources/Readers.txt (added)
+++ www-releases/trunk/5.0.0/tools/lld/docs/_sources/Readers.txt Thu Sep  7 10:47:16 2017
@@ -0,0 +1,174 @@
+.. _Readers:
+
+Developing lld Readers
+======================
+
+Note: this document discuss Mach-O port of LLD. For ELF and COFF,
+see :doc:`index`.
+
+Introduction
+------------
+
+The purpose of a "Reader" is to take an object file in a particular format
+and create an `lld::File`:cpp:class: (which is a graph of Atoms)
+representing the object file.  A Reader inherits from
+`lld::Reader`:cpp:class: which lives in
+:file:`include/lld/Core/Reader.h` and
+:file:`lib/Core/Reader.cpp`.
+
+The Reader infrastructure for an object format ``Foo`` requires the
+following pieces in order to fit into lld:
+
+:file:`include/lld/ReaderWriter/ReaderFoo.h`
+
+   .. cpp:class:: ReaderOptionsFoo : public ReaderOptions
+
+      This Options class is the only way to configure how the Reader will
+      parse any file into an `lld::Reader`:cpp:class: object.  This class
+      should be declared in the `lld`:cpp:class: namespace.
+
+   .. cpp:function:: Reader *createReaderFoo(ReaderOptionsFoo &reader)
+
+      This factory function configures and create the Reader. This function
+      should be declared in the `lld`:cpp:class: namespace.
+
+:file:`lib/ReaderWriter/Foo/ReaderFoo.cpp`
+
+   .. cpp:class:: ReaderFoo : public Reader
+
+      This is the concrete Reader class which can be called to parse
+      object files. It should be declared in an anonymous namespace or
+      if there is shared code with the `lld::WriterFoo`:cpp:class: you
+      can make a nested namespace (e.g. `lld::foo`:cpp:class:).
+
+You may have noticed that :cpp:class:`ReaderFoo` is not declared in the
+``.h`` file. An important design aspect of lld is that all Readers are
+created *only* through an object-format-specific
+:cpp:func:`createReaderFoo` factory function. The creation of the Reader is
+parametrized through a :cpp:class:`ReaderOptionsFoo` class. This options
+class is the one-and-only way to control how the Reader operates when
+parsing an input file into an Atom graph. For instance, you may want the
+Reader to only accept certain architectures. The options class can be
+instantiated from command line options or be programmatically configured.
+
+Where to start
+--------------
+
+The lld project already has a skeleton of source code for Readers for
+``ELF``, ``PECOFF``, ``MachO``, and lld's native ``YAML`` graph format.
+If your file format is a variant of one of those, you should modify the
+existing Reader to support your variant. This is done by customizing the Options
+class for the Reader and making appropriate changes to the ``.cpp`` file to
+interpret those options and act accordingly.
+
+If your object file format is not a variant of any existing Reader, you'll need
+to create a new Reader subclass with the organization described above.
+
+Readers are factories
+---------------------
+
+The linker will usually only instantiate your Reader once.  That one Reader will
+have its loadFile() method called many times with different input files.
+To support multithreaded linking, the Reader may be parsing multiple input
+files in parallel. Therefore, there should be no parsing state in you Reader
+object.  Any parsing state should be in ivars of your File subclass or in
+some temporary object.
+
+The key method to implement in a reader is::
+
+  virtual error_code loadFile(LinkerInput &input,
+                              std::vector<std::unique_ptr<File>> &result);
+
+It takes a memory buffer (which contains the contents of the object file
+being read) and returns an instantiated lld::File object which is
+a collection of Atoms. The result is a vector of File pointers (instead of
+simple a File pointer) because some file formats allow multiple object
+"files" to be encoded in one file system file.
+
+
+Memory Ownership
+----------------
+
+Atoms are always owned by their File object. During core linking when Atoms
+are coalesced or stripped away, core linking does not delete them.
+Core linking just removes those unused Atoms from its internal list.
+The destructor of a File object is responsible for deleting all Atoms it
+owns, and if ownership of the MemoryBuffer was passed to it, the File
+destructor needs to delete that too.
+
+Making Atoms
+------------
+
+The internal model of lld is purely Atom based.  But most object files do not
+have an explicit concept of Atoms, instead most have "sections". The way
+to think of this is that a section is just a list of Atoms with common
+attributes.
+
+The first step in parsing section-based object files is to cleave each
+section into a list of Atoms. The technique may vary by section type. For
+code sections (e.g. .text), there are usually symbols at the start of each
+function. Those symbol addresses are the points at which the section is
+cleaved into discrete Atoms.  Some file formats (like ELF) also include the
+length of each symbol in the symbol table. Otherwise, the length of each
+Atom is calculated to run to the start of the next symbol or the end of the
+section.
+
+Other sections types can be implicitly cleaved. For instance c-string literals
+or unwind info (e.g. .eh_frame) can be cleaved by having the Reader look at
+the content of the section.  It is important to cleave sections into Atoms
+to remove false dependencies. For instance the .eh_frame section often
+has no symbols, but contains "pointers" to the functions for which it
+has unwind info.  If the .eh_frame section was not cleaved (but left as one
+big Atom), there would always be a reference (from the eh_frame Atom) to
+each function.  So the linker would be unable to coalesce or dead stripped
+away the function atoms.
+
+The lld Atom model also requires that a reference to an undefined symbol be
+modeled as a Reference to an UndefinedAtom. So the Reader also needs to
+create an UndefinedAtom for each undefined symbol in the object file.
+
+Once all Atoms have been created, the second step is to create References
+(recall that Atoms are "nodes" and References are "edges"). Most References
+are created by looking at the "relocation records" in the object file. If
+a function contains a call to "malloc", there is usually a relocation record
+specifying the address in the section and the symbol table index. Your
+Reader will need to convert the address to an Atom and offset and the symbol
+table index into a target Atom. If "malloc" is not defined in the object file,
+the target Atom of the Reference will be an UndefinedAtom.
+
+
+Performance
+-----------
+Once you have the above working to parse an object file into Atoms and
+References, you'll want to look at performance.  Some techniques that can
+help performance are:
+
+* Use llvm::BumpPtrAllocator or pre-allocate one big vector<Reference> and then
+  just have each atom point to its subrange of References in that vector.
+  This can be faster that allocating each Reference as separate object.
+* Pre-scan the symbol table and determine how many atoms are in each section
+  then allocate space for all the Atom objects at once.
+* Don't copy symbol names or section content to each Atom, instead use
+  StringRef and ArrayRef in each Atom to point to its name and content in the
+  MemoryBuffer.
+
+
+Testing
+-------
+
+We are still working on infrastructure to test Readers. The issue is that
+you don't want to check in binary files to the test suite. And the tools
+for creating your object file from assembly source may not be available on
+every OS.
+
+We are investigating a way to use YAML to describe the section, symbols,
+and content of a file. Then have some code which will write out an object
+file from that YAML description.
+
+Once that is in place, you can write test cases that contain section/symbols
+YAML and is run through the linker to produce Atom/References based YAML which
+is then run through FileCheck to verify the Atoms and References are as
+expected.
+
+
+




More information about the llvm-commits mailing list