VoltrexMaster updated this revision to Diff 522588.
VoltrexMaster added a comment.

Update utils/tools to generate HTML with correct syntax


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D150579/new/

https://reviews.llvm.org/D150579

Files:
  clang-tools-extra/docs/_templates/clangd_redirect.html
  clang/docs/LibASTMatchersReference.html
  clang/www/OpenProjects.html
  clang/www/analyzer/alpha_checks.html
  clang/www/analyzer/available_checks.html
  clang/www/analyzer/checker_dev_manual.html
  clang/www/analyzer/codechecker.html
  clang/www/analyzer/command-line.html
  clang/www/analyzer/faq.html
  clang/www/analyzer/implicit_checks.html
  clang/www/analyzer/open_projects.html
  clang/www/analyzer/potential_checkers.html
  clang/www/analyzer/release_notes.html
  clang/www/analyzer/scan-build.html
  clang/www/c_dr_status.html
  clang/www/c_status.html
  clang/www/compatibility.html
  clang/www/cxx_status.html
  clang/www/diagnostics.html
  compiler-rt/www/index.html
  libclc/www/index.html
  llvm/test/tools/llvm-original-di-preservation/Inputs/expected-compressed.html
  llvm/test/tools/llvm-original-di-preservation/Inputs/expected-sample.html
  llvm/test/tools/llvm-original-di-preservation/Inputs/expected-skipped.html
  llvm/test/tools/opt-viewer/Outputs/basic/basic_or.c.html
  llvm/test/tools/opt-viewer/Outputs/basic/basic_or.h.html
  llvm/test/tools/opt-viewer/Outputs/basic/index.html
  llvm/test/tools/opt-viewer/Outputs/filter/basic_or.c.html
  llvm/test/tools/opt-viewer/Outputs/filter/basic_or.h.html
  llvm/test/tools/opt-viewer/Outputs/filter/index.html
  llvm/test/tools/opt-viewer/Outputs/suppress/index.html
  llvm/test/tools/opt-viewer/Outputs/suppress/s.swift.html
  llvm/test/tools/opt-viewer/Outputs/unicode-function-name/index.html
  llvm/test/tools/opt-viewer/Outputs/unicode-function-name/s.swift.html
  llvm/tools/opt-viewer/opt-viewer.py
  llvm/utils/llvm-original-di-preservation.py
  polly/www/changelog.html
  polly/www/get_started.html
  polly/www/index.html
  polly/www/publications.html
  polly/www/todo.html

Index: polly/www/todo.html
===================================================================
--- polly/www/todo.html
+++ polly/www/todo.html
@@ -24,7 +24,7 @@
 <li><a href="#phase1">Phase 1 - Get Something Working (Finished October 2010)</a>
 </li>
 </ul>
-<h2> Individual Phases</h3>
+<h2> Individual Phases</h2>
 
 <h3 id="phase4"> Phase 4</h3>
 <table class="wikitable" cellpadding="2">
@@ -43,6 +43,7 @@
 </td><td>
 </td>
 </tr>
+<tr>
 <th align="left"> &nbsp; &nbsp; - Add isl C++ bindings generator to isl
 </th><td align="center" class='open'> Open
 </td><td>
@@ -60,6 +61,7 @@
 </td><td>
 </td>
 </tr>
+<tr>
 <th align="left"> &nbsp; &nbsp; - Optimize isl_int for small integers
 </th><td align="center" class='done'> Done
 </td><td>
@@ -71,6 +73,7 @@
 </td><td>
 </td>
 </tr>
+<tr>
 <th align="left"> &nbsp; &nbsp; - Reconsider pass-ordering (move Polly later)
 </th><td align="center" class='open'> Open
 </td><td>
@@ -182,7 +185,7 @@
 integer wrapping</a>
 </th><td align="center" class='done'> Done
 </td><td> Johannes
-</td></tr
+</td></tr>
 
 <tr><td colspan='4'>&nbsp;</td></tr>
 <tr><th colspan="3" style="background: rgb(239, 239, 239);"> Optimize Julia
@@ -194,6 +197,7 @@
   <th> Owner </th>
 </tr>
 
+<tr>
 <th align="left">
 Integrate Polly into Julia
 </th><td align="center" class='open'> Open
@@ -211,6 +215,7 @@
 </td><td>
 </td></tr>
 
+<tr>
 <th align="left"> &nbsp; &nbsp; - Actually eliminate statements
 </th><td align="center" class='done'> Done
 </td><td>
@@ -226,6 +231,7 @@
   <th> Owner </th>
 </tr>
 
+<tr>
 <th align="left">
 Multi-level tiling
 </th><td align="center" class='open'> Open
@@ -243,6 +249,7 @@
 </th><td align="center" class='done'> Done
 </td><td>
 </td></tr>
+<tr>
 <th align="left">
 Loop interchange after vectorization to maximize stride-one accesses
 </th><td align="center" class='open'> Open
@@ -431,7 +438,7 @@
 </td>
 <td> Tobias, Andreas
 </td></tr>
-</th><td>
+<td>
 
 </td></tr>
 </tbody></table>
@@ -553,36 +560,37 @@
   <th> Owner </th>
 </tr>
 
+<tr>
 <th align="left"> Region detection
-</td><td class="done"> Done
+</th><td class="done"> Done
 </td><td>Ether
 </td></tr>
 <tr>
 <th align="left"> Access Functions
-</td><td class="done"> Done
+</th><td class="done"> Done
 </td><td>John, Ether
 </td></tr>
 <tr>
 <th align="left"> Alias sets
-</td><td class="done"> Done
+</th><td class="done"> Done
 </td><td>Ether
 </td></tr>
 <tr>
 <th align="left"> Scalar evolution to affine expression
-</td><td class="done"> Done
+</th><td class="done"> Done
 
 </td><td>
 Ether
 </td></tr>
 <tr>
 <th align="left"> SCoP extraction
-</td><td class="done"> Done
+</th><td class="done"> Done
 </td><td>Tobias, Ether
 
 </td></tr>
 <tr>
 <th align="left"> SCoPs to polyhedral model
-</td><td class="done"> Done
+</th><td class="done"> Done
 </td><td>Tobias, Ether
 </td></tr>
 <tr><td colspan='4'>&nbsp;</td></tr>
@@ -594,7 +602,7 @@
 </tr>
 <tr>
 <th align="left"> Define polyhedral description
-</td><td class="done"> Done
+</th><td class="done"> Done
 </td><td>Tobias
 
 </td></tr>
@@ -607,7 +615,7 @@
 </tr>
 <tr>
 <th align="left"> Create LLVM-IR using CLooG
-</td><td class="done"> Done
+</th><td class="done"> Done
 </td><td> Tobias
 
 </td></tr>
@@ -621,12 +629,12 @@
 <tr>
 <th align="left"> Setup git repositories
 
-</td><td class="done"> Done
+</th><td class="done"> Done
 </td><td> Tobias
 </td></tr>
 <tr>
 <th align="left"> Add CLooG/isl to build system
-</td><td class="done"> Done
+</th><td class="done"> Done
 </td><td> Tobias
 
 </td></tr>
Index: polly/www/publications.html
===================================================================
--- polly/www/publications.html
+++ polly/www/publications.html
@@ -183,7 +183,7 @@
   Muthu Manikandan Baskaran, J. Ramanujam and P. Sadayappan<br />
   CC 2010
   </li>
-  <li><em>Putting Automatic Polyhedral Compilation for GPGPU to Work<em>
+  <li><em>Putting Automatic Polyhedral Compilation for GPGPU to Work</em>
   Soufiane Baghdadi, Armin Gr&ouml;&szlig;linger, and Albert Cohen. <br />
   In Proc. of Compilers for Parallel Computers (CPC), 2010.
   </li>
Index: polly/www/index.html
===================================================================
--- polly/www/index.html
+++ polly/www/index.html
@@ -57,6 +57,7 @@
     <h4>The performance evaluation of GEMM</h4>
     <img src="images/GEMM_double.png" /><br />
   </td>
+  </tr>
   <tr><td><b>2017</b></td></tr>
   <tr><td width="120"><p>January</p></td>
   <td>
@@ -95,23 +96,23 @@
       <li><b>Schedule trees:</b> A tree-based mathematical program description
       that enables us to perform loop transformations on an abstract level,
       while issues like the generation of the correct loop structure and loop
-      bounds will be taken care of by our AST generator.
+      bounds will be taken care of by our AST generator.</li>
       <li><b>Polyhedral unrolling:</b> We discuss techniques that allow the
       unrolling of non-trivial loops in the context of parameteric loop bounds,
       complex tile shapes and conditionally executed statements. Such unrolling
       support enables the generation of predicated code e.g. in the context of
-      GPGPU computing.
+      GPGPU computing.</li>
       <li><b>Isolation for full/partial tile separation:</b> We discuss native
       support for handling full/partial tile separation and -- in general --
       native support for isolation of boundary cases to enable smooth code
-      generation for core computations.
+      generation for core computations.</li>
       <li><b>AST generation with modulo constraints:</b> We discuss how modulo
-      mappings are lowered to efficient C/LLVM code.
+      mappings are lowered to efficient C/LLVM code.</li>
       <li><b>User-defined constraint sets for run-time checks</b> We discuss how
       arbitrary sets of constraints can be used to automatically create run-time
       checks that ensure a set of constraints actually hold. This feature is
       very useful to verify at run-time various assumptions that have been taken
-      program optimization.
+      program optimization.</li>
     </ul>
 
    <a href="https://www.grosser.es#pub-polyhedral-AST-generation";>
@@ -262,7 +263,6 @@
      a BSD licensed replacement is a tractable engineering project we would
      be very interested in. For more information about isl see the <a
      href="http://www.kotnet.org/~skimo/isl/manual.pdf";>isl manual</a>.
-     </p>
   </td></tr>
   <tr><td width="120"><p>July</p></td>
   <td>
@@ -277,8 +277,6 @@
   following week of joint work at IISC Bangalore and in cooperation with
   AMD India.
   </td></tr>
-  <td>
-  </td></tr>
   <tr><td width="120"><p>February</p></td>
   <td>
   <p>Polly is an official LLVM project, reachable at <a
@@ -429,8 +427,6 @@
   <p>ISL and CLooG are integrated.  </p></td>
   </tr>
 
-  </tr>
-
   <tr>
   <td><p>January</p></td>
   <td><p>The RegionInfo pass is finished.  </p></td>
@@ -441,8 +437,7 @@
   <td><p>End of the year</p></td>
   <td><p>Work on the infrastructure started.  </p></td>
   </tr>
-  </table>
-  </ul>
+</table>
 </div>
 </div>
 </body>
Index: polly/www/get_started.html
===================================================================
--- polly/www/get_started.html
+++ polly/www/get_started.html
@@ -32,7 +32,7 @@
 <h3 id="build">Build Polly</h3>
 
 <pre>
-mkdir build && cd build
+mkdir build &amp;&amp; cd build
 cmake '-DLLVM_ENABLE_PROJECTS=clang;polly' ../llvm
 cmake --build .
 </pre>
Index: polly/www/changelog.html
===================================================================
--- polly/www/changelog.html
+++ polly/www/changelog.html
@@ -53,7 +53,7 @@
 No changelog available. Please look at the <a
 href="https://repo.or.cz/w/polly-mirror.git";>commit history</a>.
 
-</html>
+</div>
 </div>
 </body>
 </html>
Index: llvm/utils/llvm-original-di-preservation.py
===================================================================
--- llvm/utils/llvm-original-di-preservation.py
+++ llvm/utils/llvm-original-di-preservation.py
@@ -73,6 +73,8 @@
 
   at_least_one_bug_found = False
 
+  first_run = True
+
   # Handle loction bugs.
   for file, per_file_bugs in di_location_bugs.items():
     for llvm_pass, per_pass_bugs in per_file_bugs.items():
@@ -81,7 +83,10 @@
         continue
       at_least_one_bug_found = True
       row = []
-      table_di_loc += "  </tr>\n"
+      if first_run:
+        first_run = False
+      else:
+        table_di_loc += "  </tr>\n"
       # Get the bugs info.
       for x in per_pass_bugs:
         row.append("    <tr>\n")
Index: llvm/tools/opt-viewer/opt-viewer.py
===================================================================
--- llvm/tools/opt-viewer/opt-viewer.py
+++ llvm/tools/opt-viewer/opt-viewer.py
@@ -186,6 +186,7 @@
         print(u'''
 </tbody>
 </table>
+</div>
 </body>
 </html>''', file=self.stream)
 
@@ -232,6 +233,7 @@
                 self.render_entry(remark, i % 2)
         print(u'''
 </table>
+</div>
 </body>
 </html>''', file=self.stream)
 
Index: llvm/test/tools/opt-viewer/Outputs/unicode-function-name/s.swift.html
===================================================================
--- llvm/test/tools/opt-viewer/Outputs/unicode-function-name/s.swift.html
+++ llvm/test/tools/opt-viewer/Outputs/unicode-function-name/s.swift.html
@@ -27,11 +27,11 @@
 <table class="source">
 <thead>
 <tr>
-<th style="width: 2%">Line</td>
-<th style="width: 3%">Hotness</td>
-<th style="width: 10%">Optimization</td>
-<th style="width: 70%">Source</td>
-<th style="width: 15%">Inline Context</td>
+<th style="width: 2%">Line</th>
+<th style="width: 3%">Hotness</th>
+<th style="width: 10%">Optimization</th>
+<th style="width: 70%">Source</th>
+<th style="width: 15%">Inline Context</th>
 </tr>
 </thead>
 <tbody>
@@ -54,7 +54,7 @@
 <td><a name="L3">3</a></td>
 <td></td>
 <td></td>
-<td><div class="highlight"><pre>func • (a: Int, b: Int) -> Int {</pre></div></td>
+<td><div class="highlight"><pre>func • (a: Int, b: Int) -&gt; Int {</pre></div></td>
 </tr>
 
 <tr>
@@ -89,7 +89,7 @@
 <td><a name="L8">8</a></td>
 <td></td>
 <td></td>
-<td><div class="highlight"><pre>func g(a: Int) -> Int{</pre></div></td>
+<td><div class="highlight"><pre>func g(a: Int) -&gt; Int{</pre></div></td>
 </tr>
 
 <tr>
@@ -137,5 +137,6 @@
 
 </tbody>
 </table>
+</div>
 </body>
 </html>
Index: llvm/test/tools/opt-viewer/Outputs/unicode-function-name/index.html
===================================================================
--- llvm/test/tools/opt-viewer/Outputs/unicode-function-name/index.html
+++ llvm/test/tools/opt-viewer/Outputs/unicode-function-name/index.html
@@ -22,5 +22,6 @@
 </tr>
 
 </table>
+</div>
 </body>
 </html>
Index: llvm/test/tools/opt-viewer/Outputs/suppress/s.swift.html
===================================================================
--- llvm/test/tools/opt-viewer/Outputs/suppress/s.swift.html
+++ llvm/test/tools/opt-viewer/Outputs/suppress/s.swift.html
@@ -27,11 +27,11 @@
 <table class="source">
 <thead>
 <tr>
-<th style="width: 2%">Line</td>
-<th style="width: 3%">Hotness</td>
-<th style="width: 10%">Optimization</td>
-<th style="width: 70%">Source</td>
-<th style="width: 15%">Inline Context</td>
+<th style="width: 2%">Line</th>
+<th style="width: 3%">Hotness</th>
+<th style="width: 10%">Optimization</th>
+<th style="width: 70%">Source</th>
+<th style="width: 15%">Inline Context</th>
 </tr>
 </thead>
 <tbody>
@@ -75,7 +75,7 @@
 <td><a name="L6">6</a></td>
 <td></td>
 <td></td>
-<td><div class="highlight"><pre>  for i in 0..<4 {</pre></div></td>
+<td><div class="highlight"><pre>  for i in 0..&lt;4 {</pre></div></td>
 </tr>
 
 <tr>
@@ -130,5 +130,6 @@
 
 </tbody>
 </table>
+</div>
 </body>
 </html>
Index: llvm/test/tools/opt-viewer/Outputs/suppress/index.html
===================================================================
--- llvm/test/tools/opt-viewer/Outputs/suppress/index.html
+++ llvm/test/tools/opt-viewer/Outputs/suppress/index.html
@@ -22,5 +22,6 @@
 </tr>
 
 </table>
+</div>
 </body>
 </html>
Index: llvm/test/tools/opt-viewer/Outputs/filter/index.html
===================================================================
--- llvm/test/tools/opt-viewer/Outputs/filter/index.html
+++ llvm/test/tools/opt-viewer/Outputs/filter/index.html
@@ -120,5 +120,6 @@
 </tr>
 
 </table>
+</div>
 </body>
 </html>
Index: llvm/test/tools/opt-viewer/Outputs/filter/basic_or.h.html
===================================================================
--- llvm/test/tools/opt-viewer/Outputs/filter/basic_or.h.html
+++ llvm/test/tools/opt-viewer/Outputs/filter/basic_or.h.html
@@ -27,11 +27,11 @@
 <table class="source">
 <thead>
 <tr>
-<th style="width: 2%">Line</td>
-<th style="width: 3%">Hotness</td>
-<th style="width: 10%">Optimization</td>
-<th style="width: 70%">Source</td>
-<th style="width: 15%">Inline Context</td>
+<th style="width: 2%">Line</th>
+<th style="width: 3%">Hotness</th>
+<th style="width: 10%">Optimization</th>
+<th style="width: 70%">Source</th>
+<th style="width: 15%">Inline Context</th>
 </tr>
 </thead>
 <tbody>
@@ -68,7 +68,7 @@
 <td><a name="L5">5</a></td>
 <td></td>
 <td></td>
-<td><div class="highlight"><pre>  for (i = 0; i < 1600; i++) {</pre></div></td>
+<td><div class="highlight"><pre>  for (i = 0; i &lt; 1600; i++) {</pre></div></td>
 </tr>
 
 <tr>
@@ -96,7 +96,7 @@
 <td><a name="L9">9</a></td>
 <td></td>
 <td></td>
-<td><div class="highlight"><pre>  for (i = 0; i < 16; i++) {</pre></div></td>
+<td><div class="highlight"><pre>  for (i = 0; i &lt; 16; i++) {</pre></div></td>
 </tr>
 
 <tr>
@@ -213,5 +213,6 @@
 
 </tbody>
 </table>
+</div>
 </body>
 </html>
Index: llvm/test/tools/opt-viewer/Outputs/filter/basic_or.c.html
===================================================================
--- llvm/test/tools/opt-viewer/Outputs/filter/basic_or.c.html
+++ llvm/test/tools/opt-viewer/Outputs/filter/basic_or.c.html
@@ -27,11 +27,11 @@
 <table class="source">
 <thead>
 <tr>
-<th style="width: 2%">Line</td>
-<th style="width: 3%">Hotness</td>
-<th style="width: 10%">Optimization</td>
-<th style="width: 70%">Source</td>
-<th style="width: 15%">Inline Context</td>
+<th style="width: 2%">Line</th>
+<th style="width: 3%">Hotness</th>
+<th style="width: 10%">Optimization</th>
+<th style="width: 70%">Source</th>
+<th style="width: 15%">Inline Context</th>
 </tr>
 </thead>
 <tbody>
@@ -111,7 +111,7 @@
 <td><a name="L10">10</a></td>
 <td></td>
 <td></td>
-<td><div class="highlight"><pre>  for (i = 0; i < 1600; i++) {</pre></div></td>
+<td><div class="highlight"><pre>  for (i = 0; i &lt; 1600; i++) {</pre></div></td>
 </tr>
 
 <tr>
@@ -139,7 +139,7 @@
 <td><a name="L14">14</a></td>
 <td></td>
 <td></td>
-<td><div class="highlight"><pre>  for (i = 0; i < 16; i++) {</pre></div></td>
+<td><div class="highlight"><pre>  for (i = 0; i &lt; 16; i++) {</pre></div></td>
 </tr>
 
 <tr>
@@ -256,5 +256,6 @@
 
 </tbody>
 </table>
+</div>
 </body>
 </html>
Index: llvm/test/tools/opt-viewer/Outputs/basic/index.html
===================================================================
--- llvm/test/tools/opt-viewer/Outputs/basic/index.html
+++ llvm/test/tools/opt-viewer/Outputs/basic/index.html
@@ -155,5 +155,6 @@
 </tr>
 
 </table>
+</div>
 </body>
 </html>
Index: llvm/test/tools/opt-viewer/Outputs/basic/basic_or.h.html
===================================================================
--- llvm/test/tools/opt-viewer/Outputs/basic/basic_or.h.html
+++ llvm/test/tools/opt-viewer/Outputs/basic/basic_or.h.html
@@ -27,11 +27,11 @@
 <table class="source">
 <thead>
 <tr>
-<th style="width: 2%">Line</td>
-<th style="width: 3%">Hotness</td>
-<th style="width: 10%">Optimization</td>
-<th style="width: 70%">Source</td>
-<th style="width: 15%">Inline Context</td>
+<th style="width: 2%">Line</th>
+<th style="width: 3%">Hotness</th>
+<th style="width: 10%">Optimization</th>
+<th style="width: 70%">Source</th>
+<th style="width: 15%">Inline Context</th>
 </tr>
 </thead>
 <tbody>
@@ -68,7 +68,7 @@
 <td><a name="L5">5</a></td>
 <td></td>
 <td></td>
-<td><div class="highlight"><pre>  for (i = 0; i < 1600; i++) {</pre></div></td>
+<td><div class="highlight"><pre>  for (i = 0; i &lt; 1600; i++) {</pre></div></td>
 </tr>
 
 <tr>
@@ -104,7 +104,7 @@
 <td><a name="L9">9</a></td>
 <td></td>
 <td></td>
-<td><div class="highlight"><pre>  for (i = 0; i < 16; i++) {</pre></div></td>
+<td><div class="highlight"><pre>  for (i = 0; i &lt; 16; i++) {</pre></div></td>
 </tr>
 
 <tr>
@@ -229,5 +229,6 @@
 
 </tbody>
 </table>
+</div>
 </body>
 </html>
Index: llvm/test/tools/opt-viewer/Outputs/basic/basic_or.c.html
===================================================================
--- llvm/test/tools/opt-viewer/Outputs/basic/basic_or.c.html
+++ llvm/test/tools/opt-viewer/Outputs/basic/basic_or.c.html
@@ -27,11 +27,11 @@
 <table class="source">
 <thead>
 <tr>
-<th style="width: 2%">Line</td>
-<th style="width: 3%">Hotness</td>
-<th style="width: 10%">Optimization</td>
-<th style="width: 70%">Source</td>
-<th style="width: 15%">Inline Context</td>
+<th style="width: 2%">Line</th>
+<th style="width: 3%">Hotness</th>
+<th style="width: 10%">Optimization</th>
+<th style="width: 70%">Source</th>
+<th style="width: 15%">Inline Context</th>
 </tr>
 </thead>
 <tbody>
@@ -111,7 +111,7 @@
 <td><a name="L10">10</a></td>
 <td></td>
 <td></td>
-<td><div class="highlight"><pre>  for (i = 0; i < 1600; i++) {</pre></div></td>
+<td><div class="highlight"><pre>  for (i = 0; i &lt; 1600; i++) {</pre></div></td>
 </tr>
 
 <tr>
@@ -161,7 +161,7 @@
 <td><a name="L14">14</a></td>
 <td></td>
 <td></td>
-<td><div class="highlight"><pre>  for (i = 0; i < 16; i++) {</pre></div></td>
+<td><div class="highlight"><pre>  for (i = 0; i &lt; 16; i++) {</pre></div></td>
 </tr>
 
 <tr>
@@ -286,5 +286,6 @@
 
 </tbody>
 </table>
+</div>
 </body>
 </html>
Index: llvm/test/tools/llvm-original-di-preservation/Inputs/expected-skipped.html
===================================================================
--- llvm/test/tools/llvm-original-di-preservation/Inputs/expected-skipped.html
+++ llvm/test/tools/llvm-original-di-preservation/Inputs/expected-skipped.html
@@ -20,7 +20,6 @@
     <th>Function Name</th>
     <th>Basic Block Name</th>
     <th>Action</th>
-  </tr>
   </tr>
     <tr>
     <td>wrstabs.c</td>
@@ -81,7 +80,6 @@
     <th>Variable</th>
     <th>Function</th>
     <th>Action</th>
-  </tr>
   </tr>
     <tr>
     <td>debug.c</td>
@@ -179,4 +177,4 @@
   <tr>
 </table>
 </body>
-  </html>
\ No newline at end of file
+  </html>
Index: llvm/test/tools/llvm-original-di-preservation/Inputs/expected-sample.html
===================================================================
--- llvm/test/tools/llvm-original-di-preservation/Inputs/expected-sample.html
+++ llvm/test/tools/llvm-original-di-preservation/Inputs/expected-sample.html
@@ -20,7 +20,6 @@
     <th>Function Name</th>
     <th>Basic Block Name</th>
     <th>Action</th>
-  </tr>
   </tr>
     <tr>
     <td>test.ll</td>
@@ -123,4 +122,4 @@
       </tr>
     </table>
 </body>
-  </html>
\ No newline at end of file
+  </html>
Index: llvm/test/tools/llvm-original-di-preservation/Inputs/expected-compressed.html
===================================================================
--- llvm/test/tools/llvm-original-di-preservation/Inputs/expected-compressed.html
+++ llvm/test/tools/llvm-original-di-preservation/Inputs/expected-compressed.html
@@ -20,7 +20,6 @@
     <th>Function Name</th>
     <th>Basic Block Name</th>
     <th>Action</th>
-  </tr>
   </tr>
     <tr>
     <td>test.ll</td>
@@ -107,4 +106,4 @@
       </tr>
     </table>
 </body>
-  </html>
\ No newline at end of file
+  </html>
Index: libclc/www/index.html
===================================================================
--- libclc/www/index.html
+++ libclc/www/index.html
@@ -10,7 +10,7 @@
 OpenCL C programming language, as specified by the <a
 href="https://www.khronos.org/registry/OpenCL/specs/opencl-1.1.pdf";>OpenCL
 1.1 Specification</a>.  The following sections of the specification
-impose library requirements:
+impose library requirements:</p>
 <ul>
 <li>6.1: Supported Data Types
 <li>6.2.3: Explicit Conversions
@@ -22,7 +22,6 @@
 <li>9.5: Writing to 3D image memory objects
 <li>9.6: Half Precision Floating-Point
 </ul>
-</p>
 
 <p>
 libclc is intended to be used with the <a href="https://clang.llvm.org/";>Clang</a>
Index: compiler-rt/www/index.html
===================================================================
--- compiler-rt/www/index.html
+++ compiler-rt/www/index.html
@@ -16,7 +16,7 @@
   <h1>"compiler-rt" runtime libraries</h1>
   <!--*********************************************************************-->
 
-  <p>The compiler-rt project consists of:
+  <p>The compiler-rt project consists of:</p>
   <ul>
   <li>
     <p><b>builtins</b> - a simple library that provides an implementation
@@ -52,7 +52,6 @@
     runtime interfaces.
   </li>
   </ul>
-  </p>
 
   <p>All of the code in the compiler-rt project is <a
      href="https://llvm.org/docs/DeveloperPolicy.html#copyright-license-and-patents";>dual licensed</a>
Index: clang/www/diagnostics.html
===================================================================
--- clang/www/diagnostics.html
+++ clang/www/diagnostics.html
@@ -340,7 +340,7 @@
   t.cc:6:5: error: 'f' was not declared in this scope
        f&lt;A&gt;(a);
        ^
-  t.cc:6:8: error: expected primary-expression before '>' token
+  t.cc:6:8: error: expected primary-expression before '&gt;' token
        f&lt;A&gt;(a);
           ^
   $ <span class="cmd">clang t.cc</span>
Index: clang/www/cxx_status.html
===================================================================
--- clang/www/cxx_status.html
+++ clang/www/cxx_status.html
@@ -253,7 +253,7 @@
           <tt>__reference_converts_from_temporary</tt> builtins should be
           provided, following the normal cross-vendor convention to implement
           traits requiring compiler support directly.
-        </details></td>
+        </details>
       </td>
     </tr>
     <!-- July 2022 papers -->
@@ -301,7 +301,7 @@
           longer have to be constexpr compatible but rather support a less restricted requirements for constexpr
           functions. Which include allowing non-literal types as return values and parameters, allow calling of
           non-constexpr functions and constructors.
-        </details></td>
+        </details>
       </td>
     </tr>
     <tr>
@@ -1198,11 +1198,11 @@
       <td rowspan="2">Rvalue references</td>
       <td><a href="https://wg21.link/n2118";>N2118</a></td>
       <td class="full" align="center">Clang 2.9</td>
+     </tr>
       <tr> <!-- from Kona 2019-->
         <td><a href="https://wg21.link/p1825r0";>P1825R0</a> (<a href="#dr">DR</a>)</td>
         <td class="full" align="center">Clang 13</td>
       </tr>
-    </tr>
     <tr>
       <td>&nbsp;&nbsp;&nbsp;&nbsp;Rvalue references for <code>*this</code></td>
       <td><a href="https://wg21.link/n2439";>N2439</a></td>
@@ -1622,27 +1622,27 @@
       <td rowspan="7"><a href="https://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations";>SD-6</a></td>
       <td rowspan="7">N/A</td>
       <td class="full" align="center">
-        Clang 3.4 (<a href="https://wg21.link/n3745";>N3745</a>)</br>
+        Clang 3.4 (<a href="https://wg21.link/n3745";>N3745</a>)
       </td>
     </tr>
     <tr>
       <td class="full" align="center">
-        Clang 3.6 (<a href="https://wg21.link/n4200";>N4200</a>)</a>
+        Clang 3.6 (<a href="https://wg21.link/n4200";>N4200</a>)
       </td>
     </tr>
     <tr>
       <td class="full" align="center">
-        Clang 4 (<a href="https://wg21.link/p0096r3";>P0096R3</a>)</a>
+        Clang 4 (<a href="https://wg21.link/p0096r3";>P0096R3</a>)
       </td>
     </tr>
     <tr>
       <td class="full" align="center">
-        Clang 5 (<a href="https://wg21.link/p0096r4";>P0096R4</a>)</a>
+        Clang 5 (<a href="https://wg21.link/p0096r4";>P0096R4</a>)
       </td>
     </tr>
     <tr>
       <td class="full" align="center">
-        Clang 7 (<a href="https://wg21.link/p0096r5";>P0096R5</a>)</a>
+        Clang 7 (<a href="https://wg21.link/p0096r5";>P0096R5</a>)
       </td>
     </tr>
     <tr>
@@ -1652,7 +1652,7 @@
     </tr>
     <tr>
       <td class="full" align="center">
-        Clang 10 (<a href="https://wg21.link/p1902r1";>P1902R1</a>)</a>
+        Clang 10 (<a href="https://wg21.link/p1902r1";>P1902R1</a>)
       </td>
     </tr>
     <!-- No compiler support is known to be needed for:
Index: clang/www/compatibility.html
===================================================================
--- clang/www/compatibility.html
+++ clang/www/compatibility.html
@@ -212,10 +212,10 @@
 
 <pre>
 int fetch_object_state(struct MyObject *c) {
-  if (!c->active) goto error;
+  if (!c-&gt;active) goto error;
 
   __block int result;
-  run_specially_somehow(^{ result = c->state; });
+  run_specially_somehow(^{ result = c-&gt;state; });
   return result;
 
  error:
@@ -234,7 +234,7 @@
 <b>t.c:3:5: <span class="error">error:</span> goto into protected scope</b>
     goto error;
 <span class="caret">    ^</span>
-<b>t.c:5:15: <span class="note">note:</note></b> jump bypasses setup of __block variable
+<b>t.c:5:15: <span class="note">note:</span></b> jump bypasses setup of __block variable
   __block int result;
 <span class="caret">              ^</span>
 </pre>
@@ -245,7 +245,7 @@
 <pre>
   {
     __block int result;
-    run_specially_somehow(^{ result = c->state; });
+    run_specially_somehow(^{ result = c-&gt;state; });
     return result;
   }
 </pre>
@@ -377,7 +377,7 @@
 <b>t.mm:11:2: <span class="error">error:</span> no matching function for call to 'f'</b>
         f((struct objc_object *)p);
 <span class="caret">        ^</span>
-<b>t.mm:5:6: <span class="note">note:</note></b> candidate function not viable: no known conversion from 'struct objc_object *' to 'id' for 1st argument
+<b>t.mm:5:6: <span class="note">note:</span></b> candidate function not viable: no known conversion from 'struct objc_object *' to 'id' for 1st argument
 void f(id x);
 <span class="caret">     ^</span>
 </pre>
@@ -582,14 +582,14 @@
     DoThis(x);
 <span class="caret">    ^</span>
     this-&gt;
-<b>my_file.cpp:2:8: <span class="note">note:</note></b> must qualify identifier to find this declaration in dependent base class
+<b>my_file.cpp:2:8: <span class="note">note:</span></b> must qualify identifier to find this declaration in dependent base class
   void DoThis(T x) {}
 <span class="caret">       ^</span>
 <b>my_file.cpp:9:5: <span class="error">error:</span> use of undeclared identifier 'DoThat'</b>
     DoThat(x);
 <span class="caret">    ^</span>
     this-&gt;
-<b>my_file.cpp:3:15: <span class="note">note:</note></b> must qualify identifier to find this declaration in dependent base class
+<b>my_file.cpp:3:15: <span class="note">note:</span></b> must qualify identifier to find this declaration in dependent base class
   static void DoThat(T x) {}
 </pre>
 
@@ -671,7 +671,7 @@
   ...
   template &lt;class T&gt; void process() {
     Processor&lt;T&gt; processor;
-    processor.innit();       // <-- should be 'init()'
+    processor.innit();       // &lt;-- should be 'init()'
     ...
   }
 </pre>
@@ -818,7 +818,7 @@
 <b>downcast.mm:6:3: <span class="error">error:</span> no matching function for call to 'f'</b>
   f(p);
 <span class="caret">  ^</span>
-<b>downcast.mm:4:6: <span class="note">note:</note></b> candidate function not viable: cannot convert from
+<b>downcast.mm:4:6: <span class="note">note:</span></b> candidate function not viable: cannot convert from
       superclass 'Base *' to subclass 'Derived *' for 1st argument
 void f(Derived *p);
 <span class="caret">     ^</span>
Index: clang/www/c_status.html
===================================================================
--- clang/www/c_status.html
+++ clang/www/c_status.html
@@ -927,7 +927,7 @@
       <td class="full" align="center">Yes</td>
     </tr>
     <tr>
-      <td>char16_t & char32_t string literals shall be UTF-16 & UTF-32</td>
+      <td>char16_t &amp; char32_t string literals shall be UTF-16 &amp; UTF-32</td>
       <td><a href="https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2728.htm";>N2728</a></td>
       <td class="full" align="center">Yes</td>
     </tr>
Index: clang/www/c_dr_status.html
===================================================================
--- clang/www/c_dr_status.html
+++ clang/www/c_dr_status.html
@@ -177,13 +177,13 @@
   <tr id="22">
     <td><a href="https://www.open-std.org/jtc1/sc22/wg14/www/docs/dr_022.html";>22</a></td>
     <td>C89</td>
-    <td>What is the result of: strtod("100ergs", &ptr);?</td>
+    <td>What is the result of: strtod("100ergs", &amp;ptr);?</td>
     <td class="na" align="center">N/A</td>
   </tr>
   <tr id="23">
     <td><a href="https://www.open-std.org/jtc1/sc22/wg14/www/docs/dr_023.html";>23</a></td>
     <td>NAD</td>
-    <td>what is the result of strtod("0.0e99999", &ptr);?</td>
+    <td>what is the result of strtod("0.0e99999", &amp;ptr);?</td>
     <td class="na" align="center">N/A</td>
   </tr>
   <tr id="24">
@@ -750,7 +750,7 @@
   <tr id="116">
     <td><a href="https://www.open-std.org/jtc1/sc22/wg14/www/docs/dr_116.html";>116</a></td>
     <td>NAD</td>
-    <td>Implicit unary & applied to register arrays</td>
+    <td>Implicit unary &amp; applied to register arrays</td>
     <td class="full" align="center">Yes</td>
   </tr>
   <tr id="117">
@@ -1379,7 +1379,7 @@
   <tr id="241">
     <td><a href="https://www.open-std.org/jtc1/sc22/wg14/www/docs/dr_241.htm";>241</a></td>
     <td>C99</td>
-    <td>Make the base standard and Annex F consistent for pow(0, <0)</td>
+    <td>Make the base standard and Annex F consistent for pow(0, &lt;0)</td>
     <td class="na" align="center">N/A</td>
   </tr>
   <tr id="242">
@@ -1632,7 +1632,7 @@
   <tr id="282">
     <td><a href="https://www.open-std.org/jtc1/sc22/wg14/www/docs/dr_282.htm";>282</a></td>
     <td>C99</td>
-    <td>Flexible array members & struct padding</td>
+    <td>Flexible array members &amp; struct padding</td>
     <td class="full" align="center">Yes</td>
   </tr>
   <tr id="283">
Index: clang/www/analyzer/scan-build.html
===================================================================
--- clang/www/analyzer/scan-build.html
+++ clang/www/analyzer/scan-build.html
@@ -192,7 +192,7 @@
 <b>--use-analyzer [path to clang]</b></td><td><tt>scan-build</tt> uses the
 'clang' executable relative to itself for static analysis. One can override this
 behavior with this option by using the 'clang' packaged with Xcode (on OS X) or
-from the PATH.</p></td></tr> </table>
+from the PATH.</td></tr> </table>
 
 <p>A complete list of options can be obtained by running <tt>scan-build</tt>
 with no arguments.</p>
Index: clang/www/analyzer/release_notes.html
===================================================================
--- clang/www/analyzer/release_notes.html
+++ clang/www/analyzer/release_notes.html
@@ -15,7 +15,7 @@
 
 <h1>Release notes for <tt>checker-XXX</tt> builds</h1>
 <h4 id="checker_279">checker-279</h4>
-<p><b>built:</b> November 14, 2016</br>
+<p><b>built:</b> November 14, 2016<br>
 	<b>download:</b> <a href="downloads/checker-279.tar.bz2">checker-279.tar.bz2</a></p>
 	<p><b>highlights:</b></p>
 	<ul>
@@ -34,7 +34,7 @@
 	</ul>
 
 <h4 id="checker_278">checker-278</h4>
-<p><b>built:</b> February 5, 2016</br>
+<p><b>built:</b> February 5, 2016<br>
 	<b>download:</b> <a href="downloads/checker-278.tar.bz2">checker-278.tar.bz2</a></p>
 	<p><b>highlights:</b></p>
 	<ul>
@@ -50,7 +50,7 @@
 	</ul>
 
 <h4 id="checker_277">checker-277</h4>
-<p><b>built:</b> October 28, 2015</br>
+<p><b>built:</b> October 28, 2015<br>
 	<b>download:</b> <a href="downloads/checker-277.tar.bz2">checker-277.tar.bz2</a></p>
 	<p><b>highlights:</b></p>
 	<ul>
@@ -80,7 +80,7 @@
 	</ul>
 
 <h4 id="checker_276">checker-276</h4>
-<p><b>built:</b> February 19, 2014</br>
+<p><b>built:</b> February 19, 2014<br>
 	<b>download:</b> <a href="downloads/checker-276.tar.bz2">checker-276.tar.bz2</a></p>
 	<p><b>highlights:</b></p>
 	<ul>
@@ -92,7 +92,7 @@
 	</ul>
 
 <h4 id="checker_275">checker-275</h4>
-<p><b>built:</b> May 23, 2013</br>
+<p><b>built:</b> May 23, 2013<br>
 	<b>download:</b> <a href="downloads/checker-275.tar.bz2">checker-275.tar.bz2</a></p>
 	<p><b>highlights:</b></p>
 	<ul>
@@ -104,7 +104,7 @@
 	</ul>
 
 <h4 id="checker_274">checker-274</h4>
-<p><b>built:</b> April 23, 2013</br>
+<p><b>built:</b> April 23, 2013<br>
 	<b>download:</b> <a href="https://attache.apple.com/AttacheWeb/dl?id=ATCdb3165f4406a4589b5878a22494c3b79";>checker-274.tar.bz2</a></p>
 	<p><b>highlights:</b></p>
 	<ul>
@@ -114,7 +114,7 @@
 	</ul>
 
 <h4 id="checker_273">checker-273</h4>
-<p><b>built:</b> April 8, 2013</br>
+<p><b>built:</b> April 8, 2013<br>
 	<b>download:</b> <a href="https://attache.apple.com/AttacheWeb/dl?id=ATCdefcc852a99546cfbaba2a960e07478e";>checker-273.tar.bz2</a></p>
 	<p><b>highlights:</b></p>
 	<ul>
Index: clang/www/analyzer/potential_checkers.html
===================================================================
--- clang/www/analyzer/potential_checkers.html
+++ clang/www/analyzer/potential_checkers.html
@@ -348,7 +348,7 @@
 
 int readWrapper(int fd, int *count) {
   int lcount = read(fd, globalBuf, sizeof(globalBuf));
-  if (lcount < 0)
+  if (lcount &lt; 0)
     return errno;
   *count = lcount;
   return 0;
@@ -497,7 +497,7 @@
 void test() {
   A *a = new A;
   new(a) B;
-  a->~A();
+  a-&gt;~A();
 }
 </pre></div>
 <div class="example"><pre>
@@ -578,7 +578,7 @@
 
 void test() {
   B b;
-  new (&b) A;
+  new (&amp;b) A;
 } // warn
 </pre></div>
 <div class="example"><pre>
@@ -659,7 +659,7 @@
 void test() {
   const C cb;
 
-  C* cp = const_cast&lt;C *&gt;(&cb);
+  C* cp = const_cast&lt;C *&gt;(&amp;cb);
   cp-&gt;i = 1; // warn
 }
 </pre></div></div></td>
@@ -1173,7 +1173,7 @@
 undefbehavior.ValarrayZeroLength</span><span class="lang">
 (C++)</span><div class="descr">
 Undefined behavior: calling <code>sum()</code>/<code>min()</code>/<code>
-max()</code> methods of a zero length <code>valarray<code> the behavior is
+max()</code> methods of a zero length <code>valarray</code> the behavior is
 undefined.
 <p>Source: C++03 26.3.2.7p2, p3, p4; C++11 26.6.2.8p5, p6,
 p7.</p></div></div></td>
@@ -1245,7 +1245,7 @@
   };
 public:
   my_stream2() {
-    this->init(new my_streambuf);
+    this-&gt;init(new my_streambuf);
   }
 };
 
@@ -1282,15 +1282,15 @@
   };
 public:
   my_stream2() {
-    this->init(new my_streambuf);
+    this-&gt;init(new my_streambuf);
   }
 };
 
 void test() {
   my_stream1&lt;char&gt; *p1 = new my_stream1&lt;char&gt;;
   my_stream2&lt;char&gt; *p2 = new my_stream2&lt;char&gt;;
-  p1->narrow('a', 'b'); // warn
-  p2->narrow('a', 'b'); // ok
+  p1-&gt;narrow('a', 'b'); // warn
+  p2-&gt;narrow('a', 'b'); // ok
 }
 </pre></div></div></td>
 <td class="aligned"></td></tr>
@@ -1392,7 +1392,7 @@
 
 void test() {
   struct S *p = f();
-  if (p-&gt;i && p) {}; // warn
+  if (p-&gt;i &amp;&amp; p) {}; // warn
 }
 </pre></div></div></td>
 <td class="aligned"></td></tr>
@@ -1417,8 +1417,8 @@
   int i;
   int j;
 public:
-  void setI(int& ii) { i = ii; }
-  void setJ(int& jj) { i = jj; } // warn
+  void setI(int&amp; ii) { i = ii; }
+  void setJ(int&amp; jj) { i = jj; } // warn
 };
 </pre></div></div></td>
 <td class="aligned"></td></tr>
@@ -1435,7 +1435,7 @@
 public:
   int i; // warn
   int getI() { return i; }
-  void setI(int& ii) { i = ii; }
+  void setI(int&amp; ii) { i = ii; }
 };
 </pre></div></div></td>
 <td class="aligned"></td></tr>
@@ -1847,7 +1847,7 @@
 (C)</span><div class="descr">
 <code>CreateProcess()</code>: if the first parameter <code><i>
 lpApplicationName</i></code> is NULL then the executable name must be in the
-white space-delimited string pointed to by <code><i>lpCommandLine</code></i>.
+white space-delimited string pointed to by <code><i>lpCommandLine</i></code>.
 If the executable or path name has a space in it, there is a risk that a
 different executable could be run because of the way the function parses
 spaces.
@@ -1861,7 +1861,7 @@
   STARTUPINFO si;
   PROCESS_INFORMATION pi;
   CreateProcess(NULL, TEXT("C:\\Program Files\\App -L -S"),
-                NULL, NULL, TRUE, 0, NULL, NULL, &si, &pi);
+                NULL, NULL, TRUE, 0, NULL, NULL, &amp;si, &amp;pi);
     // warn
 }
 </pre></div></div></td>
Index: clang/www/analyzer/open_projects.html
===================================================================
--- clang/www/analyzer/open_projects.html
+++ clang/www/analyzer/open_projects.html
@@ -19,7 +19,7 @@
 power. Most of the projects listed here are infrastructure-related so this list
 is an addition to the <a href="potential_checkers.html">potential checkers
 list</a>. If you are interested in tackling one of these, please send an email
-to the <a href=https://lists.llvm.org/mailman/listinfo/cfe-dev>cfe-dev
+to the <a href="https://lists.llvm.org/mailman/listinfo/cfe-dev";>cfe-dev
 mailing list</a> to notify other members of the community.</p>
 
 <ul>
@@ -44,8 +44,8 @@
       without a proper
       <a href="https://en.wikipedia.org/wiki/Widening_(computer_science)">loop widening</a> support.
       Additionally, it might be more promising to perform index checking based on
-      <a href="https://en.wikipedia.org/wiki/Taint_checking";>tainted</a> index values.
-      <p><i>(Difficulty: Medium)</i></p></p>
+      <a href="https://en.wikipedia.org/wiki/Taint_checking";>tainted</a> index values.</p>
+      <p><i>(Difficulty: Medium)</i></p>
       </li>
 
       <li><code>alpha.unix.StreamChecker</code>
@@ -85,8 +85,8 @@
       ParentMap</a></code> lookup in <a href="https://clang.llvm.org/doxygen/ExprEngineCXX_8cpp_source.html#l00430";>
       <code>CXXConstructExpr::CK_NonVirtualBase</code></a> branch of
       <code>ExprEngine::VisitCXXConstructExpr()</code>
-      with proper support for the feature.
-      <p><i>(Difficulty: Medium) </i></p></p>
+      with proper support for the feature.</p>
+      <p><i>(Difficulty: Medium) </i></p>
     </li>
 
     <li>Handle array constructors.
@@ -169,8 +169,8 @@
     <li>Enhance CFG to model exception-handling.
       <p>Currently exceptions are treated as "black holes", and exception-handling
       control structures are poorly modeled in order to be conservative.
-      This could be improved for both C++ and Objective-C exceptions.
-      <p><i>(Difficulty: Hard)</i></p></p>
+      This could be improved for both C++ and Objective-C exceptions.</p>
+      <p><i>(Difficulty: Hard)</i></p>
     </li>
   </ul>
   </li>
@@ -182,8 +182,8 @@
       an unknown.
       This problem was
       previously <a href="https://lists.llvm.org/pipermail/cfe-dev/2017-March/052864.html";>discussed</a>
-      on the mailing list, but no solution was implemented.
-      <p><i> (Difficulty: Medium) </i></p></p>
+      on the mailing list, but no solution was implemented.</p>
+      <p><i> (Difficulty: Medium) </i></p>
     </li>
 
     <li>Floating-point support.
@@ -192,8 +192,8 @@
       for constant floats, generalizing the constraint manager to handle floats,
       and auditing existing code to make sure it doesn't
       make incorrect assumptions (most notably, that <code>X == X</code>
-      is always true, since it does not hold for <code>NaN</code>).
-      <p><i> (Difficulty: Medium)</i></p></p>
+      is always true, since it does not hold for <code>NaN</code>).</p>
+      <p><i> (Difficulty: Medium)</i></p>
     </li>
 
     <li>Improved loop execution modeling.
@@ -205,9 +205,8 @@
       <a href="https://summerofcode.withgoogle.com/archive/2017/projects/6071606019358720/";>project</a>
       was completed to make the loop bound parameterizable,
       but the <a href="https://en.wikipedia.org/wiki/Widening_(computer_science)">widening</a>
-      problem still remains open.
-
-      <p><i> (Difficulty: Hard)</i></p></p>
+      problem still remains open.</p>
+      <p><i> (Difficulty: Hard)</i></p>
     </li>
 
     <li>Basic function summarization support
@@ -218,8 +217,8 @@
       (e.g. "this function is <a href="https://en.wikipedia.org/wiki/Pure_function";>pure</a>") would be
       enough to be a large improvement over conservative evaluation.
       Such summaries could be obtained either syntactically,
-      or using a dataflow framework.
-      <p><i>(Difficulty: Hard)</i></p><p>
+      or using a dataflow framework.</p>
+      <p><i>(Difficulty: Hard)</i><p>
     </li>
 
     <li>Implement a dataflow flamework.
@@ -236,16 +235,16 @@
       Clang already implements
       a few dataflow analyses (most notably, liveness),
       but they implemented in an ad-hoc fashion.
-      A proper framework would enable us writing many more useful checkers.
-      <p><i> (Difficulty: Hard) </i></p></p>
+      A proper framework would enable us writing many more useful checkers.</p>
+      <p><i> (Difficulty: Hard) </i></p>
     </li>
 
     <li>Track type information through casts more precisely.
       <p>The <code>DynamicTypePropagation</code>
       checker is in charge of inferring a region's
       dynamic type based on what operations the code is performing.
-      Casts are a rich source of type information that the analyzer currently ignores.
-      <p><i>(Difficulty: Medium)</i></p></p>
+      Casts are a rich source of type information that the analyzer currently ignores.</p>
+      <p><i>(Difficulty: Medium)</i></p>
     </li>
 
   </ul>
@@ -255,8 +254,8 @@
     <p>Apart from the open projects listed above,
        contributors are welcome to fix any of the outstanding
        <a href="https://bugs.llvm.org/buglist.cgi?component=Static%20Analyzer&list_id=147756&product=clang&resolution=---";>bugs</a>
-       in the Bugzilla.
-       <p><i>(Difficulty: Anything)</i></p></p>
+       in the Bugzilla.</p>
+       <p><i>(Difficulty: Anything)</i></p>
   </li>
 
 </ul>
Index: clang/www/analyzer/implicit_checks.html
===================================================================
--- clang/www/analyzer/implicit_checks.html
+++ clang/www/analyzer/implicit_checks.html
@@ -87,7 +87,7 @@
   int *p = (int *)__builtin_alloca(8);
     // evaluates to AllocaRegion
 
-  if(__builtin_expect(x > 10, 0)) // evaluates to 'x > 10'
+  if(__builtin_expect(x &gt; 10, 0)) // evaluates to 'x &gt; 10'
     x = 0;
 }
 </pre></div></div></td></tr>
Index: clang/www/analyzer/faq.html
===================================================================
--- clang/www/analyzer/faq.html
+++ clang/www/analyzer/faq.html
@@ -72,22 +72,22 @@
 
 <h4 id="dead_store" class="faq">Q: How do I tell the static analyzer that I don't care about a specific dead store?</h4>
 
-<p>When the analyzer sees that a value stored into a variable is never used, it's going to produce a message similar to this one:
+<p>When the analyzer sees that a value stored into a variable is never used, it's going to produce a message similar to this one:</p>
 <pre class="code_example">Value stored to 'x' is never read</pre>
-You can use the <tt>(void)x;</tt> idiom to acknowledge that there is a dead store in your code but you do not want it to be reported in the future.</p>
+<p>You can use the <tt>(void)x;</tt> idiom to acknowledge that there is a dead store in your code but you do not want it to be reported in the future.</p>
 
 <h4 id="unused_ivar" class="faq">Q: How do I tell the static analyzer that I don't care about a specific unused instance variable in Objective C?</h4>
 
-<p>When the analyzer sees that a value stored into a variable is never used, it is going to produce a message similar to this one:
+<p>When the analyzer sees that a value stored into a variable is never used, it is going to produce a message similar to this one:</p>
 <pre class="code_example">Instance variable 'commonName' in class 'HappyBird' is never used by the methods in its @implementation</pre>
-You can add <tt>__attribute__((unused))</tt> to the instance variable declaration to suppress the warning.</p>
+<p>You can add <tt>__attribute__((unused))</tt> to the instance variable declaration to suppress the warning.</p>
 
 <h4 id="unlocalized_string" class="faq">Q: How do I tell the static analyzer that I don't care about a specific unlocalized string?</h4>
 
-<p>When the analyzer sees that an unlocalized string is passed to a method that will present that string to the user, it is going to produce a message similar to this one:
+<p>When the analyzer sees that an unlocalized string is passed to a method that will present that string to the user, it is going to produce a message similar to this one:</p>
 <pre class="code_example">User-facing text should use localized string macro</pre>
 
-If your project deliberately uses unlocalized user-facing strings (for example, in a debugging UI that is never shown to users), you can suppress the analyzer warnings (and document your intent) with a function that just returns its input but is annotated to return a localized string:
+<p>If your project deliberately uses unlocalized user-facing strings (for example, in a debugging UI that is never shown to users), you can suppress the analyzer warnings (and document your intent) with a function that just returns its input but is annotated to return a localized string:</p>
 <pre class="code_example">
 __attribute__((annotate("returns_localized_nsstring")))
 static inline NSString *LocalizationNotNeeded(NSString *s) {
@@ -95,18 +95,17 @@
 }
 </pre>
 
-You can then call this function when creating your debugging UI:
+<p>You can then call this function when creating your debugging UI:</p>
 <pre class="code_example">
 [field setStringValue:LocalizationNotNeeded(@"Debug")];
 </pre>
 
-Some projects may also find it useful to use NSLocalizedString but add "DNL" or "Do Not Localize" to the string contents as a convention:
+<p>Some projects may also find it useful to use NSLocalizedString but add "DNL" or "Do Not Localize" to the string contents as a convention:</p>
 <pre class="code_example">
 UILabel *testLabel = [[UILabel alloc] init];
 NSString *s = NSLocalizedString(@"Hello &lt;Do Not Localize&gt;", @"For debug purposes");
 [testLabel setText:s];
 </pre>
-</p>
 
 <h4 id="dealloc_mrr" class="faq">Q: How do I tell the analyzer that my instance variable does not need to be released in -dealloc under Manual Retain/Release?</h4>
 
@@ -119,7 +118,7 @@
 
 <h4 id="decide_nullability" class="faq">Q: How do I decide whether a method's return type should be _Nullable or _Nonnull?</h4>
 
-<p> Depending on the implementation of the method, this puts you in one of five situations:
+<p> Depending on the implementation of the method, this puts you in one of five situations:</p>
 <ol>
 <li>You actually never return nil.</li>
 <li>You do return nil sometimes, and callers are supposed to handle that. This
@@ -131,7 +130,6 @@
 That means it's the client's fault.</li>
 <li>You return nil in some totally undocumented case.</li>
 </ol>
-</p>
 
 <p>In (1) you should annotate the method as returning a <tt>_Nonnull</tt>
 object.</p>
@@ -162,12 +160,11 @@
 compatibility &mdash; chose to return nil and log an error message in a method
 with a non-null return type when the client violated a documented precondition
 rather than check the precondition with <tt>NSAssert()</tt>. In these cases, you
-can suppress the analyzer warning with a cast:
+can suppress the analyzer warning with a cast:</p>
 <pre class="code_example">
     return (id _Nonnull)nil;
 </pre>
-Note that this cast does not affect code generation.
-</p>
+<p>Note that this cast does not affect code generation.</p>
 
 <h4 id="use_assert" class="faq">Q: The analyzer assumes that a loop body is never entered.  How can I tell it that the loop body will be entered at least once?</h4>
 
@@ -178,7 +175,7 @@
 particular example, you may know that the loop will always be entered because
 the input parameter <tt>length</tt> will be greater than zero in all calls to this
 function. You can teach the analyzer facts about your code as well as document
-it by using assertions. By adding <tt>assert(length > 0)</tt> in the beginning
+it by using assertions. By adding <tt>assert(length &gt; 0)</tt> in the beginning
 of the function, you tell the analyzer that your code is never expecting a zero
 or a negative value, so it won't need to test the correctness of those paths.
 </p>
@@ -186,7 +183,7 @@
 <pre class="code_example">
 int foo(int length) {
   int x = 0;
-  <span class="code_highlight">assert(length > 0);</span>
+  <span class="code_highlight">assert(length &gt; 0);</span>
   for (int i = 0; i < length; i++)
     x += 1;
   return length/x;
@@ -207,7 +204,7 @@
 
 <p>When the static analyzer is using clang to parse source files, it implicitly
 defines the preprocessor macro <tt>__clang_analyzer__</tt>. One can use this
-macro to selectively exclude code the analyzer examines. Here is an example:
+macro to selectively exclude code the analyzer examines. Here is an example:</p>
 
 <pre class="code_example">
 #ifndef __clang_analyzer__
@@ -215,7 +212,7 @@
 #endif
 </pre>
 
-This usage is discouraged because it makes the code dead to the analyzer from
+<p>This usage is discouraged because it makes the code dead to the analyzer from
 now on. Instead, we prefer that users file bugs against the analyzer when it flags
 false positives.
 </p>
Index: clang/www/analyzer/command-line.html
===================================================================
--- clang/www/analyzer/command-line.html
+++ clang/www/analyzer/command-line.html
@@ -22,7 +22,7 @@
 then later view them interactively in a graphical interface. The following
 tools are used commonly to run the analyzer from the command line. Both tools
 are wrapper scripts to drive the analysis and the underlying invocations of the
-Clang compiler:
+Clang compiler:</p>
 <ol>
   <li><a href="scan-build.html">Scan-Build</a>
     is an old and simple command-line tool that emits static analyzer warnings as HTML files while compiling your project. You can view the analysis results in your web browser.
@@ -54,7 +54,6 @@
     <li>Open source, but out-of-tree, i.e. not part of the LLVM project.</li>
   </ul>
 </ol>
-</p>
 
 <p>
 </p>
Index: clang/www/analyzer/codechecker.html
===================================================================
--- clang/www/analyzer/codechecker.html
+++ clang/www/analyzer/codechecker.html
@@ -23,48 +23,44 @@
 
 <p>
 Create a compilation database. If you use cmake then pass the <tt>-DCMAKE_EXPORT_COMPILE_COMMANDS=1</tt> parameter to cmake. Cmake will create a <tt>compile_commands.json</tt> file.
-If you have a Makefile based or similar build system then you can log the build commands with the help of CodeChecker:
+If you have a Makefile based or similar build system then you can log the build commands with the help of CodeChecker:</p>
 <pre class="code_example">
 make clean
 CodeChecker log -b "make" -o compile_commands.json
 </pre>
-</p>
 
 <p>
-Analyze your project.
+Analyze your project.</p>
 <pre class="code_example">
 CodeChecker analyze compile_commands.json -o ./reports
 </pre>
-</p>
 
 <p>
 View the analysis results.
-Print the detailed results in the command line:
+Print the detailed results in the command line:</p>
 <pre class="code_example">
 CodeChecker parse --print-steps ./reports
 </pre>
-Or view the detailed results in a browser:
+<p>
+Or view the detailed results in a browser:</p>
 <pre class="code_example">
 CodeChecker parse ./reports -e html -o ./reports_html
 firefox ./reports_html/index.html
 </pre>
-</p>
 
 <p>
-Optional: store the analysis results in a DB.
+Optional: store the analysis results in a DB.</p>
 <pre class="code_example">
 mkdir ./ws
-CodeChecker server -w ./ws -v 8555 &
+CodeChecker server -w ./ws -v 8555 &amp;
 CodeChecker store ./reports --name my-project --url http://localhost:8555/Default
 </pre>
-</p>
 
 <p>
-Optional: manage (categorize, suppress) the results in your web browser:
+Optional: manage (categorize, suppress) the results in your web browser:</p>
 <pre class="code_example">
 firefox http://localhost:8555/Default
 </pre>
-</p>
 
 <h2>Detailed Usage</h2>
 
Index: clang/www/analyzer/checker_dev_manual.html
===================================================================
--- clang/www/analyzer/checker_dev_manual.html
+++ clang/www/analyzer/checker_dev_manual.html
@@ -183,7 +183,6 @@
   Let's see how the analyzer processes the expressions in the following example:
   </p>
 
-  <p>
   <pre class="code_example">
   int foo(int x) {
      int y = x * 2;
@@ -191,7 +190,6 @@
      ...
   }
   </pre>
-  </p>
 
   <p>
 Let's look at how <tt>x*2</tt> gets evaluated. When <tt>x</tt> is evaluated,
@@ -276,7 +274,7 @@
   <li>The following registration code was added to the implementation file:
 <pre class="code_example">
 void ento::registerSimpleStreamChecker(CheckerManager &amp;mgr) {
-  mgr.registerChecker&lt;SimpleStreamChecker&gt();
+  mgr.registerChecker&lt;SimpleStreamChecker&gt;();
 }
 </pre>
 <li>A package was selected for the checker and the checker was defined in the
@@ -287,9 +285,9 @@
 <pre class="code_example">
 let ParentPackage = UnixAlpha in {
 ...
-def SimpleStreamChecker : Checker<"SimpleStream">,
-  HelpText<"Check for misuses of stream APIs">,
-  DescFile<"SimpleStreamChecker.cpp">;
+def SimpleStreamChecker : Checker&lt;"SimpleStream"&gt;,
+  HelpText&lt;"Check for misuses of stream APIs"&gt;,
+  DescFile&lt;"SimpleStreamChecker.cpp"&gt;;
 ...
 } // end "alpha.unix"
 </pre>
@@ -705,7 +703,7 @@
   <li>Prefer <tt>checkPreCall</tt> and <tt>checkPostCall</tt> to
     <tt>checkPreStmt&lt;CallExpr&gt;</tt> and <tt>checkPostStmt&lt;CallExpr&gt;</tt>.</li>
   <li>Use <tt>CallDescription</tt> to detect hardcoded API calls in the program.</li>
-  <li>Simplify <tt>C.getState()->getSVal(E, C.getLocationContext())</tt> to <tt>C.getSVal(E)</tt>.</li>
+  <li>Simplify <tt>C.getState()-&gt;getSVal(E, C.getLocationContext())</tt> to <tt>C.getSVal(E)</tt>.</li>
 </ul>
 <li>Common sources of crashes:</li>
 <ul>
@@ -736,7 +734,7 @@
   <li><tt>BugReporterVisitor</tt> should most likely not match the AST of the current program point
       to decide when to emit a note. It is much easier to determine that by observing changes in
       the program state.</li>
-  <li>In <tt>State->getSVal(Region)</tt>, if <tt>Region</tt> is not known to be a <tt>TypedValueRegion</tt>
+  <li>In <tt>State-&gt;getSVal(Region)</tt>, if <tt>Region</tt> is not known to be a <tt>TypedValueRegion</tt>
       and the optional type argument is not specified, the checker may accidentally try to dereference a
       void pointer.</li>
   <li>Checker logic should not depend on whether a certain value is a <tt>Loc</tt> or <tt>NonLoc</tt>.
Index: clang/www/analyzer/available_checks.html
===================================================================
--- clang/www/analyzer/available_checks.html
+++ clang/www/analyzer/available_checks.html
@@ -218,7 +218,7 @@
 
 void test() {
   C *pc = 0;
-  int k = pc->x; // warn
+  int k = pc-&gt;x; // warn
 }
 </pre></div>
 <div class="example"><pre>
@@ -488,7 +488,7 @@
 <div class="example"><pre>
 - (nonnull id)firstChild {
   id result = nil;
-  if ([_children count] > 0)
+  if ([_children count] &gt; 0)
     result = _children[0];
 
   // Warning: nil returned from a method that is expected
@@ -514,7 +514,7 @@
 void updateNextData(struct LinkedList *list, int newData) {
   struct LinkedList *next = getNext(list);
   // Warning: Nullable pointer is dereferenced
-  next->data = 7;
+  next-&gt;data = 7;
 }
 </pre></div></div></td></tr>
 
@@ -587,15 +587,15 @@
 
 struct A {
   struct B {
-    int x; // note: uninitialized field 'this->b.x'
-           // note: uninitialized field 'this->bptr->x'
-    int y; // note: uninitialized field 'this->b.y'
-           // note: uninitialized field 'this->bptr->y'
+    int x; // note: uninitialized field 'this-&gt;b.x'
+           // note: uninitialized field 'this-&gt;bptr-&gt;x'
+    int y; // note: uninitialized field 'this-&gt;b.y'
+           // note: uninitialized field 'this-&gt;bptr-&gt;y'
   };
-  int *iptr; // note: uninitialized pointer 'this->iptr'
+  int *iptr; // note: uninitialized pointer 'this-&gt;iptr'
   B b;
   B *bptr;
-  char *cptr; // note: uninitialized pointee 'this->cptr'
+  char *cptr; // note: uninitialized pointee 'this-&gt;cptr'
 
   A (B *bptr, char *cptr) : bptr(bptr), cptr(cptr) {}
 };
@@ -603,7 +603,7 @@
 void f() {
   A::B b;
   char c;
-  A a(&b, &c); // warning: 6 uninitialized fields
+  A a(&amp;b, &amp;c); // warning: 6 uninitialized fields
                //          after the constructor call
 }
 </pre></div><div class="separator"></div>
@@ -628,7 +628,7 @@
 void f() {
   A::B b;
   char c;
-  A a(&b, &c); // no warning
+  A a(&amp;b, &amp;c); // no warning
 }
 </pre></div><div class="separator"></div>
 <div class="example"><pre>
@@ -637,10 +637,10 @@
 
 struct A {
   struct B {
-    int x; // note: uninitialized field 'this->b.x'
-    int y; // note: uninitialized field 'this->b.y'
+    int x; // note: uninitialized field 'this-&gt;b.x'
+    int y; // note: uninitialized field 'this-&gt;b.y'
   };
-  int *iptr; // note: uninitialized pointer 'this->iptr'
+  int *iptr; // note: uninitialized pointer 'this-&gt;iptr'
   B b;
   B *bptr;
   char *cptr;
@@ -651,7 +651,7 @@
 void f() {
   A::B b;
   char c;
-  A a(&b, &c); // warning: 3 uninitialized fields
+  A a(&amp;b, &amp;c); // warning: 3 uninitialized fields
                //          after the constructor call
 }
 </pre></div></div></td></tr>
@@ -693,26 +693,26 @@
 void test() {
   double buf = 0;
   MPI_Request sendReq1;
-  MPI_Ireduce(MPI_IN_PLACE, &buf, 1, MPI_DOUBLE, MPI_SUM,
-      0, MPI_COMM_WORLD, &sendReq1);
+  MPI_Ireduce(MPI_IN_PLACE, &amp;buf, 1, MPI_DOUBLE, MPI_SUM,
+      0, MPI_COMM_WORLD, &amp;sendReq1);
 } // warn: request 'sendReq1' has no matching wait.
 </pre></div><div class="separator"></div>
 <div class="example"><pre>
 void test() {
   double buf = 0;
   MPI_Request sendReq;
-  MPI_Isend(&buf, 1, MPI_DOUBLE, 0, 0, MPI_COMM_WORLD, &sendReq);
-  MPI_Irecv(&buf, 1, MPI_DOUBLE, 0, 0, MPI_COMM_WORLD, &sendReq); // warn
-  MPI_Isend(&buf, 1, MPI_DOUBLE, 0, 0, MPI_COMM_WORLD, &sendReq); // warn
-  MPI_Wait(&sendReq, MPI_STATUS_IGNORE);
+  MPI_Isend(&amp;buf, 1, MPI_DOUBLE, 0, 0, MPI_COMM_WORLD, &amp;sendReq);
+  MPI_Irecv(&amp;buf, 1, MPI_DOUBLE, 0, 0, MPI_COMM_WORLD, &amp;sendReq); // warn
+  MPI_Isend(&amp;buf, 1, MPI_DOUBLE, 0, 0, MPI_COMM_WORLD, &amp;sendReq); // warn
+  MPI_Wait(&amp;sendReq, MPI_STATUS_IGNORE);
 }
 </pre></div><div class="separator"></div>
 <div class="example"><pre>
 void missingNonBlocking() {
   int rank = 0;
-  MPI_Comm_rank(MPI_COMM_WORLD, &rank);
+  MPI_Comm_rank(MPI_COMM_WORLD, &amp;rank);
   MPI_Request sendReq1[10][10][10];
-  MPI_Wait(&sendReq1[1][7][9], MPI_STATUS_IGNORE); // warn
+  MPI_Wait(&amp;sendReq1[1][7][9], MPI_STATUS_IGNORE); // warn
 }
 </pre></div></div></td></tr>
 
@@ -783,7 +783,7 @@
 NSNumber *photoCount = [albumDescriptor objectForKey:@"PhotoCount"];
 // Warning: Comparing a pointer value of type 'NSNumber *'
 // to a scalar integer value
-if (photoCount > 0) {
+if (photoCount &gt; 0) {
   [self displayPhotos];
 }
 </pre></div></div></td></tr>
@@ -1077,7 +1077,7 @@
 Check for type errors when using Objective-C generics</div></div></a></td>
 <td><div class="exampleContainer expandable">
 <div class="example"><pre>
-NSMutableArray<NSString *> *names = [NSMutableArray array];
+NSMutableArray&lt;NSString *&gt; *names = [NSMutableArray array];
 NSMutableArray *birthDates = names;
 
 // Warning: Conversion from value of type 'NSDate *'
@@ -1458,7 +1458,7 @@
   // This would be a vulnerability on 64-bit platforms
   // but not on 32-bit platforms.
   NSUInteger x;
-  [decoder decodeValueOfObjCType:"I" at:&x]; // warn
+  [decoder decodeValueOfObjCType:"I" at:&amp;x]; // warn
 }
 </pre></div></div></td></tr>
 
@@ -1480,7 +1480,7 @@
 calloc<br>
 malloc<br>
 realloc<br>
-alloca<br></a></td>
+alloca<br></div></div></div></a></td>
 <td><div class="exampleContainer expandable">
 <div class="example"><pre>
 // Currently the check is performed for apple targets only.
Index: clang/www/analyzer/alpha_checks.html
===================================================================
--- clang/www/analyzer/alpha_checks.html
+++ clang/www/analyzer/alpha_checks.html
@@ -54,14 +54,14 @@
 
 int max(int a, int b) { // warn
   log();
-  if (a > b)
+  if (a &gt; b)
     return a;
   return b;
 }
 
 int maxClone(int x, int y) { // similar code here
   log();
-  if (x > y)
+  if (x &gt; y)
     return x;
   return y;
 }
@@ -96,16 +96,16 @@
 <div class="example"><pre>
 void test(void) {
   int t;
-  int &p = t;
-  int &s = p;
-  int &q = s;
+  int &amp;p = t;
+  int &amp;s = p;
+  int &amp;q = s;
   foo(q); // warn
 }
 </pre></div><div class="separator"></div>
 <div class="example"><pre>
 void test(void) {
   int x;
-  foo(&x); // warn
+  foo(&amp;x); // warn
 }
 </pre></div></div></td></tr>
 
@@ -155,19 +155,19 @@
 <td><div class="exampleContainer expandable">
 <div class="example"><pre>
 void test(unsigned U, signed S) {
-  if (S > 10) {
-    if (U < S) {
+  if (S &gt; 10) {
+    if (U &lt; S) {
     }
   }
-  if (S < -10) {
-    if (U < S) { // warn (loss of sign)
+  if (S &lt; -10) {
+    if (U &lt; S) { // warn (loss of sign)
     }
   }
 }
 </pre></div><div class="separator"></div>
 <div class="example"><pre>
 void test() {
-  long long A = 1LL << 60;
+  long long A = 1LL &lt;&lt; 60;
   short X = A; // warn (loss of precision)
 }
 </pre></div></div></td></tr>
@@ -284,7 +284,7 @@
 Check that addresses to stack memory do not escape the function that involves
 <code>dispatch_after</code> or <code>dispatch_async</code>. This checker is
 a part of core.StackAddressEscape, but is
-<a href=https://reviews.llvm.org/D41042>temporarily disabled</a> until some
+<a href="https://reviews.llvm.org/D41042";>temporarily disabled</a> until some
 false positives are fixed.</div></div></a></td>
 <td><div class="exampleContainer expandable">
 <div class="example"><pre>
@@ -362,7 +362,7 @@
 };
 
 void foo() {
-  TestEnum t = static_cast<TestEnum>(-1);
+  TestEnum t = static_cast&lt;TestEnum&gt;(-1);
       // warn: the value provided to the cast expression is not in
                the valid range of values for the enum
 }
@@ -376,8 +376,8 @@
 </div></div></a></td>
 <td><div class="exampleContainer expandable">
 <div class="example"><pre>
-void bad_copy_assign_operator_list1(std::list<int> &L1,
-                                    const std::list<int> &L2) {
+void bad_copy_assign_operator_list1(std::list&lt;int&gt; &amp;L1,
+                                    const std::list&lt;int&gt; &amp;L2) {
   auto i0 = L1.cbegin();
   L1 = L2;
   *i0; // warn: invalidated iterator accessed
@@ -392,7 +392,7 @@
 </div></div></a></td>
 <td><div class="exampleContainer expandable">
 <div class="example"><pre>
-void simple_bad_end(const std::vector<int> &v) {
+void simple_bad_end(const std::vector&lt;int&gt; &amp;v) {
   auto i = v.end();
   *i; // warn: iterator accessed outside of its range
 }
@@ -407,7 +407,7 @@
 </div></div></a></td>
 <td><div class="exampleContainer expandable">
 <div class="example"><pre>
-void bad_insert3(std::vector<int> &v1, std::vector<int> &v2) {
+void bad_insert3(std::vector&lt;int&gt; &amp;v1, std::vector&lt;int&gt; &amp;v2) {
   v2.insert(v1.cbegin(), v2.cbegin(), v2.cend()); // warn: container accessed
                                                   //       using foreign
                                                   //       iterator argument
@@ -473,10 +473,10 @@
 void test() {
   int a = 2;
 
-  while (a > 1)
+  while (a &gt; 1)
     a--;
 
-  if (a > 1)
+  if (a &gt; 1)
     a++; // warn
 }
 </pre></div><div class="separator"></div>
@@ -634,7 +634,7 @@
   // Use a .stringsdict file instead
   reminderText =
     NSLocalizedString(@"1 Reminder", @"Indicates single reminder");
-} else if (reminderCount >= 2) {
+} else if (reminderCount &gt;= 2) {
   // Warning: Plural cases are not supported across all languages.
   // Use a .stringsdict file instead
   reminderText =
@@ -671,7 +671,7 @@
 
 void test() {
   struct seven_words a, *p;
-  p = &a;
+  p = &amp;a;
   p[0] = a;
   p[1] = a;
   p[2] = a; // warn
@@ -746,7 +746,7 @@
 <tr><td><a id="alpha.security.MmapWriteExec"><div class="namedescr expandable"><span class="name">
 alpha.security.MmapWriteExec</span><span class="lang">
 (C)</span><div class="descr">
-Warn on <code>mmap()<code> calls that are both writable and executable.
+Warn on <code>mmap()</code> calls that are both writable and executable.
 </div></div></a></td>
 <td><div class="exampleContainer expandable">
 <div class="example"><pre>
@@ -789,7 +789,7 @@
 <div class="example"><pre>
 void test() {
   char x = getchar(); // 'x' marked as tainted
-  system(&x); // warn: untrusted data is passed to a system call
+  system(&amp;x); // warn: untrusted data is passed to a system call
 }
 </pre></div><div class="separator"></div>
 <div class="example"><pre>
@@ -806,7 +806,7 @@
 <div class="example"><pre>
 void test() {
   size_t ts;
-  scanf("%zd", &ts); // 'ts' marked as tainted
+  scanf("%zd", &amp;ts); // 'ts' marked as tainted
   int *p = (int *)malloc(ts * sizeof(int));
     // warn: untrusted data as buffer size
 }
@@ -873,7 +873,7 @@
 <tr><td><a id="alpha.unix.PthreadLock"><div class="namedescr expandable"><span class="name">
 alpha.unix.PthreadLock</span><span class="lang">
 (C)</span><div class="descr">
-Simple lock -> unlock checker; applies to:<div class=functions>
+Simple lock -&gt; unlock checker; applies to:<div class=functions>
 pthread_mutex_lock<br>
 pthread_rwlock_rdlock<br>
 pthread_rwlock_wrlock<br>
@@ -895,8 +895,8 @@
 pthread_mutex_t mtx;
 
 void test() {
-  pthread_mutex_lock(&mtx);
-  pthread_mutex_lock(&mtx);
+  pthread_mutex_lock(&amp;mtx);
+  pthread_mutex_lock(&amp;mtx);
     // warn: this lock has already been acquired
 }
 </pre></div><div class="separator"></div>
@@ -904,9 +904,9 @@
 lck_mtx_t lck1, lck2;
 
 void test() {
-  lck_mtx_lock(&lck1);
-  lck_mtx_lock(&lck2);
-  lck_mtx_unlock(&lck1);
+  lck_mtx_lock(&amp;lck1);
+  lck_mtx_lock(&amp;lck2);
+  lck_mtx_unlock(&amp;lck1);
     // warn: this was not the most recently acquired lock
 }
 </pre></div><div class="separator"></div>
@@ -914,11 +914,11 @@
 lck_mtx_t lck1, lck2;
 
 void test() {
-  if (lck_mtx_try_lock(&lck1) == 0)
+  if (lck_mtx_try_lock(&amp;lck1) == 0)
     return;
 
-  lck_mtx_lock(&lck2);
-  lck_mtx_unlock(&lck1);
+  lck_mtx_lock(&amp;lck2);
+  lck_mtx_unlock(&amp;lck1);
     // warn: this was not the most recently acquired lock
 }
 </pre></div></div></td></tr>
@@ -1028,19 +1028,19 @@
 alpha.unix.cstring.NotNullTerminated</span><span class="lang">
 (C)</span><div class="descr">
 Check for arguments which are not null-terminated strings; applies
-to:<div class=functions>
+to:<div class="functions">
 strlen<br>
 strnlen<br>
 strcpy<br>
 strncpy<br>
 strcat<br>
-strncat</div></div></div></td>
+strncat</div></div></div></a></td>
 <td><div class="exampleContainer expandable">
 <div class="example"><pre>
 void test() {
-  int y = strlen((char *)&test); // warn
+  int y = strlen((char *)&amp;test); // warn
 }
-</pre></div></div></a></td></tr>
+</pre></div></div></td></tr>
 
 
 <tr><td><a id="alpha.unix.cstring.OutOfBounds"><div class="namedescr expandable"><span class="name">
@@ -1077,7 +1077,7 @@
 // C++
 void test() {
  int a = 1, b = 2;
- std::unordered_set<int *> UnorderedPtrSet = {&a, &b};
+ std::unordered_set&lt;int *&gt; UnorderedPtrSet = {&amp;a, &amp;b};
 
  for (auto i : UnorderedPtrSet) // warn
    f(i);
@@ -1092,7 +1092,7 @@
 // C++
 void test() {
  int a = 1, b = 2;
- std::vector<int *> V = {&a, &b};
+ std::vector&lt;int *&gt; V = {&amp;a, &amp;b};
  std::sort(V.begin(), V.end()); // warn
 }
 </pre></div></div></td></tr>
Index: clang/www/OpenProjects.html
===================================================================
--- clang/www/OpenProjects.html
+++ clang/www/OpenProjects.html
@@ -161,7 +161,7 @@
 that demonstrates the problem down to something small. There are many ways to
 do this; ask on <a href="https://discourse.llvm.org/c/clang";>Discourse</a>,
 <a href="https://discord.com/channels/636084430946959380/636725486533345280";>Discord</a>,
-or <a href="https://llvm.org/docs/GettingInvolved.html#irc"IRC</a> for advice.</p>
+or <a href="https://llvm.org/docs/GettingInvolved.html#irc";>IRC</a> for advice.</p>
 
 </div>
 </body>
Index: clang/docs/LibASTMatchersReference.html
===================================================================
--- clang/docs/LibASTMatchersReference.html
+++ clang/docs/LibASTMatchersReference.html
@@ -47,13 +47,12 @@
 by category and node type they match. You can click on matcher names to show the
 matcher's source documentation.</p>
 
-<p>There are three different basic categories of matchers:
+<p>There are three different basic categories of matchers:</p>
 <ul>
 <li><a href="#decl-matchers">Node Matchers:</a> Matchers that match a specific type of AST node.</li>
 <li><a href="#narrowing-matchers">Narrowing Matchers:</a> Matchers that match attributes on AST nodes.</li>
 <li><a href="#traversal-matchers">Traversal Matchers:</a> Matchers that allow traversal between AST nodes.</li>
 </ul>
-</p>
 
 <p>Within each category the matchers are ordered by node type they match on.
 Note that if a matcher can match multiple node types, it will appear
@@ -66,14 +65,13 @@
 <p>Note that the categorization of matchers is a great help when you combine
 them into matcher expressions. You will usually want to form matcher expressions
 that read like english sentences by alternating between node matchers and
-narrowing or traversal matchers, like this:
+narrowing or traversal matchers, like this:</p>
 <pre>
 recordDecl(hasDescendant(
     ifStmt(hasTrueExpression(
         expr(hasDescendant(
             ifStmt()))))))
 </pre>
-</p>
 
 <!-- ======================================================================= -->
 <h2 id="traverse-mode">Traverse Mode</h2>
@@ -101,21 +99,19 @@
 to be less error-prone for experienced AST users, as difficult cases do not
 need to be encountered and matcher expressions adjusted for these cases.</p>
 
-<p>In clang-query, the mode can be changed with
+<p>In clang-query, the mode can be changed with</p>
 <pre>
 set traversal IgnoreUnlessSpelledInSource
 </pre>
-</p>
-This affects both matchers and AST dump output in results.
+<p>This affects both matchers and AST dump output in results.</p>
 
 <p>When using the C++ API such as in clang-tidy checks, the
-<span class="mono">traverse()</span> matcher is used to set the mode:
+<span class="mono">traverse()</span> matcher is used to set the mode:</p>
 <pre>
-Finder->addMatcher(traverse(TK_IgnoreUnlessSpelledInSource,
+Finder-&gt;addMatcher(traverse(TK_IgnoreUnlessSpelledInSource,
   returnStmt(hasReturnValue(integerLiteral(equals(0))))
   ), this);
 </pre>
-</p>
 <p>The following table compares the <span class="mono">AsIs</span> mode with
 the <span class="mono">IgnoreUnlessSpelledInSource</span> mode:</p>
 
@@ -518,12 +514,12 @@
 class HasSpaceship {
 public:
    int x;
-   bool operator==(const HasSpaceship&) const = default;
-   std::strong_ordering operator<=>(const HasSpaceship&) const = default;
+   bool operator==(const HasSpaceship&amp;) const = default;
+   std::strong_ordering operator&lt;=&gt;(const HasSpaceship&amp;) const = default;
 };
 
-bool isLess(const HasSpaceship& a, const HasSpaceship& b) {
-   return a < b;
+bool isLess(const HasSpaceship&amp; a, const HasSpaceship&amp; b) {
+   return a &lt; b;
 }
 </pre>
 </td>
@@ -531,7 +527,7 @@
 1 match found.
 
 <pre>
-   return a < b;
+   return a &lt; b;
           ^~~~~
 </pre>
 
@@ -561,13 +557,12 @@
 <p>It is important to remember that the arguments to node matchers are
 predicates on the same node, just with additional information about the type.
 This is often useful to make matcher expression more readable by inlining bind
-calls into redundant node matchers inside another node matcher:
+calls into redundant node matchers inside another node matcher:</p>
 <pre>
 // This binds the CXXRecordDecl to "id", as the decl() matcher will stay on
 // the same node.
 recordDecl(decl().bind("id"), hasName("::MyClass"))
 </pre>
-</p>
 
 <table>
 <tr style="text-align:left"><th>Return type</th><th>Name</th><th>Parameters</th></tr>
Index: clang-tools-extra/docs/_templates/clangd_redirect.html
===================================================================
--- clang-tools-extra/docs/_templates/clangd_redirect.html
+++ clang-tools-extra/docs/_templates/clangd_redirect.html
@@ -8,7 +8,7 @@
 </head>
 <body>
   <h1>The clangd documentation has moved to clangd.llvm.org</h1>
-  <a href="{{ target }}">The new site<a>
+  <a href="{{ target }}">The new site</a>
   <script>window.location='{{ target }}'</script>
 </body>
 </html>
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to