[www-releases] r225843 - Add documentation for 3.5.1

Tom Stellard thomas.stellard at amd.com
Tue Jan 13 14:55:45 PST 2015


Added: www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ASTWriter_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ASTWriter_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ASTWriter_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ASTWriter_8d_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,693 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="clang,LLVM,Low Level Virtual Machine,C,C++,doxygen,API,frontend,documentation"/>
+<meta name="description" content="C++ source code API documentation for clang."/>
+<title>clang: ASTWriter.d Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_87e2a7550f83bd8cbfc92736891468fc.html">lib</a></li><li class="navelem"><a class="el" href="dir_76f5807b435ffff72c67c480f0b9aa5b.html">Serialization</a></li><li class="navelem"><a class="el" href="dir_186faff73c2562a69cd2ad4aa181d1d1.html">Release+Asserts</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">ASTWriter.d</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="ASTWriter_8d.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> /home/tstellar/llvm/tools/clang/lib/Serialization/Release+Asserts/ASTWriter.o \</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/Release+Asserts/ASTWriter.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>  ASTWriter.cpp \</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Serialization/ASTWriter.h \</div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/ASTMutationListener.h \</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/SourceLocation.h \</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/LLVM.h \</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>  /home/tstellar/llvm/include/llvm/Support/Casting.h \</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>  /home/tstellar/llvm/include/llvm/Support/type_traits.h \</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>  /home/tstellar/llvm/include/llvm/Support/DataTypes.h \</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>  /home/tstellar/llvm/include/llvm/ADT/None.h \</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>  /home/tstellar/llvm/include/llvm/Support/Compiler.h \</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>  /home/tstellar/llvm/include/llvm/Config/llvm-config.h \</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>  /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h \</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/Decl.h \</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/APValue.h \</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>  /home/tstellar/llvm/include/llvm/ADT/APFloat.h \</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>  /home/tstellar/llvm/include/llvm/ADT/APInt.h \</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>  /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h \</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>  /home/tstellar/llvm/include/llvm/ADT/SmallVector.h \</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>  /home/tstellar/llvm/include/llvm/Support/AlignOf.h \</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>  /home/tstellar/llvm/include/llvm/Support/MathExtras.h \</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>  /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h \</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>  /home/tstellar/llvm/include/llvm/ADT/APSInt.h \</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>  /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h \</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>  /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h \</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclBase.h \</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/AttrIterator.h \</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclarationName.h \</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/IdentifierTable.h \</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/OperatorKinds.h \</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/OperatorKinds.def \</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/TokenKinds.h \</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/TokenKinds.def \</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>  /home/tstellar/llvm/include/llvm/ADT/SmallString.h \</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>  /home/tstellar/llvm/include/llvm/ADT/StringRef.h \</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>  /home/tstellar/llvm/include/llvm/ADT/StringMap.h \</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>  /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h \</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/PartialDiagnostic.h \</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/Diagnostic.h \</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/DiagnosticIDs.h \</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>  /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h \</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/DiagnosticCommonKinds.inc \</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/DiagnosticOptions.h \</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/DiagnosticOptions.def \</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMap.h \</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h \</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>  /home/tstellar/llvm/include/llvm/ADT/STLExtras.h \</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/<a class="code" href="namespaceclang.html#a78aadfeaf316ded55fdd2d1a9c8815b6" title="Describes the different kinds of linkage (C++ [basic.link], C99 6.2.2) that an entity may have...">Linkage</a>.h \</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/Specifiers.h \</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>  /home/tstellar/llvm/include/llvm/Support/PrettyStackTrace.h \</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclNodes.inc \</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/ExternalASTSource.h \</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/CharUnits.h \</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/Redeclarable.h \</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/Type.h \</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/NestedNameSpecifier.h \</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>  /home/tstellar/llvm/include/llvm/ADT/FoldingSet.h \</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/TemplateName.h \</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/<a class="code" href="namespaceclang.html#af8a91eed04532d5da41ef08e7c9c081e" title="The various types of exception specifications that exist in C++11.">ExceptionSpecificationType</a>.h \</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/<a class="code" href="namespaceclang.html#afbab15cd4aa598c4e6d9192f7ac4f102" title="Describes the different kinds of visibility that a declaration may have.">Visibility</a>.h \</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>  /home/tstellar/llvm/include/llvm/ADT/Optional.h \</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>  /home/tstellar/llvm/include/llvm/ADT/Twine.h \</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>  /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h \</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/TypeNodes.def \</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/BuiltinTypes.def \</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>  /home/tstellar/llvm/include/llvm/Support/raw_ostream.h \</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>  /home/tstellar/llvm/include/llvm/Support/FileSystem.h \</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>  /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h \</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>  /home/tstellar/llvm/include/llvm/Support/TimeValue.h \</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>  /home/tstellar/llvm/include/llvm/Support/system_error.h \</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/TemplateBase.h \</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/SemaConsumer.h \</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/ASTConsumer.h \</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Serialization/ASTBitCodes.h \</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>  /home/tstellar/llvm/include/llvm/Bitcode/BitCodes.h \</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Serialization/ASTDeserializationListener.h \</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>  /home/tstellar/llvm/include/llvm/ADT/DenseSet.h \</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>  /home/tstellar/llvm/include/llvm/ADT/MapVector.h \</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>  /home/tstellar/llvm/include/llvm/ADT/SetVector.h \</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>  /home/tstellar/llvm/include/llvm/ADT/SmallSet.h \</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>  /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.h \</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>  /home/tstellar/llvm/include/llvm/Bitcode/BitstreamWriter.h ASTCommon.h \</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/ASTContext.h \</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/ASTTypeTraits.h \</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/ASTFwd.h \</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/StmtNodes.inc \</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/Stmt.h \</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclGroup.h \</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/StmtIterator.h \</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/CapturedStmt.h \</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/TypeLoc.h \</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/TypeLocNodes.def \</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/CanonicalType.h \</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/CommentCommandTraits.h \</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/CommentOptions.h \</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/CommentCommandList.inc \</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/PrettyPrinter.h \</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/LangOptions.h \</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/ObjCRuntime.h \</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/VersionTuple.h \</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>  /home/tstellar/llvm/include/llvm/ADT/Triple.h \</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/Sanitizers.def \</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/LangOptions.def \</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/OpenCLExtensions.def \</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/RawCommentList.h \</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/SourceManager.h \</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/FileManager.h \</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/FileSystemOptions.h \</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>  /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h \</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>  /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h \</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>  /home/tstellar/llvm/include/llvm-c/Core.h \</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/AddressSpaces.h \</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>  /home/tstellar/llvm/include/llvm/ADT/TinyPtrVector.h \</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclContextInternals.h \</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclCXX.h \</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/ASTUnresolvedSet.h \</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/ASTVector.h \</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/UnresolvedSet.h \</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclAccessPair.h \</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/Expr.h \</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/OperationKinds.h \</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/CharInfo.h \</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/TypeTraits.h \</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/Builtins.def \</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/ExprCXX.h \</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/ExpressionTraits.h \</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/Lambda.h \</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclFriend.h \</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclTemplate.h \</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/TypeLocVisitor.h \</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/TypeVisitor.h \</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/FileSystemStatCache.h \</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/OnDiskHashTable.h \</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>  /home/tstellar/llvm/include/llvm/Support/Host.h \</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/SourceManagerInternals.h \</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/TargetInfo.h \</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/TargetCXXABI.h \</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/TargetOptions.h \</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>  /home/tstellar/llvm/include/llvm/ADT/StringSwitch.h \</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/Version.h \</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/Version.inc \</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/HeaderSearch.h \</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/DirectoryLookup.h \</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleMap.h \</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/Module.h \</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>  /home/tstellar/llvm/include/llvm/ADT/StringSet.h \</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/HeaderSearchOptions.h \</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/MacroInfo.h \</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/<a class="code" href="UnwrappedLineParser_8cpp.html#ac39165965ffcb0218343355d1f482d64">Token</a>.h \</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/TemplateKinds.h \</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PreprocessingRecord.h \</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PPCallbacks.h \</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleLoader.h \</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Pragma.h \</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Preprocessor.h \</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/Builtins.h \</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Lexer.h \</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PreprocessorLexer.h \</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/MultipleIncludeOpt.h \</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PTHLexer.h \</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PTHManager.h \</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/TokenLexer.h \</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PreprocessorOptions.h \</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/IdentifierResolver.h \</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/Sema.h \</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/Attr.h \</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/AttrKinds.h \</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/AttrList.inc \</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/Attrs.inc \</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/ExprObjC.h \</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclObjC.h \</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/<a class="code" href="namespaceclang.html#a0bca8d4a06a5e7175d2177c94788c9b4" title="Whether all locations of the selector identifiers are in a "standard" position.">SelectorLocationsKind</a>.h \</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/MangleNumberingContext.h \</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/NSAPI.h \</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/OpenMPKinds.h \</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/OpenMPKinds.def \</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/AnalysisBasedWarnings.h \</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/DeclSpec.h \</div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/AttributeList.h \</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/Ownership.h \</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/AttrParsedAttrList.inc \</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/ExternalSemaSource.h \</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/TypoCorrection.h \</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/Weak.h \</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/LocInfoType.h \</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/ObjCMethodList.h \</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/ScopeInfo.h \</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>  /home/tstellar/llvm/include/llvm/MC/MCParser/MCAsmParser.h \</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>  /home/tstellar/llvm/include/llvm/MC/MCParser/AsmLexer.h \</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>  /home/tstellar/llvm/include/llvm/MC/MCParser/MCAsmLexer.h \</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>  /home/tstellar/llvm/include/llvm/Support/SMLoc.h \</div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Serialization/ASTReader.h \</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ExternalPreprocessorSource.h \</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Serialization/ContinuousRangeMap.h \</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Serialization/Module.h \</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span>  /home/tstellar/llvm/include/llvm/Bitcode/BitstreamReader.h \</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>  /home/tstellar/llvm/include/llvm/Support/Endian.h \</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>  /home/tstellar/llvm/include/llvm/Support/StreamableMemoryObject.h \</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>  /home/tstellar/llvm/include/llvm/Support/DataStream.h \</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>  /home/tstellar/llvm/include/llvm/Support/MemoryObject.h \</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Serialization/ModuleManager.h \</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>  /home/tstellar/llvm/include/llvm/ADT/Hashing.h \</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>  /home/tstellar/llvm/include/llvm/ADT/StringExtras.h \</div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>  /home/tstellar/llvm/include/llvm/Support/Path.h \</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Serialization/AttrPCHWrite.inc</div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span> </div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Serialization/ASTWriter.h:</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span> </div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/ASTMutationListener.h:</div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span> </div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/SourceLocation.h:</div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span> </div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/LLVM.h:</div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span> </div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span> /home/tstellar/llvm/include/llvm/Support/Casting.h:</div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span> </div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span> /home/tstellar/llvm/include/llvm/Support/type_traits.h:</div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span> </div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span> /home/tstellar/llvm/include/llvm/Support/DataTypes.h:</div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span> </div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span> /home/tstellar/llvm/include/llvm/ADT/None.h:</div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span> </div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span> /home/tstellar/llvm/include/llvm/Support/Compiler.h:</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span> </div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span> /home/tstellar/llvm/include/llvm/Config/llvm-config.h:</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span> </div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span> /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h:</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span> </div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/Decl.h:</div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span> </div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/APValue.h:</div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span> </div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span> /home/tstellar/llvm/include/llvm/ADT/APFloat.h:</div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span> </div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span> /home/tstellar/llvm/include/llvm/ADT/APInt.h:</div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span> </div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span> /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h:</div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span> </div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span> /home/tstellar/llvm/include/llvm/ADT/SmallVector.h:</div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span> </div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span> /home/tstellar/llvm/include/llvm/Support/AlignOf.h:</div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span> </div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span> /home/tstellar/llvm/include/llvm/Support/MathExtras.h:</div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span> </div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span> /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h:</div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span> </div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span> /home/tstellar/llvm/include/llvm/ADT/APSInt.h:</div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span> </div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span> /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h:</div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span> </div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span> /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h:</div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span> </div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclBase.h:</div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span> </div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/AttrIterator.h:</div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span> </div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclarationName.h:</div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span> </div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/IdentifierTable.h:</div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span> </div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/OperatorKinds.h:</div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span> </div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/OperatorKinds.def:</div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span> </div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/TokenKinds.h:</div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span> </div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/TokenKinds.def:</div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span> </div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span> /home/tstellar/llvm/include/llvm/ADT/SmallString.h:</div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span> </div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span> /home/tstellar/llvm/include/llvm/ADT/StringRef.h:</div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span> </div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span> /home/tstellar/llvm/include/llvm/ADT/StringMap.h:</div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span> </div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span> /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h:</div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span> </div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/PartialDiagnostic.h:</div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span> </div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/Diagnostic.h:</div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span> </div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/DiagnosticIDs.h:</div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span> </div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span> /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h:</div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span> </div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/DiagnosticCommonKinds.inc:</div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span> </div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/DiagnosticOptions.h:</div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span> </div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/DiagnosticOptions.def:</div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span> </div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span> /home/tstellar/llvm/include/llvm/ADT/DenseMap.h:</div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span> </div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span> /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h:</div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span> </div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span> /home/tstellar/llvm/include/llvm/ADT/STLExtras.h:</div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span> </div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/<a class="code" href="namespaceclang.html#a78aadfeaf316ded55fdd2d1a9c8815b6" title="Describes the different kinds of linkage (C++ [basic.link], C99 6.2.2) that an entity may have...">Linkage</a>.h:</div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span> </div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/Specifiers.h:</div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span> </div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span> /home/tstellar/llvm/include/llvm/Support/PrettyStackTrace.h:</div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span> </div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclNodes.inc:</div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span> </div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/ExternalASTSource.h:</div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span> </div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/CharUnits.h:</div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span> </div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/Redeclarable.h:</div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span> </div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/Type.h:</div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span> </div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/NestedNameSpecifier.h:</div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span> </div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span> /home/tstellar/llvm/include/llvm/ADT/FoldingSet.h:</div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span> </div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/TemplateName.h:</div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span> </div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/<a class="code" href="namespaceclang.html#af8a91eed04532d5da41ef08e7c9c081e" title="The various types of exception specifications that exist in C++11.">ExceptionSpecificationType</a>.h:</div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span> </div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/<a class="code" href="namespaceclang.html#afbab15cd4aa598c4e6d9192f7ac4f102" title="Describes the different kinds of visibility that a declaration may have.">Visibility</a>.h:</div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span> </div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span> /home/tstellar/llvm/include/llvm/ADT/Optional.h:</div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span> </div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span> /home/tstellar/llvm/include/llvm/ADT/Twine.h:</div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span> </div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span> /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h:</div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span> </div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/TypeNodes.def:</div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span> </div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/BuiltinTypes.def:</div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span> </div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span> /home/tstellar/llvm/include/llvm/Support/raw_ostream.h:</div>
+<div class="line"><a name="l00335"></a><span class="lineno">  335</span> </div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span> /home/tstellar/llvm/include/llvm/Support/FileSystem.h:</div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span> </div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span> /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h:</div>
+<div class="line"><a name="l00339"></a><span class="lineno">  339</span> </div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span> /home/tstellar/llvm/include/llvm/Support/TimeValue.h:</div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span> </div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span> /home/tstellar/llvm/include/llvm/Support/system_error.h:</div>
+<div class="line"><a name="l00343"></a><span class="lineno">  343</span> </div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/TemplateBase.h:</div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span> </div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/SemaConsumer.h:</div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span> </div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/ASTConsumer.h:</div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span> </div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Serialization/ASTBitCodes.h:</div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span> </div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span> /home/tstellar/llvm/include/llvm/Bitcode/BitCodes.h:</div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span> </div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Serialization/ASTDeserializationListener.h:</div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span> </div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span> /home/tstellar/llvm/include/llvm/ADT/DenseSet.h:</div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span> </div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span> /home/tstellar/llvm/include/llvm/ADT/MapVector.h:</div>
+<div class="line"><a name="l00359"></a><span class="lineno">  359</span> </div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span> /home/tstellar/llvm/include/llvm/ADT/SetVector.h:</div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span> </div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span> /home/tstellar/llvm/include/llvm/ADT/SmallSet.h:</div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span> </div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span> /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.h:</div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span> </div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span> /home/tstellar/llvm/include/llvm/Bitcode/BitstreamWriter.h:</div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span> </div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span> ASTCommon.h:</div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span> </div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/ASTContext.h:</div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span> </div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/ASTTypeTraits.h:</div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span> </div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/ASTFwd.h:</div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span> </div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/StmtNodes.inc:</div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span> </div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/Stmt.h:</div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span> </div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclGroup.h:</div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span> </div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/StmtIterator.h:</div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span> </div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/CapturedStmt.h:</div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span> </div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/TypeLoc.h:</div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span> </div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/TypeLocNodes.def:</div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span> </div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/CanonicalType.h:</div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span> </div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/CommentCommandTraits.h:</div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span> </div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/CommentOptions.h:</div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span> </div>
+<div class="line"><a name="l00396"></a><span class="lineno">  396</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/CommentCommandList.inc:</div>
+<div class="line"><a name="l00397"></a><span class="lineno">  397</span> </div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/PrettyPrinter.h:</div>
+<div class="line"><a name="l00399"></a><span class="lineno">  399</span> </div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/LangOptions.h:</div>
+<div class="line"><a name="l00401"></a><span class="lineno">  401</span> </div>
+<div class="line"><a name="l00402"></a><span class="lineno">  402</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/ObjCRuntime.h:</div>
+<div class="line"><a name="l00403"></a><span class="lineno">  403</span> </div>
+<div class="line"><a name="l00404"></a><span class="lineno">  404</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/VersionTuple.h:</div>
+<div class="line"><a name="l00405"></a><span class="lineno">  405</span> </div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span> /home/tstellar/llvm/include/llvm/ADT/Triple.h:</div>
+<div class="line"><a name="l00407"></a><span class="lineno">  407</span> </div>
+<div class="line"><a name="l00408"></a><span class="lineno">  408</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/Sanitizers.def:</div>
+<div class="line"><a name="l00409"></a><span class="lineno">  409</span> </div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/LangOptions.def:</div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span> </div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/OpenCLExtensions.def:</div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</span> </div>
+<div class="line"><a name="l00414"></a><span class="lineno">  414</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/RawCommentList.h:</div>
+<div class="line"><a name="l00415"></a><span class="lineno">  415</span> </div>
+<div class="line"><a name="l00416"></a><span class="lineno">  416</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/SourceManager.h:</div>
+<div class="line"><a name="l00417"></a><span class="lineno">  417</span> </div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/FileManager.h:</div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span> </div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/FileSystemOptions.h:</div>
+<div class="line"><a name="l00421"></a><span class="lineno">  421</span> </div>
+<div class="line"><a name="l00422"></a><span class="lineno">  422</span> /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h:</div>
+<div class="line"><a name="l00423"></a><span class="lineno">  423</span> </div>
+<div class="line"><a name="l00424"></a><span class="lineno">  424</span> /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h:</div>
+<div class="line"><a name="l00425"></a><span class="lineno">  425</span> </div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span> /home/tstellar/llvm/include/llvm-c/Core.h:</div>
+<div class="line"><a name="l00427"></a><span class="lineno">  427</span> </div>
+<div class="line"><a name="l00428"></a><span class="lineno">  428</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/AddressSpaces.h:</div>
+<div class="line"><a name="l00429"></a><span class="lineno">  429</span> </div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span> /home/tstellar/llvm/include/llvm/ADT/TinyPtrVector.h:</div>
+<div class="line"><a name="l00431"></a><span class="lineno">  431</span> </div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclContextInternals.h:</div>
+<div class="line"><a name="l00433"></a><span class="lineno">  433</span> </div>
+<div class="line"><a name="l00434"></a><span class="lineno">  434</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclCXX.h:</div>
+<div class="line"><a name="l00435"></a><span class="lineno">  435</span> </div>
+<div class="line"><a name="l00436"></a><span class="lineno">  436</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/ASTUnresolvedSet.h:</div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span> </div>
+<div class="line"><a name="l00438"></a><span class="lineno">  438</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/ASTVector.h:</div>
+<div class="line"><a name="l00439"></a><span class="lineno">  439</span> </div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/UnresolvedSet.h:</div>
+<div class="line"><a name="l00441"></a><span class="lineno">  441</span> </div>
+<div class="line"><a name="l00442"></a><span class="lineno">  442</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclAccessPair.h:</div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</span> </div>
+<div class="line"><a name="l00444"></a><span class="lineno">  444</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/Expr.h:</div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span> </div>
+<div class="line"><a name="l00446"></a><span class="lineno">  446</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/OperationKinds.h:</div>
+<div class="line"><a name="l00447"></a><span class="lineno">  447</span> </div>
+<div class="line"><a name="l00448"></a><span class="lineno">  448</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/CharInfo.h:</div>
+<div class="line"><a name="l00449"></a><span class="lineno">  449</span> </div>
+<div class="line"><a name="l00450"></a><span class="lineno">  450</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/TypeTraits.h:</div>
+<div class="line"><a name="l00451"></a><span class="lineno">  451</span> </div>
+<div class="line"><a name="l00452"></a><span class="lineno">  452</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/Builtins.def:</div>
+<div class="line"><a name="l00453"></a><span class="lineno">  453</span> </div>
+<div class="line"><a name="l00454"></a><span class="lineno">  454</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/ExprCXX.h:</div>
+<div class="line"><a name="l00455"></a><span class="lineno">  455</span> </div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/ExpressionTraits.h:</div>
+<div class="line"><a name="l00457"></a><span class="lineno">  457</span> </div>
+<div class="line"><a name="l00458"></a><span class="lineno">  458</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/Lambda.h:</div>
+<div class="line"><a name="l00459"></a><span class="lineno">  459</span> </div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclFriend.h:</div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span> </div>
+<div class="line"><a name="l00462"></a><span class="lineno">  462</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclTemplate.h:</div>
+<div class="line"><a name="l00463"></a><span class="lineno">  463</span> </div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/TypeLocVisitor.h:</div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span> </div>
+<div class="line"><a name="l00466"></a><span class="lineno">  466</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/TypeVisitor.h:</div>
+<div class="line"><a name="l00467"></a><span class="lineno">  467</span> </div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/FileSystemStatCache.h:</div>
+<div class="line"><a name="l00469"></a><span class="lineno">  469</span> </div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/OnDiskHashTable.h:</div>
+<div class="line"><a name="l00471"></a><span class="lineno">  471</span> </div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span> /home/tstellar/llvm/include/llvm/Support/Host.h:</div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span> </div>
+<div class="line"><a name="l00474"></a><span class="lineno">  474</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/SourceManagerInternals.h:</div>
+<div class="line"><a name="l00475"></a><span class="lineno">  475</span> </div>
+<div class="line"><a name="l00476"></a><span class="lineno">  476</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/TargetInfo.h:</div>
+<div class="line"><a name="l00477"></a><span class="lineno">  477</span> </div>
+<div class="line"><a name="l00478"></a><span class="lineno">  478</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/TargetCXXABI.h:</div>
+<div class="line"><a name="l00479"></a><span class="lineno">  479</span> </div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/TargetOptions.h:</div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span> </div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span> /home/tstellar/llvm/include/llvm/ADT/StringSwitch.h:</div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span> </div>
+<div class="line"><a name="l00484"></a><span class="lineno">  484</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/Version.h:</div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span> </div>
+<div class="line"><a name="l00486"></a><span class="lineno">  486</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/Version.inc:</div>
+<div class="line"><a name="l00487"></a><span class="lineno">  487</span> </div>
+<div class="line"><a name="l00488"></a><span class="lineno">  488</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/HeaderSearch.h:</div>
+<div class="line"><a name="l00489"></a><span class="lineno">  489</span> </div>
+<div class="line"><a name="l00490"></a><span class="lineno">  490</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/DirectoryLookup.h:</div>
+<div class="line"><a name="l00491"></a><span class="lineno">  491</span> </div>
+<div class="line"><a name="l00492"></a><span class="lineno">  492</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleMap.h:</div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span> </div>
+<div class="line"><a name="l00494"></a><span class="lineno">  494</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/Module.h:</div>
+<div class="line"><a name="l00495"></a><span class="lineno">  495</span> </div>
+<div class="line"><a name="l00496"></a><span class="lineno">  496</span> /home/tstellar/llvm/include/llvm/ADT/StringSet.h:</div>
+<div class="line"><a name="l00497"></a><span class="lineno">  497</span> </div>
+<div class="line"><a name="l00498"></a><span class="lineno">  498</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/HeaderSearchOptions.h:</div>
+<div class="line"><a name="l00499"></a><span class="lineno">  499</span> </div>
+<div class="line"><a name="l00500"></a><span class="lineno">  500</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/MacroInfo.h:</div>
+<div class="line"><a name="l00501"></a><span class="lineno">  501</span> </div>
+<div class="line"><a name="l00502"></a><span class="lineno">  502</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/<a class="code" href="UnwrappedLineParser_8cpp.html#ac39165965ffcb0218343355d1f482d64">Token</a>.h:</div>
+<div class="line"><a name="l00503"></a><span class="lineno">  503</span> </div>
+<div class="line"><a name="l00504"></a><span class="lineno">  504</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/TemplateKinds.h:</div>
+<div class="line"><a name="l00505"></a><span class="lineno">  505</span> </div>
+<div class="line"><a name="l00506"></a><span class="lineno">  506</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PreprocessingRecord.h:</div>
+<div class="line"><a name="l00507"></a><span class="lineno">  507</span> </div>
+<div class="line"><a name="l00508"></a><span class="lineno">  508</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PPCallbacks.h:</div>
+<div class="line"><a name="l00509"></a><span class="lineno">  509</span> </div>
+<div class="line"><a name="l00510"></a><span class="lineno">  510</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleLoader.h:</div>
+<div class="line"><a name="l00511"></a><span class="lineno">  511</span> </div>
+<div class="line"><a name="l00512"></a><span class="lineno">  512</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Pragma.h:</div>
+<div class="line"><a name="l00513"></a><span class="lineno">  513</span> </div>
+<div class="line"><a name="l00514"></a><span class="lineno">  514</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Preprocessor.h:</div>
+<div class="line"><a name="l00515"></a><span class="lineno">  515</span> </div>
+<div class="line"><a name="l00516"></a><span class="lineno">  516</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/Builtins.h:</div>
+<div class="line"><a name="l00517"></a><span class="lineno">  517</span> </div>
+<div class="line"><a name="l00518"></a><span class="lineno">  518</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Lexer.h:</div>
+<div class="line"><a name="l00519"></a><span class="lineno">  519</span> </div>
+<div class="line"><a name="l00520"></a><span class="lineno">  520</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PreprocessorLexer.h:</div>
+<div class="line"><a name="l00521"></a><span class="lineno">  521</span> </div>
+<div class="line"><a name="l00522"></a><span class="lineno">  522</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/MultipleIncludeOpt.h:</div>
+<div class="line"><a name="l00523"></a><span class="lineno">  523</span> </div>
+<div class="line"><a name="l00524"></a><span class="lineno">  524</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PTHLexer.h:</div>
+<div class="line"><a name="l00525"></a><span class="lineno">  525</span> </div>
+<div class="line"><a name="l00526"></a><span class="lineno">  526</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PTHManager.h:</div>
+<div class="line"><a name="l00527"></a><span class="lineno">  527</span> </div>
+<div class="line"><a name="l00528"></a><span class="lineno">  528</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/TokenLexer.h:</div>
+<div class="line"><a name="l00529"></a><span class="lineno">  529</span> </div>
+<div class="line"><a name="l00530"></a><span class="lineno">  530</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PreprocessorOptions.h:</div>
+<div class="line"><a name="l00531"></a><span class="lineno">  531</span> </div>
+<div class="line"><a name="l00532"></a><span class="lineno">  532</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/IdentifierResolver.h:</div>
+<div class="line"><a name="l00533"></a><span class="lineno">  533</span> </div>
+<div class="line"><a name="l00534"></a><span class="lineno">  534</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/Sema.h:</div>
+<div class="line"><a name="l00535"></a><span class="lineno">  535</span> </div>
+<div class="line"><a name="l00536"></a><span class="lineno">  536</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/Attr.h:</div>
+<div class="line"><a name="l00537"></a><span class="lineno">  537</span> </div>
+<div class="line"><a name="l00538"></a><span class="lineno">  538</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/AttrKinds.h:</div>
+<div class="line"><a name="l00539"></a><span class="lineno">  539</span> </div>
+<div class="line"><a name="l00540"></a><span class="lineno">  540</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/AttrList.inc:</div>
+<div class="line"><a name="l00541"></a><span class="lineno">  541</span> </div>
+<div class="line"><a name="l00542"></a><span class="lineno">  542</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/Attrs.inc:</div>
+<div class="line"><a name="l00543"></a><span class="lineno">  543</span> </div>
+<div class="line"><a name="l00544"></a><span class="lineno">  544</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/ExprObjC.h:</div>
+<div class="line"><a name="l00545"></a><span class="lineno">  545</span> </div>
+<div class="line"><a name="l00546"></a><span class="lineno">  546</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclObjC.h:</div>
+<div class="line"><a name="l00547"></a><span class="lineno">  547</span> </div>
+<div class="line"><a name="l00548"></a><span class="lineno">  548</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/<a class="code" href="namespaceclang.html#a0bca8d4a06a5e7175d2177c94788c9b4" title="Whether all locations of the selector identifiers are in a "standard" position.">SelectorLocationsKind</a>.h:</div>
+<div class="line"><a name="l00549"></a><span class="lineno">  549</span> </div>
+<div class="line"><a name="l00550"></a><span class="lineno">  550</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/MangleNumberingContext.h:</div>
+<div class="line"><a name="l00551"></a><span class="lineno">  551</span> </div>
+<div class="line"><a name="l00552"></a><span class="lineno">  552</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/NSAPI.h:</div>
+<div class="line"><a name="l00553"></a><span class="lineno">  553</span> </div>
+<div class="line"><a name="l00554"></a><span class="lineno">  554</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/OpenMPKinds.h:</div>
+<div class="line"><a name="l00555"></a><span class="lineno">  555</span> </div>
+<div class="line"><a name="l00556"></a><span class="lineno">  556</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/OpenMPKinds.def:</div>
+<div class="line"><a name="l00557"></a><span class="lineno">  557</span> </div>
+<div class="line"><a name="l00558"></a><span class="lineno">  558</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/AnalysisBasedWarnings.h:</div>
+<div class="line"><a name="l00559"></a><span class="lineno">  559</span> </div>
+<div class="line"><a name="l00560"></a><span class="lineno">  560</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/DeclSpec.h:</div>
+<div class="line"><a name="l00561"></a><span class="lineno">  561</span> </div>
+<div class="line"><a name="l00562"></a><span class="lineno">  562</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/AttributeList.h:</div>
+<div class="line"><a name="l00563"></a><span class="lineno">  563</span> </div>
+<div class="line"><a name="l00564"></a><span class="lineno">  564</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/Ownership.h:</div>
+<div class="line"><a name="l00565"></a><span class="lineno">  565</span> </div>
+<div class="line"><a name="l00566"></a><span class="lineno">  566</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/AttrParsedAttrList.inc:</div>
+<div class="line"><a name="l00567"></a><span class="lineno">  567</span> </div>
+<div class="line"><a name="l00568"></a><span class="lineno">  568</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/ExternalSemaSource.h:</div>
+<div class="line"><a name="l00569"></a><span class="lineno">  569</span> </div>
+<div class="line"><a name="l00570"></a><span class="lineno">  570</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/TypoCorrection.h:</div>
+<div class="line"><a name="l00571"></a><span class="lineno">  571</span> </div>
+<div class="line"><a name="l00572"></a><span class="lineno">  572</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/Weak.h:</div>
+<div class="line"><a name="l00573"></a><span class="lineno">  573</span> </div>
+<div class="line"><a name="l00574"></a><span class="lineno">  574</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/LocInfoType.h:</div>
+<div class="line"><a name="l00575"></a><span class="lineno">  575</span> </div>
+<div class="line"><a name="l00576"></a><span class="lineno">  576</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/ObjCMethodList.h:</div>
+<div class="line"><a name="l00577"></a><span class="lineno">  577</span> </div>
+<div class="line"><a name="l00578"></a><span class="lineno">  578</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/ScopeInfo.h:</div>
+<div class="line"><a name="l00579"></a><span class="lineno">  579</span> </div>
+<div class="line"><a name="l00580"></a><span class="lineno">  580</span> /home/tstellar/llvm/include/llvm/MC/MCParser/MCAsmParser.h:</div>
+<div class="line"><a name="l00581"></a><span class="lineno">  581</span> </div>
+<div class="line"><a name="l00582"></a><span class="lineno">  582</span> /home/tstellar/llvm/include/llvm/MC/MCParser/AsmLexer.h:</div>
+<div class="line"><a name="l00583"></a><span class="lineno">  583</span> </div>
+<div class="line"><a name="l00584"></a><span class="lineno">  584</span> /home/tstellar/llvm/include/llvm/MC/MCParser/MCAsmLexer.h:</div>
+<div class="line"><a name="l00585"></a><span class="lineno">  585</span> </div>
+<div class="line"><a name="l00586"></a><span class="lineno">  586</span> /home/tstellar/llvm/include/llvm/Support/SMLoc.h:</div>
+<div class="line"><a name="l00587"></a><span class="lineno">  587</span> </div>
+<div class="line"><a name="l00588"></a><span class="lineno">  588</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Serialization/ASTReader.h:</div>
+<div class="line"><a name="l00589"></a><span class="lineno">  589</span> </div>
+<div class="line"><a name="l00590"></a><span class="lineno">  590</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ExternalPreprocessorSource.h:</div>
+<div class="line"><a name="l00591"></a><span class="lineno">  591</span> </div>
+<div class="line"><a name="l00592"></a><span class="lineno">  592</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Serialization/ContinuousRangeMap.h:</div>
+<div class="line"><a name="l00593"></a><span class="lineno">  593</span> </div>
+<div class="line"><a name="l00594"></a><span class="lineno">  594</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Serialization/Module.h:</div>
+<div class="line"><a name="l00595"></a><span class="lineno">  595</span> </div>
+<div class="line"><a name="l00596"></a><span class="lineno">  596</span> /home/tstellar/llvm/include/llvm/Bitcode/BitstreamReader.h:</div>
+<div class="line"><a name="l00597"></a><span class="lineno">  597</span> </div>
+<div class="line"><a name="l00598"></a><span class="lineno">  598</span> /home/tstellar/llvm/include/llvm/Support/Endian.h:</div>
+<div class="line"><a name="l00599"></a><span class="lineno">  599</span> </div>
+<div class="line"><a name="l00600"></a><span class="lineno">  600</span> /home/tstellar/llvm/include/llvm/Support/StreamableMemoryObject.h:</div>
+<div class="line"><a name="l00601"></a><span class="lineno">  601</span> </div>
+<div class="line"><a name="l00602"></a><span class="lineno">  602</span> /home/tstellar/llvm/include/llvm/Support/DataStream.h:</div>
+<div class="line"><a name="l00603"></a><span class="lineno">  603</span> </div>
+<div class="line"><a name="l00604"></a><span class="lineno">  604</span> /home/tstellar/llvm/include/llvm/Support/MemoryObject.h:</div>
+<div class="line"><a name="l00605"></a><span class="lineno">  605</span> </div>
+<div class="line"><a name="l00606"></a><span class="lineno">  606</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Serialization/ModuleManager.h:</div>
+<div class="line"><a name="l00607"></a><span class="lineno">  607</span> </div>
+<div class="line"><a name="l00608"></a><span class="lineno">  608</span> /home/tstellar/llvm/include/llvm/ADT/Hashing.h:</div>
+<div class="line"><a name="l00609"></a><span class="lineno">  609</span> </div>
+<div class="line"><a name="l00610"></a><span class="lineno">  610</span> /home/tstellar/llvm/include/llvm/ADT/StringExtras.h:</div>
+<div class="line"><a name="l00611"></a><span class="lineno">  611</span> </div>
+<div class="line"><a name="l00612"></a><span class="lineno">  612</span> /home/tstellar/llvm/include/llvm/Support/Path.h:</div>
+<div class="line"><a name="l00613"></a><span class="lineno">  613</span> </div>
+<div class="line"><a name="l00614"></a><span class="lineno">  614</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Serialization/AttrPCHWrite.inc:</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:18 for r$LatestRev$ by <a href="http://www.doxygen.org">Doxygen 
+1.8.3.1</a>.</p>
+<p class="footer">
+See the <a href="http://clang.llvm.org">Main Clang Web Page</a> for more 
+information.</p>
+</body>
+</html>

Added: www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ASTWriter_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ASTWriter_8h_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ASTWriter_8h_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ASTWriter_8h_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,863 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="clang,LLVM,Low Level Virtual Machine,C,C++,doxygen,API,frontend,documentation"/>
+<meta name="description" content="C++ source code API documentation for clang."/>
+<title>clang: ASTWriter.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_3e61bbac0c8515a3c083eb51d03eb390.html">include</a></li><li class="navelem"><a class="el" href="dir_ee4f288247dc2d9ccd0382aea6916312.html">clang</a></li><li class="navelem"><a class="el" href="dir_0dc2050340a96003388a0ee3c6e6b064.html">Serialization</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">ASTWriter.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="ASTWriter_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> <span class="comment">//===--- ASTWriter.h - AST File Writer --------------------------*- C++ -*-===//</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">//                     The LLVM Compiler Infrastructure</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment">// This file is distributed under the University of Illinois Open Source</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">// License. See LICENSE.TXT for details.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span> <span class="comment">//  This file defines the ASTWriter class, which writes an AST file</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="comment">//  containing a serialized representation of a translation unit.</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> <span class="preprocessor">#ifndef LLVM_CLANG_FRONTEND_AST_WRITER_H</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> <span class="preprocessor"></span><span class="preprocessor">#define LLVM_CLANG_FRONTEND_AST_WRITER_H</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="preprocessor">#include "<a class="code" href="ASTMutationListener_8h.html">clang/AST/ASTMutationListener.h</a>"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="preprocessor">#include "<a class="code" href="Decl_8h.html">clang/AST/Decl.h</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="preprocessor">#include "<a class="code" href="DeclarationName_8h.html">clang/AST/DeclarationName.h</a>"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="preprocessor">#include "<a class="code" href="TemplateBase_8h.html">clang/AST/TemplateBase.h</a>"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="preprocessor">#include "<a class="code" href="SemaConsumer_8h.html">clang/Sema/SemaConsumer.h</a>"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="preprocessor">#include "<a class="code" href="ASTBitCodes_8h.html">clang/Serialization/ASTBitCodes.h</a>"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="preprocessor">#include "<a class="code" href="ASTDeserializationListener_8h.html">clang/Serialization/ASTDeserializationListener.h</a>"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="preprocessor">#include "llvm/ADT/DenseMap.h"</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="preprocessor">#include "llvm/ADT/DenseSet.h"</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="preprocessor">#include "llvm/ADT/MapVector.h"</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="preprocessor">#include "llvm/ADT/SetVector.h"</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="preprocessor">#include "llvm/ADT/SmallPtrSet.h"</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="preprocessor">#include "llvm/ADT/SmallVector.h"</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="preprocessor">#include "llvm/Bitcode/BitstreamWriter.h"</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span> <span class="preprocessor">#include <map></span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span> <span class="preprocessor">#include <queue></span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span> <span class="preprocessor">#include <vector></span></div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span> </div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span> <span class="keyword">namespace </span>llvm {</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>   <span class="keyword">class </span>APFloat;</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>   <span class="keyword">class </span>APInt;</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>   <span class="keyword">class </span>BitstreamWriter;</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span> }</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span> </div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span> <span class="keyword">namespace </span>clang {</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span> </div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span> <span class="keyword">class </span>ASTContext;</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span> <span class="keyword">class </span>NestedNameSpecifier;</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span> <span class="keyword">class </span>CXXBaseSpecifier;</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span> <span class="keyword">class </span>CXXCtorInitializer;</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span> <span class="keyword">class </span>FileEntry;</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span> <span class="keyword">class </span>FPOptions;</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span> <span class="keyword">class </span>HeaderSearch;</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span> <span class="keyword">class </span>HeaderSearchOptions;</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span> <span class="keyword">class </span>IdentifierResolver;</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span> <span class="keyword">class </span>MacroDefinition;</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span> <span class="keyword">class </span>MacroDirective;</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span> <span class="keyword">class </span>MacroInfo;</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span> <span class="keyword">class </span>OpaqueValueExpr;</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span> <span class="keyword">class </span>OpenCLOptions;</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span> <span class="keyword">class </span>ASTReader;</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span> <span class="keyword">class </span>Module;</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span> <span class="keyword">class </span>PreprocessedEntity;</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span> <span class="keyword">class </span>PreprocessingRecord;</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span> <span class="keyword">class </span>Preprocessor;</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span> <span class="keyword">class </span>Sema;</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span> <span class="keyword">class </span>SourceManager;</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span> <span class="keyword">class </span>SwitchCase;</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span> <span class="keyword">class </span>TargetInfo;</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span> <span class="keyword">class </span><a class="code" href="UnwrappedLineParser_8cpp.html#ac39165965ffcb0218343355d1f482d64">Token</a>;</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span> <span class="keyword">class </span>VersionTuple;</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span> <span class="keyword">class </span>ASTUnresolvedSet;</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span> </div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span> <span class="keyword">namespace </span>SrcMgr { <span class="keyword">class </span>SLocEntry; }</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span> <span class="comment"></span></div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span> <span class="comment">/// \brief Writes an AST file containing the contents of a translation unit.</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span> <span class="comment">/// The ASTWriter class produces a bitstream containing the serialized</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span> <span class="comment">/// representation of a given abstract syntax tree and its supporting</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span> <span class="comment">/// data structures. This bitstream can be de-serialized via an</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span> <span class="comment">/// instance of the ASTReader class.</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"><a class="code" href="classclang_1_1ASTWriter.html">   78</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1ASTWriter.html" title="Writes an AST file containing the contents of a translation unit.">ASTWriter</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1ASTDeserializationListener.html">ASTDeserializationListener</a>,</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>                   <span class="keyword">public</span> <a class="code" href="classclang_1_1ASTMutationListener.html" title="An abstract interface that should be implemented by listeners that want to be notified when an AST en...">ASTMutationListener</a> {</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00081"></a><span class="lineno"><a class="code" href="classclang_1_1ASTWriter.html#ad7f0f08e453c402922e72bc044fd5f2d">   81</a></span>   <span class="keyword">typedef</span> <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<uint64_t, 64></a> <a class="code" href="classclang_1_1ASTWriter.html#ad7f0f08e453c402922e72bc044fd5f2d">RecordData</a>;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"><a class="code" href="classclang_1_1ASTWriter.html#a754c65aeb9bb3323c03a7d324c3960ba">   82</a></span>   <span class="keyword">typedef</span> <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<uint64_t></a> <a class="code" href="classclang_1_1ASTWriter.html#a754c65aeb9bb3323c03a7d324c3960ba">RecordDataImpl</a>;</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span> </div>
+<div class="line"><a name="l00084"></a><span class="lineno"><a class="code" href="classclang_1_1ASTWriter.html#aaf78a162132cef88281b20d4929a43dd">   84</a></span>   <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classclang_1_1ASTDeclWriter.html">ASTDeclWriter</a>;</div>
+<div class="line"><a name="l00085"></a><span class="lineno"><a class="code" href="classclang_1_1ASTWriter.html#ab6b1376d59ae2643970df578c721ae74">   85</a></span>   <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classclang_1_1ASTStmtWriter.html">ASTStmtWriter</a>;</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span> <span class="keyword">private</span>:<span class="comment"></span></div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span> <span class="comment">  /// \brief Map that provides the ID numbers of each type within the</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span> <span class="comment">  /// output stream, plus those deserialized from a chained PCH.</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span> <span class="comment">  /// The ID numbers of types are consecutive (in order of discovery)</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span> <span class="comment">  /// and start at 1. 0 is reserved for NULL. When types are actually</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span> <span class="comment">  /// stored in the stream, the ID number is shifted by 2 bits to</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span> <span class="comment">  /// allow for the const/volatile qualifiers.</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span> <span class="comment">  /// Keys in the map never have const/volatile qualifiers.</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span> <span class="comment"></span>  <span class="keyword">typedef</span> llvm::DenseMap<<a class="code" href="classclang_1_1QualType.html">QualType</a>, <a class="code" href="classclang_1_1serialization_1_1TypeIdx.html" title="A type index; the type ID with the qualifier bits removed.">serialization::TypeIdx</a>,</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>                          <a class="code" href="structclang_1_1serialization_1_1UnsafeQualTypeDenseMapInfo.html">serialization::UnsafeQualTypeDenseMapInfo</a>></div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>     TypeIdxMap;</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span> <span class="comment"></span></div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span> <span class="comment">  /// \brief The bitstream writer used to emit this precompiled header.</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span> <span class="comment"></span>  llvm::BitstreamWriter &Stream;</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span> <span class="comment"></span></div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span> <span class="comment">  /// \brief The ASTContext we're writing.</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span> <span class="comment"></span>  <a class="code" href="classclang_1_1ASTContext.html" title="Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...">ASTContext</a> *<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>;</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span> <span class="comment"></span></div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span> <span class="comment">  /// \brief The preprocessor we're writing.</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span> <span class="comment"></span>  <a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> *PP;</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span> <span class="comment"></span></div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span> <span class="comment">  /// \brief The reader of existing AST files, if we're chaining.</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span> <span class="comment"></span>  <a class="code" href="classclang_1_1ASTReader.html" title="Reads an AST files chain containing the contents of a translation unit.">ASTReader</a> *Chain;</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span> <span class="comment"></span></div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span> <span class="comment">  /// \brief The module we're currently writing, if any.</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span> <span class="comment"></span>  <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *WritingModule;</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>                     <span class="comment"></span></div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span> <span class="comment">  /// \brief Indicates when the AST writing is actively performing</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span> <span class="comment">  /// serialization, rather than just queueing updates.</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span> <span class="comment"></span>  <span class="keywordtype">bool</span> WritingAST;</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span> <span class="comment"></span></div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span> <span class="comment">  /// \brief Indicates that we are done serializing the collection of decls</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span> <span class="comment">  /// and types to emit.</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span> <span class="comment"></span>  <span class="keywordtype">bool</span> DoneWritingDeclsAndTypes;</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span> <span class="comment"></span></div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span> <span class="comment">  /// \brief Indicates that the AST contained compiler errors.</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span> <span class="comment"></span>  <span class="keywordtype">bool</span> ASTHasCompilerErrors;</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span> <span class="comment"></span></div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span> <span class="comment">  /// \brief Mapping from input file entries to the index into the</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span> <span class="comment">  /// offset table where information about that input file is stored.</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span> <span class="comment"></span>  llvm::DenseMap<const FileEntry *, uint32_t> InputFileIDs;</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span> <span class="comment"></span></div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span> <span class="comment">  /// \brief Stores a declaration or a type to be written to the AST file.</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span> <span class="comment"></span>  <span class="keyword">class </span>DeclOrType {</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>     DeclOrType(<a class="code" href="classclang_1_1Decl.html">Decl</a> *D) : Stored(D), IsType(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>) { }</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>     DeclOrType(<a class="code" href="classclang_1_1QualType.html">QualType</a> T) : Stored(T.getAsOpaquePtr()), IsType(<a class="code" href="stdbool_8h.html#a41f9c5fb8b08eb5dc3edce4dcb37fee7">true</a>) { }</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span> </div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>     <span class="keywordtype">bool</span> isType()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> IsType; }</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>     <span class="keywordtype">bool</span> isDecl()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> !IsType; }</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span> </div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>     QualType getType()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>       assert(isType() && <span class="stringliteral">"Not a type!"</span>);</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>       <span class="keywordflow">return</span> <a class="code" href="classclang_1_1QualType.html#a7251217ca730eabca964ec9b9a64dff8">QualType::getFromOpaquePtr</a>(Stored);</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>     }</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span> </div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>     Decl *getDecl()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>       assert(isDecl() && <span class="stringliteral">"Not a decl!"</span>);</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>       <span class="keywordflow">return</span> <span class="keyword">static_cast<</span>Decl *<span class="keyword">></span>(Stored);</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>     }</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span> </div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>   <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>     <span class="keywordtype">void</span> *Stored;</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>     <span class="keywordtype">bool</span> IsType;</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>   };</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span> <span class="comment"></span></div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span> <span class="comment">  /// \brief The declarations and types to emit.</span></div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span> <span class="comment"></span>  std::queue<DeclOrType> DeclTypesToEmit;</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span> <span class="comment"></span></div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span> <span class="comment">  /// \brief The first ID number we can use for our own declarations.</span></div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span> <span class="comment"></span>  <a class="code" href="namespaceclang_1_1serialization.html#af3f9c681595246da4bb499bd210e7f36" title="An ID number that refers to a declaration in an AST file.">serialization::DeclID</a> FirstDeclID;</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span> <span class="comment"></span></div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span> <span class="comment">  /// \brief The decl ID that will be assigned to the next new decl.</span></div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span> <span class="comment"></span>  <a class="code" href="namespaceclang_1_1serialization.html#af3f9c681595246da4bb499bd210e7f36" title="An ID number that refers to a declaration in an AST file.">serialization::DeclID</a> NextDeclID;</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span> <span class="comment"></span></div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span> <span class="comment">  /// \brief Map that provides the ID numbers of each declaration within</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span> <span class="comment">  /// the output stream, as well as those deserialized from a chained PCH.</span></div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span> <span class="comment">  /// The ID numbers of declarations are consecutive (in order of</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span> <span class="comment">  /// discovery) and start at 2. 1 is reserved for the translation</span></div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span> <span class="comment">  /// unit, while 0 is reserved for NULL.</span></div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span> <span class="comment"></span>  llvm::DenseMap<const Decl *, serialization::DeclID> DeclIDs;</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span> <span class="comment"></span></div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span> <span class="comment">  /// \brief Offset of each declaration in the bitstream, indexed by</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span> <span class="comment">  /// the declaration's ID.</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span> <span class="comment"></span>  std::vector<serialization::DeclOffset> DeclOffsets;</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span> <span class="comment"></span></div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span> <span class="comment">  /// \brief Sorted (by file offset) vector of pairs of file offset/DeclID.</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span> <span class="comment"></span>  <span class="keyword">typedef</span> SmallVector<std::pair<unsigned, serialization::DeclID>, 64></div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>     LocDeclIDsTy;</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>   <span class="keyword">struct </span>DeclIDInFileInfo {</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>     LocDeclIDsTy DeclIDs;<span class="comment"></span></div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span> <span class="comment">    /// \brief Set when the DeclIDs vectors from all files are joined, this</span></div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span> <span class="comment">    /// indicates the index that this particular vector has in the global one.</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span> <span class="comment"></span>    <span class="keywordtype">unsigned</span> FirstDeclIndex;</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>   };</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>   <span class="keyword">typedef</span> llvm::DenseMap<FileID, DeclIDInFileInfo *> FileDeclIDsTy;</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span> <span class="comment"></span></div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span> <span class="comment">  /// \brief Map from file SLocEntries to info about the file-level declarations</span></div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span> <span class="comment">  /// that it contains.</span></div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span> <span class="comment"></span>  FileDeclIDsTy FileDeclIDs;</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span> </div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>   <span class="keywordtype">void</span> associateDeclWithFile(<span class="keyword">const</span> Decl *D, <a class="code" href="namespaceclang_1_1serialization.html#af3f9c681595246da4bb499bd210e7f36" title="An ID number that refers to a declaration in an AST file.">serialization::DeclID</a>);</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span> <span class="comment"></span></div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span> <span class="comment">  /// \brief The first ID number we can use for our own types.</span></div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span> <span class="comment"></span>  <a class="code" href="namespaceclang_1_1serialization.html#a0e09d1ee46891ec8fe62b5ab5b583d12" title="An ID number that refers to a type in an AST file.">serialization::TypeID</a> FirstTypeID;</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span> <span class="comment"></span></div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span> <span class="comment">  /// \brief The type ID that will be assigned to the next new type.</span></div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span> <span class="comment"></span>  <a class="code" href="namespaceclang_1_1serialization.html#a0e09d1ee46891ec8fe62b5ab5b583d12" title="An ID number that refers to a type in an AST file.">serialization::TypeID</a> NextTypeID;</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span> <span class="comment"></span></div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span> <span class="comment">  /// \brief Map that provides the ID numbers of each type within the</span></div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span> <span class="comment">  /// output stream, plus those deserialized from a chained PCH.</span></div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span> <span class="comment">  /// The ID numbers of types are consecutive (in order of discovery)</span></div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span> <span class="comment">  /// and start at 1. 0 is reserved for NULL. When types are actually</span></div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span> <span class="comment">  /// stored in the stream, the ID number is shifted by 2 bits to</span></div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span> <span class="comment">  /// allow for the const/volatile qualifiers.</span></div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span> <span class="comment">  /// Keys in the map never have const/volatile qualifiers.</span></div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span> <span class="comment"></span>  TypeIdxMap TypeIdxs;</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span> <span class="comment"></span></div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span> <span class="comment">  /// \brief Offset of each type in the bitstream, indexed by</span></div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span> <span class="comment">  /// the type's ID.</span></div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span> <span class="comment"></span>  std::vector<uint32_t> TypeOffsets;</div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span> <span class="comment"></span></div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span> <span class="comment">  /// \brief The first ID number we can use for our own identifiers.</span></div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span> <span class="comment"></span>  <a class="code" href="namespaceclang_1_1serialization.html#aa7a1e72ed4b332bf9f49c7410e175cad" title="An ID number that refers to an identifier in an AST file.">serialization::IdentID</a> FirstIdentID;</div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span> <span class="comment"></span></div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span> <span class="comment">  /// \brief The identifier ID that will be assigned to the next new identifier.</span></div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span> <span class="comment"></span>  <a class="code" href="namespaceclang_1_1serialization.html#aa7a1e72ed4b332bf9f49c7410e175cad" title="An ID number that refers to an identifier in an AST file.">serialization::IdentID</a> NextIdentID;</div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span> <span class="comment"></span></div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span> <span class="comment">  /// \brief Map that provides the ID numbers of each identifier in</span></div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span> <span class="comment">  /// the output stream.</span></div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span> <span class="comment">  /// The ID numbers for identifiers are consecutive (in order of</span></div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span> <span class="comment">  /// discovery), starting at 1. An ID of zero refers to a NULL</span></div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span> <span class="comment">  /// IdentifierInfo.</span></div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span> <span class="comment"></span>  llvm::DenseMap<const IdentifierInfo *, serialization::IdentID> IdentifierIDs;</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span> <span class="comment"></span></div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span> <span class="comment">  /// \brief The first ID number we can use for our own macros.</span></div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span> <span class="comment"></span>  <a class="code" href="namespaceclang_1_1serialization.html#aa45d728abd3462ec39bbf90af1efb7dc" title="An ID number that refers to a macro in an AST file.">serialization::MacroID</a> FirstMacroID;</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span> <span class="comment"></span></div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span> <span class="comment">  /// \brief The identifier ID that will be assigned to the next new identifier.</span></div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span> <span class="comment"></span>  <a class="code" href="namespaceclang_1_1serialization.html#aa45d728abd3462ec39bbf90af1efb7dc" title="An ID number that refers to a macro in an AST file.">serialization::MacroID</a> NextMacroID;</div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span> <span class="comment"></span></div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span> <span class="comment">  /// \brief Map that provides the ID numbers of each macro.</span></div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span> <span class="comment"></span>  llvm::DenseMap<MacroInfo *, serialization::MacroID> MacroIDs;</div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span> </div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span>   <span class="keyword">struct </span>MacroInfoToEmitData {</div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span>     <span class="keyword">const</span> IdentifierInfo *Name;</div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span>     MacroInfo *MI;</div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span>     <a class="code" href="namespaceclang_1_1serialization.html#aa45d728abd3462ec39bbf90af1efb7dc" title="An ID number that refers to a macro in an AST file.">serialization::MacroID</a> <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>;</div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span>   };<span class="comment"></span></div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span> <span class="comment">  /// \brief The macro infos to emit.</span></div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span> <span class="comment"></span>  std::vector<MacroInfoToEmitData> MacroInfosToEmit;</div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span> </div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span>   llvm::DenseMap<const IdentifierInfo *, uint64_t> IdentMacroDirectivesOffsetMap;</div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span> <span class="comment"></span></div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span> <span class="comment">  /// @name FlushStmt Caches</span></div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span> <span class="comment">  /// @{</span></div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span> <span class="comment"></span><span class="comment"></span></div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span> <span class="comment">  /// \brief Set of parent Stmts for the currently serializing sub stmt.</span></div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span> <span class="comment"></span>  <a class="code" href="classllvm_1_1DenseSet.html">llvm::DenseSet<Stmt *></a> ParentStmts;</div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span> <span class="comment"></span></div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span> <span class="comment">  /// \brief Offsets of sub stmts already serialized. The offset points</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span> <span class="comment">  /// just after the stmt record.</span></div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span> <span class="comment"></span>  llvm::DenseMap<Stmt *, uint64_t> SubStmtEntries;</div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span> <span class="comment"></span></div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span> <span class="comment">  /// @}</span></div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span> <span class="comment"></span><span class="comment"></span></div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span> <span class="comment">  /// \brief Offsets of each of the identifier IDs into the identifier</span></div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span> <span class="comment">  /// table.</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span> <span class="comment"></span>  std::vector<uint32_t> IdentifierOffsets;</div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span> <span class="comment"></span></div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span> <span class="comment">  /// \brief The first ID number we can use for our own submodules.</span></div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span> <span class="comment"></span>  <a class="code" href="namespaceclang_1_1serialization.html#a4bd106e4761bfc2a1b2ba41b391d3073" title="An ID number that refers to a submodule in a module file.">serialization::SubmoduleID</a> FirstSubmoduleID;</div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span>   <span class="comment"></span></div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span> <span class="comment">  /// \brief The submodule ID that will be assigned to the next new submodule.</span></div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span> <span class="comment"></span>  <a class="code" href="namespaceclang_1_1serialization.html#a4bd106e4761bfc2a1b2ba41b391d3073" title="An ID number that refers to a submodule in a module file.">serialization::SubmoduleID</a> NextSubmoduleID;</div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span> <span class="comment"></span></div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span> <span class="comment">  /// \brief The first ID number we can use for our own selectors.</span></div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span> <span class="comment"></span>  <a class="code" href="namespaceclang_1_1serialization.html#a79d7521f50e764df679984a7df6bbd9c" title="An ID number that refers to an ObjC selector in an AST file.">serialization::SelectorID</a> FirstSelectorID;</div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span> <span class="comment"></span></div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span> <span class="comment">  /// \brief The selector ID that will be assigned to the next new selector.</span></div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span> <span class="comment"></span>  <a class="code" href="namespaceclang_1_1serialization.html#a79d7521f50e764df679984a7df6bbd9c" title="An ID number that refers to an ObjC selector in an AST file.">serialization::SelectorID</a> NextSelectorID;</div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span> <span class="comment"></span></div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span> <span class="comment">  /// \brief Map that provides the ID numbers of each Selector.</span></div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span> <span class="comment"></span>  llvm::DenseMap<Selector, serialization::SelectorID> SelectorIDs;</div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span> <span class="comment"></span></div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span> <span class="comment">  /// \brief Offset of each selector within the method pool/selector</span></div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span> <span class="comment">  /// table, indexed by the Selector ID (-1).</span></div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span> <span class="comment"></span>  std::vector<uint32_t> SelectorOffsets;</div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span> <span class="comment"></span></div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span> <span class="comment">  /// \brief Mapping from macro definitions (as they occur in the preprocessing</span></div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span> <span class="comment">  /// record) to the macro IDs.</span></div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span> <span class="comment"></span>  llvm::DenseMap<const MacroDefinition *, serialization::PreprocessedEntityID></div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span>       MacroDefinitions;</div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span> </div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span>   <span class="keyword">typedef</span> SmallVector<uint64_t, 2> UpdateRecord;</div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span>   <span class="keyword">typedef</span> llvm::DenseMap<const Decl *, UpdateRecord> DeclUpdateMap;<span class="comment"></span></div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span> <span class="comment">  /// \brief Mapping from declarations that came from a chained PCH to the</span></div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span> <span class="comment">  /// record containing modifications to them.</span></div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span> <span class="comment"></span>  DeclUpdateMap DeclUpdates;</div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span> </div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span>   <span class="keyword">typedef</span> llvm::DenseMap<Decl *, Decl *> FirstLatestDeclMap;<span class="comment"></span></div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span> <span class="comment">  /// \brief Map of first declarations from a chained PCH that point to the</span></div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span> <span class="comment">  /// most recent declarations in another PCH.</span></div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span> <span class="comment"></span>  FirstLatestDeclMap FirstLatestDecls;</div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span> <span class="comment"></span></div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span> <span class="comment">  /// \brief Declarations encountered that might be external</span></div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span> <span class="comment">  /// definitions.</span></div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span> <span class="comment">  /// We keep track of external definitions (as well as tentative</span></div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span> <span class="comment">  /// definitions) as we are emitting declarations to the AST</span></div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span> <span class="comment">  /// file. The AST file contains a separate record for these external</span></div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span> <span class="comment">  /// definitions, which are provided to the AST consumer by the AST</span></div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span> <span class="comment">  /// reader. This is behavior is required to properly cope with,</span></div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span> <span class="comment">  /// e.g., tentative variable definitions that occur within</span></div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span> <span class="comment">  /// headers. The declarations themselves are stored as declaration</span></div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span> <span class="comment">  /// IDs, since they will be written out to an EXTERNAL_DEFINITIONS</span></div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span> <span class="comment">  /// record.</span></div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span> <span class="comment"></span>  SmallVector<uint64_t, 16> ExternalDefinitions;</div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span> <span class="comment"></span></div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span> <span class="comment">  /// \brief DeclContexts that have received extensions since their serialized</span></div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span> <span class="comment">  /// form.</span></div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span> <span class="comment">  /// For namespaces, when we're chaining and encountering a namespace, we check</span></div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span> <span class="comment">  /// if its primary namespace comes from the chain. If it does, we add the</span></div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span> <span class="comment">  /// primary to this set, so that we can write out lexical content updates for</span></div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span> <span class="comment">  /// it.</span></div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span> <span class="comment"></span>  llvm::SmallPtrSet<const DeclContext *, 16> UpdatedDeclContexts;</div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span> <span class="comment"></span></div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span> <span class="comment">  /// \brief Keeps track of visible decls that were added in DeclContexts</span></div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span> <span class="comment">  /// coming from another AST file.</span></div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span> <span class="comment"></span>  SmallVector<const Decl *, 16> UpdatingVisibleDecls;</div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span> </div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span>   <span class="keyword">typedef</span> llvm::SmallPtrSet<const Decl *, 16> DeclsToRewriteTy;<span class="comment"></span></div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span> <span class="comment">  /// \brief Decls that will be replaced in the current dependent AST file.</span></div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span> <span class="comment"></span>  DeclsToRewriteTy DeclsToRewrite;</div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span> <span class="comment"></span></div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span> <span class="comment">  /// \brief The set of Objective-C class that have categories we</span></div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span> <span class="comment">  /// should serialize.</span></div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span> <span class="comment"></span>  llvm::SetVector<ObjCInterfaceDecl *> ObjCClassesWithCategories;</div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span>                     </div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span>   <span class="keyword">struct </span>ReplacedDeclInfo {</div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span>     <a class="code" href="namespaceclang_1_1serialization.html#af3f9c681595246da4bb499bd210e7f36" title="An ID number that refers to a declaration in an AST file.">serialization::DeclID</a> <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>;</div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span>     uint64_t <a class="code" href="namespaceclang_1_1io.html#ae0bbdf4a2b076935546931e52d48d29b">Offset</a>;</div>
+<div class="line"><a name="l00335"></a><span class="lineno">  335</span>     <span class="keywordtype">unsigned</span> Loc;</div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span> </div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span>     ReplacedDeclInfo() : <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>(0), <a class="code" href="namespaceclang_1_1io.html#ae0bbdf4a2b076935546931e52d48d29b">Offset</a>(0), Loc(0) {}</div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span>     ReplacedDeclInfo(<a class="code" href="namespaceclang_1_1serialization.html#af3f9c681595246da4bb499bd210e7f36" title="An ID number that refers to a declaration in an AST file.">serialization::DeclID</a> <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>, uint64_t <a class="code" href="namespaceclang_1_1io.html#ae0bbdf4a2b076935546931e52d48d29b">Offset</a>,</div>
+<div class="line"><a name="l00339"></a><span class="lineno">  339</span>                      SourceLocation Loc)</div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span>       : ID(ID), Offset(Offset), Loc(Loc.getRawEncoding()) {}</div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span>   };</div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span> <span class="comment"></span></div>
+<div class="line"><a name="l00343"></a><span class="lineno">  343</span> <span class="comment">  /// \brief Decls that have been replaced in the current dependent AST file.</span></div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span> <span class="comment">  /// When a decl changes fundamentally after being deserialized (this shouldn't</span></div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span> <span class="comment">  /// happen, but the ObjC AST nodes are designed this way), it will be</span></div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span> <span class="comment">  /// serialized again. In this case, it is registered here, so that the reader</span></div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span> <span class="comment">  /// knows to read the updated version.</span></div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span> <span class="comment"></span>  SmallVector<ReplacedDeclInfo, 16> ReplacedDecls;</div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span>                  <span class="comment"></span></div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span> <span class="comment">  /// \brief The set of declarations that may have redeclaration chains that</span></div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span> <span class="comment">  /// need to be serialized.</span></div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span> <span class="comment"></span>  llvm::SetVector<Decl *, SmallVector<Decl *, 4>,</div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span>                   llvm::SmallPtrSet<Decl *, 4> > Redeclarations;</div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span>                                       <span class="comment"></span></div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span> <span class="comment">  /// \brief Statements that we've encountered while serializing a</span></div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span> <span class="comment">  /// declaration or type.</span></div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span> <span class="comment"></span>  SmallVector<Stmt *, 16> StmtsToEmit;</div>
+<div class="line"><a name="l00359"></a><span class="lineno">  359</span> <span class="comment"></span></div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span> <span class="comment">  /// \brief Statements collection to use for ASTWriter::AddStmt().</span></div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span> <span class="comment">  /// It will point to StmtsToEmit unless it is overriden.</span></div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span> <span class="comment"></span>  SmallVector<Stmt *, 16> *CollectedStmts;</div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span> <span class="comment"></span></div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span> <span class="comment">  /// \brief Mapping from SwitchCase statements to IDs.</span></div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span> <span class="comment"></span>  llvm::DenseMap<SwitchCase *, unsigned> SwitchCaseIDs;</div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span> <span class="comment"></span></div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span> <span class="comment">  /// \brief The number of statements written to the AST file.</span></div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> NumStatements;</div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span> <span class="comment"></span></div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span> <span class="comment">  /// \brief The number of macros written to the AST file.</span></div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> NumMacros;</div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span> <span class="comment"></span></div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span> <span class="comment">  /// \brief The number of lexical declcontexts written to the AST</span></div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span> <span class="comment">  /// file.</span></div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> NumLexicalDeclContexts;</div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span> <span class="comment"></span></div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span> <span class="comment">  /// \brief The number of visible declcontexts written to the AST</span></div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span> <span class="comment">  /// file.</span></div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> NumVisibleDeclContexts;</div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span> <span class="comment"></span></div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span> <span class="comment">  /// \brief The offset of each CXXBaseSpecifier set within the AST.</span></div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span> <span class="comment"></span>  SmallVector<uint32_t, 4> CXXBaseSpecifiersOffsets;</div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span> <span class="comment"></span></div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span> <span class="comment">  /// \brief The first ID number we can use for our own base specifiers.</span></div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span> <span class="comment"></span>  <a class="code" href="namespaceclang_1_1serialization.html#aee97bf02af7acb1f93cf26e4bbcfe38b" title="An ID number that refers to a set of CXXBaseSpecifiers in an AST file.">serialization::CXXBaseSpecifiersID</a> FirstCXXBaseSpecifiersID;</div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span> <span class="comment"></span></div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span> <span class="comment">  /// \brief The base specifiers ID that will be assigned to the next new</span></div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span> <span class="comment">  /// set of C++ base specifiers.</span></div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span> <span class="comment"></span>  <a class="code" href="namespaceclang_1_1serialization.html#aee97bf02af7acb1f93cf26e4bbcfe38b" title="An ID number that refers to a set of CXXBaseSpecifiers in an AST file.">serialization::CXXBaseSpecifiersID</a> NextCXXBaseSpecifiersID;</div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span> <span class="comment"></span></div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span> <span class="comment">  /// \brief A set of C++ base specifiers that is queued to be written into the</span></div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span> <span class="comment">  /// AST file.</span></div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span> <span class="comment"></span>  <span class="keyword">struct </span>QueuedCXXBaseSpecifiers {</div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span>     QueuedCXXBaseSpecifiers() : <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>(), Bases(), BasesEnd() { }</div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span> </div>
+<div class="line"><a name="l00396"></a><span class="lineno">  396</span>     QueuedCXXBaseSpecifiers(<a class="code" href="namespaceclang_1_1serialization.html#aee97bf02af7acb1f93cf26e4bbcfe38b" title="An ID number that refers to a set of CXXBaseSpecifiers in an AST file.">serialization::CXXBaseSpecifiersID</a> <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>,</div>
+<div class="line"><a name="l00397"></a><span class="lineno">  397</span>                             CXXBaseSpecifier <span class="keyword">const</span> *Bases,</div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span>                             CXXBaseSpecifier <span class="keyword">const</span> *BasesEnd)</div>
+<div class="line"><a name="l00399"></a><span class="lineno">  399</span>       : ID(ID), Bases(Bases), BasesEnd(BasesEnd) { }</div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span> </div>
+<div class="line"><a name="l00401"></a><span class="lineno">  401</span>     <a class="code" href="namespaceclang_1_1serialization.html#aee97bf02af7acb1f93cf26e4bbcfe38b" title="An ID number that refers to a set of CXXBaseSpecifiers in an AST file.">serialization::CXXBaseSpecifiersID</a> <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>;</div>
+<div class="line"><a name="l00402"></a><span class="lineno">  402</span>     CXXBaseSpecifier <span class="keyword">const</span> * Bases;</div>
+<div class="line"><a name="l00403"></a><span class="lineno">  403</span>     CXXBaseSpecifier <span class="keyword">const</span> * BasesEnd;</div>
+<div class="line"><a name="l00404"></a><span class="lineno">  404</span>   };</div>
+<div class="line"><a name="l00405"></a><span class="lineno">  405</span> <span class="comment"></span></div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span> <span class="comment">  /// \brief Queue of C++ base specifiers to be written to the AST file,</span></div>
+<div class="line"><a name="l00407"></a><span class="lineno">  407</span> <span class="comment">  /// in the order they should be written.</span></div>
+<div class="line"><a name="l00408"></a><span class="lineno">  408</span> <span class="comment"></span>  SmallVector<QueuedCXXBaseSpecifiers, 2> CXXBaseSpecifiersToWrite;</div>
+<div class="line"><a name="l00409"></a><span class="lineno">  409</span> <span class="comment"></span></div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span> <span class="comment">  /// \brief A mapping from each known submodule to its ID number, which will</span></div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span> <span class="comment">  /// be a positive integer.</span></div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span> <span class="comment"></span>  llvm::DenseMap<Module *, unsigned> SubmoduleIDs;</div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</span>                     <span class="comment"></span></div>
+<div class="line"><a name="l00414"></a><span class="lineno">  414</span> <span class="comment">  /// \brief Retrieve or create a submodule ID for this module.</span></div>
+<div class="line"><a name="l00415"></a><span class="lineno">  415</span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> getSubmoduleID(Module *Mod);</div>
+<div class="line"><a name="l00416"></a><span class="lineno">  416</span>                     <span class="comment"></span></div>
+<div class="line"><a name="l00417"></a><span class="lineno">  417</span> <span class="comment">  /// \brief Write the given subexpression to the bitstream.</span></div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span> <span class="comment"></span>  <span class="keywordtype">void</span> WriteSubStmt(Stmt *<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>,</div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span>                     llvm::DenseMap<Stmt *, uint64_t> &SubStmtEntries,</div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span>                     <a class="code" href="classllvm_1_1DenseSet.html">llvm::DenseSet<Stmt *></a> &ParentStmts);</div>
+<div class="line"><a name="l00421"></a><span class="lineno">  421</span> </div>
+<div class="line"><a name="l00422"></a><span class="lineno">  422</span>   <span class="keywordtype">void</span> WriteBlockInfoBlock();</div>
+<div class="line"><a name="l00423"></a><span class="lineno">  423</span>   <span class="keywordtype">void</span> WriteControlBlock(Preprocessor &PP, ASTContext &Context,</div>
+<div class="line"><a name="l00424"></a><span class="lineno">  424</span>                          StringRef isysroot, <span class="keyword">const</span> std::string &OutputFile);</div>
+<div class="line"><a name="l00425"></a><span class="lineno">  425</span>   <span class="keywordtype">void</span> WriteInputFiles(SourceManager &<a class="code" href="Format_8cpp.html#a8b28f9f83ac8256fbde7e45b0f874f27">SourceMgr</a>,</div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span>                        HeaderSearchOptions &HSOpts,</div>
+<div class="line"><a name="l00427"></a><span class="lineno">  427</span>                        StringRef isysroot,</div>
+<div class="line"><a name="l00428"></a><span class="lineno">  428</span>                        <span class="keywordtype">bool</span> Modules);</div>
+<div class="line"><a name="l00429"></a><span class="lineno">  429</span>   <span class="keywordtype">void</span> WriteSourceManagerBlock(SourceManager &<a class="code" href="Format_8cpp.html#a8b28f9f83ac8256fbde7e45b0f874f27">SourceMgr</a>,</div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span>                                <span class="keyword">const</span> Preprocessor &PP,</div>
+<div class="line"><a name="l00431"></a><span class="lineno">  431</span>                                StringRef isysroot);</div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span>   <span class="keywordtype">void</span> WritePreprocessor(<span class="keyword">const</span> Preprocessor &PP, <span class="keywordtype">bool</span> IsModule);</div>
+<div class="line"><a name="l00433"></a><span class="lineno">  433</span>   <span class="keywordtype">void</span> WriteHeaderSearch(<span class="keyword">const</span> HeaderSearch &HS, StringRef isysroot);</div>
+<div class="line"><a name="l00434"></a><span class="lineno">  434</span>   <span class="keywordtype">void</span> WritePreprocessorDetail(PreprocessingRecord &PPRec);</div>
+<div class="line"><a name="l00435"></a><span class="lineno">  435</span>   <span class="keywordtype">void</span> WriteSubmodules(Module *WritingModule);</div>
+<div class="line"><a name="l00436"></a><span class="lineno">  436</span>                                         </div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span>   <span class="keywordtype">void</span> WritePragmaDiagnosticMappings(<span class="keyword">const</span> DiagnosticsEngine &<a class="code" href="LiteralSupport_8cpp.html#a5f4a4a29292c4a1697226abf1d22b9dd" title="Produce a diagnostic highlighting some portion of a literal.">Diag</a>,</div>
+<div class="line"><a name="l00438"></a><span class="lineno">  438</span>                                      <span class="keywordtype">bool</span> isModule);</div>
+<div class="line"><a name="l00439"></a><span class="lineno">  439</span>   <span class="keywordtype">void</span> WriteCXXBaseSpecifiersOffsets();</div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span>   <span class="keywordtype">void</span> WriteType(QualType T);</div>
+<div class="line"><a name="l00441"></a><span class="lineno">  441</span>   uint64_t WriteDeclContextLexicalBlock(ASTContext &Context, DeclContext *DC);</div>
+<div class="line"><a name="l00442"></a><span class="lineno">  442</span>   uint64_t WriteDeclContextVisibleBlock(ASTContext &Context, DeclContext *DC);</div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</span>   <span class="keywordtype">void</span> WriteTypeDeclOffsets();</div>
+<div class="line"><a name="l00444"></a><span class="lineno">  444</span>   <span class="keywordtype">void</span> WriteFileDeclIDsMap();</div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span>   <span class="keywordtype">void</span> WriteComments();</div>
+<div class="line"><a name="l00446"></a><span class="lineno">  446</span>   <span class="keywordtype">void</span> WriteSelectors(Sema &<a class="code" href="SemaOverload_8cpp.html#a2143ac7d927afc9feb28c9270c7ed86d">SemaRef</a>);</div>
+<div class="line"><a name="l00447"></a><span class="lineno">  447</span>   <span class="keywordtype">void</span> WriteReferencedSelectorsPool(Sema &<a class="code" href="SemaOverload_8cpp.html#a2143ac7d927afc9feb28c9270c7ed86d">SemaRef</a>);</div>
+<div class="line"><a name="l00448"></a><span class="lineno">  448</span>   <span class="keywordtype">void</span> WriteIdentifierTable(Preprocessor &PP, IdentifierResolver &IdResolver,</div>
+<div class="line"><a name="l00449"></a><span class="lineno">  449</span>                             <span class="keywordtype">bool</span> IsModule);</div>
+<div class="line"><a name="l00450"></a><span class="lineno">  450</span>   <span class="keywordtype">void</span> WriteAttributes(ArrayRef<const Attr*> Attrs, <a class="code" href="classclang_1_1ASTWriter.html#a754c65aeb9bb3323c03a7d324c3960ba">RecordDataImpl</a> &Record);</div>
+<div class="line"><a name="l00451"></a><span class="lineno">  451</span>   <span class="keywordtype">void</span> ResolveDeclUpdatesBlocks();</div>
+<div class="line"><a name="l00452"></a><span class="lineno">  452</span>   <span class="keywordtype">void</span> WriteDeclUpdatesBlocks();</div>
+<div class="line"><a name="l00453"></a><span class="lineno">  453</span>   <span class="keywordtype">void</span> WriteDeclReplacementsBlock();</div>
+<div class="line"><a name="l00454"></a><span class="lineno">  454</span>   <span class="keywordtype">void</span> WriteDeclContextVisibleUpdate(<span class="keyword">const</span> DeclContext *DC);</div>
+<div class="line"><a name="l00455"></a><span class="lineno">  455</span>   <span class="keywordtype">void</span> WriteFPPragmaOptions(<span class="keyword">const</span> FPOptions &Opts);</div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span>   <span class="keywordtype">void</span> WriteOpenCLExtensions(Sema &<a class="code" href="SemaOverload_8cpp.html#a2143ac7d927afc9feb28c9270c7ed86d">SemaRef</a>);</div>
+<div class="line"><a name="l00457"></a><span class="lineno">  457</span>   <span class="keywordtype">void</span> WriteObjCCategories();</div>
+<div class="line"><a name="l00458"></a><span class="lineno">  458</span>   <span class="keywordtype">void</span> WriteRedeclarations();</div>
+<div class="line"><a name="l00459"></a><span class="lineno">  459</span>   <span class="keywordtype">void</span> WriteMergedDecls();</div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span>   <span class="keywordtype">void</span> WriteLateParsedTemplates(Sema &<a class="code" href="SemaOverload_8cpp.html#a2143ac7d927afc9feb28c9270c7ed86d">SemaRef</a>);</div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span> </div>
+<div class="line"><a name="l00462"></a><span class="lineno">  462</span>   <span class="keywordtype">unsigned</span> DeclParmVarAbbrev;</div>
+<div class="line"><a name="l00463"></a><span class="lineno">  463</span>   <span class="keywordtype">unsigned</span> DeclContextLexicalAbbrev;</div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</span>   <span class="keywordtype">unsigned</span> DeclContextVisibleLookupAbbrev;</div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span>   <span class="keywordtype">unsigned</span> UpdateVisibleAbbrev;</div>
+<div class="line"><a name="l00466"></a><span class="lineno">  466</span>   <span class="keywordtype">unsigned</span> DeclRefExprAbbrev;</div>
+<div class="line"><a name="l00467"></a><span class="lineno">  467</span>   <span class="keywordtype">unsigned</span> CharacterLiteralAbbrev;</div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span>   <span class="keywordtype">unsigned</span> DeclRecordAbbrev;</div>
+<div class="line"><a name="l00469"></a><span class="lineno">  469</span>   <span class="keywordtype">unsigned</span> IntegerLiteralAbbrev;</div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span>   <span class="keywordtype">unsigned</span> DeclTypedefAbbrev;</div>
+<div class="line"><a name="l00471"></a><span class="lineno">  471</span>   <span class="keywordtype">unsigned</span> DeclVarAbbrev;</div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span>   <span class="keywordtype">unsigned</span> DeclFieldAbbrev;</div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span>   <span class="keywordtype">unsigned</span> DeclEnumAbbrev;</div>
+<div class="line"><a name="l00474"></a><span class="lineno">  474</span>   <span class="keywordtype">unsigned</span> DeclObjCIvarAbbrev;</div>
+<div class="line"><a name="l00475"></a><span class="lineno">  475</span> </div>
+<div class="line"><a name="l00476"></a><span class="lineno">  476</span>   <span class="keywordtype">void</span> WriteDeclsBlockAbbrevs();</div>
+<div class="line"><a name="l00477"></a><span class="lineno">  477</span>   <span class="keywordtype">void</span> WriteDecl(ASTContext &Context, Decl *D);</div>
+<div class="line"><a name="l00478"></a><span class="lineno">  478</span> </div>
+<div class="line"><a name="l00479"></a><span class="lineno">  479</span>   <span class="keywordtype">void</span> WriteASTCore(Sema &<a class="code" href="SemaOverload_8cpp.html#a2143ac7d927afc9feb28c9270c7ed86d">SemaRef</a>,</div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span>                     StringRef isysroot, <span class="keyword">const</span> std::string &OutputFile,</div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span>                     Module *WritingModule);</div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span> </div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span> <span class="keyword">public</span>:<span class="comment"></span></div>
+<div class="line"><a name="l00484"></a><span class="lineno">  484</span> <span class="comment">  /// \brief Create a new precompiled header writer that outputs to</span></div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span> <span class="comment">  /// the given bitstream.</span></div>
+<div class="line"><a name="l00486"></a><span class="lineno">  486</span> <span class="comment"></span>  <a class="code" href="classclang_1_1ASTWriter.html#a2c490f806fb34f98063be1835b4db8d7" title="Create a new precompiled header writer that outputs to the given bitstream.">ASTWriter</a>(llvm::BitstreamWriter &Stream);</div>
+<div class="line"><a name="l00487"></a><span class="lineno">  487</span>   <a class="code" href="classclang_1_1ASTWriter.html#a15eec5cb7a7dc4a099ddc5b0af6b061a">~ASTWriter</a>();</div>
+<div class="line"><a name="l00488"></a><span class="lineno">  488</span> <span class="comment"></span></div>
+<div class="line"><a name="l00489"></a><span class="lineno">  489</span> <span class="comment">  /// \brief Write a precompiled header for the given semantic analysis.</span></div>
+<div class="line"><a name="l00490"></a><span class="lineno">  490</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00491"></a><span class="lineno">  491</span> <span class="comment">  /// \param SemaRef a reference to the semantic analysis object that processed</span></div>
+<div class="line"><a name="l00492"></a><span class="lineno">  492</span> <span class="comment">  /// the AST to be written into the precompiled header.</span></div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00494"></a><span class="lineno">  494</span> <span class="comment">  /// \param WritingModule The module that we are writing. If null, we are</span></div>
+<div class="line"><a name="l00495"></a><span class="lineno">  495</span> <span class="comment">  /// writing a precompiled header.</span></div>
+<div class="line"><a name="l00496"></a><span class="lineno">  496</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00497"></a><span class="lineno">  497</span> <span class="comment">  /// \param isysroot if non-empty, write a relocatable file whose headers</span></div>
+<div class="line"><a name="l00498"></a><span class="lineno">  498</span> <span class="comment">  /// are relative to the given system root.</span></div>
+<div class="line"><a name="l00499"></a><span class="lineno">  499</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#a570bb682fab761e09a9e020d3d295efe" title="Write a precompiled header for the given semantic analysis.">WriteAST</a>(Sema &<a class="code" href="SemaOverload_8cpp.html#a2143ac7d927afc9feb28c9270c7ed86d">SemaRef</a>,</div>
+<div class="line"><a name="l00500"></a><span class="lineno">  500</span>                 <span class="keyword">const</span> std::string &OutputFile,</div>
+<div class="line"><a name="l00501"></a><span class="lineno">  501</span>                 Module *WritingModule, StringRef isysroot,</div>
+<div class="line"><a name="l00502"></a><span class="lineno">  502</span>                 <span class="keywordtype">bool</span> hasErrors = <span class="keyword">false</span>);</div>
+<div class="line"><a name="l00503"></a><span class="lineno">  503</span> <span class="comment"></span></div>
+<div class="line"><a name="l00504"></a><span class="lineno">  504</span> <span class="comment">  /// \brief Emit a token.</span></div>
+<div class="line"><a name="l00505"></a><span class="lineno">  505</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#ad46f517d124b7bce0befe48d21722e29" title="Emit a token.">AddToken</a>(<span class="keyword">const</span> <a class="code" href="UnwrappedLineParser_8cpp.html#ac39165965ffcb0218343355d1f482d64">Token</a> &Tok, <a class="code" href="classclang_1_1ASTWriter.html#a754c65aeb9bb3323c03a7d324c3960ba">RecordDataImpl</a> &Record);</div>
+<div class="line"><a name="l00506"></a><span class="lineno">  506</span> <span class="comment"></span></div>
+<div class="line"><a name="l00507"></a><span class="lineno">  507</span> <span class="comment">  /// \brief Emit a source location.</span></div>
+<div class="line"><a name="l00508"></a><span class="lineno">  508</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(SourceLocation Loc, <a class="code" href="classclang_1_1ASTWriter.html#a754c65aeb9bb3323c03a7d324c3960ba">RecordDataImpl</a> &Record);</div>
+<div class="line"><a name="l00509"></a><span class="lineno">  509</span> <span class="comment"></span></div>
+<div class="line"><a name="l00510"></a><span class="lineno">  510</span> <span class="comment">  /// \brief Emit a source range.</span></div>
+<div class="line"><a name="l00511"></a><span class="lineno">  511</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#a879631536d3f8313162f95e6a694e33d" title="Emit a source range.">AddSourceRange</a>(SourceRange Range, <a class="code" href="classclang_1_1ASTWriter.html#a754c65aeb9bb3323c03a7d324c3960ba">RecordDataImpl</a> &Record);</div>
+<div class="line"><a name="l00512"></a><span class="lineno">  512</span> <span class="comment"></span></div>
+<div class="line"><a name="l00513"></a><span class="lineno">  513</span> <span class="comment">  /// \brief Emit an integral value.</span></div>
+<div class="line"><a name="l00514"></a><span class="lineno">  514</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#a6829f10dd40398d081ea8b0505716bee" title="Emit an integral value.">AddAPInt</a>(<span class="keyword">const</span> llvm::APInt &<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>, <a class="code" href="classclang_1_1ASTWriter.html#a754c65aeb9bb3323c03a7d324c3960ba">RecordDataImpl</a> &Record);</div>
+<div class="line"><a name="l00515"></a><span class="lineno">  515</span> <span class="comment"></span></div>
+<div class="line"><a name="l00516"></a><span class="lineno">  516</span> <span class="comment">  /// \brief Emit a signed integral value.</span></div>
+<div class="line"><a name="l00517"></a><span class="lineno">  517</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#ac65e77375f86abfb69b7844e6893d76f" title="Emit a signed integral value.">AddAPSInt</a>(<span class="keyword">const</span> llvm::APSInt &<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>, <a class="code" href="classclang_1_1ASTWriter.html#a754c65aeb9bb3323c03a7d324c3960ba">RecordDataImpl</a> &Record);</div>
+<div class="line"><a name="l00518"></a><span class="lineno">  518</span> <span class="comment"></span></div>
+<div class="line"><a name="l00519"></a><span class="lineno">  519</span> <span class="comment">  /// \brief Emit a floating-point value.</span></div>
+<div class="line"><a name="l00520"></a><span class="lineno">  520</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#aee3cf9145aa06eb033827fd510cf0e2d" title="Emit a floating-point value.">AddAPFloat</a>(<span class="keyword">const</span> llvm::APFloat &<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>, <a class="code" href="classclang_1_1ASTWriter.html#a754c65aeb9bb3323c03a7d324c3960ba">RecordDataImpl</a> &Record);</div>
+<div class="line"><a name="l00521"></a><span class="lineno">  521</span> <span class="comment"></span></div>
+<div class="line"><a name="l00522"></a><span class="lineno">  522</span> <span class="comment">  /// \brief Emit a reference to an identifier.</span></div>
+<div class="line"><a name="l00523"></a><span class="lineno">  523</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#a91ebff830b2425b103f7be4747359495" title="Emit a reference to an identifier.">AddIdentifierRef</a>(<span class="keyword">const</span> IdentifierInfo *II, <a class="code" href="classclang_1_1ASTWriter.html#a754c65aeb9bb3323c03a7d324c3960ba">RecordDataImpl</a> &Record);</div>
+<div class="line"><a name="l00524"></a><span class="lineno">  524</span> <span class="comment"></span></div>
+<div class="line"><a name="l00525"></a><span class="lineno">  525</span> <span class="comment">  /// \brief Emit a Selector (which is a smart pointer reference).</span></div>
+<div class="line"><a name="l00526"></a><span class="lineno">  526</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#a452f60e0cebe56928fe3291b531f7f38" title="Emit a Selector (which is a smart pointer reference).">AddSelectorRef</a>(Selector, <a class="code" href="classclang_1_1ASTWriter.html#a754c65aeb9bb3323c03a7d324c3960ba">RecordDataImpl</a> &Record);</div>
+<div class="line"><a name="l00527"></a><span class="lineno">  527</span> <span class="comment"></span></div>
+<div class="line"><a name="l00528"></a><span class="lineno">  528</span> <span class="comment">  /// \brief Emit a CXXTemporary.</span></div>
+<div class="line"><a name="l00529"></a><span class="lineno">  529</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#a0498156910b42cbc3bb862be1920bfd0" title="Emit a CXXTemporary.">AddCXXTemporary</a>(<span class="keyword">const</span> CXXTemporary *Temp, <a class="code" href="classclang_1_1ASTWriter.html#a754c65aeb9bb3323c03a7d324c3960ba">RecordDataImpl</a> &Record);</div>
+<div class="line"><a name="l00530"></a><span class="lineno">  530</span> <span class="comment"></span></div>
+<div class="line"><a name="l00531"></a><span class="lineno">  531</span> <span class="comment">  /// \brief Emit a set of C++ base specifiers to the record.</span></div>
+<div class="line"><a name="l00532"></a><span class="lineno">  532</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#a131269205311e4d19ef3f9907c6e61ee" title="Emit a set of C++ base specifiers to the record.">AddCXXBaseSpecifiersRef</a>(CXXBaseSpecifier <span class="keyword">const</span> *Bases,</div>
+<div class="line"><a name="l00533"></a><span class="lineno">  533</span>                                CXXBaseSpecifier <span class="keyword">const</span> *BasesEnd,</div>
+<div class="line"><a name="l00534"></a><span class="lineno">  534</span>                                <a class="code" href="classclang_1_1ASTWriter.html#a754c65aeb9bb3323c03a7d324c3960ba">RecordDataImpl</a> &Record);</div>
+<div class="line"><a name="l00535"></a><span class="lineno">  535</span> <span class="comment"></span></div>
+<div class="line"><a name="l00536"></a><span class="lineno">  536</span> <span class="comment">  /// \brief Get the unique number used to refer to the given selector.</span></div>
+<div class="line"><a name="l00537"></a><span class="lineno">  537</span> <span class="comment"></span>  <a class="code" href="namespaceclang_1_1serialization.html#a79d7521f50e764df679984a7df6bbd9c" title="An ID number that refers to an ObjC selector in an AST file.">serialization::SelectorID</a> <a class="code" href="classclang_1_1ASTWriter.html#adbaacde18a4b68b2646797feeeb58cb7" title="Get the unique number used to refer to the given selector.">getSelectorRef</a>(Selector Sel);</div>
+<div class="line"><a name="l00538"></a><span class="lineno">  538</span> <span class="comment"></span></div>
+<div class="line"><a name="l00539"></a><span class="lineno">  539</span> <span class="comment">  /// \brief Get the unique number used to refer to the given identifier.</span></div>
+<div class="line"><a name="l00540"></a><span class="lineno">  540</span> <span class="comment"></span>  <a class="code" href="namespaceclang_1_1serialization.html#aa7a1e72ed4b332bf9f49c7410e175cad" title="An ID number that refers to an identifier in an AST file.">serialization::IdentID</a> <a class="code" href="classclang_1_1ASTWriter.html#aed5268dca6c9a9913c667c83eb0c969a" title="Get the unique number used to refer to the given identifier.">getIdentifierRef</a>(<span class="keyword">const</span> IdentifierInfo *II);</div>
+<div class="line"><a name="l00541"></a><span class="lineno">  541</span> <span class="comment"></span></div>
+<div class="line"><a name="l00542"></a><span class="lineno">  542</span> <span class="comment">  /// \brief Get the unique number used to refer to the given macro.</span></div>
+<div class="line"><a name="l00543"></a><span class="lineno">  543</span> <span class="comment"></span>  <a class="code" href="namespaceclang_1_1serialization.html#aa45d728abd3462ec39bbf90af1efb7dc" title="An ID number that refers to a macro in an AST file.">serialization::MacroID</a> <a class="code" href="classclang_1_1ASTWriter.html#a95627202c30778f9ab9aa0122ba5b2e9" title="Get the unique number used to refer to the given macro.">getMacroRef</a>(MacroInfo *MI, <span class="keyword">const</span> IdentifierInfo *Name);</div>
+<div class="line"><a name="l00544"></a><span class="lineno">  544</span> <span class="comment"></span></div>
+<div class="line"><a name="l00545"></a><span class="lineno">  545</span> <span class="comment">  /// \brief Determine the ID of an already-emitted macro.</span></div>
+<div class="line"><a name="l00546"></a><span class="lineno">  546</span> <span class="comment"></span>  <a class="code" href="namespaceclang_1_1serialization.html#aa45d728abd3462ec39bbf90af1efb7dc" title="An ID number that refers to a macro in an AST file.">serialization::MacroID</a> <a class="code" href="classclang_1_1ASTWriter.html#a000f54bb2ae6114404cec3ba6f167698" title="Determine the ID of an already-emitted macro.">getMacroID</a>(MacroInfo *MI);</div>
+<div class="line"><a name="l00547"></a><span class="lineno">  547</span> </div>
+<div class="line"><a name="l00548"></a><span class="lineno">  548</span>   uint64_t <a class="code" href="classclang_1_1ASTWriter.html#a39ba9265456c71dd4de079991ba70565">getMacroDirectivesOffset</a>(<span class="keyword">const</span> IdentifierInfo *Name);</div>
+<div class="line"><a name="l00549"></a><span class="lineno">  549</span> <span class="comment"></span></div>
+<div class="line"><a name="l00550"></a><span class="lineno">  550</span> <span class="comment">  /// \brief Emit a reference to a type.</span></div>
+<div class="line"><a name="l00551"></a><span class="lineno">  551</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#a9e2f9e2524f06212afa9fab0d0531dfd" title="Emit a reference to a type.">AddTypeRef</a>(QualType T, <a class="code" href="classclang_1_1ASTWriter.html#a754c65aeb9bb3323c03a7d324c3960ba">RecordDataImpl</a> &Record);</div>
+<div class="line"><a name="l00552"></a><span class="lineno">  552</span> <span class="comment"></span></div>
+<div class="line"><a name="l00553"></a><span class="lineno">  553</span> <span class="comment">  /// \brief Force a type to be emitted and get its ID.</span></div>
+<div class="line"><a name="l00554"></a><span class="lineno">  554</span> <span class="comment"></span>  <a class="code" href="namespaceclang_1_1serialization.html#a0e09d1ee46891ec8fe62b5ab5b583d12" title="An ID number that refers to a type in an AST file.">serialization::TypeID</a> <a class="code" href="classclang_1_1ASTWriter.html#a93453d49353360895bfd02763c8991fe" title="Force a type to be emitted and get its ID.">GetOrCreateTypeID</a>(QualType T);</div>
+<div class="line"><a name="l00555"></a><span class="lineno">  555</span> <span class="comment"></span></div>
+<div class="line"><a name="l00556"></a><span class="lineno">  556</span> <span class="comment">  /// \brief Determine the type ID of an already-emitted type.</span></div>
+<div class="line"><a name="l00557"></a><span class="lineno">  557</span> <span class="comment"></span>  <a class="code" href="namespaceclang_1_1serialization.html#a0e09d1ee46891ec8fe62b5ab5b583d12" title="An ID number that refers to a type in an AST file.">serialization::TypeID</a> <a class="code" href="classclang_1_1ASTWriter.html#a154733e4d02c74cc783bef8fea59d003" title="Determine the type ID of an already-emitted type.">getTypeID</a>(QualType T) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00558"></a><span class="lineno">  558</span> <span class="comment"></span></div>
+<div class="line"><a name="l00559"></a><span class="lineno">  559</span> <span class="comment">  /// \brief Force a type to be emitted and get its index.</span></div>
+<div class="line"><a name="l00560"></a><span class="lineno">  560</span> <span class="comment"></span>  serialization::TypeIdx <a class="code" href="classclang_1_1ASTWriter.html#ab07b5a45d1755c7f00e9f3f12f83400e" title="Force a type to be emitted and get its index.">GetOrCreateTypeIdx</a>( QualType T);</div>
+<div class="line"><a name="l00561"></a><span class="lineno">  561</span> <span class="comment"></span></div>
+<div class="line"><a name="l00562"></a><span class="lineno">  562</span> <span class="comment">  /// \brief Determine the type index of an already-emitted type.</span></div>
+<div class="line"><a name="l00563"></a><span class="lineno">  563</span> <span class="comment"></span>  serialization::TypeIdx <a class="code" href="classclang_1_1ASTWriter.html#ae7969880f9a6598f45427251f408b96f" title="Determine the type index of an already-emitted type.">getTypeIdx</a>(QualType T) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00564"></a><span class="lineno">  564</span> <span class="comment"></span></div>
+<div class="line"><a name="l00565"></a><span class="lineno">  565</span> <span class="comment">  /// \brief Emits a reference to a declarator info.</span></div>
+<div class="line"><a name="l00566"></a><span class="lineno">  566</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#af1cf266346d5bf16ffa56a2e00508cb3" title="Emits a reference to a declarator info.">AddTypeSourceInfo</a>(TypeSourceInfo *TInfo, <a class="code" href="classclang_1_1ASTWriter.html#a754c65aeb9bb3323c03a7d324c3960ba">RecordDataImpl</a> &Record);</div>
+<div class="line"><a name="l00567"></a><span class="lineno">  567</span> <span class="comment"></span></div>
+<div class="line"><a name="l00568"></a><span class="lineno">  568</span> <span class="comment">  /// \brief Emits a type with source-location information.</span></div>
+<div class="line"><a name="l00569"></a><span class="lineno">  569</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#abc1d37cb6621b39ee60c798ebb6702f9" title="Emits a type with source-location information.">AddTypeLoc</a>(TypeLoc TL, <a class="code" href="classclang_1_1ASTWriter.html#a754c65aeb9bb3323c03a7d324c3960ba">RecordDataImpl</a> &Record);</div>
+<div class="line"><a name="l00570"></a><span class="lineno">  570</span> <span class="comment"></span></div>
+<div class="line"><a name="l00571"></a><span class="lineno">  571</span> <span class="comment">  /// \brief Emits a template argument location info.</span></div>
+<div class="line"><a name="l00572"></a><span class="lineno">  572</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#a6db05bef7255eed8f4ca33c5ab2e2214" title="Emits a template argument location info.">AddTemplateArgumentLocInfo</a>(<a class="code" href="classclang_1_1TemplateArgument.html#ad5158465bd96aebe0d9dc44207821220" title="The kind of template argument we're storing.">TemplateArgument::ArgKind</a> <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a>,</div>
+<div class="line"><a name="l00573"></a><span class="lineno">  573</span>                                   <span class="keyword">const</span> TemplateArgumentLocInfo &Arg,</div>
+<div class="line"><a name="l00574"></a><span class="lineno">  574</span>                                   <a class="code" href="classclang_1_1ASTWriter.html#a754c65aeb9bb3323c03a7d324c3960ba">RecordDataImpl</a> &Record);</div>
+<div class="line"><a name="l00575"></a><span class="lineno">  575</span> <span class="comment"></span></div>
+<div class="line"><a name="l00576"></a><span class="lineno">  576</span> <span class="comment">  /// \brief Emits a template argument location.</span></div>
+<div class="line"><a name="l00577"></a><span class="lineno">  577</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#aa0cf51090877033a94f219498ebd7701" title="Emits a template argument location.">AddTemplateArgumentLoc</a>(<span class="keyword">const</span> TemplateArgumentLoc &Arg,</div>
+<div class="line"><a name="l00578"></a><span class="lineno">  578</span>                               <a class="code" href="classclang_1_1ASTWriter.html#a754c65aeb9bb3323c03a7d324c3960ba">RecordDataImpl</a> &Record);</div>
+<div class="line"><a name="l00579"></a><span class="lineno">  579</span> <span class="comment"></span></div>
+<div class="line"><a name="l00580"></a><span class="lineno">  580</span> <span class="comment">  /// \brief Emits an AST template argument list info.</span></div>
+<div class="line"><a name="l00581"></a><span class="lineno">  581</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#ae377b8156ed918c97c6efccd1ebe0fb7" title="Emits an AST template argument list info.">AddASTTemplateArgumentListInfo</a>(</div>
+<div class="line"><a name="l00582"></a><span class="lineno">  582</span>                           <span class="keyword">const</span> ASTTemplateArgumentListInfo *ASTTemplArgList,</div>
+<div class="line"><a name="l00583"></a><span class="lineno">  583</span>                           <a class="code" href="classclang_1_1ASTWriter.html#a754c65aeb9bb3323c03a7d324c3960ba">RecordDataImpl</a> &Record);</div>
+<div class="line"><a name="l00584"></a><span class="lineno">  584</span> <span class="comment"></span></div>
+<div class="line"><a name="l00585"></a><span class="lineno">  585</span> <span class="comment">  /// \brief Emit a reference to a declaration.</span></div>
+<div class="line"><a name="l00586"></a><span class="lineno">  586</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#afaee50073b062fcd0481d85db29e7331" title="Emit a reference to a declaration.">AddDeclRef</a>(<span class="keyword">const</span> Decl *D, <a class="code" href="classclang_1_1ASTWriter.html#a754c65aeb9bb3323c03a7d324c3960ba">RecordDataImpl</a> &Record);</div>
+<div class="line"><a name="l00587"></a><span class="lineno">  587</span> </div>
+<div class="line"><a name="l00588"></a><span class="lineno">  588</span> <span class="comment"></span></div>
+<div class="line"><a name="l00589"></a><span class="lineno">  589</span> <span class="comment">  /// \brief Force a declaration to be emitted and get its ID.</span></div>
+<div class="line"><a name="l00590"></a><span class="lineno">  590</span> <span class="comment"></span>  <a class="code" href="namespaceclang_1_1serialization.html#af3f9c681595246da4bb499bd210e7f36" title="An ID number that refers to a declaration in an AST file.">serialization::DeclID</a> <a class="code" href="classclang_1_1ASTWriter.html#a306af9d1a8b1f41809bdae8abdf368c4" title="Force a declaration to be emitted and get its ID.">GetDeclRef</a>(<span class="keyword">const</span> Decl *D);</div>
+<div class="line"><a name="l00591"></a><span class="lineno">  591</span> <span class="comment"></span></div>
+<div class="line"><a name="l00592"></a><span class="lineno">  592</span> <span class="comment">  /// \brief Determine the declaration ID of an already-emitted</span></div>
+<div class="line"><a name="l00593"></a><span class="lineno">  593</span> <span class="comment">  /// declaration.</span></div>
+<div class="line"><a name="l00594"></a><span class="lineno">  594</span> <span class="comment"></span>  <a class="code" href="namespaceclang_1_1serialization.html#af3f9c681595246da4bb499bd210e7f36" title="An ID number that refers to a declaration in an AST file.">serialization::DeclID</a> <a class="code" href="classclang_1_1ASTWriter.html#ab3e4506e20f406e726bcaaa1f509ea15" title="Determine the declaration ID of an already-emitted declaration.">getDeclID</a>(<span class="keyword">const</span> Decl *D);</div>
+<div class="line"><a name="l00595"></a><span class="lineno">  595</span> <span class="comment"></span></div>
+<div class="line"><a name="l00596"></a><span class="lineno">  596</span> <span class="comment">  /// \brief Emit a declaration name.</span></div>
+<div class="line"><a name="l00597"></a><span class="lineno">  597</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#a839201652a1bb65e2d7956b668454999" title="Emit a declaration name.">AddDeclarationName</a>(DeclarationName Name, <a class="code" href="classclang_1_1ASTWriter.html#a754c65aeb9bb3323c03a7d324c3960ba">RecordDataImpl</a> &Record);</div>
+<div class="line"><a name="l00598"></a><span class="lineno">  598</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#aa7ec4ecc9d0f7ad7efc9a074fec2d1dd">AddDeclarationNameLoc</a>(<span class="keyword">const</span> DeclarationNameLoc &DNLoc,</div>
+<div class="line"><a name="l00599"></a><span class="lineno">  599</span>                              DeclarationName Name, <a class="code" href="classclang_1_1ASTWriter.html#a754c65aeb9bb3323c03a7d324c3960ba">RecordDataImpl</a> &Record);</div>
+<div class="line"><a name="l00600"></a><span class="lineno">  600</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#a43f3d2af2435c5f52aac51297dd349ca">AddDeclarationNameInfo</a>(<span class="keyword">const</span> DeclarationNameInfo &NameInfo,</div>
+<div class="line"><a name="l00601"></a><span class="lineno">  601</span>                               <a class="code" href="classclang_1_1ASTWriter.html#a754c65aeb9bb3323c03a7d324c3960ba">RecordDataImpl</a> &Record);</div>
+<div class="line"><a name="l00602"></a><span class="lineno">  602</span> </div>
+<div class="line"><a name="l00603"></a><span class="lineno">  603</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#acff888898c877a7ca130a85f3cbaa3f6">AddQualifierInfo</a>(<span class="keyword">const</span> QualifierInfo &Info, <a class="code" href="classclang_1_1ASTWriter.html#a754c65aeb9bb3323c03a7d324c3960ba">RecordDataImpl</a> &Record);</div>
+<div class="line"><a name="l00604"></a><span class="lineno">  604</span> <span class="comment"></span></div>
+<div class="line"><a name="l00605"></a><span class="lineno">  605</span> <span class="comment">  /// \brief Emit a nested name specifier.</span></div>
+<div class="line"><a name="l00606"></a><span class="lineno">  606</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#ae4e19f94e4667e62c429a8b4c770a6c5" title="Emit a nested name specifier.">AddNestedNameSpecifier</a>(NestedNameSpecifier *NNS, <a class="code" href="classclang_1_1ASTWriter.html#a754c65aeb9bb3323c03a7d324c3960ba">RecordDataImpl</a> &Record);</div>
+<div class="line"><a name="l00607"></a><span class="lineno">  607</span> <span class="comment"></span></div>
+<div class="line"><a name="l00608"></a><span class="lineno">  608</span> <span class="comment">  /// \brief Emit a nested name specifier with source-location information.</span></div>
+<div class="line"><a name="l00609"></a><span class="lineno">  609</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#a56148750b4cf442e6b271da1a17ef73a" title="Emit a nested name specifier with source-location information.">AddNestedNameSpecifierLoc</a>(NestedNameSpecifierLoc NNS,</div>
+<div class="line"><a name="l00610"></a><span class="lineno">  610</span>                                  <a class="code" href="classclang_1_1ASTWriter.html#a754c65aeb9bb3323c03a7d324c3960ba">RecordDataImpl</a> &Record);</div>
+<div class="line"><a name="l00611"></a><span class="lineno">  611</span> <span class="comment"></span></div>
+<div class="line"><a name="l00612"></a><span class="lineno">  612</span> <span class="comment">  /// \brief Emit a template name.</span></div>
+<div class="line"><a name="l00613"></a><span class="lineno">  613</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#a068020724c596a5140de3f370517398e" title="Emit a template name.">AddTemplateName</a>(TemplateName Name, <a class="code" href="classclang_1_1ASTWriter.html#a754c65aeb9bb3323c03a7d324c3960ba">RecordDataImpl</a> &Record);</div>
+<div class="line"><a name="l00614"></a><span class="lineno">  614</span> <span class="comment"></span></div>
+<div class="line"><a name="l00615"></a><span class="lineno">  615</span> <span class="comment">  /// \brief Emit a template argument.</span></div>
+<div class="line"><a name="l00616"></a><span class="lineno">  616</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#aada2677b9c31f5876ab1f431ccebb224" title="Emit a template argument.">AddTemplateArgument</a>(<span class="keyword">const</span> TemplateArgument &Arg, <a class="code" href="classclang_1_1ASTWriter.html#a754c65aeb9bb3323c03a7d324c3960ba">RecordDataImpl</a> &Record);</div>
+<div class="line"><a name="l00617"></a><span class="lineno">  617</span> <span class="comment"></span></div>
+<div class="line"><a name="l00618"></a><span class="lineno">  618</span> <span class="comment">  /// \brief Emit a template parameter list.</span></div>
+<div class="line"><a name="l00619"></a><span class="lineno">  619</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#ae66576436b4361425f6fb1ce2f942420" title="Emit a template parameter list.">AddTemplateParameterList</a>(<span class="keyword">const</span> TemplateParameterList *TemplateParams,</div>
+<div class="line"><a name="l00620"></a><span class="lineno">  620</span>                                 <a class="code" href="classclang_1_1ASTWriter.html#a754c65aeb9bb3323c03a7d324c3960ba">RecordDataImpl</a> &Record);</div>
+<div class="line"><a name="l00621"></a><span class="lineno">  621</span> <span class="comment"></span></div>
+<div class="line"><a name="l00622"></a><span class="lineno">  622</span> <span class="comment">  /// \brief Emit a template argument list.</span></div>
+<div class="line"><a name="l00623"></a><span class="lineno">  623</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#a6f611bb66486071993fa712ac82ffd98" title="Emit a template argument list.">AddTemplateArgumentList</a>(<span class="keyword">const</span> TemplateArgumentList *TemplateArgs,</div>
+<div class="line"><a name="l00624"></a><span class="lineno">  624</span>                                 <a class="code" href="classclang_1_1ASTWriter.html#a754c65aeb9bb3323c03a7d324c3960ba">RecordDataImpl</a> &Record);</div>
+<div class="line"><a name="l00625"></a><span class="lineno">  625</span> <span class="comment"></span></div>
+<div class="line"><a name="l00626"></a><span class="lineno">  626</span> <span class="comment">  /// \brief Emit a UnresolvedSet structure.</span></div>
+<div class="line"><a name="l00627"></a><span class="lineno">  627</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#a55be613ce33673097336eb6f814d47b5" title="Emit a UnresolvedSet structure.">AddUnresolvedSet</a>(<span class="keyword">const</span> ASTUnresolvedSet &Set, <a class="code" href="classclang_1_1ASTWriter.html#a754c65aeb9bb3323c03a7d324c3960ba">RecordDataImpl</a> &Record);</div>
+<div class="line"><a name="l00628"></a><span class="lineno">  628</span> <span class="comment"></span></div>
+<div class="line"><a name="l00629"></a><span class="lineno">  629</span> <span class="comment">  /// \brief Emit a C++ base specifier.</span></div>
+<div class="line"><a name="l00630"></a><span class="lineno">  630</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#a7e5578e20007f8f4a126357511b866f3" title="Emit a C++ base specifier.">AddCXXBaseSpecifier</a>(<span class="keyword">const</span> CXXBaseSpecifier &<a class="code" href="classclang_1_1Base.html">Base</a>,</div>
+<div class="line"><a name="l00631"></a><span class="lineno">  631</span>                            <a class="code" href="classclang_1_1ASTWriter.html#a754c65aeb9bb3323c03a7d324c3960ba">RecordDataImpl</a> &Record);</div>
+<div class="line"><a name="l00632"></a><span class="lineno">  632</span> <span class="comment"></span></div>
+<div class="line"><a name="l00633"></a><span class="lineno">  633</span> <span class="comment">  /// \brief Emit a CXXCtorInitializer array.</span></div>
+<div class="line"><a name="l00634"></a><span class="lineno">  634</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#a3d3a6be1f6a1c01803552a59f6974c30" title="Emit a CXXCtorInitializer array.">AddCXXCtorInitializers</a>(</div>
+<div class="line"><a name="l00635"></a><span class="lineno">  635</span>                              <span class="keyword">const</span> CXXCtorInitializer * <span class="keyword">const</span> *CtorInitializers,</div>
+<div class="line"><a name="l00636"></a><span class="lineno">  636</span>                              <span class="keywordtype">unsigned</span> NumCtorInitializers,</div>
+<div class="line"><a name="l00637"></a><span class="lineno">  637</span>                              <a class="code" href="classclang_1_1ASTWriter.html#a754c65aeb9bb3323c03a7d324c3960ba">RecordDataImpl</a> &Record);</div>
+<div class="line"><a name="l00638"></a><span class="lineno">  638</span> </div>
+<div class="line"><a name="l00639"></a><span class="lineno">  639</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#a7ca50fa31c8384ecd1fa7a3f216f67a3">AddCXXDefinitionData</a>(<span class="keyword">const</span> CXXRecordDecl *D, <a class="code" href="classclang_1_1ASTWriter.html#a754c65aeb9bb3323c03a7d324c3960ba">RecordDataImpl</a> &Record);</div>
+<div class="line"><a name="l00640"></a><span class="lineno">  640</span> <span class="comment"></span></div>
+<div class="line"><a name="l00641"></a><span class="lineno">  641</span> <span class="comment">  /// \brief Add a string to the given record.</span></div>
+<div class="line"><a name="l00642"></a><span class="lineno">  642</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#a70ad062608ce12b8440561cf633d9942" title="Add a string to the given record.">AddString</a>(StringRef Str, <a class="code" href="classclang_1_1ASTWriter.html#a754c65aeb9bb3323c03a7d324c3960ba">RecordDataImpl</a> &Record);</div>
+<div class="line"><a name="l00643"></a><span class="lineno">  643</span> <span class="comment"></span></div>
+<div class="line"><a name="l00644"></a><span class="lineno">  644</span> <span class="comment">  /// \brief Add a version tuple to the given record</span></div>
+<div class="line"><a name="l00645"></a><span class="lineno">  645</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#a446c6ac9b400823bfcddedd6fe80d4bd" title="Add a version tuple to the given record.">AddVersionTuple</a>(<span class="keyword">const</span> VersionTuple &Version, <a class="code" href="classclang_1_1ASTWriter.html#a754c65aeb9bb3323c03a7d324c3960ba">RecordDataImpl</a> &Record);</div>
+<div class="line"><a name="l00646"></a><span class="lineno">  646</span> <span class="comment"></span></div>
+<div class="line"><a name="l00647"></a><span class="lineno">  647</span> <span class="comment">  /// \brief Mark a declaration context as needing an update.</span></div>
+<div class="line"><a name="l00648"></a><span class="lineno"><a class="code" href="classclang_1_1ASTWriter.html#acf64eee8a717d23035f3baeb95fa0bbc">  648</a></span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#acf64eee8a717d23035f3baeb95fa0bbc" title="Mark a declaration context as needing an update.">AddUpdatedDeclContext</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1DeclContext.html">DeclContext</a> *DC) {</div>
+<div class="line"><a name="l00649"></a><span class="lineno">  649</span>     UpdatedDeclContexts.insert(DC);</div>
+<div class="line"><a name="l00650"></a><span class="lineno">  650</span>   }</div>
+<div class="line"><a name="l00651"></a><span class="lineno">  651</span> </div>
+<div class="line"><a name="l00652"></a><span class="lineno"><a class="code" href="classclang_1_1ASTWriter.html#a7f9a0c72e6282bd1b95e8ea1ea666c5f">  652</a></span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#a7f9a0c72e6282bd1b95e8ea1ea666c5f">RewriteDecl</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Decl.html">Decl</a> *D) {</div>
+<div class="line"><a name="l00653"></a><span class="lineno">  653</span>     DeclsToRewrite.insert(D);</div>
+<div class="line"><a name="l00654"></a><span class="lineno">  654</span>   }</div>
+<div class="line"><a name="l00655"></a><span class="lineno">  655</span> </div>
+<div class="line"><a name="l00656"></a><span class="lineno"><a class="code" href="classclang_1_1ASTWriter.html#ac0ac757018eb2670be57daa84a6dc244">  656</a></span>   <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ASTWriter.html#ac0ac757018eb2670be57daa84a6dc244">isRewritten</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Decl.html">Decl</a> *D)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00657"></a><span class="lineno">  657</span>     <span class="keywordflow">return</span> DeclsToRewrite.count(D);</div>
+<div class="line"><a name="l00658"></a><span class="lineno">  658</span>   }</div>
+<div class="line"><a name="l00659"></a><span class="lineno">  659</span> <span class="comment"></span></div>
+<div class="line"><a name="l00660"></a><span class="lineno">  660</span> <span class="comment">  /// \brief Infer the submodule ID that contains an entity at the given</span></div>
+<div class="line"><a name="l00661"></a><span class="lineno">  661</span> <span class="comment">  /// source location.</span></div>
+<div class="line"><a name="l00662"></a><span class="lineno">  662</span> <span class="comment"></span>  <a class="code" href="namespaceclang_1_1serialization.html#a4bd106e4761bfc2a1b2ba41b391d3073" title="An ID number that refers to a submodule in a module file.">serialization::SubmoduleID</a> <a class="code" href="classclang_1_1ASTWriter.html#a17868a1a7f8c1c5b7e678d7d642d1d79" title="Infer the submodule ID that contains an entity at the given source location.">inferSubmoduleIDFromLocation</a>(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc);</div>
+<div class="line"><a name="l00663"></a><span class="lineno">  663</span> <span class="comment"></span></div>
+<div class="line"><a name="l00664"></a><span class="lineno">  664</span> <span class="comment">  /// \brief Retrieve a submodule ID for this module.</span></div>
+<div class="line"><a name="l00665"></a><span class="lineno">  665</span> <span class="comment">  /// Returns 0 If no ID has been associated with the module.</span></div>
+<div class="line"><a name="l00666"></a><span class="lineno">  666</span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1ASTWriter.html#a02c4e9149e1dfad054bfa6b64cb4aa0a" title="Retrieve a submodule ID for this module. Returns 0 If no ID has been associated with the module...">getExistingSubmoduleID</a>(<a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Mod) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00667"></a><span class="lineno">  667</span> <span class="comment"></span></div>
+<div class="line"><a name="l00668"></a><span class="lineno">  668</span> <span class="comment">  /// \brief Note that the identifier II occurs at the given offset</span></div>
+<div class="line"><a name="l00669"></a><span class="lineno">  669</span> <span class="comment">  /// within the identifier table.</span></div>
+<div class="line"><a name="l00670"></a><span class="lineno">  670</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#af9ad74feec46809396e6386d521acfa4" title="Note that the identifier II occurs at the given offset within the identifier table.">SetIdentifierOffset</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *II, uint32_t <a class="code" href="namespaceclang_1_1io.html#ae0bbdf4a2b076935546931e52d48d29b">Offset</a>);</div>
+<div class="line"><a name="l00671"></a><span class="lineno">  671</span> <span class="comment"></span></div>
+<div class="line"><a name="l00672"></a><span class="lineno">  672</span> <span class="comment">  /// \brief Note that the selector Sel occurs at the given offset</span></div>
+<div class="line"><a name="l00673"></a><span class="lineno">  673</span> <span class="comment">  /// within the method pool/selector table.</span></div>
+<div class="line"><a name="l00674"></a><span class="lineno">  674</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#af0e3bf199fbf45062927a369b96a579c" title="Note that the selector Sel occurs at the given offset within the method pool/selector table...">SetSelectorOffset</a>(<a class="code" href="classclang_1_1Selector.html" title="Smart pointer class that efficiently represents Objective-C method names.">Selector</a> Sel, uint32_t <a class="code" href="namespaceclang_1_1io.html#ae0bbdf4a2b076935546931e52d48d29b">Offset</a>);</div>
+<div class="line"><a name="l00675"></a><span class="lineno">  675</span> <span class="comment"></span></div>
+<div class="line"><a name="l00676"></a><span class="lineno">  676</span> <span class="comment">  /// \brief Add the given statement or expression to the queue of</span></div>
+<div class="line"><a name="l00677"></a><span class="lineno">  677</span> <span class="comment">  /// statements to emit.</span></div>
+<div class="line"><a name="l00678"></a><span class="lineno">  678</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00679"></a><span class="lineno">  679</span> <span class="comment">  /// This routine should be used when emitting types and declarations</span></div>
+<div class="line"><a name="l00680"></a><span class="lineno">  680</span> <span class="comment">  /// that have expressions as part of their formulation. Once the</span></div>
+<div class="line"><a name="l00681"></a><span class="lineno">  681</span> <span class="comment">  /// type or declaration has been written, call FlushStmts() to write</span></div>
+<div class="line"><a name="l00682"></a><span class="lineno">  682</span> <span class="comment">  /// the corresponding statements just after the type or</span></div>
+<div class="line"><a name="l00683"></a><span class="lineno">  683</span> <span class="comment">  /// declaration.</span></div>
+<div class="line"><a name="l00684"></a><span class="lineno"><a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7">  684</a></span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(<a class="code" href="classclang_1_1Stmt.html">Stmt</a> *<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>) {</div>
+<div class="line"><a name="l00685"></a><span class="lineno">  685</span>       CollectedStmts->push_back(S);</div>
+<div class="line"><a name="l00686"></a><span class="lineno">  686</span>   }</div>
+<div class="line"><a name="l00687"></a><span class="lineno">  687</span> <span class="comment"></span></div>
+<div class="line"><a name="l00688"></a><span class="lineno">  688</span> <span class="comment">  /// \brief Flush all of the statements and expressions that have</span></div>
+<div class="line"><a name="l00689"></a><span class="lineno">  689</span> <span class="comment">  /// been added to the queue via AddStmt().</span></div>
+<div class="line"><a name="l00690"></a><span class="lineno">  690</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#a355ab7f928f5c430a412c2bc5bde7abb" title="Flush all of the statements and expressions that have been added to the queue via AddStmt()...">FlushStmts</a>();</div>
+<div class="line"><a name="l00691"></a><span class="lineno">  691</span> <span class="comment"></span></div>
+<div class="line"><a name="l00692"></a><span class="lineno">  692</span> <span class="comment">  /// \brief Flush all of the C++ base specifier sets that have been added</span></div>
+<div class="line"><a name="l00693"></a><span class="lineno">  693</span> <span class="comment">  /// via \c AddCXXBaseSpecifiersRef().</span></div>
+<div class="line"><a name="l00694"></a><span class="lineno">  694</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#aae3cfa96872dfccf7a8c3c382a07914a" title="Flush all of the C++ base specifier sets that have been added via AddCXXBaseSpecifiersRef().">FlushCXXBaseSpecifiers</a>();</div>
+<div class="line"><a name="l00695"></a><span class="lineno">  695</span> <span class="comment"></span></div>
+<div class="line"><a name="l00696"></a><span class="lineno">  696</span> <span class="comment">  /// \brief Record an ID for the given switch-case statement.</span></div>
+<div class="line"><a name="l00697"></a><span class="lineno">  697</span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1ASTWriter.html#ab0088b93bfb6304382aa44f1319e7336" title="Record an ID for the given switch-case statement.">RecordSwitchCaseID</a>(<a class="code" href="classclang_1_1SwitchCase.html">SwitchCase</a> *<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>);</div>
+<div class="line"><a name="l00698"></a><span class="lineno">  698</span> <span class="comment"></span></div>
+<div class="line"><a name="l00699"></a><span class="lineno">  699</span> <span class="comment">  /// \brief Retrieve the ID for the given switch-case statement.</span></div>
+<div class="line"><a name="l00700"></a><span class="lineno">  700</span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1ASTWriter.html#a39675d070a23859aa4d807d8ef84ce85" title="Retrieve the ID for the given switch-case statement.">getSwitchCaseID</a>(<a class="code" href="classclang_1_1SwitchCase.html">SwitchCase</a> *<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>);</div>
+<div class="line"><a name="l00701"></a><span class="lineno">  701</span> </div>
+<div class="line"><a name="l00702"></a><span class="lineno">  702</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#a74f3caa6b72907ac0ccd7270a4634710">ClearSwitchCaseIDs</a>();</div>
+<div class="line"><a name="l00703"></a><span class="lineno">  703</span> </div>
+<div class="line"><a name="l00704"></a><span class="lineno"><a class="code" href="classclang_1_1ASTWriter.html#a376c156e7bb6697ef12d5e22183bf2ff">  704</a></span>   <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1ASTWriter.html#a376c156e7bb6697ef12d5e22183bf2ff">getDeclParmVarAbbrev</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> DeclParmVarAbbrev; }</div>
+<div class="line"><a name="l00705"></a><span class="lineno"><a class="code" href="classclang_1_1ASTWriter.html#a6c377128c63e244e4c68e866c550a25a">  705</a></span>   <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1ASTWriter.html#a6c377128c63e244e4c68e866c550a25a">getDeclRefExprAbbrev</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> DeclRefExprAbbrev; }</div>
+<div class="line"><a name="l00706"></a><span class="lineno"><a class="code" href="classclang_1_1ASTWriter.html#a2dc5710b45b4c8f1004dd30c82394832">  706</a></span>   <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1ASTWriter.html#a2dc5710b45b4c8f1004dd30c82394832">getCharacterLiteralAbbrev</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> CharacterLiteralAbbrev; }</div>
+<div class="line"><a name="l00707"></a><span class="lineno"><a class="code" href="classclang_1_1ASTWriter.html#aa89040f74be8cbdc1c6f025ec857e081">  707</a></span>   <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1ASTWriter.html#aa89040f74be8cbdc1c6f025ec857e081">getDeclRecordAbbrev</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> DeclRecordAbbrev; }</div>
+<div class="line"><a name="l00708"></a><span class="lineno"><a class="code" href="classclang_1_1ASTWriter.html#aab6885e9be3b4f74e4ba2f573501e645">  708</a></span>   <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1ASTWriter.html#aab6885e9be3b4f74e4ba2f573501e645">getIntegerLiteralAbbrev</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> IntegerLiteralAbbrev; }</div>
+<div class="line"><a name="l00709"></a><span class="lineno"><a class="code" href="classclang_1_1ASTWriter.html#a8d1c6a0f50f11f02e6817539461423ef">  709</a></span>   <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1ASTWriter.html#a8d1c6a0f50f11f02e6817539461423ef">getDeclTypedefAbbrev</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> DeclTypedefAbbrev; }</div>
+<div class="line"><a name="l00710"></a><span class="lineno"><a class="code" href="classclang_1_1ASTWriter.html#a295c2e898bc1d169e6cc77c0cd0d9e90">  710</a></span>   <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1ASTWriter.html#a295c2e898bc1d169e6cc77c0cd0d9e90">getDeclVarAbbrev</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> DeclVarAbbrev; }</div>
+<div class="line"><a name="l00711"></a><span class="lineno"><a class="code" href="classclang_1_1ASTWriter.html#a6634bba94d3891d41266761899bf2c91">  711</a></span>   <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1ASTWriter.html#a6634bba94d3891d41266761899bf2c91">getDeclFieldAbbrev</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> DeclFieldAbbrev; }</div>
+<div class="line"><a name="l00712"></a><span class="lineno"><a class="code" href="classclang_1_1ASTWriter.html#a0e38c852112e100a3e668506f9710018">  712</a></span>   <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1ASTWriter.html#a0e38c852112e100a3e668506f9710018">getDeclEnumAbbrev</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> DeclEnumAbbrev; }</div>
+<div class="line"><a name="l00713"></a><span class="lineno"><a class="code" href="classclang_1_1ASTWriter.html#adff38063f17ef20ce16026c38dd61e4a">  713</a></span>   <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1ASTWriter.html#adff38063f17ef20ce16026c38dd61e4a">getDeclObjCIvarAbbrev</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> DeclObjCIvarAbbrev; }</div>
+<div class="line"><a name="l00714"></a><span class="lineno">  714</span> </div>
+<div class="line"><a name="l00715"></a><span class="lineno"><a class="code" href="classclang_1_1ASTWriter.html#af4c549899159bf630a68d33c1b5c57a6">  715</a></span>   <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ASTWriter.html#af4c549899159bf630a68d33c1b5c57a6">hasChain</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Chain; }</div>
+<div class="line"><a name="l00716"></a><span class="lineno">  716</span> </div>
+<div class="line"><a name="l00717"></a><span class="lineno">  717</span>   <span class="comment">// ASTDeserializationListener implementation</span></div>
+<div class="line"><a name="l00718"></a><span class="lineno">  718</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#a0930b57b8bfb92986f1a0bb30c9976c8" title="The ASTReader was initialized.">ReaderInitialized</a>(<a class="code" href="classclang_1_1ASTReader.html" title="Reads an AST files chain containing the contents of a translation unit.">ASTReader</a> *Reader);</div>
+<div class="line"><a name="l00719"></a><span class="lineno">  719</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#a82b7ea0d29b7329d8311aa208a0f9fbb" title="An identifier was deserialized from the AST file.">IdentifierRead</a>(<a class="code" href="namespaceclang_1_1serialization.html#aa7a1e72ed4b332bf9f49c7410e175cad" title="An ID number that refers to an identifier in an AST file.">serialization::IdentID</a> <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>, <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *II);</div>
+<div class="line"><a name="l00720"></a><span class="lineno">  720</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#a64825f0633df5c2241aca9ac48a451dd" title="A macro was read from the AST file.">MacroRead</a>(<a class="code" href="namespaceclang_1_1serialization.html#aa45d728abd3462ec39bbf90af1efb7dc" title="An ID number that refers to a macro in an AST file.">serialization::MacroID</a> <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>, <a class="code" href="classclang_1_1MacroInfo.html" title="Encapsulates the data about a macro definition (e.g. its tokens).">MacroInfo</a> *MI);</div>
+<div class="line"><a name="l00721"></a><span class="lineno">  721</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#a278bbe28da94971a71471123fa9cce1e" title="A type was deserialized from the AST file. The ID here has the qualifier bits already removed...">TypeRead</a>(<a class="code" href="classclang_1_1serialization_1_1TypeIdx.html" title="A type index; the type ID with the qualifier bits removed.">serialization::TypeIdx</a> Idx, <a class="code" href="classclang_1_1QualType.html">QualType</a> T);</div>
+<div class="line"><a name="l00722"></a><span class="lineno">  722</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#a20146470970403f0d0ec3bde798ca897" title="A selector was read from the AST file.">SelectorRead</a>(<a class="code" href="namespaceclang_1_1serialization.html#a79d7521f50e764df679984a7df6bbd9c" title="An ID number that refers to an ObjC selector in an AST file.">serialization::SelectorID</a> <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>, <a class="code" href="classclang_1_1Selector.html" title="Smart pointer class that efficiently represents Objective-C method names.">Selector</a> Sel);</div>
+<div class="line"><a name="l00723"></a><span class="lineno">  723</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#a0191afa856cb3920c561327fb8268e05" title="A macro definition was read from the AST file.">MacroDefinitionRead</a>(<a class="code" href="namespaceclang_1_1serialization.html#a69b0c2eae71e4e80def76ebd48d75957" title="An ID number that refers to an entity in the detailed preprocessing record.">serialization::PreprocessedEntityID</a> <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>,</div>
+<div class="line"><a name="l00724"></a><span class="lineno">  724</span>                            <a class="code" href="classclang_1_1MacroDefinition.html" title="Record the location of a macro definition.">MacroDefinition</a> *MD);</div>
+<div class="line"><a name="l00725"></a><span class="lineno">  725</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#a3be9ec2e2dad7a646d572b0182edec4f" title="A module definition was read from the AST file.">ModuleRead</a>(<a class="code" href="namespaceclang_1_1serialization.html#a4bd106e4761bfc2a1b2ba41b391d3073" title="An ID number that refers to a submodule in a module file.">serialization::SubmoduleID</a> <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>, <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Mod);</div>
+<div class="line"><a name="l00726"></a><span class="lineno">  726</span> </div>
+<div class="line"><a name="l00727"></a><span class="lineno">  727</span>   <span class="comment">// ASTMutationListener implementation.</span></div>
+<div class="line"><a name="l00728"></a><span class="lineno">  728</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#a2b3648c3d683cff5770043a82f062363" title="A new TagDecl definition was completed.">CompletedTagDefinition</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1TagDecl.html" title="TagDecl - Represents the declaration of a struct/union/class/enum.">TagDecl</a> *D);</div>
+<div class="line"><a name="l00729"></a><span class="lineno">  729</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#ac0436610dc6bb0c8ef99536688149d8d" title="A new declaration with name has been added to a DeclContext.">AddedVisibleDecl</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1DeclContext.html">DeclContext</a> *DC, <span class="keyword">const</span> <a class="code" href="classclang_1_1Decl.html">Decl</a> *D);</div>
+<div class="line"><a name="l00730"></a><span class="lineno">  730</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#afddcffa28e8e6cfd3479deca002c7a69" title="An implicit member was added after the definition was completed.">AddedCXXImplicitMember</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *RD, <span class="keyword">const</span> <a class="code" href="classclang_1_1Decl.html">Decl</a> *D);</div>
+<div class="line"><a name="l00731"></a><span class="lineno">  731</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#af1e4678aaac73867fd70a1fedeaff0f7" title="A template specialization (or partial one) was added to the template declaration.">AddedCXXTemplateSpecialization</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ClassTemplateDecl.html" title="Declaration of a class template.">ClassTemplateDecl</a> *TD,</div>
+<div class="line"><a name="l00732"></a><span class="lineno">  732</span>                                     <span class="keyword">const</span> <a class="code" href="classclang_1_1ClassTemplateSpecializationDecl.html" title="Represents a class template specialization, which refers to a class template with a given set of temp...">ClassTemplateSpecializationDecl</a> *D);</div>
+<div class="line"><a name="l00733"></a><span class="lineno">  733</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span></div>
+<div class="line"><a name="l00734"></a><span class="lineno">  734</span>   <a class="code" href="classclang_1_1ASTWriter.html#af1e4678aaac73867fd70a1fedeaff0f7" title="A template specialization (or partial one) was added to the template declaration.">AddedCXXTemplateSpecialization</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1VarTemplateDecl.html" title="Declaration of a variable template.">VarTemplateDecl</a> *TD,</div>
+<div class="line"><a name="l00735"></a><span class="lineno">  735</span>                                  <span class="keyword">const</span> <a class="code" href="classclang_1_1VarTemplateSpecializationDecl.html" title="Represents a variable template specialization, which refers to a variable template with a given set o...">VarTemplateSpecializationDecl</a> *D);</div>
+<div class="line"><a name="l00736"></a><span class="lineno">  736</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#af1e4678aaac73867fd70a1fedeaff0f7" title="A template specialization (or partial one) was added to the template declaration.">AddedCXXTemplateSpecialization</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1FunctionTemplateDecl.html" title="Declaration of a template function.">FunctionTemplateDecl</a> *TD,</div>
+<div class="line"><a name="l00737"></a><span class="lineno">  737</span>                                               <span class="keyword">const</span> <a class="code" href="classclang_1_1FunctionDecl.html">FunctionDecl</a> *D);</div>
+<div class="line"><a name="l00738"></a><span class="lineno">  738</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#a9447e7d02397c11ec420916488e7b1f3" title="A function's return type has been deduced.">DeducedReturnType</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1FunctionDecl.html">FunctionDecl</a> *FD, <a class="code" href="classclang_1_1QualType.html">QualType</a> ReturnType);</div>
+<div class="line"><a name="l00739"></a><span class="lineno">  739</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#aa7f60a1bd3d8954e1f0ed3e0f46351ad" title="An implicit member got a definition.">CompletedImplicitDefinition</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1FunctionDecl.html">FunctionDecl</a> *D);</div>
+<div class="line"><a name="l00740"></a><span class="lineno">  740</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#a4398cce80258b0110bfad47d78686a54" title="A static data member was implicitly instantiated.">StaticDataMemberInstantiated</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *D);</div>
+<div class="line"><a name="l00741"></a><span class="lineno">  741</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#a3f922e36c6a550ec72a9e27bdf63af3b" title="A new objc category class was added for an interface.">AddedObjCCategoryToInterface</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCCategoryDecl.html">ObjCCategoryDecl</a> *CatD,</div>
+<div class="line"><a name="l00742"></a><span class="lineno">  742</span>                                             <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *IFD);</div>
+<div class="line"><a name="l00743"></a><span class="lineno">  743</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#a94098d76c2774be7f889c7b6a713f88c" title="A objc class extension redeclared or introduced a property.">AddedObjCPropertyInClassExtension</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCPropertyDecl.html" title="Represents one property declaration in an Objective-C interface.">ObjCPropertyDecl</a> *Prop,</div>
+<div class="line"><a name="l00744"></a><span class="lineno">  744</span>                                             <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCPropertyDecl.html" title="Represents one property declaration in an Objective-C interface.">ObjCPropertyDecl</a> *OrigProp,</div>
+<div class="line"><a name="l00745"></a><span class="lineno">  745</span>                                             <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCCategoryDecl.html">ObjCCategoryDecl</a> *ClassExt);</div>
+<div class="line"><a name="l00746"></a><span class="lineno">  746</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTWriter.html#a9880de2a4f20f3419eccc01ddbadc189" title="A declaration is marked used which was not previously marked used.">DeclarationMarkedUsed</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Decl.html">Decl</a> *D) LLVM_OVERRIDE;</div>
+<div class="line"><a name="l00747"></a><span class="lineno">  747</span> };</div>
+<div class="line"><a name="l00748"></a><span class="lineno">  748</span> <span class="comment"></span></div>
+<div class="line"><a name="l00749"></a><span class="lineno">  749</span> <span class="comment">/// \brief AST and semantic-analysis consumer that generates a</span></div>
+<div class="line"><a name="l00750"></a><span class="lineno">  750</span> <span class="comment">/// precompiled header from the parsed source code.</span></div>
+<div class="line"><a name="l00751"></a><span class="lineno"><a class="code" href="classclang_1_1PCHGenerator.html">  751</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1PCHGenerator.html" title="AST and semantic-analysis consumer that generates a precompiled header from the parsed source code...">PCHGenerator</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1SemaConsumer.html" title="An abstract interface that should be implemented by clients that read ASTs and then require further s...">SemaConsumer</a> {</div>
+<div class="line"><a name="l00752"></a><span class="lineno">  752</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP;</div>
+<div class="line"><a name="l00753"></a><span class="lineno">  753</span>   std::string OutputFile;</div>
+<div class="line"><a name="l00754"></a><span class="lineno">  754</span>   <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">clang::Module</a> *<a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a>;</div>
+<div class="line"><a name="l00755"></a><span class="lineno">  755</span>   std::string isysroot;</div>
+<div class="line"><a name="l00756"></a><span class="lineno">  756</span>   raw_ostream *Out;</div>
+<div class="line"><a name="l00757"></a><span class="lineno">  757</span>   <a class="code" href="classclang_1_1Sema.html" title="Sema - This implements semantic analysis and AST building for C.">Sema</a> *SemaPtr;</div>
+<div class="line"><a name="l00758"></a><span class="lineno">  758</span>   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<char, 128></a> Buffer;</div>
+<div class="line"><a name="l00759"></a><span class="lineno">  759</span>   llvm::BitstreamWriter Stream;</div>
+<div class="line"><a name="l00760"></a><span class="lineno">  760</span>   <a class="code" href="classclang_1_1ASTWriter.html" title="Writes an AST file containing the contents of a translation unit.">ASTWriter</a> Writer;</div>
+<div class="line"><a name="l00761"></a><span class="lineno">  761</span>   <span class="keywordtype">bool</span> AllowASTWithErrors;</div>
+<div class="line"><a name="l00762"></a><span class="lineno">  762</span>   <span class="keywordtype">bool</span> HasEmittedPCH;</div>
+<div class="line"><a name="l00763"></a><span class="lineno">  763</span> </div>
+<div class="line"><a name="l00764"></a><span class="lineno">  764</span> <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00765"></a><span class="lineno"><a class="code" href="classclang_1_1PCHGenerator.html#a81dd5221024944d03a1e9b54c9a22901">  765</a></span>   <a class="code" href="classclang_1_1ASTWriter.html" title="Writes an AST file containing the contents of a translation unit.">ASTWriter</a> &<a class="code" href="classclang_1_1PCHGenerator.html#a81dd5221024944d03a1e9b54c9a22901">getWriter</a>() { <span class="keywordflow">return</span> Writer; }</div>
+<div class="line"><a name="l00766"></a><span class="lineno"><a class="code" href="classclang_1_1PCHGenerator.html#afd106f0d5e80918635e6c3c3d9f95511">  766</a></span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1ASTWriter.html" title="Writes an AST file containing the contents of a translation unit.">ASTWriter</a> &<a class="code" href="classclang_1_1PCHGenerator.html#afd106f0d5e80918635e6c3c3d9f95511">getWriter</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Writer; }</div>
+<div class="line"><a name="l00767"></a><span class="lineno">  767</span> </div>
+<div class="line"><a name="l00768"></a><span class="lineno">  768</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00769"></a><span class="lineno">  769</span>   <a class="code" href="classclang_1_1PCHGenerator.html#a253b4d46bb1bea54751eb1637bf6e386">PCHGenerator</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP, StringRef OutputFile,</div>
+<div class="line"><a name="l00770"></a><span class="lineno">  770</span>                <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">clang::Module</a> *<a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a>,</div>
+<div class="line"><a name="l00771"></a><span class="lineno">  771</span>                StringRef isysroot, raw_ostream *Out,</div>
+<div class="line"><a name="l00772"></a><span class="lineno">  772</span>                <span class="keywordtype">bool</span> AllowASTWithErrors = <span class="keyword">false</span>);</div>
+<div class="line"><a name="l00773"></a><span class="lineno">  773</span>   <a class="code" href="classclang_1_1PCHGenerator.html#adfa0620532379db1aec949d3d1e836c5">~PCHGenerator</a>();</div>
+<div class="line"><a name="l00774"></a><span class="lineno"><a class="code" href="classclang_1_1PCHGenerator.html#a29b7b7794a33d9c8c16e75c907a36fa0">  774</a></span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1PCHGenerator.html#a29b7b7794a33d9c8c16e75c907a36fa0" title="Initialize the semantic consumer with the Sema instance being used to perform semantic analysis on th...">InitializeSema</a>(<a class="code" href="classclang_1_1Sema.html" title="Sema - This implements semantic analysis and AST building for C.">Sema</a> &<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>) { SemaPtr = &<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>; }</div>
+<div class="line"><a name="l00775"></a><span class="lineno">  775</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1PCHGenerator.html#ab88344e93870a85f5d3538b1b50499c4">HandleTranslationUnit</a>(<a class="code" href="classclang_1_1ASTContext.html" title="Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...">ASTContext</a> &Ctx);</div>
+<div class="line"><a name="l00776"></a><span class="lineno">  776</span>   <span class="keyword">virtual</span> <a class="code" href="classclang_1_1ASTMutationListener.html" title="An abstract interface that should be implemented by listeners that want to be notified when an AST en...">ASTMutationListener</a> *<a class="code" href="classclang_1_1PCHGenerator.html#acdcdab663d951390263d21ed70b90e9e" title="If the consumer is interested in entities getting modified after their initial creation, it should return a pointer to an ASTMutationListener here.">GetASTMutationListener</a>();</div>
+<div class="line"><a name="l00777"></a><span class="lineno">  777</span>   <span class="keyword">virtual</span> <a class="code" href="classclang_1_1ASTDeserializationListener.html">ASTDeserializationListener</a> *<a class="code" href="classclang_1_1PCHGenerator.html#ab911990ae25871cf49ce2801f24f6e9c" title="If the consumer is interested in entities being deserialized from AST files, it should return a point...">GetASTDeserializationListener</a>();</div>
+<div class="line"><a name="l00778"></a><span class="lineno">  778</span> </div>
+<div class="line"><a name="l00779"></a><span class="lineno"><a class="code" href="classclang_1_1PCHGenerator.html#a7aa7938d85ba9bd57c4b83285564899a">  779</a></span>   <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1PCHGenerator.html#a7aa7938d85ba9bd57c4b83285564899a">hasEmittedPCH</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> HasEmittedPCH; }</div>
+<div class="line"><a name="l00780"></a><span class="lineno">  780</span> };</div>
+<div class="line"><a name="l00781"></a><span class="lineno">  781</span> </div>
+<div class="line"><a name="l00782"></a><span class="lineno">  782</span> } <span class="comment">// end namespace clang</span></div>
+<div class="line"><a name="l00783"></a><span class="lineno">  783</span> </div>
+<div class="line"><a name="l00784"></a><span class="lineno">  784</span> <span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:18 for r$LatestRev$ by <a href="http://www.doxygen.org">Doxygen 
+1.8.3.1</a>.</p>
+<p class="footer">
+See the <a href="http://clang.llvm.org">Main Clang Web Page</a> for more 
+information.</p>
+</body>
+</html>

Added: www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/AST_2ItaniumCXXABI_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/AST_2ItaniumCXXABI_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/AST_2ItaniumCXXABI_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/AST_2ItaniumCXXABI_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,175 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="clang,LLVM,Low Level Virtual Machine,C,C++,doxygen,API,frontend,documentation"/>
+<meta name="description" content="C++ source code API documentation for clang."/>
+<title>clang: ItaniumCXXABI.cpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_87e2a7550f83bd8cbfc92736891468fc.html">lib</a></li><li class="navelem"><a class="el" href="dir_d3636efc55c6148efe36c59ffa01cb41.html">AST</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">AST/ItaniumCXXABI.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="AST_2ItaniumCXXABI_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> <span class="comment">//===------- ItaniumCXXABI.cpp - AST support for the Itanium C++ ABI ------===//</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">//                     The LLVM Compiler Infrastructure</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment">// This file is distributed under the University of Illinois Open Source</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">// License. See LICENSE.TXT for details.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span> <span class="comment">// This provides C++ AST support targeting the Itanium C++ ABI, which is</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="comment">// documented at:</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="comment">//  http://www.codesourcery.com/public/cxx-abi/abi.html</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> <span class="comment">//  http://www.codesourcery.com/public/cxx-abi/abi-eh.html</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> <span class="comment">// It also supports the closely-related ARM C++ ABI, documented at:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="comment">// http://infocenter.arm.com/help/topic/com.arm.doc.ihi0041c/IHI0041C_cppabi.pdf</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> </div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="preprocessor">#include "<a class="code" href="CXXABI_8h.html">CXXABI.h</a>"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="preprocessor">#include "<a class="code" href="ASTContext_8h.html" title="Defines the clang::ASTContext interface.">clang/AST/ASTContext.h</a>"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="preprocessor">#include "<a class="code" href="DeclCXX_8h.html" title="Defines the C++ Decl subclasses, other than those for templates (found in DeclTemplate.h) and friends (in DeclFriend.h).">clang/AST/DeclCXX.h</a>"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="preprocessor">#include "<a class="code" href="MangleNumberingContext_8h.html">clang/AST/MangleNumberingContext.h</a>"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="preprocessor">#include "<a class="code" href="RecordLayout_8h.html">clang/AST/RecordLayout.h</a>"</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="preprocessor">#include "<a class="code" href="Type_8h.html">clang/AST/Type.h</a>"</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="preprocessor">#include "<a class="code" href="include_2clang_2Basic_2TargetInfo_8h.html" title="Defines the clang::TargetInfo interface.">clang/Basic/TargetInfo.h</a>"</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> </div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="keyword">using namespace </span>clang;</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="keyword">namespace </span>{</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span> <span class="comment"></span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span> <span class="comment">/// \brief Keeps track of the mangled names of lambda expressions and block</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span> <span class="comment">/// literals within a particular context.</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span> <span class="comment"></span><span class="keyword">class </span>ItaniumNumberingContext : <span class="keyword">public</span> <a class="code" href="classclang_1_1MangleNumberingContext.html" title="Keeps track of the mangled names of lambda expressions and block literals within a particular context...">MangleNumberingContext</a> {</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>   llvm::DenseMap<IdentifierInfo*, unsigned> VarManglingNumbers;</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span> </div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span> <span class="keyword">public</span>:<span class="comment"></span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span> <span class="comment">  /// Variable decls are numbered by identifier.</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span> <span class="comment"></span>  <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> getManglingNumber(<span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *VD) {</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>     <span class="keywordflow">return</span> ++VarManglingNumbers[VD-><a class="code" href="classclang_1_1NamedDecl.html#a554752f8f43eea0e6288da7205167fe2">getIdentifier</a>()];</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>   }</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span> };</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span> </div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span> <span class="keyword">class </span>ItaniumCXXABI : <span class="keyword">public</span> <a class="code" href="classclang_1_1CXXABI.html" title="Implements C++ ABI-specific semantic analysis functions.">CXXABI</a> {</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span> <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>   <a class="code" href="classclang_1_1ASTContext.html" title="Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...">ASTContext</a> &<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>;</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>   ItaniumCXXABI(<a class="code" href="classclang_1_1ASTContext.html" title="Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...">ASTContext</a> &Ctx) : <a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>(Ctx) { }</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span> </div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>   std::pair<uint64_t, unsigned></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>   getMemberPointerWidthAndAlign(<span class="keyword">const</span> <a class="code" href="classclang_1_1MemberPointerType.html">MemberPointerType</a> *MPT)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1TargetInfo.html" title="Exposes information about the current target.">TargetInfo</a> &Target = <a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>.<a class="code" href="classclang_1_1ASTContext.html#a1f86013f3f8d32eec61a74c21d26b2a4">getTargetInfo</a>();</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>     <a class="code" href="classclang_1_1TargetInfo.html#a58fa8412e85dcb05d2a4c6ad4e52ce1f" title="===-— Target Data Type Query Methods ----------------------------—===//">TargetInfo::IntType</a> PtrDiff = Target.<a class="code" href="classclang_1_1TargetInfo.html#ae7d47df24bedd6a56e178b1b385f128e">getPtrDiffType</a>(0);</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>     uint64_t Width = Target.<a class="code" href="classclang_1_1TargetInfo.html#a1703453c281bb4c9baaf120683b250fd" title="Return the width (in bits) of the specified integer type enum.">getTypeWidth</a>(PtrDiff);</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>     <span class="keywordtype">unsigned</span> Align = Target.<a class="code" href="classclang_1_1TargetInfo.html#a15e342018a20a32640ea3caa3218b6fa" title="Return the alignment (in bits) of the specified integer type enum.">getTypeAlign</a>(PtrDiff);</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>     <span class="keywordflow">if</span> (MPT-><a class="code" href="classclang_1_1MemberPointerType.html#a3f0b2f25c4ad91d2e8bd2752d9552199">getPointeeType</a>()-><a class="code" href="classclang_1_1Type.html#af0ae1f40cbbc07fabfefc86af91072e3">isFunctionType</a>())</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>       Width = 2 * Width;</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>     <span class="keywordflow">return</span> std::make_pair(Width, Align);</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>   }</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span> </div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>   <a class="code" href="namespaceclang.html#ae6d16e133294b0b9c8c8d3108aadd25b" title="CallingConv - Specifies the calling convention that a function uses.">CallingConv</a> getDefaultMethodCallConv(<span class="keywordtype">bool</span> isVariadic)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>     <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#ae6d16e133294b0b9c8c8d3108aadd25ba7a504297547dacad7f909bc7da059378">CC_C</a>;</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>   }</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span> </div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>   <span class="comment">// We cheat and just check that the class has a vtable pointer, and that it's</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>   <span class="comment">// only big enough to have a vtable pointer and nothing more (or less).</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>   <span class="keywordtype">bool</span> isNearlyEmpty(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *RD)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span> </div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>     <span class="comment">// Check that the class has a vtable pointer.</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>     <span class="keywordflow">if</span> (!RD-><a class="code" href="classclang_1_1CXXRecordDecl.html#a33d393a3193c4006dcf7342caa73e535">isDynamicClass</a>())</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>       <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span> </div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1ASTRecordLayout.html">ASTRecordLayout</a> &Layout = <a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>.<a class="code" href="classclang_1_1ASTContext.html#a47d9de77f967abb78dd8d1b8228a0d2a" title="Get or compute information about the layout of the specified record (struct/union/class) D...">getASTRecordLayout</a>(RD);</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>     <a class="code" href="classclang_1_1CharUnits.html">CharUnits</a> PointerSize = </div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>       <a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>.<a class="code" href="classclang_1_1ASTContext.html#a5d5f812ba1100ca9ef1c1a812b2f5a24" title="Convert a size in bits to a size in characters.">toCharUnitsFromBits</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>.<a class="code" href="classclang_1_1ASTContext.html#a1f86013f3f8d32eec61a74c21d26b2a4">getTargetInfo</a>().<a class="code" href="classclang_1_1TargetInfo.html#a79ccbed497a604ca6d9dbfd9b8ac548f" title="Return the width of pointers on this target, for the specified address space.">getPointerWidth</a>(0));</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>     <span class="keywordflow">return</span> Layout.<a class="code" href="classclang_1_1ASTRecordLayout.html#aa1bd731febbd3352b47620e7e363b5f4">getNonVirtualSize</a>() == PointerSize;</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>   }</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span> </div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>   <span class="keyword">virtual</span> <a class="code" href="classclang_1_1MangleNumberingContext.html" title="Keeps track of the mangled names of lambda expressions and block literals within a particular context...">MangleNumberingContext</a> *createMangleNumberingContext()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>     <span class="keywordflow">return</span> <span class="keyword">new</span> ItaniumNumberingContext();</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>   }</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span> };</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span> </div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span> <span class="keyword">class </span>ARMCXXABI : <span class="keyword">public</span> ItaniumCXXABI {</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>   ARMCXXABI(<a class="code" href="classclang_1_1ASTContext.html" title="Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...">ASTContext</a> &Ctx) : ItaniumCXXABI(Ctx) { }</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span> };</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span> }</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span> </div>
+<div class="line"><a name="l00090"></a><span class="lineno"><a class="code" href="namespaceclang.html#a607d0b79f48942bf5ca9a09641325053">   90</a></span> <a class="code" href="classclang_1_1CXXABI.html" title="Implements C++ ABI-specific semantic analysis functions.">CXXABI</a> *<a class="code" href="namespaceclang.html#a607d0b79f48942bf5ca9a09641325053">clang::CreateItaniumCXXABI</a>(<a class="code" href="classclang_1_1ASTContext.html" title="Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...">ASTContext</a> &Ctx) {</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>   <span class="keywordflow">return</span> <span class="keyword">new</span> ItaniumCXXABI(Ctx);</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span> }</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span> </div>
+<div class="line"><a name="l00094"></a><span class="lineno"><a class="code" href="namespaceclang.html#a2413bf3465afa7194367947b8cb3c3d6">   94</a></span> <a class="code" href="classclang_1_1CXXABI.html" title="Implements C++ ABI-specific semantic analysis functions.">CXXABI</a> *<a class="code" href="namespaceclang.html#a2413bf3465afa7194367947b8cb3c3d6" title="Creates an instance of a C++ ABI class.">clang::CreateARMCXXABI</a>(<a class="code" href="classclang_1_1ASTContext.html" title="Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...">ASTContext</a> &Ctx) {</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>   <span class="keywordflow">return</span> <span class="keyword">new</span> ARMCXXABI(Ctx);</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span> }</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:40 for r$LatestRev$ by <a href="http://www.doxygen.org">Doxygen 
+1.8.3.1</a>.</p>
+<p class="footer">
+See the <a href="http://clang.llvm.org">Main Clang Web Page</a> for more 
+information.</p>
+</body>
+</html>

Added: www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/AST_2MicrosoftCXXABI_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/AST_2MicrosoftCXXABI_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/AST_2MicrosoftCXXABI_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/AST_2MicrosoftCXXABI_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,281 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="clang,LLVM,Low Level Virtual Machine,C,C++,doxygen,API,frontend,documentation"/>
+<meta name="description" content="C++ source code API documentation for clang."/>
+<title>clang: MicrosoftCXXABI.cpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_87e2a7550f83bd8cbfc92736891468fc.html">lib</a></li><li class="navelem"><a class="el" href="dir_d3636efc55c6148efe36c59ffa01cb41.html">AST</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">AST/MicrosoftCXXABI.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="AST_2MicrosoftCXXABI_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> <span class="comment">//===------- MicrosoftCXXABI.cpp - AST support for the Microsoft C++ ABI --===//</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">//                     The LLVM Compiler Infrastructure</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment">// This file is distributed under the University of Illinois Open Source</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">// License. See LICENSE.TXT for details.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span> <span class="comment">// This provides C++ AST support targeting the Microsoft Visual C++</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="comment">// ABI.</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> <span class="preprocessor">#include "<a class="code" href="CXXABI_8h.html">CXXABI.h</a>"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="preprocessor">#include "<a class="code" href="Attr_8h.html">clang/AST/Attr.h</a>"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="preprocessor">#include "<a class="code" href="ASTContext_8h.html" title="Defines the clang::ASTContext interface.">clang/AST/ASTContext.h</a>"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="preprocessor">#include "<a class="code" href="DeclCXX_8h.html" title="Defines the C++ Decl subclasses, other than those for templates (found in DeclTemplate.h) and friends (in DeclFriend.h).">clang/AST/DeclCXX.h</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="preprocessor">#include "<a class="code" href="MangleNumberingContext_8h.html">clang/AST/MangleNumberingContext.h</a>"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="preprocessor">#include "<a class="code" href="RecordLayout_8h.html">clang/AST/RecordLayout.h</a>"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="preprocessor">#include "<a class="code" href="Type_8h.html">clang/AST/Type.h</a>"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="preprocessor">#include "<a class="code" href="include_2clang_2Basic_2TargetInfo_8h.html" title="Defines the clang::TargetInfo interface.">clang/Basic/TargetInfo.h</a>"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> </div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="keyword">using namespace </span>clang;</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> </div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="keyword">namespace </span>{</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="comment"></span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">/// \brief Numbers things which need to correspond across multiple TUs.</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="comment">/// Typically these are things like static locals, lambdas, or blocks.</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="comment"></span><span class="keyword">class </span>MicrosoftNumberingContext : <span class="keyword">public</span> <a class="code" href="classclang_1_1MangleNumberingContext.html" title="Keeps track of the mangled names of lambda expressions and block literals within a particular context...">MangleNumberingContext</a> {</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>   <span class="keywordtype">unsigned</span> NumStaticLocals;</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span> </div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>   MicrosoftNumberingContext() : NumStaticLocals(0) { }</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span> <span class="comment"></span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span> <span class="comment">  /// Static locals are numbered by source order.</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span> <span class="comment"></span>  <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> getManglingNumber(<span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *VD) {</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>     assert(VD-><a class="code" href="classclang_1_1VarDecl.html#a513c56596b4d12e99dd42a4f3ff646d4">isStaticLocal</a>());</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>     <span class="keywordflow">return</span> ++NumStaticLocals;</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>   }</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span> };</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span> </div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span> <span class="keyword">class </span>MicrosoftCXXABI : <span class="keyword">public</span> <a class="code" href="classclang_1_1CXXABI.html" title="Implements C++ ABI-specific semantic analysis functions.">CXXABI</a> {</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>   <a class="code" href="classclang_1_1ASTContext.html" title="Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...">ASTContext</a> &<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>;</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>   MicrosoftCXXABI(<a class="code" href="classclang_1_1ASTContext.html" title="Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...">ASTContext</a> &Ctx) : <a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>(Ctx) { }</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span> </div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>   std::pair<uint64_t, unsigned></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>   getMemberPointerWidthAndAlign(<span class="keyword">const</span> <a class="code" href="classclang_1_1MemberPointerType.html">MemberPointerType</a> *MPT) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span> </div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>   <a class="code" href="namespaceclang.html#ae6d16e133294b0b9c8c8d3108aadd25b" title="CallingConv - Specifies the calling convention that a function uses.">CallingConv</a> getDefaultMethodCallConv(<span class="keywordtype">bool</span> isVariadic)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>     <span class="keywordflow">if</span> (!isVariadic &&</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>         <a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>.<a class="code" href="classclang_1_1ASTContext.html#a1f86013f3f8d32eec61a74c21d26b2a4">getTargetInfo</a>().<a class="code" href="classclang_1_1TargetInfo.html#a20f1dc9686f1a537a03975c7603774e7" title="Returns the target triple of the primary target.">getTriple</a>().getArch() == llvm::Triple::x86)</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>       <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#ae6d16e133294b0b9c8c8d3108aadd25ba49ff8852eacaf74d36536e700613881f">CC_X86ThisCall</a>;</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>     <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#ae6d16e133294b0b9c8c8d3108aadd25ba7a504297547dacad7f909bc7da059378">CC_C</a>;</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>   }</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span> </div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>   <span class="keywordtype">bool</span> isNearlyEmpty(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *RD)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>     <span class="comment">// FIXME: Audit the corners</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>     <span class="keywordflow">if</span> (!RD-><a class="code" href="classclang_1_1CXXRecordDecl.html#a33d393a3193c4006dcf7342caa73e535">isDynamicClass</a>())</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>       <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span> </div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1ASTRecordLayout.html">ASTRecordLayout</a> &Layout = <a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>.<a class="code" href="classclang_1_1ASTContext.html#a47d9de77f967abb78dd8d1b8228a0d2a" title="Get or compute information about the layout of the specified record (struct/union/class) D...">getASTRecordLayout</a>(RD);</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>     </div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>     <span class="comment">// In the Microsoft ABI, classes can have one or two vtable pointers.</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>     <a class="code" href="classclang_1_1CharUnits.html">CharUnits</a> PointerSize = </div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>       <a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>.<a class="code" href="classclang_1_1ASTContext.html#a5d5f812ba1100ca9ef1c1a812b2f5a24" title="Convert a size in bits to a size in characters.">toCharUnitsFromBits</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>.<a class="code" href="classclang_1_1ASTContext.html#a1f86013f3f8d32eec61a74c21d26b2a4">getTargetInfo</a>().<a class="code" href="classclang_1_1TargetInfo.html#a79ccbed497a604ca6d9dbfd9b8ac548f" title="Return the width of pointers on this target, for the specified address space.">getPointerWidth</a>(0));</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>     <span class="keywordflow">return</span> Layout.<a class="code" href="classclang_1_1ASTRecordLayout.html#aa1bd731febbd3352b47620e7e363b5f4">getNonVirtualSize</a>() == PointerSize ||</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>       Layout.<a class="code" href="classclang_1_1ASTRecordLayout.html#aa1bd731febbd3352b47620e7e363b5f4">getNonVirtualSize</a>() == PointerSize * 2;</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>   }    </div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span> </div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>   <a class="code" href="classclang_1_1MangleNumberingContext.html" title="Keeps track of the mangled names of lambda expressions and block literals within a particular context...">MangleNumberingContext</a> *createMangleNumberingContext()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>     <span class="keywordflow">return</span> <span class="keyword">new</span> MicrosoftNumberingContext();</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>   }</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span> };</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span> }</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span> </div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span> <span class="comment">// getNumBases() seems to only give us the number of direct bases, and not the</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span> <span class="comment">// total.  This function tells us if we inherit from anybody that uses MI, or if</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span> <span class="comment">// we have a non-primary base class, which uses the multiple inheritance model.</span></div>
+<div class="line"><a name="l00081"></a><span class="lineno"><a class="code" href="AST_2MicrosoftCXXABI_8cpp.html#a2273626b01efcbf77be251b33962d809">   81</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="AST_2MicrosoftCXXABI_8cpp.html#a2273626b01efcbf77be251b33962d809">usesMultipleInheritanceModel</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *RD) {</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>   <span class="keywordflow">while</span> (RD-><a class="code" href="classclang_1_1CXXRecordDecl.html#aa1473d233dd839572b3b93b53801be1f" title="Retrieves the number of base classes of this class.">getNumBases</a>() > 0) {</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>     <span class="keywordflow">if</span> (RD-><a class="code" href="classclang_1_1CXXRecordDecl.html#aa1473d233dd839572b3b93b53801be1f" title="Retrieves the number of base classes of this class.">getNumBases</a>() > 1)</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>       <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>     assert(RD-><a class="code" href="classclang_1_1CXXRecordDecl.html#aa1473d233dd839572b3b93b53801be1f" title="Retrieves the number of base classes of this class.">getNumBases</a>() == 1);</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *<a class="code" href="classclang_1_1Base.html">Base</a> =</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>         RD-><a class="code" href="classclang_1_1CXXRecordDecl.html#a830448d054e3dca2db6851bd4605492c">bases_begin</a>()-><a class="code" href="classclang_1_1CXXBaseSpecifier.html#a4e9241e65b4b20b372902d0873a9d838" title="Retrieves the type of the base class.">getType</a>()-><a class="code" href="classclang_1_1Type.html#a7dc6c3dbc192ad98871c3cc484376b9a" title="Retrieves the CXXRecordDecl that this type refers to, either because the type is a RecordType or beca...">getAsCXXRecordDecl</a>();</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>     <span class="keywordflow">if</span> (RD-><a class="code" href="classclang_1_1CXXRecordDecl.html#aadd0b19ffcef5977a8414e09f184151f">isPolymorphic</a>() && !Base->isPolymorphic())</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>       <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>     RD = Base;</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>   }</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>   <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span> }</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span> </div>
+<div class="line"><a name="l00095"></a><span class="lineno"><a class="code" href="AST_2MicrosoftCXXABI_8cpp.html#ade69671fbf1439992f65551d6f136c16">   95</a></span> <span class="keyword">static</span> <a class="code" href="namespaceclang.html#ad3b44399e5a02cb6427596a4489bb3ae" title="The inheritance model to use for member pointers of a given CXXRecordDecl.">MSInheritanceModel</a> <a class="code" href="AST_2MicrosoftCXXABI_8cpp.html#ade69671fbf1439992f65551d6f136c16">MSInheritanceAttrToModel</a>(<a class="code" href="namespaceclang_1_1attr.html#ac160b7b7240633e6932ebb177d0f03ef">attr::Kind</a> <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a>) {</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>   <span class="keywordflow">switch</span> (Kind) {</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>   <span class="keywordflow">default</span>: llvm_unreachable(<span class="stringliteral">"expected MS inheritance attribute"</span>);</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>   <span class="keywordflow">case</span> attr::SingleInheritance:      <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#ad3b44399e5a02cb6427596a4489bb3aea4fe9b1fc7229c0c7402c2003bed646ec">MSIM_Single</a>;</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>   <span class="keywordflow">case</span> attr::MultipleInheritance:    <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#ad3b44399e5a02cb6427596a4489bb3aea1e4eed3910d8ecfd8a38192bf1061a62">MSIM_Multiple</a>;</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>   <span class="keywordflow">case</span> attr::VirtualInheritance:     <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#ad3b44399e5a02cb6427596a4489bb3aea7a96bc1073c9e7cfff63ba4f21d2eab8">MSIM_Virtual</a>;</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>   <span class="keywordflow">case</span> attr::UnspecifiedInheritance: <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#ad3b44399e5a02cb6427596a4489bb3aea67dec93fa718ee10408333cc093a0876">MSIM_Unspecified</a>;</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>   }</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span> }</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span> </div>
+<div class="line"><a name="l00105"></a><span class="lineno"><a class="code" href="classclang_1_1CXXRecordDecl.html#aaee334862a195482467fb05b3f47c61c">  105</a></span> <a class="code" href="namespaceclang.html#ad3b44399e5a02cb6427596a4489bb3ae" title="The inheritance model to use for member pointers of a given CXXRecordDecl.">MSInheritanceModel</a> <a class="code" href="classclang_1_1CXXRecordDecl.html#aaee334862a195482467fb05b3f47c61c" title="Returns the inheritance model used for this record.">CXXRecordDecl::getMSInheritanceModel</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Attr.html" title="Attr - This represents one attribute.">Attr</a> *IA = this->getAttr<MSInheritanceAttr>())</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>     <span class="keywordflow">return</span> <a class="code" href="AST_2MicrosoftCXXABI_8cpp.html#ade69671fbf1439992f65551d6f136c16">MSInheritanceAttrToModel</a>(IA->getKind());</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>   <span class="comment">// If there was no explicit attribute, the record must be defined already, and</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>   <span class="comment">// we can figure out the inheritance model from its other properties.</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>   <span class="keywordflow">if</span> (this-><a class="code" href="classclang_1_1CXXRecordDecl.html#ae9cacadb059ecb46224d537be149d565" title="Retrieves the number of virtual base classes of this class.">getNumVBases</a>() > 0)</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>     <span class="keywordflow">return</span> <a class="code" href="namespaceclang.html#ad3b44399e5a02cb6427596a4489bb3aea7a96bc1073c9e7cfff63ba4f21d2eab8">MSIM_Virtual</a>;</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>   <span class="keywordflow">if</span> (<a class="code" href="AST_2MicrosoftCXXABI_8cpp.html#a2273626b01efcbf77be251b33962d809">usesMultipleInheritanceModel</a>(<span class="keyword">this</span>))</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>     <span class="keywordflow">return</span> this-><a class="code" href="classclang_1_1CXXRecordDecl.html#aadd0b19ffcef5977a8414e09f184151f">isPolymorphic</a>() ? <a class="code" href="namespaceclang.html#ad3b44399e5a02cb6427596a4489bb3aea7c58b5322eb20970210bbfa36bc0470b">MSIM_MultiplePolymorphic</a> : <a class="code" href="namespaceclang.html#ad3b44399e5a02cb6427596a4489bb3aea1e4eed3910d8ecfd8a38192bf1061a62">MSIM_Multiple</a>;</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>   <span class="keywordflow">return</span> this-><a class="code" href="classclang_1_1CXXRecordDecl.html#aadd0b19ffcef5977a8414e09f184151f">isPolymorphic</a>() ? <a class="code" href="namespaceclang.html#ad3b44399e5a02cb6427596a4489bb3aead343ab48bb44ef3aaa74c29f6f2f6e5d">MSIM_SinglePolymorphic</a> : <a class="code" href="namespaceclang.html#ad3b44399e5a02cb6427596a4489bb3aea4fe9b1fc7229c0c7402c2003bed646ec">MSIM_Single</a>;</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span> }</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span> </div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span> <span class="comment">// Returns the number of pointer and integer slots used to represent a member</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span> <span class="comment">// pointer in the MS C++ ABI.</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span> <span class="comment">// Member function pointers have the following general form;  however, fields</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span> <span class="comment">// are dropped as permitted (under the MSVC interpretation) by the inheritance</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span> <span class="comment">// model of the actual class.</span></div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span> <span class="comment">//   struct {</span></div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span> <span class="comment">//     // A pointer to the member function to call.  If the member function is</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span> <span class="comment">//     // virtual, this will be a thunk that forwards to the appropriate vftable</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span> <span class="comment">//     // slot.</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span> <span class="comment">//     void *FunctionPointerOrVirtualThunk;</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span> <span class="comment">//     // An offset to add to the address of the vbtable pointer after (possibly)</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span> <span class="comment">//     // selecting the virtual base but before resolving and calling the function.</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span> <span class="comment">//     // Only needed if the class has any virtual bases or bases at a non-zero</span></div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span> <span class="comment">//     // offset.</span></div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span> <span class="comment">//     int NonVirtualBaseAdjustment;</span></div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span> <span class="comment">//     // An offset within the vb-table that selects the virtual base containing</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span> <span class="comment">//     // the member.  Loading from this offset produces a new offset that is</span></div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span> <span class="comment">//     // added to the address of the vb-table pointer to produce the base.</span></div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span> <span class="comment">//     int VirtualBaseAdjustmentOffset;</span></div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span> <span class="comment">//     // The offset of the vb-table pointer within the object.  Only needed for</span></div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span> <span class="comment">//     // incomplete types.</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span> <span class="comment">//     int VBPtrOffset;</span></div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span> <span class="comment">//   };</span></div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span> <span class="keyword">static</span> std::pair<unsigned, unsigned></div>
+<div class="line"><a name="l00146"></a><span class="lineno"><a class="code" href="AST_2MicrosoftCXXABI_8cpp.html#a24c633e8e1b060b0a76e74519394165a">  146</a></span> <a class="code" href="AST_2MicrosoftCXXABI_8cpp.html#a24c633e8e1b060b0a76e74519394165a">getMSMemberPointerSlots</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1MemberPointerType.html">MemberPointerType</a> *MPT) {</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *RD = MPT-><a class="code" href="classclang_1_1MemberPointerType.html#a74f40efdd2bcca293720459931fba7ea">getClass</a>()-><a class="code" href="classclang_1_1Type.html#a7dc6c3dbc192ad98871c3cc484376b9a" title="Retrieves the CXXRecordDecl that this type refers to, either because the type is a RecordType or beca...">getAsCXXRecordDecl</a>();</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>   <a class="code" href="namespaceclang.html#ad3b44399e5a02cb6427596a4489bb3ae" title="The inheritance model to use for member pointers of a given CXXRecordDecl.">MSInheritanceModel</a> Inheritance = RD-><a class="code" href="classclang_1_1CXXRecordDecl.html#aaee334862a195482467fb05b3f47c61c" title="Returns the inheritance model used for this record.">getMSInheritanceModel</a>();</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>   <span class="keywordtype">unsigned</span> Ptrs;</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>   <span class="keywordtype">unsigned</span> Ints = 0;</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>   <span class="keywordflow">if</span> (MPT-><a class="code" href="classclang_1_1MemberPointerType.html#aa8af73683ceba3bb02274d4ea9de2c00">isMemberFunctionPointer</a>()) {</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>     <span class="comment">// Member function pointers are a struct of a function pointer followed by a</span></div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>     <span class="comment">// variable number of ints depending on the inheritance model used.  The</span></div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>     <span class="comment">// function pointer is a real function if it is non-virtual and a vftable</span></div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>     <span class="comment">// slot thunk if it is virtual.  The ints select the object base passed for</span></div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>     <span class="comment">// the 'this' pointer.</span></div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>     Ptrs = 1;  <span class="comment">// First slot is always a function pointer.</span></div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>     <span class="keywordflow">switch</span> (Inheritance) {</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#ad3b44399e5a02cb6427596a4489bb3aea67dec93fa718ee10408333cc093a0876">MSIM_Unspecified</a>: ++Ints;  <span class="comment">// VBTableOffset</span></div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#ad3b44399e5a02cb6427596a4489bb3aea7a96bc1073c9e7cfff63ba4f21d2eab8">MSIM_Virtual</a>:     ++Ints;  <span class="comment">// VirtualBaseAdjustmentOffset</span></div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#ad3b44399e5a02cb6427596a4489bb3aea7c58b5322eb20970210bbfa36bc0470b">MSIM_MultiplePolymorphic</a>:</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#ad3b44399e5a02cb6427596a4489bb3aea1e4eed3910d8ecfd8a38192bf1061a62">MSIM_Multiple</a>:    ++Ints;  <span class="comment">// NonVirtualBaseAdjustment</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#ad3b44399e5a02cb6427596a4489bb3aead343ab48bb44ef3aaa74c29f6f2f6e5d">MSIM_SinglePolymorphic</a>:</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#ad3b44399e5a02cb6427596a4489bb3aea4fe9b1fc7229c0c7402c2003bed646ec">MSIM_Single</a>:      <span class="keywordflow">break</span>;   <span class="comment">// Nothing</span></div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>     }</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>     <span class="comment">// Data pointers are an aggregate of ints.  The first int is an offset</span></div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>     <span class="comment">// followed by vbtable-related offsets.</span></div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>     Ptrs = 0;</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>     <span class="keywordflow">switch</span> (Inheritance) {</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#ad3b44399e5a02cb6427596a4489bb3aea67dec93fa718ee10408333cc093a0876">MSIM_Unspecified</a>: ++Ints;  <span class="comment">// VBTableOffset</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#ad3b44399e5a02cb6427596a4489bb3aea7a96bc1073c9e7cfff63ba4f21d2eab8">MSIM_Virtual</a>:     ++Ints;  <span class="comment">// VirtualBaseAdjustmentOffset</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#ad3b44399e5a02cb6427596a4489bb3aea7c58b5322eb20970210bbfa36bc0470b">MSIM_MultiplePolymorphic</a>:</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#ad3b44399e5a02cb6427596a4489bb3aea1e4eed3910d8ecfd8a38192bf1061a62">MSIM_Multiple</a>:             <span class="comment">// Nothing</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#ad3b44399e5a02cb6427596a4489bb3aead343ab48bb44ef3aaa74c29f6f2f6e5d">MSIM_SinglePolymorphic</a>:</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#ad3b44399e5a02cb6427596a4489bb3aea4fe9b1fc7229c0c7402c2003bed646ec">MSIM_Single</a>:      ++Ints;  <span class="comment">// Field offset</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>     }</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>   }</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>   <span class="keywordflow">return</span> std::make_pair(Ptrs, Ints);</div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span> }</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span> </div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span> std::pair<uint64_t, unsigned> MicrosoftCXXABI::getMemberPointerWidthAndAlign(</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1MemberPointerType.html">MemberPointerType</a> *MPT)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1TargetInfo.html" title="Exposes information about the current target.">TargetInfo</a> &Target = <a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>.<a class="code" href="classclang_1_1ASTContext.html#a1f86013f3f8d32eec61a74c21d26b2a4">getTargetInfo</a>();</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>   assert(Target.<a class="code" href="classclang_1_1TargetInfo.html#a20f1dc9686f1a537a03975c7603774e7" title="Returns the target triple of the primary target.">getTriple</a>().getArch() == llvm::Triple::x86 ||</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>          Target.<a class="code" href="classclang_1_1TargetInfo.html#a20f1dc9686f1a537a03975c7603774e7" title="Returns the target triple of the primary target.">getTriple</a>().getArch() == llvm::Triple::x86_64);</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>   <span class="keywordtype">unsigned</span> Ptrs, Ints;</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>   llvm::tie(Ptrs, Ints) = <a class="code" href="AST_2MicrosoftCXXABI_8cpp.html#a24c633e8e1b060b0a76e74519394165a">getMSMemberPointerSlots</a>(MPT);</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>   <span class="comment">// The nominal struct is laid out with pointers followed by ints and aligned</span></div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>   <span class="comment">// to a pointer width if any are present and an int width otherwise.</span></div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>   <span class="keywordtype">unsigned</span> PtrSize = Target.<a class="code" href="classclang_1_1TargetInfo.html#a79ccbed497a604ca6d9dbfd9b8ac548f" title="Return the width of pointers on this target, for the specified address space.">getPointerWidth</a>(0);</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>   <span class="keywordtype">unsigned</span> IntSize = Target.<a class="code" href="classclang_1_1TargetInfo.html#a72ec6d14f6a06a1524488c8f2e604546">getIntWidth</a>();</div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span>   uint64_t Width = Ptrs * PtrSize + Ints * IntSize;</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>   <span class="keywordtype">unsigned</span> Align = Ptrs > 0 ? Target.<a class="code" href="classclang_1_1TargetInfo.html#acf5517fa75c8217085536ea21d68d4e9">getPointerAlign</a>(0) : Target.<a class="code" href="classclang_1_1TargetInfo.html#acf04d58f8c7a07e7da6c9eefe18291b7">getIntAlign</a>();</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>   Width = llvm::RoundUpToAlignment(Width, Align);</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>   <span class="keywordflow">return</span> std::make_pair(Width, Align);</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span> }</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span> </div>
+<div class="line"><a name="l00199"></a><span class="lineno"><a class="code" href="namespaceclang.html#a3eafa06f7bde71b13ade21dfae51b9b6">  199</a></span> <a class="code" href="classclang_1_1CXXABI.html" title="Implements C++ ABI-specific semantic analysis functions.">CXXABI</a> *<a class="code" href="namespaceclang.html#a3eafa06f7bde71b13ade21dfae51b9b6">clang::CreateMicrosoftCXXABI</a>(<a class="code" href="classclang_1_1ASTContext.html" title="Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...">ASTContext</a> &Ctx) {</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>   <span class="keywordflow">return</span> <span class="keyword">new</span> MicrosoftCXXABI(Ctx);</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span> }</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span> </div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:43 for r$LatestRev$ by <a href="http://www.doxygen.org">Doxygen 
+1.8.3.1</a>.</p>
+<p class="footer">
+See the <a href="http://clang.llvm.org">Main Clang Web Page</a> for more 
+information.</p>
+</body>
+</html>

Added: www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/AST_2Release_09Asserts_2ItaniumCXXABI_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/AST_2Release_09Asserts_2ItaniumCXXABI_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/AST_2Release_09Asserts_2ItaniumCXXABI_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/AST_2Release_09Asserts_2ItaniumCXXABI_8d_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,441 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="clang,LLVM,Low Level Virtual Machine,C,C++,doxygen,API,frontend,documentation"/>
+<meta name="description" content="C++ source code API documentation for clang."/>
+<title>clang: ItaniumCXXABI.d Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_87e2a7550f83bd8cbfc92736891468fc.html">lib</a></li><li class="navelem"><a class="el" href="dir_d3636efc55c6148efe36c59ffa01cb41.html">AST</a></li><li class="navelem"><a class="el" href="dir_e796beea07674cb14e7827e2d3a82e85.html">Release+Asserts</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">AST/Release+Asserts/ItaniumCXXABI.d</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="AST_2Release_09Asserts_2ItaniumCXXABI_8d.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> /home/tstellar/llvm/tools/clang/lib/AST/Release+Asserts/ItaniumCXXABI.o \</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>  /home/tstellar/llvm/tools/clang/lib/AST/Release+Asserts/ItaniumCXXABI.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>  ItaniumCXXABI.cpp CXXABI.h \</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/Type.h \</div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/NestedNameSpecifier.h \</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/Diagnostic.h \</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/DiagnosticIDs.h \</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/LLVM.h \</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>  /home/tstellar/llvm/include/llvm/Support/Casting.h \</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>  /home/tstellar/llvm/include/llvm/Support/type_traits.h \</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>  /home/tstellar/llvm/include/llvm/Support/DataTypes.h \</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>  /home/tstellar/llvm/include/llvm/ADT/None.h \</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>  /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h \</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>  /home/tstellar/llvm/include/llvm/Support/Compiler.h \</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>  /home/tstellar/llvm/include/llvm/Config/llvm-config.h \</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>  /home/tstellar/llvm/include/llvm/ADT/StringRef.h \</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/DiagnosticCommonKinds.inc \</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/DiagnosticOptions.h \</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/DiagnosticOptions.def \</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/SourceLocation.h \</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>  /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h \</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>  /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h \</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>  /home/tstellar/llvm/include/llvm/ADT/SmallVector.h \</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>  /home/tstellar/llvm/include/llvm/Support/AlignOf.h \</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>  /home/tstellar/llvm/include/llvm/Support/MathExtras.h \</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>  /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h \</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMap.h \</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h \</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>  /home/tstellar/llvm/include/llvm/ADT/FoldingSet.h \</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>  /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h \</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/TemplateName.h \</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/OperatorKinds.h \</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/OperatorKinds.def \</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>  /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h \</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/<a class="code" href="namespaceclang.html#af8a91eed04532d5da41ef08e7c9c081e" title="The various types of exception specifications that exist in C++11.">ExceptionSpecificationType</a>.h \</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/IdentifierTable.h \</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/TokenKinds.h \</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/TokenKinds.def \</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>  /home/tstellar/llvm/include/llvm/ADT/SmallString.h \</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>  /home/tstellar/llvm/include/llvm/ADT/StringMap.h \</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>  /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h \</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/<a class="code" href="namespaceclang.html#a78aadfeaf316ded55fdd2d1a9c8815b6" title="Describes the different kinds of linkage (C++ [basic.link], C99 6.2.2) that an entity may have...">Linkage</a>.h \</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/PartialDiagnostic.h \</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>  /home/tstellar/llvm/include/llvm/ADT/STLExtras.h \</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/Specifiers.h \</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/<a class="code" href="namespaceclang.html#afbab15cd4aa598c4e6d9192f7ac4f102" title="Describes the different kinds of visibility that a declaration may have.">Visibility</a>.h \</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>  /home/tstellar/llvm/include/llvm/ADT/APSInt.h \</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>  /home/tstellar/llvm/include/llvm/ADT/APInt.h \</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>  /home/tstellar/llvm/include/llvm/ADT/Optional.h \</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>  /home/tstellar/llvm/include/llvm/ADT/Twine.h \</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>  /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h \</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/TypeNodes.def \</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/BuiltinTypes.def \</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/ASTContext.h \</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/ASTTypeTraits.h \</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/ASTFwd.h \</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclNodes.inc \</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/StmtNodes.inc \</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/Decl.h \</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/APValue.h \</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>  /home/tstellar/llvm/include/llvm/ADT/APFloat.h \</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclBase.h \</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/AttrIterator.h \</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclarationName.h \</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>  /home/tstellar/llvm/include/llvm/Support/PrettyStackTrace.h \</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/ExternalASTSource.h \</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/CharUnits.h \</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/Redeclarable.h \</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>  /home/tstellar/llvm/include/llvm/Support/raw_ostream.h \</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>  /home/tstellar/llvm/include/llvm/Support/FileSystem.h \</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>  /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h \</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>  /home/tstellar/llvm/include/llvm/Support/TimeValue.h \</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>  /home/tstellar/llvm/include/llvm/Support/system_error.h \</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/Stmt.h \</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclGroup.h \</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/StmtIterator.h \</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/CapturedStmt.h \</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/TemplateBase.h \</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/TypeLoc.h \</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/TypeLocNodes.def \</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/CanonicalType.h \</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/CommentCommandTraits.h \</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/CommentOptions.h \</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/CommentCommandList.inc \</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/PrettyPrinter.h \</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/LangOptions.h \</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/ObjCRuntime.h \</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/VersionTuple.h \</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>  /home/tstellar/llvm/include/llvm/ADT/Triple.h \</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/Sanitizers.def \</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/LangOptions.def \</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/OpenCLExtensions.def \</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/RawCommentList.h \</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/SourceManager.h \</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/FileManager.h \</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/FileSystemOptions.h \</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>  /home/tstellar/llvm/include/llvm/ADT/DenseSet.h \</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>  /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h \</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>  /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h \</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>  /home/tstellar/llvm/include/llvm-c/Core.h \</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/AddressSpaces.h \</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>  /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.h \</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>  /home/tstellar/llvm/include/llvm/ADT/TinyPtrVector.h \</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclCXX.h \</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/ASTUnresolvedSet.h \</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/ASTVector.h \</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/UnresolvedSet.h \</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclAccessPair.h \</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/Expr.h \</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/OperationKinds.h \</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/CharInfo.h \</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/TypeTraits.h \</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/Builtins.def \</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/ExprCXX.h \</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/ExpressionTraits.h \</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/Lambda.h \</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/MangleNumberingContext.h \</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/RecordLayout.h \</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/TargetInfo.h \</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/TargetCXXABI.h \</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/TargetOptions.h \</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>  /home/tstellar/llvm/include/llvm/ADT/StringSwitch.h</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span> </div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span> CXXABI.h:</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span> </div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/Type.h:</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span> </div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/NestedNameSpecifier.h:</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span> </div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/Diagnostic.h:</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span> </div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/DiagnosticIDs.h:</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span> </div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/LLVM.h:</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span> </div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span> /home/tstellar/llvm/include/llvm/Support/Casting.h:</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span> </div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span> /home/tstellar/llvm/include/llvm/Support/type_traits.h:</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span> </div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span> /home/tstellar/llvm/include/llvm/Support/DataTypes.h:</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span> </div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span> /home/tstellar/llvm/include/llvm/ADT/None.h:</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span> </div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span> /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h:</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span> </div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span> /home/tstellar/llvm/include/llvm/Support/Compiler.h:</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span> </div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span> /home/tstellar/llvm/include/llvm/Config/llvm-config.h:</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span> </div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span> /home/tstellar/llvm/include/llvm/ADT/StringRef.h:</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span> </div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/DiagnosticCommonKinds.inc:</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span> </div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/DiagnosticOptions.h:</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span> </div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/DiagnosticOptions.def:</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span> </div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/SourceLocation.h:</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span> </div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span> /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h:</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span> </div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span> /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h:</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span> </div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span> /home/tstellar/llvm/include/llvm/ADT/SmallVector.h:</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span> </div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span> /home/tstellar/llvm/include/llvm/Support/AlignOf.h:</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span> </div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span> /home/tstellar/llvm/include/llvm/Support/MathExtras.h:</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span> </div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span> /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h:</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span> </div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span> /home/tstellar/llvm/include/llvm/ADT/DenseMap.h:</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span> </div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span> /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h:</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span> </div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span> /home/tstellar/llvm/include/llvm/ADT/FoldingSet.h:</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span> </div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span> /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h:</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span> </div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/TemplateName.h:</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span> </div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/OperatorKinds.h:</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span> </div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/OperatorKinds.def:</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span> </div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span> /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h:</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span> </div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/<a class="code" href="namespaceclang.html#af8a91eed04532d5da41ef08e7c9c081e" title="The various types of exception specifications that exist in C++11.">ExceptionSpecificationType</a>.h:</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span> </div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/IdentifierTable.h:</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span> </div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/TokenKinds.h:</div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span> </div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/TokenKinds.def:</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span> </div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span> /home/tstellar/llvm/include/llvm/ADT/SmallString.h:</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span> </div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span> /home/tstellar/llvm/include/llvm/ADT/StringMap.h:</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span> </div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span> /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h:</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span> </div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/<a class="code" href="namespaceclang.html#a78aadfeaf316ded55fdd2d1a9c8815b6" title="Describes the different kinds of linkage (C++ [basic.link], C99 6.2.2) that an entity may have...">Linkage</a>.h:</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span> </div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/PartialDiagnostic.h:</div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span> </div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span> /home/tstellar/llvm/include/llvm/ADT/STLExtras.h:</div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span> </div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/Specifiers.h:</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span> </div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/<a class="code" href="namespaceclang.html#afbab15cd4aa598c4e6d9192f7ac4f102" title="Describes the different kinds of visibility that a declaration may have.">Visibility</a>.h:</div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span> </div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span> /home/tstellar/llvm/include/llvm/ADT/APSInt.h:</div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span> </div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span> /home/tstellar/llvm/include/llvm/ADT/APInt.h:</div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span> </div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span> /home/tstellar/llvm/include/llvm/ADT/Optional.h:</div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span> </div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span> /home/tstellar/llvm/include/llvm/ADT/Twine.h:</div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span> </div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span> /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h:</div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span> </div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/TypeNodes.def:</div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span> </div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/BuiltinTypes.def:</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span> </div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/ASTContext.h:</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span> </div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/ASTTypeTraits.h:</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span> </div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/ASTFwd.h:</div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span> </div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclNodes.inc:</div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span> </div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/StmtNodes.inc:</div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span> </div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/Decl.h:</div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span> </div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/APValue.h:</div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span> </div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span> /home/tstellar/llvm/include/llvm/ADT/APFloat.h:</div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span> </div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclBase.h:</div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span> </div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/AttrIterator.h:</div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span> </div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclarationName.h:</div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span> </div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span> /home/tstellar/llvm/include/llvm/Support/PrettyStackTrace.h:</div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span> </div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/ExternalASTSource.h:</div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span> </div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/CharUnits.h:</div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span> </div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/Redeclarable.h:</div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span> </div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span> /home/tstellar/llvm/include/llvm/Support/raw_ostream.h:</div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span> </div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span> /home/tstellar/llvm/include/llvm/Support/FileSystem.h:</div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span> </div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span> /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h:</div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span> </div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span> /home/tstellar/llvm/include/llvm/Support/TimeValue.h:</div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span> </div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span> /home/tstellar/llvm/include/llvm/Support/system_error.h:</div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span> </div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/Stmt.h:</div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span> </div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclGroup.h:</div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span> </div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/StmtIterator.h:</div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span> </div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/CapturedStmt.h:</div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span> </div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/TemplateBase.h:</div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span> </div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/TypeLoc.h:</div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span> </div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/TypeLocNodes.def:</div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span> </div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/CanonicalType.h:</div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span> </div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/CommentCommandTraits.h:</div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span> </div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/CommentOptions.h:</div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span> </div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/CommentCommandList.inc:</div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span> </div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/PrettyPrinter.h:</div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span> </div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/LangOptions.h:</div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span> </div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/ObjCRuntime.h:</div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span> </div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/VersionTuple.h:</div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span> </div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span> /home/tstellar/llvm/include/llvm/ADT/Triple.h:</div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span> </div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/Sanitizers.def:</div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span> </div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/LangOptions.def:</div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span> </div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/OpenCLExtensions.def:</div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span> </div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/RawCommentList.h:</div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span> </div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/SourceManager.h:</div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span> </div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/FileManager.h:</div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span> </div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/FileSystemOptions.h:</div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span> </div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span> /home/tstellar/llvm/include/llvm/ADT/DenseSet.h:</div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span> </div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span> /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h:</div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span> </div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span> /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h:</div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span> </div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span> /home/tstellar/llvm/include/llvm-c/Core.h:</div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span> </div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/AddressSpaces.h:</div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span> </div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span> /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.h:</div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span> </div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span> /home/tstellar/llvm/include/llvm/ADT/TinyPtrVector.h:</div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span> </div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclCXX.h:</div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span> </div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/ASTUnresolvedSet.h:</div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span> </div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/ASTVector.h:</div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span> </div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/UnresolvedSet.h:</div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span> </div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclAccessPair.h:</div>
+<div class="line"><a name="l00335"></a><span class="lineno">  335</span> </div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/Expr.h:</div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span> </div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/OperationKinds.h:</div>
+<div class="line"><a name="l00339"></a><span class="lineno">  339</span> </div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/CharInfo.h:</div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span> </div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/TypeTraits.h:</div>
+<div class="line"><a name="l00343"></a><span class="lineno">  343</span> </div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/Builtins.def:</div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span> </div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/ExprCXX.h:</div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span> </div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/ExpressionTraits.h:</div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span> </div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/Lambda.h:</div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span> </div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/MangleNumberingContext.h:</div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span> </div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/RecordLayout.h:</div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span> </div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/TargetInfo.h:</div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span> </div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/TargetCXXABI.h:</div>
+<div class="line"><a name="l00359"></a><span class="lineno">  359</span> </div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/TargetOptions.h:</div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span> </div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span> /home/tstellar/llvm/include/llvm/ADT/StringSwitch.h:</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:41 for r$LatestRev$ by <a href="http://www.doxygen.org">Doxygen 
+1.8.3.1</a>.</p>
+<p class="footer">
+See the <a href="http://clang.llvm.org">Main Clang Web Page</a> for more 
+information.</p>
+</body>
+</html>

Added: www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/AST_2Release_09Asserts_2MicrosoftCXXABI_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/AST_2Release_09Asserts_2MicrosoftCXXABI_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/AST_2Release_09Asserts_2MicrosoftCXXABI_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/AST_2Release_09Asserts_2MicrosoftCXXABI_8d_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,453 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="clang,LLVM,Low Level Virtual Machine,C,C++,doxygen,API,frontend,documentation"/>
+<meta name="description" content="C++ source code API documentation for clang."/>
+<title>clang: MicrosoftCXXABI.d Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_87e2a7550f83bd8cbfc92736891468fc.html">lib</a></li><li class="navelem"><a class="el" href="dir_d3636efc55c6148efe36c59ffa01cb41.html">AST</a></li><li class="navelem"><a class="el" href="dir_e796beea07674cb14e7827e2d3a82e85.html">Release+Asserts</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">AST/Release+Asserts/MicrosoftCXXABI.d</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="AST_2Release_09Asserts_2MicrosoftCXXABI_8d.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> /home/tstellar/llvm/tools/clang/lib/AST/Release+Asserts/MicrosoftCXXABI.o \</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>  /home/tstellar/llvm/tools/clang/lib/AST/Release+Asserts/MicrosoftCXXABI.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>  MicrosoftCXXABI.cpp CXXABI.h \</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/Type.h \</div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/NestedNameSpecifier.h \</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/Diagnostic.h \</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/DiagnosticIDs.h \</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/LLVM.h \</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>  /home/tstellar/llvm/include/llvm/Support/Casting.h \</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>  /home/tstellar/llvm/include/llvm/Support/type_traits.h \</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>  /home/tstellar/llvm/include/llvm/Support/DataTypes.h \</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>  /home/tstellar/llvm/include/llvm/ADT/None.h \</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>  /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h \</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>  /home/tstellar/llvm/include/llvm/Support/Compiler.h \</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>  /home/tstellar/llvm/include/llvm/Config/llvm-config.h \</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>  /home/tstellar/llvm/include/llvm/ADT/StringRef.h \</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/DiagnosticCommonKinds.inc \</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/DiagnosticOptions.h \</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/DiagnosticOptions.def \</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/SourceLocation.h \</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>  /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h \</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>  /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h \</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>  /home/tstellar/llvm/include/llvm/ADT/SmallVector.h \</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>  /home/tstellar/llvm/include/llvm/Support/AlignOf.h \</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>  /home/tstellar/llvm/include/llvm/Support/MathExtras.h \</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>  /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h \</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMap.h \</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h \</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>  /home/tstellar/llvm/include/llvm/ADT/FoldingSet.h \</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>  /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h \</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/TemplateName.h \</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/OperatorKinds.h \</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/OperatorKinds.def \</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>  /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h \</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/<a class="code" href="namespaceclang.html#af8a91eed04532d5da41ef08e7c9c081e" title="The various types of exception specifications that exist in C++11.">ExceptionSpecificationType</a>.h \</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/IdentifierTable.h \</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/TokenKinds.h \</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/TokenKinds.def \</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>  /home/tstellar/llvm/include/llvm/ADT/SmallString.h \</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>  /home/tstellar/llvm/include/llvm/ADT/StringMap.h \</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>  /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h \</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/<a class="code" href="namespaceclang.html#a78aadfeaf316ded55fdd2d1a9c8815b6" title="Describes the different kinds of linkage (C++ [basic.link], C99 6.2.2) that an entity may have...">Linkage</a>.h \</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/PartialDiagnostic.h \</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>  /home/tstellar/llvm/include/llvm/ADT/STLExtras.h \</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/Specifiers.h \</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/<a class="code" href="namespaceclang.html#afbab15cd4aa598c4e6d9192f7ac4f102" title="Describes the different kinds of visibility that a declaration may have.">Visibility</a>.h \</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>  /home/tstellar/llvm/include/llvm/ADT/APSInt.h \</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>  /home/tstellar/llvm/include/llvm/ADT/APInt.h \</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>  /home/tstellar/llvm/include/llvm/ADT/Optional.h \</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>  /home/tstellar/llvm/include/llvm/ADT/Twine.h \</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>  /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h \</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/TypeNodes.def \</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/BuiltinTypes.def \</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/Attr.h \</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/AttrIterator.h \</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/Decl.h \</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/APValue.h \</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>  /home/tstellar/llvm/include/llvm/ADT/APFloat.h \</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclBase.h \</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclarationName.h \</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>  /home/tstellar/llvm/include/llvm/Support/PrettyStackTrace.h \</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclNodes.inc \</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/ExternalASTSource.h \</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/CharUnits.h \</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/Redeclarable.h \</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>  /home/tstellar/llvm/include/llvm/Support/raw_ostream.h \</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>  /home/tstellar/llvm/include/llvm/Support/FileSystem.h \</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>  /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h \</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>  /home/tstellar/llvm/include/llvm/Support/TimeValue.h \</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>  /home/tstellar/llvm/include/llvm/Support/system_error.h \</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/AttrKinds.h \</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/AttrList.inc \</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/VersionTuple.h \</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>  /home/tstellar/llvm/include/llvm/ADT/StringSwitch.h \</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/Attrs.inc \</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/ASTContext.h \</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/ASTTypeTraits.h \</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/ASTFwd.h \</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/StmtNodes.inc \</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/Stmt.h \</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclGroup.h \</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/StmtIterator.h \</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/CapturedStmt.h \</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/TemplateBase.h \</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/TypeLoc.h \</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/TypeLocNodes.def \</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/CanonicalType.h \</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/CommentCommandTraits.h \</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/CommentOptions.h \</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/CommentCommandList.inc \</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/PrettyPrinter.h \</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/LangOptions.h \</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/ObjCRuntime.h \</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>  /home/tstellar/llvm/include/llvm/ADT/Triple.h \</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/Sanitizers.def \</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/LangOptions.def \</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/OpenCLExtensions.def \</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/RawCommentList.h \</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/SourceManager.h \</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/FileManager.h \</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/FileSystemOptions.h \</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>  /home/tstellar/llvm/include/llvm/ADT/DenseSet.h \</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>  /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h \</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>  /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h \</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>  /home/tstellar/llvm/include/llvm-c/Core.h \</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/AddressSpaces.h \</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>  /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.h \</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>  /home/tstellar/llvm/include/llvm/ADT/TinyPtrVector.h \</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclCXX.h \</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/ASTUnresolvedSet.h \</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/ASTVector.h \</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/UnresolvedSet.h \</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclAccessPair.h \</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/Expr.h \</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/OperationKinds.h \</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/CharInfo.h \</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/TypeTraits.h \</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/Builtins.def \</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/ExprCXX.h \</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/ExpressionTraits.h \</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/Lambda.h \</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/MangleNumberingContext.h \</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/RecordLayout.h \</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/TargetInfo.h \</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/TargetCXXABI.h \</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/TargetOptions.h</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span> </div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span> CXXABI.h:</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span> </div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/Type.h:</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span> </div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/NestedNameSpecifier.h:</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span> </div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/Diagnostic.h:</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span> </div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/DiagnosticIDs.h:</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span> </div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/LLVM.h:</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span> </div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span> /home/tstellar/llvm/include/llvm/Support/Casting.h:</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span> </div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span> /home/tstellar/llvm/include/llvm/Support/type_traits.h:</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span> </div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span> /home/tstellar/llvm/include/llvm/Support/DataTypes.h:</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span> </div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span> /home/tstellar/llvm/include/llvm/ADT/None.h:</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span> </div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span> /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h:</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span> </div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span> /home/tstellar/llvm/include/llvm/Support/Compiler.h:</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span> </div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span> /home/tstellar/llvm/include/llvm/Config/llvm-config.h:</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span> </div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span> /home/tstellar/llvm/include/llvm/ADT/StringRef.h:</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span> </div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/DiagnosticCommonKinds.inc:</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span> </div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/DiagnosticOptions.h:</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span> </div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/DiagnosticOptions.def:</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span> </div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/SourceLocation.h:</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span> </div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span> /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h:</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span> </div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span> /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h:</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span> </div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span> /home/tstellar/llvm/include/llvm/ADT/SmallVector.h:</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span> </div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span> /home/tstellar/llvm/include/llvm/Support/AlignOf.h:</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span> </div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span> /home/tstellar/llvm/include/llvm/Support/MathExtras.h:</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span> </div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span> /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h:</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span> </div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span> /home/tstellar/llvm/include/llvm/ADT/DenseMap.h:</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span> </div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span> /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h:</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span> </div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span> /home/tstellar/llvm/include/llvm/ADT/FoldingSet.h:</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span> </div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span> /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h:</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span> </div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/TemplateName.h:</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span> </div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/OperatorKinds.h:</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span> </div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/OperatorKinds.def:</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span> </div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span> /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h:</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span> </div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/<a class="code" href="namespaceclang.html#af8a91eed04532d5da41ef08e7c9c081e" title="The various types of exception specifications that exist in C++11.">ExceptionSpecificationType</a>.h:</div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span> </div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/IdentifierTable.h:</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span> </div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/TokenKinds.h:</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span> </div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/TokenKinds.def:</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span> </div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span> /home/tstellar/llvm/include/llvm/ADT/SmallString.h:</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span> </div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span> /home/tstellar/llvm/include/llvm/ADT/StringMap.h:</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span> </div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span> /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h:</div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span> </div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/<a class="code" href="namespaceclang.html#a78aadfeaf316ded55fdd2d1a9c8815b6" title="Describes the different kinds of linkage (C++ [basic.link], C99 6.2.2) that an entity may have...">Linkage</a>.h:</div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span> </div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/PartialDiagnostic.h:</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span> </div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span> /home/tstellar/llvm/include/llvm/ADT/STLExtras.h:</div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span> </div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/Specifiers.h:</div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span> </div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/<a class="code" href="namespaceclang.html#afbab15cd4aa598c4e6d9192f7ac4f102" title="Describes the different kinds of visibility that a declaration may have.">Visibility</a>.h:</div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span> </div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span> /home/tstellar/llvm/include/llvm/ADT/APSInt.h:</div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span> </div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span> /home/tstellar/llvm/include/llvm/ADT/APInt.h:</div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span> </div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span> /home/tstellar/llvm/include/llvm/ADT/Optional.h:</div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span> </div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span> /home/tstellar/llvm/include/llvm/ADT/Twine.h:</div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span> </div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span> /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h:</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span> </div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/TypeNodes.def:</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span> </div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/BuiltinTypes.def:</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span> </div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/Attr.h:</div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span> </div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/AttrIterator.h:</div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span> </div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/Decl.h:</div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span> </div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/APValue.h:</div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span> </div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span> /home/tstellar/llvm/include/llvm/ADT/APFloat.h:</div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span> </div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclBase.h:</div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span> </div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclarationName.h:</div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span> </div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span> /home/tstellar/llvm/include/llvm/Support/PrettyStackTrace.h:</div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span> </div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclNodes.inc:</div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span> </div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/ExternalASTSource.h:</div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span> </div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/CharUnits.h:</div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span> </div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/Redeclarable.h:</div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span> </div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span> /home/tstellar/llvm/include/llvm/Support/raw_ostream.h:</div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span> </div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span> /home/tstellar/llvm/include/llvm/Support/FileSystem.h:</div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span> </div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span> /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h:</div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span> </div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span> /home/tstellar/llvm/include/llvm/Support/TimeValue.h:</div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span> </div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span> /home/tstellar/llvm/include/llvm/Support/system_error.h:</div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span> </div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/AttrKinds.h:</div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span> </div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/AttrList.inc:</div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span> </div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/VersionTuple.h:</div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span> </div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span> /home/tstellar/llvm/include/llvm/ADT/StringSwitch.h:</div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span> </div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/Attrs.inc:</div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span> </div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/ASTContext.h:</div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span> </div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/ASTTypeTraits.h:</div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span> </div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/ASTFwd.h:</div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span> </div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/StmtNodes.inc:</div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span> </div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/Stmt.h:</div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span> </div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclGroup.h:</div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span> </div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/StmtIterator.h:</div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span> </div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/CapturedStmt.h:</div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span> </div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/TemplateBase.h:</div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span> </div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/TypeLoc.h:</div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span> </div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/TypeLocNodes.def:</div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span> </div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/CanonicalType.h:</div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span> </div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/CommentCommandTraits.h:</div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span> </div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/CommentOptions.h:</div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span> </div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/CommentCommandList.inc:</div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span> </div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/PrettyPrinter.h:</div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span> </div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/LangOptions.h:</div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span> </div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/ObjCRuntime.h:</div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span> </div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span> /home/tstellar/llvm/include/llvm/ADT/Triple.h:</div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span> </div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/Sanitizers.def:</div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span> </div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/LangOptions.def:</div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span> </div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/OpenCLExtensions.def:</div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span> </div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/RawCommentList.h:</div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span> </div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/SourceManager.h:</div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span> </div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/FileManager.h:</div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span> </div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/FileSystemOptions.h:</div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span> </div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span> /home/tstellar/llvm/include/llvm/ADT/DenseSet.h:</div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span> </div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span> /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h:</div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span> </div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span> /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h:</div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span> </div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span> /home/tstellar/llvm/include/llvm-c/Core.h:</div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span> </div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/AddressSpaces.h:</div>
+<div class="line"><a name="l00335"></a><span class="lineno">  335</span> </div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span> /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.h:</div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span> </div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span> /home/tstellar/llvm/include/llvm/ADT/TinyPtrVector.h:</div>
+<div class="line"><a name="l00339"></a><span class="lineno">  339</span> </div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclCXX.h:</div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span> </div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/ASTUnresolvedSet.h:</div>
+<div class="line"><a name="l00343"></a><span class="lineno">  343</span> </div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/ASTVector.h:</div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span> </div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/UnresolvedSet.h:</div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span> </div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclAccessPair.h:</div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span> </div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/Expr.h:</div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span> </div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/OperationKinds.h:</div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span> </div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/CharInfo.h:</div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span> </div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/TypeTraits.h:</div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span> </div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/Builtins.def:</div>
+<div class="line"><a name="l00359"></a><span class="lineno">  359</span> </div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/ExprCXX.h:</div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span> </div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/ExpressionTraits.h:</div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span> </div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/Lambda.h:</div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span> </div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/MangleNumberingContext.h:</div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span> </div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/RecordLayout.h:</div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span> </div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/TargetInfo.h:</div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span> </div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/TargetCXXABI.h:</div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span> </div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/TargetOptions.h:</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:43 for r$LatestRev$ by <a href="http://www.doxygen.org">Doxygen 
+1.8.3.1</a>.</p>
+<p class="footer">
+See the <a href="http://clang.llvm.org">Main Clang Web Page</a> for more 
+information.</p>
+</body>
+</html>

Added: www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/AST_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/AST_8h_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/AST_8h_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/AST_8h_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,107 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="clang,LLVM,Low Level Virtual Machine,C,C++,doxygen,API,frontend,documentation"/>
+<meta name="description" content="C++ source code API documentation for clang."/>
+<title>clang: AST.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_3e61bbac0c8515a3c083eb51d03eb390.html">include</a></li><li class="navelem"><a class="el" href="dir_ee4f288247dc2d9ccd0382aea6916312.html">clang</a></li><li class="navelem"><a class="el" href="dir_6152e82a4845f7e2a2888050f43c34d1.html">AST</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">AST.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="AST_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> <span class="comment">//===--- AST.h - "Umbrella" header for AST library --------------*- C++ -*-===//</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">//                     The LLVM Compiler Infrastructure</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment">// This file is distributed under the University of Illinois Open Source</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">// License. See LICENSE.TXT for details.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span> <span class="comment">//  This file defines the interface to the AST classes.</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> </div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> <span class="preprocessor">#ifndef LLVM_CLANG_AST_AST_H</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> <span class="preprocessor"></span><span class="preprocessor">#define LLVM_CLANG_AST_AST_H</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="comment">// This header exports all AST interfaces.</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="preprocessor">#include "<a class="code" href="ASTContext_8h.html" title="Defines the clang::ASTContext interface.">clang/AST/ASTContext.h</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="preprocessor">#include "<a class="code" href="Decl_8h.html">clang/AST/Decl.h</a>"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="preprocessor">#include "<a class="code" href="DeclCXX_8h.html" title="Defines the C++ Decl subclasses, other than those for templates (found in DeclTemplate.h) and friends (in DeclFriend.h).">clang/AST/DeclCXX.h</a>"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="preprocessor">#include "<a class="code" href="DeclObjC_8h.html">clang/AST/DeclObjC.h</a>"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="preprocessor">#include "<a class="code" href="DeclTemplate_8h.html" title="Defines the C++ template declaration subclasses.">clang/AST/DeclTemplate.h</a>"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="preprocessor">#include "<a class="code" href="Expr_8h.html">clang/AST/Expr.h</a>"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="preprocessor">#include "<a class="code" href="ExprObjC_8h.html">clang/AST/ExprObjC.h</a>"</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="preprocessor">#include "<a class="code" href="StmtVisitor_8h.html">clang/AST/StmtVisitor.h</a>"</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="preprocessor">#include "<a class="code" href="Type_8h.html">clang/AST/Type.h</a>"</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> </div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:12 for r$LatestRev$ by <a href="http://www.doxygen.org">Doxygen 
+1.8.3.1</a>.</p>
+<p class="footer">
+See the <a href="http://clang.llvm.org">Main Clang Web Page</a> for more 
+information.</p>
+</body>
+</html>

Added: www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Action_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Action_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Action_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Action_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,201 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="clang,LLVM,Low Level Virtual Machine,C,C++,doxygen,API,frontend,documentation"/>
+<meta name="description" content="C++ source code API documentation for clang."/>
+<title>clang: Action.cpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_87e2a7550f83bd8cbfc92736891468fc.html">lib</a></li><li class="navelem"><a class="el" href="dir_79a4e43f5883e96ea4f45c2e67339e2c.html">Driver</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">Action.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="Action_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> <span class="comment">//===--- Action.cpp - Abstract compilation steps --------------------------===//</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">//                     The LLVM Compiler Infrastructure</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment">// This file is distributed under the University of Illinois Open Source</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">// License. See LICENSE.TXT for details.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span> </div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span> <span class="preprocessor">#include "<a class="code" href="Action_8h.html">clang/Driver/Action.h</a>"</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="preprocessor">#include "llvm/Support/ErrorHandling.h"</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="preprocessor">#include <cassert></span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> <span class="keyword">using namespace </span>clang::driver;</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> <span class="keyword">using namespace </span>llvm::opt;</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Action.html#acdb06775d157339256a8ecd55749226c">   16</a></span> <a class="code" href="classclang_1_1driver_1_1Action.html#acdb06775d157339256a8ecd55749226c">Action::~Action</a>() {</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>   <span class="keywordflow">if</span> (OwnsInputs) {</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>     <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1driver_1_1Action.html#a81602593587203a1131234dd0b3df256">iterator</a> it = begin(), ie = end(); it != ie; ++it)</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>       <span class="keyword">delete</span> *it;</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>   }</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> }</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Action.html#a6f2d0516e592af1f34771f261bb1968f">   23</a></span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="classclang_1_1driver_1_1Action.html#ad84c6b2d5920b0fb3ccb6aa4feb938ee">Action::getClassName</a>(<a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700">ActionClass</a> AC) {</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>   <span class="keywordflow">switch</span> (AC) {</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>   <span class="keywordflow">case</span> InputClass: <span class="keywordflow">return</span> <span class="stringliteral">"input"</span>;</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>   <span class="keywordflow">case</span> BindArchClass: <span class="keywordflow">return</span> <span class="stringliteral">"bind-arch"</span>;</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>   <span class="keywordflow">case</span> PreprocessJobClass: <span class="keywordflow">return</span> <span class="stringliteral">"preprocessor"</span>;</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>   <span class="keywordflow">case</span> PrecompileJobClass: <span class="keywordflow">return</span> <span class="stringliteral">"precompiler"</span>;</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>   <span class="keywordflow">case</span> AnalyzeJobClass: <span class="keywordflow">return</span> <span class="stringliteral">"analyzer"</span>;</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>   <span class="keywordflow">case</span> MigrateJobClass: <span class="keywordflow">return</span> <span class="stringliteral">"migrator"</span>;</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>   <span class="keywordflow">case</span> CompileJobClass: <span class="keywordflow">return</span> <span class="stringliteral">"compiler"</span>;</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>   <span class="keywordflow">case</span> AssembleJobClass: <span class="keywordflow">return</span> <span class="stringliteral">"assembler"</span>;</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>   <span class="keywordflow">case</span> LinkJobClass: <span class="keywordflow">return</span> <span class="stringliteral">"linker"</span>;</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>   <span class="keywordflow">case</span> LipoJobClass: <span class="keywordflow">return</span> <span class="stringliteral">"lipo"</span>;</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>   <span class="keywordflow">case</span> DsymutilJobClass: <span class="keywordflow">return</span> <span class="stringliteral">"dsymutil"</span>;</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>   <span class="keywordflow">case</span> VerifyJobClass: <span class="keywordflow">return</span> <span class="stringliteral">"verify"</span>;</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>   }</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span> </div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>   llvm_unreachable(<span class="stringliteral">"invalid class"</span>);</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span> }</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span> </div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span> <span class="keywordtype">void</span> InputAction::anchor() {}</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span> </div>
+<div class="line"><a name="l00044"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1InputAction.html#a20bd8e217f90ffbb5ab6d1c869b360ee">   44</a></span> <a class="code" href="classclang_1_1driver_1_1InputAction.html#a20bd8e217f90ffbb5ab6d1c869b360ee">InputAction::InputAction</a>(<span class="keyword">const</span> Arg &_Input, <a class="code" href="namespaceclang_1_1driver_1_1types.html#a7d09171e548da2cdf7a0212fb2984718">types::ID</a> _Type)</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>   : <a class="code" href="classclang_1_1driver_1_1Action.html">Action</a>(InputClass, _Type), <a class="code" href="JSONCompilationDatabase_8cpp.html#aece53df006a4f11f7ebaac621f5d3bdb">Input</a>(_Input) {</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span> }</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span> </div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span> <span class="keywordtype">void</span> BindArchAction::anchor() {}</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span> </div>
+<div class="line"><a name="l00050"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1BindArchAction.html#ada81ac85558d14857eefe77ba3d182ad">   50</a></span> <a class="code" href="classclang_1_1driver_1_1BindArchAction.html#ada81ac85558d14857eefe77ba3d182ad">BindArchAction::BindArchAction</a>(<a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> *<a class="code" href="JSONCompilationDatabase_8cpp.html#aece53df006a4f11f7ebaac621f5d3bdb">Input</a>, <span class="keyword">const</span> <span class="keywordtype">char</span> *_ArchName)</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>   : <a class="code" href="classclang_1_1driver_1_1Action.html">Action</a>(BindArchClass, Input, Input->getType()), ArchName(_ArchName) {</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span> }</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span> </div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span> <span class="keywordtype">void</span> JobAction::anchor() {}</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span> </div>
+<div class="line"><a name="l00056"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1JobAction.html#ae0cb03b18390809ea6df26ed1fd90a30">   56</a></span> <a class="code" href="classclang_1_1driver_1_1JobAction.html#ae0cb03b18390809ea6df26ed1fd90a30">JobAction::JobAction</a>(<a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700">ActionClass</a> <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a>, <a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> *<a class="code" href="JSONCompilationDatabase_8cpp.html#aece53df006a4f11f7ebaac621f5d3bdb">Input</a>, <a class="code" href="namespaceclang_1_1driver_1_1types.html#a7d09171e548da2cdf7a0212fb2984718">types::ID</a> <a class="code" href="classclang_1_1Type.html">Type</a>)</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>   : <a class="code" href="classclang_1_1driver_1_1Action.html">Action</a>(Kind, Input, Type) {</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span> }</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span> </div>
+<div class="line"><a name="l00060"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1JobAction.html#a7322a23aac80770692fc472dc76efcd4">   60</a></span> <a class="code" href="classclang_1_1driver_1_1JobAction.html#ae0cb03b18390809ea6df26ed1fd90a30">JobAction::JobAction</a>(<a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700">ActionClass</a> <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a>, <span class="keyword">const</span> <a class="code" href="classllvm_1_1SmallVector.html">ActionList</a> &Inputs, <a class="code" href="namespaceclang_1_1driver_1_1types.html#a7d09171e548da2cdf7a0212fb2984718">types::ID</a> <a class="code" href="classclang_1_1Type.html">Type</a>)</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>   : <a class="code" href="classclang_1_1driver_1_1Action.html">Action</a>(Kind, Inputs, Type) {</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span> }</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span> </div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span> <span class="keywordtype">void</span> PreprocessJobAction::anchor() {}</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span> </div>
+<div class="line"><a name="l00066"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1PreprocessJobAction.html#a6d83631ccb9a753186f7112faa5b5ef3">   66</a></span> <a class="code" href="classclang_1_1driver_1_1PreprocessJobAction.html#a6d83631ccb9a753186f7112faa5b5ef3">PreprocessJobAction::PreprocessJobAction</a>(<a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> *<a class="code" href="JSONCompilationDatabase_8cpp.html#aece53df006a4f11f7ebaac621f5d3bdb">Input</a>, <a class="code" href="namespaceclang_1_1driver_1_1types.html#a7d09171e548da2cdf7a0212fb2984718">types::ID</a> OutputType)</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>   : <a class="code" href="classclang_1_1driver_1_1JobAction.html">JobAction</a>(PreprocessJobClass, Input, OutputType) {</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span> }</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span> </div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span> <span class="keywordtype">void</span> PrecompileJobAction::anchor() {}</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span> </div>
+<div class="line"><a name="l00072"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1PrecompileJobAction.html#ae0a85289a535fb7f2ac35616cc4fe018">   72</a></span> <a class="code" href="classclang_1_1driver_1_1PrecompileJobAction.html#ae0a85289a535fb7f2ac35616cc4fe018">PrecompileJobAction::PrecompileJobAction</a>(<a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> *<a class="code" href="JSONCompilationDatabase_8cpp.html#aece53df006a4f11f7ebaac621f5d3bdb">Input</a>, <a class="code" href="namespaceclang_1_1driver_1_1types.html#a7d09171e548da2cdf7a0212fb2984718">types::ID</a> OutputType)</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>   : <a class="code" href="classclang_1_1driver_1_1JobAction.html">JobAction</a>(PrecompileJobClass, Input, OutputType) {</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span> }</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span> </div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span> <span class="keywordtype">void</span> AnalyzeJobAction::anchor() {}</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span> </div>
+<div class="line"><a name="l00078"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1AnalyzeJobAction.html#ae2eb403439d299d63c6e1f228a429508">   78</a></span> <a class="code" href="classclang_1_1driver_1_1AnalyzeJobAction.html#ae2eb403439d299d63c6e1f228a429508">AnalyzeJobAction::AnalyzeJobAction</a>(<a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> *<a class="code" href="JSONCompilationDatabase_8cpp.html#aece53df006a4f11f7ebaac621f5d3bdb">Input</a>, <a class="code" href="namespaceclang_1_1driver_1_1types.html#a7d09171e548da2cdf7a0212fb2984718">types::ID</a> OutputType)</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>   : <a class="code" href="classclang_1_1driver_1_1JobAction.html">JobAction</a>(AnalyzeJobClass, Input, OutputType) {</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span> }</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span> </div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span> <span class="keywordtype">void</span> MigrateJobAction::anchor() {}</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span> </div>
+<div class="line"><a name="l00084"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1MigrateJobAction.html#a31896328088eae2771b90dd133624adf">   84</a></span> <a class="code" href="classclang_1_1driver_1_1MigrateJobAction.html#a31896328088eae2771b90dd133624adf">MigrateJobAction::MigrateJobAction</a>(<a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> *<a class="code" href="JSONCompilationDatabase_8cpp.html#aece53df006a4f11f7ebaac621f5d3bdb">Input</a>, <a class="code" href="namespaceclang_1_1driver_1_1types.html#a7d09171e548da2cdf7a0212fb2984718">types::ID</a> OutputType)</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>   : <a class="code" href="classclang_1_1driver_1_1JobAction.html">JobAction</a>(MigrateJobClass, Input, OutputType) {</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span> }</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span> </div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span> <span class="keywordtype">void</span> CompileJobAction::anchor() {}</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span> </div>
+<div class="line"><a name="l00090"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1CompileJobAction.html#a981e50bfd2946eb9ac963bdb368a9037">   90</a></span> <a class="code" href="classclang_1_1driver_1_1CompileJobAction.html#a981e50bfd2946eb9ac963bdb368a9037">CompileJobAction::CompileJobAction</a>(<a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> *<a class="code" href="JSONCompilationDatabase_8cpp.html#aece53df006a4f11f7ebaac621f5d3bdb">Input</a>, <a class="code" href="namespaceclang_1_1driver_1_1types.html#a7d09171e548da2cdf7a0212fb2984718">types::ID</a> OutputType)</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>   : <a class="code" href="classclang_1_1driver_1_1JobAction.html">JobAction</a>(CompileJobClass, Input, OutputType) {</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span> }</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span> </div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span> <span class="keywordtype">void</span> AssembleJobAction::anchor() {}</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span> </div>
+<div class="line"><a name="l00096"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1AssembleJobAction.html#a6ab319190cdbcc21de027ce28cc5c2a4">   96</a></span> <a class="code" href="classclang_1_1driver_1_1AssembleJobAction.html#a6ab319190cdbcc21de027ce28cc5c2a4">AssembleJobAction::AssembleJobAction</a>(<a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> *<a class="code" href="JSONCompilationDatabase_8cpp.html#aece53df006a4f11f7ebaac621f5d3bdb">Input</a>, <a class="code" href="namespaceclang_1_1driver_1_1types.html#a7d09171e548da2cdf7a0212fb2984718">types::ID</a> OutputType)</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>   : <a class="code" href="classclang_1_1driver_1_1JobAction.html">JobAction</a>(AssembleJobClass, Input, OutputType) {</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span> }</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span> </div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span> <span class="keywordtype">void</span> LinkJobAction::anchor() {}</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span> </div>
+<div class="line"><a name="l00102"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1LinkJobAction.html#a9e4bd2fc1907d69fae026ea3699bc859">  102</a></span> <a class="code" href="classclang_1_1driver_1_1LinkJobAction.html#a9e4bd2fc1907d69fae026ea3699bc859">LinkJobAction::LinkJobAction</a>(<a class="code" href="classllvm_1_1SmallVector.html">ActionList</a> &Inputs, <a class="code" href="namespaceclang_1_1driver_1_1types.html#a7d09171e548da2cdf7a0212fb2984718">types::ID</a> <a class="code" href="classclang_1_1Type.html">Type</a>)</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>   : <a class="code" href="classclang_1_1driver_1_1JobAction.html">JobAction</a>(LinkJobClass, Inputs, Type) {</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span> }</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span> </div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span> <span class="keywordtype">void</span> LipoJobAction::anchor() {}</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span> </div>
+<div class="line"><a name="l00108"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1LipoJobAction.html#a8be6f6ce8181504087bf1cd9fda705e1">  108</a></span> <a class="code" href="classclang_1_1driver_1_1LipoJobAction.html#a8be6f6ce8181504087bf1cd9fda705e1">LipoJobAction::LipoJobAction</a>(<a class="code" href="classllvm_1_1SmallVector.html">ActionList</a> &Inputs, <a class="code" href="namespaceclang_1_1driver_1_1types.html#a7d09171e548da2cdf7a0212fb2984718">types::ID</a> <a class="code" href="classclang_1_1Type.html">Type</a>)</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>   : <a class="code" href="classclang_1_1driver_1_1JobAction.html">JobAction</a>(LipoJobClass, Inputs, Type) {</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span> }</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span> </div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span> <span class="keywordtype">void</span> DsymutilJobAction::anchor() {}</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span> </div>
+<div class="line"><a name="l00114"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1DsymutilJobAction.html#a0c080516addaa1ac50d69ca90bbe2abb">  114</a></span> <a class="code" href="classclang_1_1driver_1_1DsymutilJobAction.html#a0c080516addaa1ac50d69ca90bbe2abb">DsymutilJobAction::DsymutilJobAction</a>(<a class="code" href="classllvm_1_1SmallVector.html">ActionList</a> &Inputs, <a class="code" href="namespaceclang_1_1driver_1_1types.html#a7d09171e548da2cdf7a0212fb2984718">types::ID</a> <a class="code" href="classclang_1_1Type.html">Type</a>)</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>   : <a class="code" href="classclang_1_1driver_1_1JobAction.html">JobAction</a>(DsymutilJobClass, Inputs, Type) {</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span> }</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span> </div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span> <span class="keywordtype">void</span> VerifyJobAction::anchor() {}</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span> </div>
+<div class="line"><a name="l00120"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1VerifyJobAction.html#ac2ad2748a363812d27a9ec7e78db7acd">  120</a></span> <a class="code" href="classclang_1_1driver_1_1VerifyJobAction.html#ac2ad2748a363812d27a9ec7e78db7acd">VerifyJobAction::VerifyJobAction</a>(<a class="code" href="classllvm_1_1SmallVector.html">ActionList</a> &Inputs, <a class="code" href="namespaceclang_1_1driver_1_1types.html#a7d09171e548da2cdf7a0212fb2984718">types::ID</a> <a class="code" href="classclang_1_1Type.html">Type</a>)</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>   : <a class="code" href="classclang_1_1driver_1_1JobAction.html">JobAction</a>(VerifyJobClass, Inputs, Type) {</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span> }</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:02 for r$LatestRev$ by <a href="http://www.doxygen.org">Doxygen 
+1.8.3.1</a>.</p>
+<p class="footer">
+See the <a href="http://clang.llvm.org">Main Clang Web Page</a> for more 
+information.</p>
+</body>
+</html>

Added: www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Action_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Action_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Action_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Action_8d_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,145 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="clang,LLVM,Low Level Virtual Machine,C,C++,doxygen,API,frontend,documentation"/>
+<meta name="description" content="C++ source code API documentation for clang."/>
+<title>clang: Action.d Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_87e2a7550f83bd8cbfc92736891468fc.html">lib</a></li><li class="navelem"><a class="el" href="dir_79a4e43f5883e96ea4f45c2e67339e2c.html">Driver</a></li><li class="navelem"><a class="el" href="dir_7586acc61ec3e12e4bc52d53567f5268.html">Release+Asserts</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">Action.d</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="Action_8d.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> /home/tstellar/llvm/tools/clang/lib/Driver/Release+Asserts/<a class="code" href="Tooling_8cpp.html#a611b216472a9171383c588b3c166b0a1">Action</a>.o \</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>  /home/tstellar/llvm/tools/clang/lib/Driver/Release+Asserts/<a class="code" href="Tooling_8cpp.html#a611b216472a9171383c588b3c166b0a1">Action</a>.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>  Action.cpp \</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/<a class="code" href="Tooling_8cpp.html#a611b216472a9171383c588b3c166b0a1">Action</a>.h \</div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Types.h \</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Phases.h \</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>  /home/tstellar/llvm/include/llvm/ADT/SmallVector.h \</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>  /home/tstellar/llvm/include/llvm/Support/AlignOf.h \</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>  /home/tstellar/llvm/include/llvm/Support/Compiler.h \</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>  /home/tstellar/llvm/include/llvm/Config/llvm-config.h \</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>  /home/tstellar/llvm/include/llvm/Support/MathExtras.h \</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>  /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h \</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>  /home/tstellar/llvm/include/llvm/Support/DataTypes.h \</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>  /home/tstellar/llvm/include/llvm/Support/type_traits.h \</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Types.def \</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Util.h \</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Basic/LLVM.h \</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>  /home/tstellar/llvm/include/llvm/Support/Casting.h \</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>  /home/tstellar/llvm/include/llvm/ADT/None.h \</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMap.h \</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h \</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>  /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h \</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>  /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h \</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>  /home/tstellar/llvm/include/llvm/ADT/StringRef.h</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> </div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/<a class="code" href="Tooling_8cpp.html#a611b216472a9171383c588b3c166b0a1">Action</a>.h:</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> </div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Types.h:</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span> /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Phases.h:</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span> </div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span> /home/tstellar/llvm/include/llvm/ADT/SmallVector.h:</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span> </div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span> /home/tstellar/llvm/include/llvm/Support/AlignOf.h:</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span> </div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span> /home/tstellar/llvm/include/llvm/Support/Compiler.h:</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span> </div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span> /home/tstellar/llvm/include/llvm/Config/llvm-config.h:</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span> </div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span> /home/tstellar/llvm/include/llvm/Support/MathExtras.h:</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span> </div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span> /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h:</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span> </div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span> /home/tstellar/llvm/include/llvm/Support/DataTypes.h:</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span> </div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span> /home/tstellar/llvm/include/llvm/Support/type_traits.h:</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span> </div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span> /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Types.def:</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span> </div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span> /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Util.h:</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span> </div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span> /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Basic/LLVM.h:</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span> </div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span> /home/tstellar/llvm/include/llvm/Support/Casting.h:</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span> </div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span> /home/tstellar/llvm/include/llvm/ADT/None.h:</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span> </div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span> /home/tstellar/llvm/include/llvm/ADT/DenseMap.h:</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span> </div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span> /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h:</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span> </div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span> /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h:</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span> </div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span> /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h:</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span> </div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span> /home/tstellar/llvm/include/llvm/ADT/StringRef.h:</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:02 for r$LatestRev$ by <a href="http://www.doxygen.org">Doxygen 
+1.8.3.1</a>.</p>
+<p class="footer">
+See the <a href="http://clang.llvm.org">Main Clang Web Page</a> for more 
+information.</p>
+</body>
+</html>

Added: www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Action_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Action_8h_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Action_8h_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Action_8h_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,324 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="clang,LLVM,Low Level Virtual Machine,C,C++,doxygen,API,frontend,documentation"/>
+<meta name="description" content="C++ source code API documentation for clang."/>
+<title>clang: Action.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_3e61bbac0c8515a3c083eb51d03eb390.html">include</a></li><li class="navelem"><a class="el" href="dir_ee4f288247dc2d9ccd0382aea6916312.html">clang</a></li><li class="navelem"><a class="el" href="dir_21b2f75600cfba94559a3417605488ac.html">Driver</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">Action.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="Action_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> <span class="comment">//===--- Action.h - Abstract compilation steps ------------------*- C++ -*-===//</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">//                     The LLVM Compiler Infrastructure</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment">// This file is distributed under the University of Illinois Open Source</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">// License. See LICENSE.TXT for details.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span> </div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span> <span class="preprocessor">#ifndef CLANG_DRIVER_ACTION_H_</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="preprocessor"></span><span class="preprocessor">#define CLANG_DRIVER_ACTION_H_</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> <span class="preprocessor">#include "<a class="code" href="Types_8h.html">clang/Driver/Types.h</a>"</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> <span class="preprocessor">#include "<a class="code" href="Util_8h.html">clang/Driver/Util.h</a>"</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> <span class="preprocessor">#include "llvm/ADT/SmallVector.h"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> </div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="keyword">namespace </span>llvm {</div>
+<div class="line"><a name="l00018"></a><span class="lineno"><a class="code" href="namespacellvm_1_1opt.html">   18</a></span> <span class="keyword">namespace </span>opt {</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>   <span class="keyword">class </span>Arg;</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> }</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> }</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="keyword">namespace </span>clang {</div>
+<div class="line"><a name="l00024"></a><span class="lineno"><a class="code" href="namespaceclang_1_1driver.html">   24</a></span> <span class="keyword">namespace </span>driver {</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment"></span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="comment">/// Action - Represent an abstract compilation step to perform.</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">/// An action represents an edge in the compilation graph; typically</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="comment">/// it is a job to transform an input using some tool.</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span> <span class="comment">/// The current driver is hard wired to expect actions which produce a</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span> <span class="comment">/// single primary output, at least in terms of controlling the</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span> <span class="comment">/// compilation. Actions can produce auxiliary files, but can only</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span> <span class="comment">/// produce a single output to feed into subsequent actions.</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Action.html">   35</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> {</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00037"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Action.html#a08cb6407bd37d2390fc03699be9a8aef">   37</a></span>   <span class="keyword">typedef</span> ActionList::size_type <a class="code" href="classclang_1_1driver_1_1Action.html#a08cb6407bd37d2390fc03699be9a8aef">size_type</a>;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Action.html#a81602593587203a1131234dd0b3df256">   38</a></span>   <span class="keyword">typedef</span> ActionList::iterator <a class="code" href="classclang_1_1driver_1_1Action.html#a81602593587203a1131234dd0b3df256">iterator</a>;</div>
+<div class="line"><a name="l00039"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Action.html#a4600bdd405403a37fb4baddec485f625">   39</a></span>   <span class="keyword">typedef</span> ActionList::const_iterator <a class="code" href="classclang_1_1driver_1_1Action.html#a4600bdd405403a37fb4baddec485f625">const_iterator</a>;</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span> </div>
+<div class="line"><a name="l00041"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700">   41</a></span>   <span class="keyword">enum</span> <a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700">ActionClass</a> {</div>
+<div class="line"><a name="l00042"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700afc7c4617f3ea06d0c663703d0162a9f6">   42</a></span>     <a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700afc7c4617f3ea06d0c663703d0162a9f6">InputClass</a> = 0,</div>
+<div class="line"><a name="l00043"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700a2e91f79e7298ee5770fbf530a2daf4c4">   43</a></span>     <a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700a2e91f79e7298ee5770fbf530a2daf4c4">BindArchClass</a>,</div>
+<div class="line"><a name="l00044"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700ad50b597fab7e4b221404f9e066c831ed">   44</a></span>     <a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700ad50b597fab7e4b221404f9e066c831ed">PreprocessJobClass</a>,</div>
+<div class="line"><a name="l00045"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700aa69654ce43277b6f4d6c6e9cab9a2a91">   45</a></span>     <a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700aa69654ce43277b6f4d6c6e9cab9a2a91">PrecompileJobClass</a>,</div>
+<div class="line"><a name="l00046"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700a8a294f076bdf72c61f99c82a9960d872">   46</a></span>     <a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700a8a294f076bdf72c61f99c82a9960d872">AnalyzeJobClass</a>,</div>
+<div class="line"><a name="l00047"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700ab293f0b5cbec5e6797a341820f7095d4">   47</a></span>     <a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700ab293f0b5cbec5e6797a341820f7095d4">MigrateJobClass</a>,</div>
+<div class="line"><a name="l00048"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700aa9cea83154785da25099480d5bc2ab13">   48</a></span>     <a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700aa9cea83154785da25099480d5bc2ab13">CompileJobClass</a>,</div>
+<div class="line"><a name="l00049"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700a89e9db1c6bae75083b1fcd96b1ca3f5e">   49</a></span>     <a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700a89e9db1c6bae75083b1fcd96b1ca3f5e">AssembleJobClass</a>,</div>
+<div class="line"><a name="l00050"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700a13462aa5ea89df48397db0cab344324c">   50</a></span>     <a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700a13462aa5ea89df48397db0cab344324c">LinkJobClass</a>,</div>
+<div class="line"><a name="l00051"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700aca25e3b2e3712513cc2634df49d9a9f1">   51</a></span>     <a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700aca25e3b2e3712513cc2634df49d9a9f1">LipoJobClass</a>,</div>
+<div class="line"><a name="l00052"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700ab9e00d06eeb504a77655099015023dc7">   52</a></span>     <a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700ab9e00d06eeb504a77655099015023dc7">DsymutilJobClass</a>,</div>
+<div class="line"><a name="l00053"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700a871385768a26ef1c2cfeb04f20c95a1f">   53</a></span>     <a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700a871385768a26ef1c2cfeb04f20c95a1f">VerifyJobClass</a>,</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span> </div>
+<div class="line"><a name="l00055"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700ab5e4f390c963da6901516ff65ca5fd0c">   55</a></span>     <a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700ab5e4f390c963da6901516ff65ca5fd0c">JobClassFirst</a>=<a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700ad50b597fab7e4b221404f9e066c831ed">PreprocessJobClass</a>,</div>
+<div class="line"><a name="l00056"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700a0039f786ca1f8ce319adabcb19f19bb5">   56</a></span>     <a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700a0039f786ca1f8ce319adabcb19f19bb5">JobClassLast</a>=<a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700a871385768a26ef1c2cfeb04f20c95a1f">VerifyJobClass</a></div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>   };</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span> </div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>   <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="classclang_1_1driver_1_1Action.html#ad84c6b2d5920b0fb3ccb6aa4feb938ee">getClassName</a>(<a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700">ActionClass</a> AC);</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span> </div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>   <a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700">ActionClass</a> <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a>;</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span> <span class="comment"></span></div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span> <span class="comment">  /// The output type of this action.</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span> <span class="comment"></span>  <a class="code" href="namespaceclang_1_1driver_1_1types.html#a7d09171e548da2cdf7a0212fb2984718">types::ID</a> <a class="code" href="classclang_1_1Type.html">Type</a>;</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span> </div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>   <a class="code" href="classllvm_1_1SmallVector.html">ActionList</a> Inputs;</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span> </div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>   <span class="keywordtype">unsigned</span> OwnsInputs : 1;</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span> </div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span> <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00072"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Action.html#aea4a800b514ba7d4cfa50545f902d73e">   72</a></span>   <a class="code" href="classclang_1_1driver_1_1Action.html#aea4a800b514ba7d4cfa50545f902d73e">Action</a>(<a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700">ActionClass</a> _Kind, <a class="code" href="namespaceclang_1_1driver_1_1types.html#a7d09171e548da2cdf7a0212fb2984718">types::ID</a> _Type)</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>     : <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a>(_Kind), <a class="code" href="classclang_1_1Type.html">Type</a>(_Type), OwnsInputs(<a class="code" href="stdbool_8h.html#a41f9c5fb8b08eb5dc3edce4dcb37fee7">true</a>)  {}</div>
+<div class="line"><a name="l00074"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Action.html#a0122e0c0e289ad4c205b1c364aac6bdb">   74</a></span>   <a class="code" href="classclang_1_1driver_1_1Action.html#aea4a800b514ba7d4cfa50545f902d73e">Action</a>(<a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700">ActionClass</a> _Kind, <a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> *<a class="code" href="JSONCompilationDatabase_8cpp.html#aece53df006a4f11f7ebaac621f5d3bdb">Input</a>, <a class="code" href="namespaceclang_1_1driver_1_1types.html#a7d09171e548da2cdf7a0212fb2984718">types::ID</a> _Type)</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>     : <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a>(_Kind), <a class="code" href="classclang_1_1Type.html">Type</a>(_Type), Inputs(&Input, &Input + 1), OwnsInputs(<a class="code" href="stdbool_8h.html#a41f9c5fb8b08eb5dc3edce4dcb37fee7">true</a>) {}</div>
+<div class="line"><a name="l00076"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Action.html#a49be37141506eab7c5a57b227117a685">   76</a></span>   <a class="code" href="classclang_1_1driver_1_1Action.html#aea4a800b514ba7d4cfa50545f902d73e">Action</a>(<a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700">ActionClass</a> _Kind, <span class="keyword">const</span> <a class="code" href="classllvm_1_1SmallVector.html">ActionList</a> &_Inputs, <a class="code" href="namespaceclang_1_1driver_1_1types.html#a7d09171e548da2cdf7a0212fb2984718">types::ID</a> _Type)</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>     : <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a>(_Kind), <a class="code" href="classclang_1_1Type.html">Type</a>(_Type), Inputs(_Inputs), OwnsInputs(<a class="code" href="stdbool_8h.html#a41f9c5fb8b08eb5dc3edce4dcb37fee7">true</a>) {}</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>   <span class="keyword">virtual</span> <a class="code" href="classclang_1_1driver_1_1Action.html#acdb06775d157339256a8ecd55749226c">~Action</a>();</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span> </div>
+<div class="line"><a name="l00081"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Action.html#ad84c6b2d5920b0fb3ccb6aa4feb938ee">   81</a></span>   <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="classclang_1_1driver_1_1Action.html#ad84c6b2d5920b0fb3ccb6aa4feb938ee">getClassName</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classclang_1_1driver_1_1Action.html#ad84c6b2d5920b0fb3ccb6aa4feb938ee">Action::getClassName</a>(<a class="code" href="classclang_1_1driver_1_1Action.html#a6f74dd0080b21b8ca8f9479a8f7eef8c">getKind</a>()); }</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span> </div>
+<div class="line"><a name="l00083"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Action.html#a88827db9420de5753779eb33bae98183">   83</a></span>   <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1driver_1_1Action.html#a88827db9420de5753779eb33bae98183">getOwnsInputs</a>() { <span class="keywordflow">return</span> OwnsInputs; }</div>
+<div class="line"><a name="l00084"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Action.html#ae5b592e80c38e9fd760dbe239dc72658">   84</a></span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1driver_1_1Action.html#ae5b592e80c38e9fd760dbe239dc72658">setOwnsInputs</a>(<span class="keywordtype">bool</span> <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>) { OwnsInputs = <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>; }</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span> </div>
+<div class="line"><a name="l00086"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Action.html#a6f74dd0080b21b8ca8f9479a8f7eef8c">   86</a></span>   <a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700">ActionClass</a> <a class="code" href="classclang_1_1driver_1_1Action.html#a6f74dd0080b21b8ca8f9479a8f7eef8c">getKind</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a>; }</div>
+<div class="line"><a name="l00087"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Action.html#acd74b7d71868d08c14c3ab0627f36e88">   87</a></span>   <a class="code" href="namespaceclang_1_1driver_1_1types.html#a7d09171e548da2cdf7a0212fb2984718">types::ID</a> <a class="code" href="classclang_1_1driver_1_1Action.html#acd74b7d71868d08c14c3ab0627f36e88">getType</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Type.html">Type</a>; }</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span> </div>
+<div class="line"><a name="l00089"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Action.html#ae257c93dfc84c9d4999d4d99913f0b77">   89</a></span>   <a class="code" href="classllvm_1_1SmallVector.html">ActionList</a> &<a class="code" href="classclang_1_1driver_1_1Action.html#ae257c93dfc84c9d4999d4d99913f0b77">getInputs</a>() { <span class="keywordflow">return</span> Inputs; }</div>
+<div class="line"><a name="l00090"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Action.html#a185333e13b7b546390194105de03f399">   90</a></span>   <span class="keyword">const</span> <a class="code" href="classllvm_1_1SmallVector.html">ActionList</a> &<a class="code" href="classclang_1_1driver_1_1Action.html#a185333e13b7b546390194105de03f399">getInputs</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Inputs; }</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span> </div>
+<div class="line"><a name="l00092"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Action.html#a5dc74b8819ebdf6f465c3037e94d8406">   92</a></span>   <a class="code" href="classclang_1_1driver_1_1Action.html#a08cb6407bd37d2390fc03699be9a8aef">size_type</a> <a class="code" href="classclang_1_1driver_1_1Action.html#a5dc74b8819ebdf6f465c3037e94d8406">size</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Inputs.size(); }</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span> </div>
+<div class="line"><a name="l00094"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Action.html#a5f5f713cfeadf8708788ccfb88dd001e">   94</a></span>   <a class="code" href="classclang_1_1driver_1_1Action.html#a81602593587203a1131234dd0b3df256">iterator</a> <a class="code" href="classclang_1_1driver_1_1Action.html#a5f5f713cfeadf8708788ccfb88dd001e">begin</a>() { <span class="keywordflow">return</span> Inputs.begin(); }</div>
+<div class="line"><a name="l00095"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Action.html#abef57633338ff7105f7d8ce4a954a2a8">   95</a></span>   <a class="code" href="classclang_1_1driver_1_1Action.html#a81602593587203a1131234dd0b3df256">iterator</a> <a class="code" href="classclang_1_1driver_1_1Action.html#abef57633338ff7105f7d8ce4a954a2a8">end</a>() { <span class="keywordflow">return</span> Inputs.end(); }</div>
+<div class="line"><a name="l00096"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Action.html#a8c1eff47d901b82a08faf158e1210e3d">   96</a></span>   <a class="code" href="classclang_1_1driver_1_1Action.html#a4600bdd405403a37fb4baddec485f625">const_iterator</a> <a class="code" href="classclang_1_1driver_1_1Action.html#a8c1eff47d901b82a08faf158e1210e3d">begin</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Inputs.begin(); }</div>
+<div class="line"><a name="l00097"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Action.html#a80833d9129e684a0301ab713db557f65">   97</a></span>   <a class="code" href="classclang_1_1driver_1_1Action.html#a4600bdd405403a37fb4baddec485f625">const_iterator</a> <a class="code" href="classclang_1_1driver_1_1Action.html#a80833d9129e684a0301ab713db557f65">end</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Inputs.end(); }</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span> };</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span> </div>
+<div class="line"><a name="l00100"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1InputAction.html">  100</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1driver_1_1InputAction.html">InputAction</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> {</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> anchor();</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>   <span class="keyword">const</span> llvm::opt::Arg &Input;</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span> </div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>   <a class="code" href="classclang_1_1driver_1_1InputAction.html#a20bd8e217f90ffbb5ab6d1c869b360ee">InputAction</a>(<span class="keyword">const</span> llvm::opt::Arg &_Input, <a class="code" href="namespaceclang_1_1driver_1_1types.html#a7d09171e548da2cdf7a0212fb2984718">types::ID</a> _Type);</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span> </div>
+<div class="line"><a name="l00107"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1InputAction.html#a596cca4982b169ac8b610b88bf779497">  107</a></span>   <span class="keyword">const</span> llvm::opt::Arg &<a class="code" href="classclang_1_1driver_1_1InputAction.html#a596cca4982b169ac8b610b88bf779497">getInputArg</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Input; }</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span> </div>
+<div class="line"><a name="l00109"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1InputAction.html#ac78f544ea77e2761b62a762a2de2acef">  109</a></span>   <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1driver_1_1InputAction.html#ac78f544ea77e2761b62a762a2de2acef">classof</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> *A) {</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>     <span class="keywordflow">return</span> A-><a class="code" href="classclang_1_1driver_1_1Action.html#a6f74dd0080b21b8ca8f9479a8f7eef8c">getKind</a>() == <a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700afc7c4617f3ea06d0c663703d0162a9f6">InputClass</a>;</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>   }</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span> };</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span> </div>
+<div class="line"><a name="l00114"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1BindArchAction.html">  114</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1driver_1_1BindArchAction.html">BindArchAction</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> {</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> anchor();<span class="comment"></span></div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span> <span class="comment">  /// The architecture to bind, or 0 if the default architecture</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span> <span class="comment">  /// should be bound.</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span> <span class="comment"></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *ArchName;</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span> </div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>   <a class="code" href="classclang_1_1driver_1_1BindArchAction.html#ada81ac85558d14857eefe77ba3d182ad">BindArchAction</a>(<a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> *<a class="code" href="JSONCompilationDatabase_8cpp.html#aece53df006a4f11f7ebaac621f5d3bdb">Input</a>, <span class="keyword">const</span> <span class="keywordtype">char</span> *_ArchName);</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span> </div>
+<div class="line"><a name="l00123"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1BindArchAction.html#abdec8e0122de0ff78e8d4d642b46a5ca">  123</a></span>   <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="classclang_1_1driver_1_1BindArchAction.html#abdec8e0122de0ff78e8d4d642b46a5ca">getArchName</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ArchName; }</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span> </div>
+<div class="line"><a name="l00125"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1BindArchAction.html#a28493e01254226dafa89cd84327eafc0">  125</a></span>   <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1driver_1_1BindArchAction.html#a28493e01254226dafa89cd84327eafc0">classof</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> *A) {</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>     <span class="keywordflow">return</span> A-><a class="code" href="classclang_1_1driver_1_1Action.html#a6f74dd0080b21b8ca8f9479a8f7eef8c">getKind</a>() == <a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700a2e91f79e7298ee5770fbf530a2daf4c4">BindArchClass</a>;</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>   }</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span> };</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span> </div>
+<div class="line"><a name="l00130"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1JobAction.html">  130</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1driver_1_1JobAction.html">JobAction</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> {</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> anchor();</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span> <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>   <a class="code" href="classclang_1_1driver_1_1JobAction.html#ae0cb03b18390809ea6df26ed1fd90a30">JobAction</a>(<a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700">ActionClass</a> <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a>, <a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> *<a class="code" href="JSONCompilationDatabase_8cpp.html#aece53df006a4f11f7ebaac621f5d3bdb">Input</a>, <a class="code" href="namespaceclang_1_1driver_1_1types.html#a7d09171e548da2cdf7a0212fb2984718">types::ID</a> <a class="code" href="classclang_1_1Type.html">Type</a>);</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>   <a class="code" href="classclang_1_1driver_1_1JobAction.html#ae0cb03b18390809ea6df26ed1fd90a30">JobAction</a>(<a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700">ActionClass</a> Kind, <span class="keyword">const</span> <a class="code" href="classllvm_1_1SmallVector.html">ActionList</a> &Inputs, <a class="code" href="namespaceclang_1_1driver_1_1types.html#a7d09171e548da2cdf7a0212fb2984718">types::ID</a> Type);</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span> </div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00137"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1JobAction.html#a9fda892eba947951ea7e06ec8e89ea7f">  137</a></span>   <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1driver_1_1JobAction.html#a9fda892eba947951ea7e06ec8e89ea7f">classof</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> *A) {</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>     <span class="keywordflow">return</span> (A-><a class="code" href="classclang_1_1driver_1_1Action.html#a6f74dd0080b21b8ca8f9479a8f7eef8c">getKind</a>() >= <a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700ab5e4f390c963da6901516ff65ca5fd0c">JobClassFirst</a> &&</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>             A-><a class="code" href="classclang_1_1driver_1_1Action.html#a6f74dd0080b21b8ca8f9479a8f7eef8c">getKind</a>() <= <a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700a0039f786ca1f8ce319adabcb19f19bb5">JobClassLast</a>);</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>   }</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span> };</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span> </div>
+<div class="line"><a name="l00143"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1PreprocessJobAction.html">  143</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1driver_1_1PreprocessJobAction.html">PreprocessJobAction</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1driver_1_1JobAction.html">JobAction</a> {</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> anchor();</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>   <a class="code" href="classclang_1_1driver_1_1PreprocessJobAction.html#a6d83631ccb9a753186f7112faa5b5ef3">PreprocessJobAction</a>(<a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> *<a class="code" href="JSONCompilationDatabase_8cpp.html#aece53df006a4f11f7ebaac621f5d3bdb">Input</a>, <a class="code" href="namespaceclang_1_1driver_1_1types.html#a7d09171e548da2cdf7a0212fb2984718">types::ID</a> OutputType);</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span> </div>
+<div class="line"><a name="l00148"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1PreprocessJobAction.html#a37dc34507b5b23933b9218cf32c8f838">  148</a></span>   <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1driver_1_1PreprocessJobAction.html#a37dc34507b5b23933b9218cf32c8f838">classof</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> *A) {</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>     <span class="keywordflow">return</span> A-><a class="code" href="classclang_1_1driver_1_1Action.html#a6f74dd0080b21b8ca8f9479a8f7eef8c">getKind</a>() == <a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700ad50b597fab7e4b221404f9e066c831ed">PreprocessJobClass</a>;</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>   }</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span> };</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span> </div>
+<div class="line"><a name="l00153"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1PrecompileJobAction.html">  153</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1driver_1_1PrecompileJobAction.html">PrecompileJobAction</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1driver_1_1JobAction.html">JobAction</a> {</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> anchor();</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>   <a class="code" href="classclang_1_1driver_1_1PrecompileJobAction.html#ae0a85289a535fb7f2ac35616cc4fe018">PrecompileJobAction</a>(<a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> *<a class="code" href="JSONCompilationDatabase_8cpp.html#aece53df006a4f11f7ebaac621f5d3bdb">Input</a>, <a class="code" href="namespaceclang_1_1driver_1_1types.html#a7d09171e548da2cdf7a0212fb2984718">types::ID</a> OutputType);</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span> </div>
+<div class="line"><a name="l00158"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1PrecompileJobAction.html#ab57a3567a502c7dd8d0e78c3d080ee32">  158</a></span>   <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1driver_1_1PrecompileJobAction.html#ab57a3567a502c7dd8d0e78c3d080ee32">classof</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> *A) {</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>     <span class="keywordflow">return</span> A-><a class="code" href="classclang_1_1driver_1_1Action.html#a6f74dd0080b21b8ca8f9479a8f7eef8c">getKind</a>() == <a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700aa69654ce43277b6f4d6c6e9cab9a2a91">PrecompileJobClass</a>;</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>   }</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span> };</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span> </div>
+<div class="line"><a name="l00163"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1AnalyzeJobAction.html">  163</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1driver_1_1AnalyzeJobAction.html">AnalyzeJobAction</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1driver_1_1JobAction.html">JobAction</a> {</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> anchor();</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>   <a class="code" href="classclang_1_1driver_1_1AnalyzeJobAction.html#ae2eb403439d299d63c6e1f228a429508">AnalyzeJobAction</a>(<a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> *<a class="code" href="JSONCompilationDatabase_8cpp.html#aece53df006a4f11f7ebaac621f5d3bdb">Input</a>, <a class="code" href="namespaceclang_1_1driver_1_1types.html#a7d09171e548da2cdf7a0212fb2984718">types::ID</a> OutputType);</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span> </div>
+<div class="line"><a name="l00168"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1AnalyzeJobAction.html#a655238e8d9a72df0d925b956d87c5e91">  168</a></span>   <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1driver_1_1AnalyzeJobAction.html#a655238e8d9a72df0d925b956d87c5e91">classof</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> *A) {</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>     <span class="keywordflow">return</span> A-><a class="code" href="classclang_1_1driver_1_1Action.html#a6f74dd0080b21b8ca8f9479a8f7eef8c">getKind</a>() == <a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700a8a294f076bdf72c61f99c82a9960d872">AnalyzeJobClass</a>;</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>   }</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span> };</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span> </div>
+<div class="line"><a name="l00173"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1MigrateJobAction.html">  173</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1driver_1_1MigrateJobAction.html">MigrateJobAction</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1driver_1_1JobAction.html">JobAction</a> {</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> anchor();</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>   <a class="code" href="classclang_1_1driver_1_1MigrateJobAction.html#a31896328088eae2771b90dd133624adf">MigrateJobAction</a>(<a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> *<a class="code" href="JSONCompilationDatabase_8cpp.html#aece53df006a4f11f7ebaac621f5d3bdb">Input</a>, <a class="code" href="namespaceclang_1_1driver_1_1types.html#a7d09171e548da2cdf7a0212fb2984718">types::ID</a> OutputType);</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span> </div>
+<div class="line"><a name="l00178"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1MigrateJobAction.html#a127f82bf8ae45af41dcddb4db7e298a7">  178</a></span>   <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1driver_1_1MigrateJobAction.html#a127f82bf8ae45af41dcddb4db7e298a7">classof</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> *A) {</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>     <span class="keywordflow">return</span> A-><a class="code" href="classclang_1_1driver_1_1Action.html#a6f74dd0080b21b8ca8f9479a8f7eef8c">getKind</a>() == <a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700ab293f0b5cbec5e6797a341820f7095d4">MigrateJobClass</a>;</div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>   }</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span> };</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span> </div>
+<div class="line"><a name="l00183"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1CompileJobAction.html">  183</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1driver_1_1CompileJobAction.html">CompileJobAction</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1driver_1_1JobAction.html">JobAction</a> {</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> anchor();</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>   <a class="code" href="classclang_1_1driver_1_1CompileJobAction.html#a981e50bfd2946eb9ac963bdb368a9037">CompileJobAction</a>(<a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> *<a class="code" href="JSONCompilationDatabase_8cpp.html#aece53df006a4f11f7ebaac621f5d3bdb">Input</a>, <a class="code" href="namespaceclang_1_1driver_1_1types.html#a7d09171e548da2cdf7a0212fb2984718">types::ID</a> OutputType);</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span> </div>
+<div class="line"><a name="l00188"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1CompileJobAction.html#a563534942ffb3d7a45dd5b99bb841dba">  188</a></span>   <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1driver_1_1CompileJobAction.html#a563534942ffb3d7a45dd5b99bb841dba">classof</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> *A) {</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>     <span class="keywordflow">return</span> A-><a class="code" href="classclang_1_1driver_1_1Action.html#a6f74dd0080b21b8ca8f9479a8f7eef8c">getKind</a>() == <a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700aa9cea83154785da25099480d5bc2ab13">CompileJobClass</a>;</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>   }</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span> };</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span> </div>
+<div class="line"><a name="l00193"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1AssembleJobAction.html">  193</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1driver_1_1AssembleJobAction.html">AssembleJobAction</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1driver_1_1JobAction.html">JobAction</a> {</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> anchor();</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>   <a class="code" href="classclang_1_1driver_1_1AssembleJobAction.html#a6ab319190cdbcc21de027ce28cc5c2a4">AssembleJobAction</a>(<a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> *<a class="code" href="JSONCompilationDatabase_8cpp.html#aece53df006a4f11f7ebaac621f5d3bdb">Input</a>, <a class="code" href="namespaceclang_1_1driver_1_1types.html#a7d09171e548da2cdf7a0212fb2984718">types::ID</a> OutputType);</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span> </div>
+<div class="line"><a name="l00198"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1AssembleJobAction.html#ae90f08f25f1a7ed57f8427e73fbfa87b">  198</a></span>   <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1driver_1_1AssembleJobAction.html#ae90f08f25f1a7ed57f8427e73fbfa87b">classof</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> *A) {</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>     <span class="keywordflow">return</span> A-><a class="code" href="classclang_1_1driver_1_1Action.html#a6f74dd0080b21b8ca8f9479a8f7eef8c">getKind</a>() == <a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700a89e9db1c6bae75083b1fcd96b1ca3f5e">AssembleJobClass</a>;</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>   }</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span> };</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span> </div>
+<div class="line"><a name="l00203"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1LinkJobAction.html">  203</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1driver_1_1LinkJobAction.html">LinkJobAction</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1driver_1_1JobAction.html">JobAction</a> {</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> anchor();</div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>   <a class="code" href="classclang_1_1driver_1_1LinkJobAction.html#a9e4bd2fc1907d69fae026ea3699bc859">LinkJobAction</a>(<a class="code" href="classllvm_1_1SmallVector.html">ActionList</a> &Inputs, <a class="code" href="namespaceclang_1_1driver_1_1types.html#a7d09171e548da2cdf7a0212fb2984718">types::ID</a> <a class="code" href="classclang_1_1Type.html">Type</a>);</div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span> </div>
+<div class="line"><a name="l00208"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1LinkJobAction.html#a21038dd9cad904043d8b0773fb9a9cd4">  208</a></span>   <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1driver_1_1LinkJobAction.html#a21038dd9cad904043d8b0773fb9a9cd4">classof</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> *A) {</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>     <span class="keywordflow">return</span> A-><a class="code" href="classclang_1_1driver_1_1Action.html#a6f74dd0080b21b8ca8f9479a8f7eef8c">getKind</a>() == <a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700a13462aa5ea89df48397db0cab344324c">LinkJobClass</a>;</div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>   }</div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span> };</div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span> </div>
+<div class="line"><a name="l00213"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1LipoJobAction.html">  213</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1driver_1_1LipoJobAction.html">LipoJobAction</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1driver_1_1JobAction.html">JobAction</a> {</div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> anchor();</div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span>   <a class="code" href="classclang_1_1driver_1_1LipoJobAction.html#a8be6f6ce8181504087bf1cd9fda705e1">LipoJobAction</a>(<a class="code" href="classllvm_1_1SmallVector.html">ActionList</a> &Inputs, <a class="code" href="namespaceclang_1_1driver_1_1types.html#a7d09171e548da2cdf7a0212fb2984718">types::ID</a> <a class="code" href="classclang_1_1Type.html">Type</a>);</div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span> </div>
+<div class="line"><a name="l00218"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1LipoJobAction.html#a16f396ad6aec5a6aa41ad05a91e10f6a">  218</a></span>   <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1driver_1_1LipoJobAction.html#a16f396ad6aec5a6aa41ad05a91e10f6a">classof</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> *A) {</div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>     <span class="keywordflow">return</span> A-><a class="code" href="classclang_1_1driver_1_1Action.html#a6f74dd0080b21b8ca8f9479a8f7eef8c">getKind</a>() == <a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700aca25e3b2e3712513cc2634df49d9a9f1">LipoJobClass</a>;</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>   }</div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span> };</div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span> </div>
+<div class="line"><a name="l00223"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1DsymutilJobAction.html">  223</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1driver_1_1DsymutilJobAction.html">DsymutilJobAction</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1driver_1_1JobAction.html">JobAction</a> {</div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> anchor();</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>   <a class="code" href="classclang_1_1driver_1_1DsymutilJobAction.html#a0c080516addaa1ac50d69ca90bbe2abb">DsymutilJobAction</a>(<a class="code" href="classllvm_1_1SmallVector.html">ActionList</a> &Inputs, <a class="code" href="namespaceclang_1_1driver_1_1types.html#a7d09171e548da2cdf7a0212fb2984718">types::ID</a> <a class="code" href="classclang_1_1Type.html">Type</a>);</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span> </div>
+<div class="line"><a name="l00228"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1DsymutilJobAction.html#a681d436dcfde456670de9cca995bb6b4">  228</a></span>   <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1driver_1_1DsymutilJobAction.html#a681d436dcfde456670de9cca995bb6b4">classof</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> *A) {</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span>     <span class="keywordflow">return</span> A-><a class="code" href="classclang_1_1driver_1_1Action.html#a6f74dd0080b21b8ca8f9479a8f7eef8c">getKind</a>() == <a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700ab9e00d06eeb504a77655099015023dc7">DsymutilJobClass</a>;</div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span>   }</div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span> };</div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span> </div>
+<div class="line"><a name="l00233"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1VerifyJobAction.html">  233</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1driver_1_1VerifyJobAction.html">VerifyJobAction</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1driver_1_1JobAction.html">JobAction</a> {</div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> anchor();</div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span>   <a class="code" href="classclang_1_1driver_1_1VerifyJobAction.html#ac2ad2748a363812d27a9ec7e78db7acd">VerifyJobAction</a>(<a class="code" href="classllvm_1_1SmallVector.html">ActionList</a> &Inputs, <a class="code" href="namespaceclang_1_1driver_1_1types.html#a7d09171e548da2cdf7a0212fb2984718">types::ID</a> <a class="code" href="classclang_1_1Type.html">Type</a>);</div>
+<div class="line"><a name="l00237"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1VerifyJobAction.html#a9b004e718ca254c540f1c682c19bd580">  237</a></span>   <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1driver_1_1VerifyJobAction.html#a9b004e718ca254c540f1c682c19bd580">classof</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> *A) {</div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span>     <span class="keywordflow">return</span> A-><a class="code" href="classclang_1_1driver_1_1Action.html#a6f74dd0080b21b8ca8f9479a8f7eef8c">getKind</a>() == <a class="code" href="classclang_1_1driver_1_1Action.html#af593898af4be6070eaf4b1a7ea861700a871385768a26ef1c2cfeb04f20c95a1f">VerifyJobClass</a>;</div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span>   }</div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span> };</div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span> </div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span> } <span class="comment">// end namespace driver</span></div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span> } <span class="comment">// end namespace clang</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span> </div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span> <span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:02 for r$LatestRev$ by <a href="http://www.doxygen.org">Doxygen 
+1.8.3.1</a>.</p>
+<p class="footer">
+See the <a href="http://clang.llvm.org">Main Clang Web Page</a> for more 
+information.</p>
+</body>
+</html>

Added: www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/AddressSpaces_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/AddressSpaces_8h_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/AddressSpaces_8h_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/AddressSpaces_8h_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,129 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="clang,LLVM,Low Level Virtual Machine,C,C++,doxygen,API,frontend,documentation"/>
+<meta name="description" content="C++ source code API documentation for clang."/>
+<title>clang: AddressSpaces.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_3e61bbac0c8515a3c083eb51d03eb390.html">include</a></li><li class="navelem"><a class="el" href="dir_ee4f288247dc2d9ccd0382aea6916312.html">clang</a></li><li class="navelem"><a class="el" href="dir_84b4cac0f3db7adb733be733ea7bc48e.html">Basic</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">AddressSpaces.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="AddressSpaces_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> <span class="comment">//===--- AddressSpaces.h - Language-specific address spaces -----*- C++ -*-===//</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">//                     The LLVM Compiler Infrastructure</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment">// This file is distributed under the University of Illinois Open Source</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">// License. See LICENSE.TXT for details.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span> <span class="comment">//===----------------------------------------------------------------------===//</span><span class="comment"></span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span> <span class="comment">/// \file</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="comment">/// \brief Provides definitions for the various language-specific address</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="comment">/// spaces.</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> <span class="comment"></span><span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="preprocessor">#ifndef LLVM_CLANG_BASIC_ADDRESSSPACES_H</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="preprocessor"></span><span class="preprocessor">#define LLVM_CLANG_BASIC_ADDRESSSPACES_H</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="keyword">namespace </span>clang {</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> </div>
+<div class="line"><a name="l00021"></a><span class="lineno"><a class="code" href="namespaceclang_1_1LangAS.html">   21</a></span> <span class="keyword">namespace </span>LangAS {</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="comment"></span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="comment">/// \brief Defines the set of possible language-specific address spaces.</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">/// This uses a high starting offset so as not to conflict with any address</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="comment">/// space used by a target.</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"><a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960">   27</a></span> <span class="comment"></span><span class="keyword">enum</span> <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a> {</div>
+<div class="line"><a name="l00028"></a><span class="lineno"><a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960af79e01198d0eac7cdf8b48676f1e9a95">   28</a></span>   <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960af79e01198d0eac7cdf8b48676f1e9a95">Offset</a> = 0xFFFF00,</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"><a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960ae6e4b6b7e273c4bcc94b5c8e735dd76b">   30</a></span>   <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960ae6e4b6b7e273c4bcc94b5c8e735dd76b">opencl_global</a> = <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960af79e01198d0eac7cdf8b48676f1e9a95">Offset</a>,</div>
+<div class="line"><a name="l00031"></a><span class="lineno"><a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960a4071140e6be67e445aea16563c8598d7">   31</a></span>   <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960a4071140e6be67e445aea16563c8598d7">opencl_local</a>,</div>
+<div class="line"><a name="l00032"></a><span class="lineno"><a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960a550f6bebb117bdf4da90cc288cf5ddc8">   32</a></span>   <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960a550f6bebb117bdf4da90cc288cf5ddc8">opencl_constant</a>,</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span> </div>
+<div class="line"><a name="l00034"></a><span class="lineno"><a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960a6e4d8b0b8d9c66d2dcb24498b30ed4be">   34</a></span>   <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960a6e4d8b0b8d9c66d2dcb24498b30ed4be">cuda_device</a>,</div>
+<div class="line"><a name="l00035"></a><span class="lineno"><a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960ab6ec2a93e70aa3b141d46f0a348ba6be">   35</a></span>   <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960ab6ec2a93e70aa3b141d46f0a348ba6be">cuda_constant</a>,</div>
+<div class="line"><a name="l00036"></a><span class="lineno"><a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960a67fcf944d1b42ce553ddd8be11414032">   36</a></span>   <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960a67fcf944d1b42ce553ddd8be11414032">cuda_shared</a>,</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span> </div>
+<div class="line"><a name="l00038"></a><span class="lineno"><a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960a266d73bc4ca20907a5df65ca32193720">   38</a></span>   <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960a266d73bc4ca20907a5df65ca32193720">Last</a>,</div>
+<div class="line"><a name="l00039"></a><span class="lineno"><a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960ad0386506936fec96a18d01e42d4eb514">   39</a></span>   <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960ad0386506936fec96a18d01e42d4eb514">Count</a> = <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960a266d73bc4ca20907a5df65ca32193720">Last</a>-<a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960af79e01198d0eac7cdf8b48676f1e9a95">Offset</a></div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span> };</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span> <span class="comment"></span></div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span> <span class="comment">/// The type of a lookup table which maps from language-specific address spaces</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span> <span class="comment">/// to target-specific ones.</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"><a class="code" href="namespaceclang_1_1LangAS.html#a241b6fc974438ba623ec877f2b294f0c">   44</a></span> <span class="comment"></span><span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <a class="code" href="namespaceclang_1_1LangAS.html#a241b6fc974438ba623ec877f2b294f0c">Map</a>[<a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960ad0386506936fec96a18d01e42d4eb514">Count</a>];</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span> </div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span> }</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span> </div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span> }</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span> </div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span> <span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:02 for r$LatestRev$ by <a href="http://www.doxygen.org">Doxygen 
+1.8.3.1</a>.</p>
+<p class="footer">
+See the <a href="http://clang.llvm.org">Main Clang Web Page</a> for more 
+information.</p>
+</body>
+</html>

Added: www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/AllDiagnostics_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/AllDiagnostics_8h_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/AllDiagnostics_8h_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/AllDiagnostics_8h_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,119 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="clang,LLVM,Low Level Virtual Machine,C,C++,doxygen,API,frontend,documentation"/>
+<meta name="description" content="C++ source code API documentation for clang."/>
+<title>clang: AllDiagnostics.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_3e61bbac0c8515a3c083eb51d03eb390.html">include</a></li><li class="navelem"><a class="el" href="dir_ee4f288247dc2d9ccd0382aea6916312.html">clang</a></li><li class="navelem"><a class="el" href="dir_84b4cac0f3db7adb733be733ea7bc48e.html">Basic</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">AllDiagnostics.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="AllDiagnostics_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> <span class="comment">//===--- AllDiagnostics.h - Aggregate Diagnostic headers --------*- C++ -*-===//</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">//                     The LLVM Compiler Infrastructure</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment">// This file is distributed under the University of Illinois Open Source</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">// License. See LICENSE.TXT for details.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span> <span class="comment">//===----------------------------------------------------------------------===//</span><span class="comment"></span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span> <span class="comment">/// \file</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="comment">/// \brief Includes all the separate Diagnostic headers & some related helpers.</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> <span class="comment"></span><span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> <span class="preprocessor">#ifndef LLVM_CLANG_ALL_DIAGNOSTICS_H</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="preprocessor"></span><span class="preprocessor">#define LLVM_CLANG_ALL_DIAGNOSTICS_H</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="preprocessor">#include "<a class="code" href="ASTDiagnostic_8h.html">clang/AST/ASTDiagnostic.h</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="preprocessor">#include "<a class="code" href="CommentDiagnostic_8h.html">clang/AST/CommentDiagnostic.h</a>"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="preprocessor">#include "<a class="code" href="AnalysisDiagnostic_8h.html">clang/Analysis/AnalysisDiagnostic.h</a>"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="preprocessor">#include "<a class="code" href="DriverDiagnostic_8h.html">clang/Driver/DriverDiagnostic.h</a>"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="preprocessor">#include "<a class="code" href="FrontendDiagnostic_8h.html">clang/Frontend/FrontendDiagnostic.h</a>"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="preprocessor">#include "<a class="code" href="LexDiagnostic_8h.html">clang/Lex/LexDiagnostic.h</a>"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="preprocessor">#include "<a class="code" href="ParseDiagnostic_8h.html">clang/Parse/ParseDiagnostic.h</a>"</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="preprocessor">#include "<a class="code" href="SemaDiagnostic_8h.html">clang/Sema/SemaDiagnostic.h</a>"</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="preprocessor">#include "<a class="code" href="SerializationDiagnostic_8h.html">clang/Serialization/SerializationDiagnostic.h</a>"</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> </div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="keyword">namespace </span>clang {</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="keyword">template</span> <<span class="keywordtype">size_t</span> SizeOfStr, <span class="keyword">typename</span> FieldType></div>
+<div class="line"><a name="l00030"></a><span class="lineno"><a class="code" href="classclang_1_1StringSizerHelper.html">   30</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1StringSizerHelper.html">StringSizerHelper</a> {</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>   <span class="keywordtype">char</span> FIELD_TOO_SMALL[SizeOfStr <= FieldType(~0U) ? 1 : -1];</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00033"></a><span class="lineno"><a class="code" href="classclang_1_1StringSizerHelper.html#a251c8aee998e3a817f5f149e341e7522adbe836959d0aaa6c541ec47ada84769f">   33</a></span>   <span class="keyword">enum</span> { <a class="code" href="classclang_1_1StringSizerHelper.html#a251c8aee998e3a817f5f149e341e7522adbe836959d0aaa6c541ec47ada84769f">Size</a> = SizeOfStr };</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span> };</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span> } <span class="comment">// end namespace clang </span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span> </div>
+<div class="line"><a name="l00037"></a><span class="lineno"><a class="code" href="AllDiagnostics_8h.html#a453f4886ff84a2c3d65c0fb657bd58f3">   37</a></span> <span class="preprocessor">#define STR_SIZE(str, fieldTy) clang::StringSizerHelper<sizeof(str)-1, \</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span> <span class="preprocessor">                                                        fieldTy>::Size </span></div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span> <span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:02 for r$LatestRev$ by <a href="http://www.doxygen.org">Doxygen 
+1.8.3.1</a>.</p>
+<p class="footer">
+See the <a href="http://clang.llvm.org">Main Clang Web Page</a> for more 
+information.</p>
+</body>
+</html>

Added: www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/AllocationDiagnostics_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/AllocationDiagnostics_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/AllocationDiagnostics_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/AllocationDiagnostics_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,103 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="clang,LLVM,Low Level Virtual Machine,C,C++,doxygen,API,frontend,documentation"/>
+<meta name="description" content="C++ source code API documentation for clang."/>
+<title>clang: AllocationDiagnostics.cpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_87e2a7550f83bd8cbfc92736891468fc.html">lib</a></li><li class="navelem"><a class="el" href="dir_fd0691f76a19cc33074025cb3a574e66.html">StaticAnalyzer</a></li><li class="navelem"><a class="el" href="dir_5fa4c591fb04e7ea3227105bf6cc3359.html">Checkers</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">AllocationDiagnostics.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="AllocationDiagnostics_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> <span class="comment">//=- AllocationDiagnostics.cpp - Config options for allocation diags *- C++ -*-//</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">//                     The LLVM Compiler Infrastructure</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment">// This file is distributed under the University of Illinois Open Source</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">// License. See LICENSE.TXT for details.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span> <span class="comment">// Declares the configuration functions for leaks/allocation diagnostics.</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="comment">//===--------------------------</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> </div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> <span class="preprocessor">#include "<a class="code" href="AllocationDiagnostics_8h.html">AllocationDiagnostics.h</a>"</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="keyword">namespace </span>clang {</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="keyword">namespace </span>ento {</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> </div>
+<div class="line"><a name="l00019"></a><span class="lineno"><a class="code" href="namespaceclang_1_1ento.html#a99794468e0c1b5155f708746b5d05dc9">   19</a></span> <span class="keywordtype">bool</span> <a class="code" href="namespaceclang_1_1ento.html#a99794468e0c1b5155f708746b5d05dc9" title="Returns true if leak diagnostics should directly reference the allocatin site (where possible)...">shouldIncludeAllocationSiteInLeakDiagnostics</a>(<a class="code" href="classclang_1_1AnalyzerOptions.html">AnalyzerOptions</a> &AOpts) {</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>   <span class="keywordflow">return</span> AOpts.<a class="code" href="classclang_1_1AnalyzerOptions.html#a734be27290b227019d41f277e2c8a48f">getBooleanOption</a>(<span class="stringliteral">"leak-diagnostics-reference-allocation"</span>,</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>                                 <span class="keyword">false</span>);</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> }</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> </div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> }}</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:02 for r$LatestRev$ by <a href="http://www.doxygen.org">Doxygen 
+1.8.3.1</a>.</p>
+<p class="footer">
+See the <a href="http://clang.llvm.org">Main Clang Web Page</a> for more 
+information.</p>
+</body>
+</html>

Added: www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/AllocationDiagnostics_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/AllocationDiagnostics_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/AllocationDiagnostics_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/AllocationDiagnostics_8d_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,135 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="clang,LLVM,Low Level Virtual Machine,C,C++,doxygen,API,frontend,documentation"/>
+<meta name="description" content="C++ source code API documentation for clang."/>
+<title>clang: AllocationDiagnostics.d Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_87e2a7550f83bd8cbfc92736891468fc.html">lib</a></li><li class="navelem"><a class="el" href="dir_fd0691f76a19cc33074025cb3a574e66.html">StaticAnalyzer</a></li><li class="navelem"><a class="el" href="dir_5fa4c591fb04e7ea3227105bf6cc3359.html">Checkers</a></li><li class="navelem"><a class="el" href="dir_6f95b71040c11c69a7222376e6764bfb.html">Release+Asserts</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">AllocationDiagnostics.d</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="AllocationDiagnostics_8d.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/Release+Asserts/AllocationDiagnostics.o \</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/Release+Asserts/AllocationDiagnostics.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>  AllocationDiagnostics.cpp AllocationDiagnostics.h \</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/AnalyzerOptions.h \</div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/LLVM.h \</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>  /home/tstellar/llvm/include/llvm/Support/Casting.h \</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>  /home/tstellar/llvm/include/llvm/Support/type_traits.h \</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>  /home/tstellar/llvm/include/llvm/Support/DataTypes.h \</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>  /home/tstellar/llvm/include/llvm/ADT/None.h \</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>  /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h \</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>  /home/tstellar/llvm/include/llvm/Support/Compiler.h \</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>  /home/tstellar/llvm/include/llvm/Config/llvm-config.h \</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>  /home/tstellar/llvm/include/llvm/ADT/Optional.h \</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>  /home/tstellar/llvm/include/llvm/Support/AlignOf.h \</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>  /home/tstellar/llvm/include/llvm/ADT/StringMap.h \</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>  /home/tstellar/llvm/include/llvm/ADT/StringRef.h \</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>  /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h \</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>  /home/tstellar/llvm/include/llvm/Support/MathExtras.h \</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>  /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h \</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/<a class="code" href="namespaceclang.html#ae9c75815d0d02c4fb4c86c9f86a8c9b9" title="Analysis - Set of available source code analyses.">Analyses</a>.def</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> AllocationDiagnostics.h:</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> </div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/AnalyzerOptions.h:</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> </div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/LLVM.h:</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> </div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> /home/tstellar/llvm/include/llvm/Support/Casting.h:</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span> /home/tstellar/llvm/include/llvm/Support/type_traits.h:</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span> </div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span> /home/tstellar/llvm/include/llvm/Support/DataTypes.h:</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span> </div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span> /home/tstellar/llvm/include/llvm/ADT/None.h:</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span> </div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span> /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h:</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span> </div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span> /home/tstellar/llvm/include/llvm/Support/Compiler.h:</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span> </div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span> /home/tstellar/llvm/include/llvm/Config/llvm-config.h:</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span> </div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span> /home/tstellar/llvm/include/llvm/ADT/Optional.h:</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span> </div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span> /home/tstellar/llvm/include/llvm/Support/AlignOf.h:</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span> </div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span> /home/tstellar/llvm/include/llvm/ADT/StringMap.h:</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span> </div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span> /home/tstellar/llvm/include/llvm/ADT/StringRef.h:</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span> </div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span> /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h:</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span> </div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span> /home/tstellar/llvm/include/llvm/Support/MathExtras.h:</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span> </div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span> /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h:</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span> </div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/<a class="code" href="namespaceclang.html#ae9c75815d0d02c4fb4c86c9f86a8c9b9" title="Analysis - Set of available source code analyses.">Analyses</a>.def:</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:02 for r$LatestRev$ by <a href="http://www.doxygen.org">Doxygen 
+1.8.3.1</a>.</p>
+<p class="footer">
+See the <a href="http://clang.llvm.org">Main Clang Web Page</a> for more 
+information.</p>
+</body>
+</html>

Added: www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/AllocationDiagnostics_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/AllocationDiagnostics_8h_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/AllocationDiagnostics_8h_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/AllocationDiagnostics_8h_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,110 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="clang,LLVM,Low Level Virtual Machine,C,C++,doxygen,API,frontend,documentation"/>
+<meta name="description" content="C++ source code API documentation for clang."/>
+<title>clang: AllocationDiagnostics.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_87e2a7550f83bd8cbfc92736891468fc.html">lib</a></li><li class="navelem"><a class="el" href="dir_fd0691f76a19cc33074025cb3a574e66.html">StaticAnalyzer</a></li><li class="navelem"><a class="el" href="dir_5fa4c591fb04e7ea3227105bf6cc3359.html">Checkers</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">AllocationDiagnostics.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="AllocationDiagnostics_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> <span class="comment">//=--- AllocationDiagnostics.h - Config options for allocation diags *- C++ -*-//</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">//                     The LLVM Compiler Infrastructure</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment">// This file is distributed under the University of Illinois Open Source</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">// License. See LICENSE.TXT for details.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span> <span class="comment">// Declares the configuration functions for leaks/allocation diagnostics.</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> </div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> <span class="preprocessor">#ifndef LLVM_CLANG_SA_LIB_CHECKERS_ALLOC_DIAGS_H</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> <span class="preprocessor"></span><span class="preprocessor">#define LLVM_CLANG_SA_LIB_CHECKERS_ALLOC_DIAGS_H</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="preprocessor">#include "<a class="code" href="AnalyzerOptions_8h.html">clang/StaticAnalyzer/Core/AnalyzerOptions.h</a>"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> </div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="keyword">namespace </span>clang { <span class="keyword">namespace </span>ento {</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="comment"></span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="comment">/// \brief Returns true if leak diagnostics should directly reference</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="comment">/// the allocatin site (where possible).</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="comment">/// The default is false.</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="comment"></span><span class="keywordtype">bool</span> <a class="code" href="namespaceclang_1_1ento.html#a99794468e0c1b5155f708746b5d05dc9" title="Returns true if leak diagnostics should directly reference the allocatin site (where possible)...">shouldIncludeAllocationSiteInLeakDiagnostics</a>(AnalyzerOptions &AOpts);</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> </div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> }}</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span> <span class="preprocessor"></span></div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:02 for r$LatestRev$ by <a href="http://www.doxygen.org">Doxygen 
+1.8.3.1</a>.</p>
+<p class="footer">
+See the <a href="http://clang.llvm.org">Main Clang Web Page</a> for more 
+information.</p>
+</body>
+</html>

Added: www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/AnalysisBasedWarnings_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/AnalysisBasedWarnings_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/AnalysisBasedWarnings_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/AnalysisBasedWarnings_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,1916 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head>
+<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
+<meta name="keywords" content="clang,LLVM,Low Level Virtual Machine,C,C++,doxygen,API,frontend,documentation"/>
+<meta name="description" content="C++ source code API documentation for clang."/>
+<title>clang: AnalysisBasedWarnings.cpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_87e2a7550f83bd8cbfc92736891468fc.html">lib</a></li><li class="navelem"><a class="el" href="dir_0c3cadfa2fbef89a3b8f57073e8a31f9.html">Sema</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">AnalysisBasedWarnings.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="AnalysisBasedWarnings_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> <span class="comment">//=- AnalysisBasedWarnings.cpp - Sema warnings based on libAnalysis -*- C++ -*-=//</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">//                     The LLVM Compiler Infrastructure</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment">// This file is distributed under the University of Illinois Open Source</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">// License. See LICENSE.TXT for details.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span> <span class="comment">// This file defines analysis_warnings::[Policy,Executor].</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="comment">// Together they are used by Sema to issue warnings based on inexpensive</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="comment">// static analysis algorithms in libAnalysis.</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="preprocessor">#include "<a class="code" href="AnalysisBasedWarnings_8h.html">clang/Sema/AnalysisBasedWarnings.h</a>"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="preprocessor">#include "<a class="code" href="DeclCXX_8h.html" title="Defines the C++ Decl subclasses, other than those for templates (found in DeclTemplate.h) and friends (in DeclFriend.h).">clang/AST/DeclCXX.h</a>"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="preprocessor">#include "<a class="code" href="DeclObjC_8h.html">clang/AST/DeclObjC.h</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="preprocessor">#include "<a class="code" href="EvaluatedExprVisitor_8h.html">clang/AST/EvaluatedExprVisitor.h</a>"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="preprocessor">#include "<a class="code" href="ExprCXX_8h.html" title="Defines the clang::Expr interface and subclasses for C++ expressions.">clang/AST/ExprCXX.h</a>"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="preprocessor">#include "<a class="code" href="ExprObjC_8h.html">clang/AST/ExprObjC.h</a>"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="preprocessor">#include "<a class="code" href="ParentMap_8h.html">clang/AST/ParentMap.h</a>"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="preprocessor">#include "<a class="code" href="RecursiveASTVisitor_8h.html">clang/AST/RecursiveASTVisitor.h</a>"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="preprocessor">#include "<a class="code" href="StmtCXX_8h.html">clang/AST/StmtCXX.h</a>"</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="preprocessor">#include "<a class="code" href="StmtObjC_8h.html" title="Defines the Objective-C statement AST node classes.">clang/AST/StmtObjC.h</a>"</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="preprocessor">#include "<a class="code" href="StmtVisitor_8h.html">clang/AST/StmtVisitor.h</a>"</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="preprocessor">#include "<a class="code" href="CFGReachabilityAnalysis_8h.html">clang/Analysis/Analyses/CFGReachabilityAnalysis.h</a>"</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="preprocessor">#include "<a class="code" href="Consumed_8h.html">clang/Analysis/Analyses/Consumed.h</a>"</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="preprocessor">#include "<a class="code" href="ReachableCode_8h.html">clang/Analysis/Analyses/ReachableCode.h</a>"</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="preprocessor">#include "<a class="code" href="ThreadSafety_8h.html">clang/Analysis/Analyses/ThreadSafety.h</a>"</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span> <span class="preprocessor">#include "<a class="code" href="UninitializedValues_8h.html">clang/Analysis/Analyses/UninitializedValues.h</a>"</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span> <span class="preprocessor">#include "<a class="code" href="AnalysisContext_8h.html">clang/Analysis/AnalysisContext.h</a>"</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span> <span class="preprocessor">#include "<a class="code" href="CFG_8h.html">clang/Analysis/CFG.h</a>"</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span> <span class="preprocessor">#include "<a class="code" href="CFGStmtMap_8h.html">clang/Analysis/CFGStmtMap.h</a>"</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span> <span class="preprocessor">#include "<a class="code" href="SourceLocation_8h.html" title="Defines the clang::SourceLocation class and associated facilities.">clang/Basic/SourceLocation.h</a>"</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span> <span class="preprocessor">#include "<a class="code" href="SourceManager_8h.html" title="Defines the SourceManager interface.">clang/Basic/SourceManager.h</a>"</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span> <span class="preprocessor">#include "<a class="code" href="Lexer_8h.html">clang/Lex/Lexer.h</a>"</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span> <span class="preprocessor">#include "<a class="code" href="Preprocessor_8h.html">clang/Lex/Preprocessor.h</a>"</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span> <span class="preprocessor">#include "<a class="code" href="ScopeInfo_8h.html">clang/Sema/ScopeInfo.h</a>"</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span> <span class="preprocessor">#include "<a class="code" href="SemaInternal_8h.html">clang/Sema/SemaInternal.h</a>"</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span> <span class="preprocessor">#include "llvm/ADT/ArrayRef.h"</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span> <span class="preprocessor">#include "llvm/ADT/BitVector.h"</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span> <span class="preprocessor">#include "llvm/ADT/FoldingSet.h"</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span> <span class="preprocessor">#include "llvm/ADT/ImmutableMap.h"</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span> <span class="preprocessor">#include "llvm/ADT/MapVector.h"</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span> <span class="preprocessor">#include "llvm/ADT/PostOrderIterator.h"</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span> <span class="preprocessor">#include "llvm/ADT/SmallString.h"</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span> <span class="preprocessor">#include "llvm/ADT/SmallVector.h"</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span> <span class="preprocessor">#include "llvm/ADT/StringRef.h"</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span> <span class="preprocessor">#include "llvm/Support/Casting.h"</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span> <span class="preprocessor">#include <algorithm></span></div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span> <span class="preprocessor">#include <deque></span></div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span> <span class="preprocessor">#include <iterator></span></div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span> <span class="preprocessor">#include <vector></span></div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span> </div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span> <span class="keyword">using namespace </span>clang;</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span> </div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span> <span class="comment">// Unreachable code analysis.</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span> </div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span> <span class="keyword">namespace </span>{</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>   <span class="keyword">class </span>UnreachableCodeHandler : <span class="keyword">public</span> <a class="code" href="classclang_1_1reachable__code_1_1Callback.html">reachable_code::Callback</a> {</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>     <a class="code" href="classclang_1_1Sema.html" title="Sema - This implements semantic analysis and AST building for C.">Sema</a> &<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>;</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>     UnreachableCodeHandler(<a class="code" href="classclang_1_1Sema.html" title="Sema - This implements semantic analysis and AST building for C.">Sema</a> &s) : <a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>(s) {}</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span> </div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>     <span class="keywordtype">void</span> HandleUnreachable(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> L, <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> R1, <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> R2) {</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>       <a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>.<a class="code" href="classclang_1_1Sema.html#ad29dfd1f2677772bf6b1da186a7583c3" title="Emit a diagnostic.">Diag</a>(L, diag::warn_unreachable) << R1 << R2;</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>     }</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>   };</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span> }</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span> <span class="comment"></span></div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span> <span class="comment">/// CheckUnreachable - Check for unreachable code.</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno"><a class="code" href="AnalysisBasedWarnings_8cpp.html#ad8cb19963479b442c4215960080c76f0">   75</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="AnalysisBasedWarnings_8cpp.html#ad8cb19963479b442c4215960080c76f0" title="CheckUnreachable - Check for unreachable code.">CheckUnreachable</a>(<a class="code" href="classclang_1_1Sema.html" title="Sema - This implements semantic analysis and AST building for C.">Sema</a> &<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>, <a class="code" href="classclang_1_1AnalysisDeclContext.html">AnalysisDeclContext</a> &AC) {</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>   UnreachableCodeHandler UC(S);</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>   <a class="code" href="namespaceclang_1_1reachable__code.html#a3da0996c41be71f73e9bd50403d378ca">reachable_code::FindUnreachableCode</a>(AC, UC);</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span> }</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span> </div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span> <span class="comment">// Check for missing return value.</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span> </div>
+<div class="line"><a name="l00084"></a><span class="lineno"><a class="code" href="AnalysisBasedWarnings_8cpp.html#ae22270a01a5107410b5fdd633db115a0">   84</a></span> <span class="keyword">enum</span> <a class="code" href="AnalysisBasedWarnings_8cpp.html#ae22270a01a5107410b5fdd633db115a0">ControlFlowKind</a> {</div>
+<div class="line"><a name="l00085"></a><span class="lineno"><a class="code" href="AnalysisBasedWarnings_8cpp.html#ae22270a01a5107410b5fdd633db115a0a50b85ea86bb2f847f72c22f06e77c45f">   85</a></span>   <a class="code" href="AnalysisBasedWarnings_8cpp.html#ae22270a01a5107410b5fdd633db115a0a50b85ea86bb2f847f72c22f06e77c45f">UnknownFallThrough</a>,</div>
+<div class="line"><a name="l00086"></a><span class="lineno"><a class="code" href="AnalysisBasedWarnings_8cpp.html#ae22270a01a5107410b5fdd633db115a0a06dded1b7d5ee94bce66249d18e30c41">   86</a></span>   <a class="code" href="AnalysisBasedWarnings_8cpp.html#ae22270a01a5107410b5fdd633db115a0a06dded1b7d5ee94bce66249d18e30c41">NeverFallThrough</a>,</div>
+<div class="line"><a name="l00087"></a><span class="lineno"><a class="code" href="AnalysisBasedWarnings_8cpp.html#ae22270a01a5107410b5fdd633db115a0a7d034dbe6548a6e682eb29e36613df03">   87</a></span>   <a class="code" href="AnalysisBasedWarnings_8cpp.html#ae22270a01a5107410b5fdd633db115a0a7d034dbe6548a6e682eb29e36613df03">MaybeFallThrough</a>,</div>
+<div class="line"><a name="l00088"></a><span class="lineno"><a class="code" href="AnalysisBasedWarnings_8cpp.html#ae22270a01a5107410b5fdd633db115a0a99dc5d4eec19ded7e3d302877e86c40c">   88</a></span>   <a class="code" href="AnalysisBasedWarnings_8cpp.html#ae22270a01a5107410b5fdd633db115a0a99dc5d4eec19ded7e3d302877e86c40c">AlwaysFallThrough</a>,</div>
+<div class="line"><a name="l00089"></a><span class="lineno"><a class="code" href="AnalysisBasedWarnings_8cpp.html#ae22270a01a5107410b5fdd633db115a0a75b4ea1f484bc9fceacd93b410048c6d">   89</a></span>   <a class="code" href="AnalysisBasedWarnings_8cpp.html#ae22270a01a5107410b5fdd633db115a0a75b4ea1f484bc9fceacd93b410048c6d">NeverFallThroughOrReturn</a></div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span> };</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span> <span class="comment"></span></div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span> <span class="comment">/// CheckFallThrough - Check that we don't fall off the end of a</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span> <span class="comment">/// Statement that should return a value.</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span> <span class="comment">/// \returns AlwaysFallThrough iff we always fall off the end of the statement,</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span> <span class="comment">/// MaybeFallThrough iff we might or might not fall off the end,</span></div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span> <span class="comment">/// NeverFallThroughOrReturn iff we never fall off the end of the statement or</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span> <span class="comment">/// return.  We assume NeverFallThrough iff we never fall off the end of the</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span> <span class="comment">/// statement but we may return.  We assume that functions not marked noreturn</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span> <span class="comment">/// will return.</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno"><a class="code" href="AnalysisBasedWarnings_8cpp.html#a2dc5952d5f5dd6b881cdb2832ceadf26">  101</a></span> <span class="comment"></span><span class="keyword">static</span> <a class="code" href="AnalysisBasedWarnings_8cpp.html#ae22270a01a5107410b5fdd633db115a0">ControlFlowKind</a> <a class="code" href="AnalysisBasedWarnings_8cpp.html#a2dc5952d5f5dd6b881cdb2832ceadf26">CheckFallThrough</a>(<a class="code" href="classclang_1_1AnalysisDeclContext.html">AnalysisDeclContext</a> &AC) {</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>   <a class="code" href="classclang_1_1CFG.html">CFG</a> *cfg = AC.<a class="code" href="classclang_1_1AnalysisDeclContext.html#a8a3aa357f5d09fa5c71e952f961a5bca">getCFG</a>();</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>   <span class="keywordflow">if</span> (cfg == 0) <span class="keywordflow">return</span> <a class="code" href="AnalysisBasedWarnings_8cpp.html#ae22270a01a5107410b5fdd633db115a0a50b85ea86bb2f847f72c22f06e77c45f">UnknownFallThrough</a>;</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span> </div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>   <span class="comment">// The CFG leaves in dead things, and we don't want the dead code paths to</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>   <span class="comment">// confuse us, so we mark all live things first.</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>   llvm::BitVector live(cfg-><a class="code" href="classclang_1_1CFG.html#a35bad5dfa501d6d2b2c570434c22727b">getNumBlockIDs</a>());</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>   <span class="keywordtype">unsigned</span> count = <a class="code" href="namespaceclang_1_1reachable__code.html#ab9cc71d1faa2b6672dac0367d3bf50c1">reachable_code::ScanReachableFromBlock</a>(&cfg-><a class="code" href="classclang_1_1CFG.html#ad5618d5c0636efb4d71510bd66c066cf">getEntry</a>(),</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>                                                           live);</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span> </div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>   <span class="keywordtype">bool</span> AddEHEdges = AC.<a class="code" href="classclang_1_1AnalysisDeclContext.html#a8d7a545cbaa87492ad64f3f7cda8fdec">getAddEHEdges</a>();</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>   <span class="keywordflow">if</span> (!AddEHEdges && count != cfg-><a class="code" href="classclang_1_1CFG.html#a35bad5dfa501d6d2b2c570434c22727b">getNumBlockIDs</a>())</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>     <span class="comment">// When there are things remaining dead, and we didn't add EH edges</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>     <span class="comment">// from CallExprs to the catch clauses, we have to go back and</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>     <span class="comment">// mark them as live.</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>     <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1CFGBlock.html">CFG::iterator</a> I = cfg-><a class="code" href="classclang_1_1CFG.html#a908c392e8ab90beaa7dd0dc70b8e2ab2">begin</a>(), E = cfg-><a class="code" href="classclang_1_1CFG.html#a2013eeb0c97e5c50514c9ca54d00c621">end</a>(); I != E; ++I) {</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>       <a class="code" href="classclang_1_1CFGBlock.html">CFGBlock</a> &b = **I;</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>       <span class="keywordflow">if</span> (!live[b.<a class="code" href="classclang_1_1CFGBlock.html#ab32c4ed9a5a96fd078e3df31ec6c5a07">getBlockID</a>()]) {</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>         <span class="keywordflow">if</span> (b.<a class="code" href="classclang_1_1CFGBlock.html#ac0001ac14b86768c641f769c5fb1f4c6">pred_begin</a>() == b.<a class="code" href="classclang_1_1CFGBlock.html#a172965bda787bf3795bb7f02b2520033">pred_end</a>()) {</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>           <span class="keywordflow">if</span> (b.<a class="code" href="classclang_1_1CFGBlock.html#af1276a7d6dea5546ea7421b85162375a">getTerminator</a>() && isa<CXXTryStmt>(b.<a class="code" href="classclang_1_1CFGBlock.html#af1276a7d6dea5546ea7421b85162375a">getTerminator</a>()))</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>             <span class="comment">// When not adding EH edges from calls, catch clauses</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>             <span class="comment">// can otherwise seem dead.  Avoid noting them as dead.</span></div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>             count += <a class="code" href="namespaceclang_1_1reachable__code.html#ab9cc71d1faa2b6672dac0367d3bf50c1">reachable_code::ScanReachableFromBlock</a>(&b, live);</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>           <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>         }</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>       }</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>     }</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span> </div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>   <span class="comment">// Now we know what is live, we check the live precessors of the exit block</span></div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>   <span class="comment">// and look for fall through paths, being careful to ignore normal returns,</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>   <span class="comment">// and exceptional paths.</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>   <span class="keywordtype">bool</span> HasLiveReturn = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>   <span class="keywordtype">bool</span> HasFakeEdge = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>   <span class="keywordtype">bool</span> HasPlainEdge = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>   <span class="keywordtype">bool</span> HasAbnormalEdge = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span> </div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>   <span class="comment">// Ignore default cases that aren't likely to be reachable because all</span></div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>   <span class="comment">// enums in a switch(X) have explicit case statements.</span></div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>   <a class="code" href="classclang_1_1CFGBlock_1_1FilterOptions.html">CFGBlock::FilterOptions</a> FO;</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>   FO.<a class="code" href="classclang_1_1CFGBlock_1_1FilterOptions.html#a56394cb2d521d937b1eadc18e6756f3e">IgnoreDefaultsWithCoveredEnums</a> = 1;</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span> </div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>   <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1CFGBlock_1_1FilteredCFGBlockIterator.html">CFGBlock::filtered_pred_iterator</a></div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>    I = cfg-><a class="code" href="classclang_1_1CFG.html#a2ff1ea015dc3922825441ce7a2ec13b7">getExit</a>().<a class="code" href="classclang_1_1CFGBlock.html#ad75b3cca696e84806a4a5b2184f213ae">filtered_pred_start_end</a>(FO); I.<a class="code" href="classclang_1_1CFGBlock_1_1FilteredCFGBlockIterator.html#ad498f5876da5fa2087de98031ebe64c7">hasMore</a>(); ++I) {</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1CFGBlock.html">CFGBlock</a>& B = **I;</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>     <span class="keywordflow">if</span> (!live[B.<a class="code" href="classclang_1_1CFGBlock.html#ab32c4ed9a5a96fd078e3df31ec6c5a07">getBlockID</a>()])</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>       <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span> </div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>     <span class="comment">// Skip blocks which contain an element marked as no-return. They don't</span></div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>     <span class="comment">// represent actually viable edges into the exit block, so mark them as</span></div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>     <span class="comment">// abnormal.</span></div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>     <span class="keywordflow">if</span> (B.<a class="code" href="classclang_1_1CFGBlock.html#aef34b6952bed35b439b5b8746173cda4">hasNoReturnElement</a>()) {</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>       HasAbnormalEdge = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>       <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>     }</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span> </div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>     <span class="comment">// Destructors can appear after the 'return' in the CFG.  This is</span></div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>     <span class="comment">// normal.  We need to look pass the destructors for the return</span></div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>     <span class="comment">// statement (if it exists).</span></div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>     <a class="code" href="classclang_1_1CFGElement.html" title="CFGElement - Represents a top-level expression in a basic block.">CFGBlock::const_reverse_iterator</a> ri = B.<a class="code" href="classclang_1_1CFGBlock.html#a28d1c9e2bcd34217a4debc899ebb8a58">rbegin</a>(), re = B.<a class="code" href="classclang_1_1CFGBlock.html#a3f50816a051e41aeddd0cdacaaa5f1b4">rend</a>();</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span> </div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>     <span class="keywordflow">for</span> ( ; ri != re ; ++ri)</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>       <span class="keywordflow">if</span> (ri-><a class="code" href="classclang_1_1CFGElement.html#afca6a81bb08dbcaad7e81b6e88917c6f" title="Convert to the specified CFGElement type, returning None if this CFGElement is not of the desired typ...">getAs</a><<a class="code" href="classclang_1_1CFGStmt.html">CFGStmt</a>>())</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span> </div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>     <span class="comment">// No more CFGElements in the block?</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>     <span class="keywordflow">if</span> (ri == re) {</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>       <span class="keywordflow">if</span> (B.<a class="code" href="classclang_1_1CFGBlock.html#af1276a7d6dea5546ea7421b85162375a">getTerminator</a>() && isa<CXXTryStmt>(B.<a class="code" href="classclang_1_1CFGBlock.html#af1276a7d6dea5546ea7421b85162375a">getTerminator</a>())) {</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>         HasAbnormalEdge = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>         <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>       }</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>       <span class="comment">// A labeled empty statement, or the entry block...</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>       HasPlainEdge = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>       <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>     }</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span> </div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>     <a class="code" href="classclang_1_1CFGStmt.html">CFGStmt</a> CS = ri-><a class="code" href="classclang_1_1CFGElement.html#afd7ac15036c3d2bc76afe3433657ac96" title="Convert to the specified CFGElement type, asserting that this CFGElement is of the desired type...">castAs</a><<a class="code" href="classclang_1_1CFGStmt.html">CFGStmt</a>>();</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a> = CS.<a class="code" href="classclang_1_1CFGStmt.html#a5ee8e559b08d6f99d3476a3eca5eebdb">getStmt</a>();</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>     <span class="keywordflow">if</span> (isa<ReturnStmt>(S)) {</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>       HasLiveReturn = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>       <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>     }</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>     <span class="keywordflow">if</span> (isa<ObjCAtThrowStmt>(S)) {</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>       HasFakeEdge = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>       <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>     }</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>     <span class="keywordflow">if</span> (isa<CXXThrowExpr>(S)) {</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>       HasFakeEdge = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>       <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>     }</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>     <span class="keywordflow">if</span> (isa<MSAsmStmt>(S)) {</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>       <span class="comment">// TODO: Verify this is correct.</span></div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>       HasFakeEdge = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span>       HasLiveReturn = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>       <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>     }</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>     <span class="keywordflow">if</span> (isa<CXXTryStmt>(S)) {</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span>       HasAbnormalEdge = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>       <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>     }</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>     <span class="keywordflow">if</span> (std::find(B.<a class="code" href="classclang_1_1CFGBlock.html#a9d6bfab26a9034c5573ddfd804766b91">succ_begin</a>(), B.<a class="code" href="classclang_1_1CFGBlock.html#a1bcc002635a676581313a5e832b31cbc">succ_end</a>(), &cfg-><a class="code" href="classclang_1_1CFG.html#a2ff1ea015dc3922825441ce7a2ec13b7">getExit</a>())</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>         == B.<a class="code" href="classclang_1_1CFGBlock.html#a1bcc002635a676581313a5e832b31cbc">succ_end</a>()) {</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>       HasAbnormalEdge = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>       <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>     }</div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span> </div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>     HasPlainEdge = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span>   }</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span>   <span class="keywordflow">if</span> (!HasPlainEdge) {</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>     <span class="keywordflow">if</span> (HasLiveReturn)</div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>       <span class="keywordflow">return</span> <a class="code" href="AnalysisBasedWarnings_8cpp.html#ae22270a01a5107410b5fdd633db115a0a06dded1b7d5ee94bce66249d18e30c41">NeverFallThrough</a>;</div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>     <span class="keywordflow">return</span> <a class="code" href="AnalysisBasedWarnings_8cpp.html#ae22270a01a5107410b5fdd633db115a0a75b4ea1f484bc9fceacd93b410048c6d">NeverFallThroughOrReturn</a>;</div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span>   }</div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span>   <span class="keywordflow">if</span> (HasAbnormalEdge || HasFakeEdge || HasLiveReturn)</div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>     <span class="keywordflow">return</span> <a class="code" href="AnalysisBasedWarnings_8cpp.html#ae22270a01a5107410b5fdd633db115a0a7d034dbe6548a6e682eb29e36613df03">MaybeFallThrough</a>;</div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span>   <span class="comment">// This says AlwaysFallThrough for calls to functions that are not marked</span></div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span>   <span class="comment">// noreturn, that don't return.  If people would like this warning to be more</span></div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span>   <span class="comment">// accurate, such functions should be marked as noreturn.</span></div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>   <span class="keywordflow">return</span> <a class="code" href="AnalysisBasedWarnings_8cpp.html#ae22270a01a5107410b5fdd633db115a0a99dc5d4eec19ded7e3d302877e86c40c">AlwaysFallThrough</a>;</div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span> }</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span> </div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span> <span class="keyword">namespace </span>{</div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span> </div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span> <span class="keyword">struct </span>CheckFallThroughDiagnostics {</div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>   <span class="keywordtype">unsigned</span> diag_MaybeFallThrough_HasNoReturn;</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>   <span class="keywordtype">unsigned</span> diag_MaybeFallThrough_ReturnsNonVoid;</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>   <span class="keywordtype">unsigned</span> diag_AlwaysFallThrough_HasNoReturn;</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>   <span class="keywordtype">unsigned</span> diag_AlwaysFallThrough_ReturnsNonVoid;</div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span>   <span class="keywordtype">unsigned</span> diag_NeverFallThroughOrReturn;</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span>   <span class="keyword">enum</span> { Function, Block, Lambda } funMode;</div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span>   <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> FuncLoc;</div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span> </div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span>   <span class="keyword">static</span> CheckFallThroughDiagnostics MakeForFunction(<span class="keyword">const</span> <a class="code" href="classclang_1_1Decl.html">Decl</a> *Func) {</div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span>     CheckFallThroughDiagnostics D;</div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>     D.FuncLoc = Func-><a class="code" href="classclang_1_1Decl.html#a2348196ac4e0b1d5ebb1859c31b99eac">getLocation</a>();</div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span>     D.diag_MaybeFallThrough_HasNoReturn =</div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span>       diag::warn_falloff_noreturn_function;</div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span>     D.diag_MaybeFallThrough_ReturnsNonVoid =</div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span>       diag::warn_maybe_falloff_nonvoid_function;</div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span>     D.diag_AlwaysFallThrough_HasNoReturn =</div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span>       diag::warn_falloff_noreturn_function;</div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span>     D.diag_AlwaysFallThrough_ReturnsNonVoid =</div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span>       diag::warn_falloff_nonvoid_function;</div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span> </div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span>     <span class="comment">// Don't suggest that virtual functions be marked "noreturn", since they</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span>     <span class="comment">// might be overridden by non-noreturn functions.</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span>     <span class="keywordtype">bool</span> isVirtualMethod = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span>     <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXMethodDecl.html" title="Represents a static or instance method of a struct/union/class.">CXXMethodDecl</a> *Method = dyn_cast<CXXMethodDecl>(Func))</div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span>       isVirtualMethod = Method->isVirtual();</div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span>     </div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span>     <span class="comment">// Don't suggest that template instantiations be marked "noreturn"</span></div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span>     <span class="keywordtype">bool</span> <a class="code" href="namespaceclang.html#a0b8388fd083767ec7fc87ac872cb7be3" title="Determine whether this template specialization kind refers to an instantiation of an entity (as oppos...">isTemplateInstantiation</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span>     <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1FunctionDecl.html">FunctionDecl</a> *Function = dyn_cast<FunctionDecl>(Func))</div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span>       isTemplateInstantiation = Function->isTemplateInstantiation();</div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span>         </div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span>     <span class="keywordflow">if</span> (!isVirtualMethod && !isTemplateInstantiation)</div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span>       D.diag_NeverFallThroughOrReturn =</div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span>         diag::warn_suggest_noreturn_function;</div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span>     <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span>       D.diag_NeverFallThroughOrReturn = 0;</div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span>     </div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span>     D.funMode = Function;</div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span>     <span class="keywordflow">return</span> D;</div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span>   }</div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span> </div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span>   <span class="keyword">static</span> CheckFallThroughDiagnostics MakeForBlock() {</div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span>     CheckFallThroughDiagnostics D;</div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span>     D.diag_MaybeFallThrough_HasNoReturn =</div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span>       diag::err_noreturn_block_has_return_expr;</div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span>     D.diag_MaybeFallThrough_ReturnsNonVoid =</div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span>       diag::err_maybe_falloff_nonvoid_block;</div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span>     D.diag_AlwaysFallThrough_HasNoReturn =</div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span>       diag::err_noreturn_block_has_return_expr;</div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span>     D.diag_AlwaysFallThrough_ReturnsNonVoid =</div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span>       diag::err_falloff_nonvoid_block;</div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span>     D.diag_NeverFallThroughOrReturn =</div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span>       diag::warn_suggest_noreturn_block;</div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span>     D.funMode = Block;</div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span>     <span class="keywordflow">return</span> D;</div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span>   }</div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span> </div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span>   <span class="keyword">static</span> CheckFallThroughDiagnostics MakeForLambda() {</div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span>     CheckFallThroughDiagnostics D;</div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span>     D.diag_MaybeFallThrough_HasNoReturn =</div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span>       diag::err_noreturn_lambda_has_return_expr;</div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span>     D.diag_MaybeFallThrough_ReturnsNonVoid =</div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span>       diag::warn_maybe_falloff_nonvoid_lambda;</div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span>     D.diag_AlwaysFallThrough_HasNoReturn =</div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span>       diag::err_noreturn_lambda_has_return_expr;</div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span>     D.diag_AlwaysFallThrough_ReturnsNonVoid =</div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span>       diag::warn_falloff_nonvoid_lambda;</div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span>     D.diag_NeverFallThroughOrReturn = 0;</div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span>     D.funMode = Lambda;</div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span>     <span class="keywordflow">return</span> D;</div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span>   }</div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span> </div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span>   <span class="keywordtype">bool</span> checkDiagnostics(<a class="code" href="classclang_1_1DiagnosticsEngine.html" title="Concrete class used by the front-end to report problems and issues.">DiagnosticsEngine</a> &D, <span class="keywordtype">bool</span> ReturnsVoid,</div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span>                         <span class="keywordtype">bool</span> HasNoReturn)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span>     <span class="keywordflow">if</span> (funMode == Function) {</div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span>       <span class="keywordflow">return</span> (ReturnsVoid ||</div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span>               D.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a1a9de9de7e5ad8218fa06ca8568aa52c" title="Based on the way the client configured the DiagnosticsEngine object, classify the specified diagnosti...">getDiagnosticLevel</a>(diag::warn_maybe_falloff_nonvoid_function,</div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span>                                    FuncLoc) == <a class="code" href="classclang_1_1DiagnosticsEngine.html#a94e5078973aa3a34432e91f3b26263e0a7576ca0c5417d008077e743b3d412234">DiagnosticsEngine::Ignored</a>)</div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span>         && (!HasNoReturn ||</div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span>             D.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a1a9de9de7e5ad8218fa06ca8568aa52c" title="Based on the way the client configured the DiagnosticsEngine object, classify the specified diagnosti...">getDiagnosticLevel</a>(diag::warn_noreturn_function_has_return_expr,</div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span>                                  FuncLoc) == <a class="code" href="classclang_1_1DiagnosticsEngine.html#a94e5078973aa3a34432e91f3b26263e0a7576ca0c5417d008077e743b3d412234">DiagnosticsEngine::Ignored</a>)</div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span>         && (!ReturnsVoid ||</div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span>             D.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a1a9de9de7e5ad8218fa06ca8568aa52c" title="Based on the way the client configured the DiagnosticsEngine object, classify the specified diagnosti...">getDiagnosticLevel</a>(diag::warn_suggest_noreturn_block, FuncLoc)</div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span>               == <a class="code" href="classclang_1_1DiagnosticsEngine.html#a94e5078973aa3a34432e91f3b26263e0a7576ca0c5417d008077e743b3d412234">DiagnosticsEngine::Ignored</a>);</div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span>     }</div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span> </div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span>     <span class="comment">// For blocks / lambdas.</span></div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span>     <span class="keywordflow">return</span> ReturnsVoid && !HasNoReturn</div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span>             && ((funMode == Lambda) ||</div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span>                 D.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a1a9de9de7e5ad8218fa06ca8568aa52c" title="Based on the way the client configured the DiagnosticsEngine object, classify the specified diagnosti...">getDiagnosticLevel</a>(diag::warn_suggest_noreturn_block, FuncLoc)</div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span>                   == <a class="code" href="classclang_1_1DiagnosticsEngine.html#a94e5078973aa3a34432e91f3b26263e0a7576ca0c5417d008077e743b3d412234">DiagnosticsEngine::Ignored</a>);</div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span>   }</div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span> };</div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span> </div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span> }</div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span> <span class="comment"></span></div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span> <span class="comment">/// CheckFallThroughForFunctionDef - Check that we don't fall off the end of a</span></div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span> <span class="comment">/// function that should return a value.  Check that we don't fall off the end</span></div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span> <span class="comment">/// of a noreturn function.  We assume that functions and blocks not marked</span></div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span> <span class="comment">/// noreturn will return.</span></div>
+<div class="line"><a name="l00324"></a><span class="lineno"><a class="code" href="AnalysisBasedWarnings_8cpp.html#a1b3d302c20d4720844ede4364334b315">  324</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="AnalysisBasedWarnings_8cpp.html#a1b3d302c20d4720844ede4364334b315">CheckFallThroughForBody</a>(<a class="code" href="classclang_1_1Sema.html" title="Sema - This implements semantic analysis and AST building for C.">Sema</a> &<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>, <span class="keyword">const</span> <a class="code" href="classclang_1_1Decl.html">Decl</a> *D, <span class="keyword">const</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *Body,</div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span>                                     <span class="keyword">const</span> <a class="code" href="classclang_1_1BlockExpr.html">BlockExpr</a> *blkExpr,</div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span>                                     <span class="keyword">const</span> CheckFallThroughDiagnostics& CD,</div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span>                                     <a class="code" href="classclang_1_1AnalysisDeclContext.html">AnalysisDeclContext</a> &AC) {</div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span> </div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span>   <span class="keywordtype">bool</span> ReturnsVoid = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span>   <span class="keywordtype">bool</span> HasNoReturn = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span> </div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1FunctionDecl.html">FunctionDecl</a> *FD = dyn_cast<FunctionDecl>(D)) {</div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span>     ReturnsVoid = FD->getResultType()->isVoidType();</div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span>     HasNoReturn = FD->isNoReturn();</div>
+<div class="line"><a name="l00335"></a><span class="lineno">  335</span>   }</div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span>   <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *MD = dyn_cast<ObjCMethodDecl>(D)) {</div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span>     ReturnsVoid = MD->getResultType()->isVoidType();</div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span>     HasNoReturn = MD->hasAttr<<a class="code" href="classclang_1_1NoReturnAttr.html">NoReturnAttr</a>>();</div>
+<div class="line"><a name="l00339"></a><span class="lineno">  339</span>   }</div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span>   <span class="keywordflow">else</span> <span class="keywordflow">if</span> (isa<BlockDecl>(D)) {</div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span>     <a class="code" href="classclang_1_1QualType.html">QualType</a> BlockTy = blkExpr-><a class="code" href="classclang_1_1Expr.html#a3dd8850a4ad8a5b5f595dd9e9446187b">getType</a>();</div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span>     <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1FunctionType.html">FunctionType</a> *FT =</div>
+<div class="line"><a name="l00343"></a><span class="lineno">  343</span>           BlockTy-><a class="code" href="classclang_1_1Type.html#a3a0edf987679f04072a1243b6118add1">getPointeeType</a>()-><a class="code" href="classclang_1_1Type.html#a12103ea8bee9506930287bab68a08569">getAs</a><<a class="code" href="classclang_1_1FunctionType.html">FunctionType</a>>()) {</div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span>       <span class="keywordflow">if</span> (FT->getResultType()->isVoidType())</div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span>         ReturnsVoid = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span>       <span class="keywordflow">if</span> (FT->getNoReturnAttr())</div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span>         HasNoReturn = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span>     }</div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span>   }</div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span> </div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span>   <a class="code" href="classclang_1_1DiagnosticsEngine.html" title="Concrete class used by the front-end to report problems and issues.">DiagnosticsEngine</a> &Diags = S.<a class="code" href="classclang_1_1Sema.html#aec26c08c220f07a7c24c8ad6fc476163">getDiagnostics</a>();</div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span> </div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span>   <span class="comment">// Short circuit for compilation speed.</span></div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span>   <span class="keywordflow">if</span> (CD.checkDiagnostics(Diags, ReturnsVoid, HasNoReturn))</div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span> </div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span>   <span class="comment">// FIXME: Function try block</span></div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1CompoundStmt.html">CompoundStmt</a> *Compound = dyn_cast<CompoundStmt>(Body)) {</div>
+<div class="line"><a name="l00359"></a><span class="lineno">  359</span>     <span class="keywordflow">switch</span> (<a class="code" href="AnalysisBasedWarnings_8cpp.html#a2dc5952d5f5dd6b881cdb2832ceadf26">CheckFallThrough</a>(AC)) {</div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span>       <span class="keywordflow">case</span> <a class="code" href="AnalysisBasedWarnings_8cpp.html#ae22270a01a5107410b5fdd633db115a0a50b85ea86bb2f847f72c22f06e77c45f">UnknownFallThrough</a>:</div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span> </div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span>       <span class="keywordflow">case</span> <a class="code" href="AnalysisBasedWarnings_8cpp.html#ae22270a01a5107410b5fdd633db115a0a7d034dbe6548a6e682eb29e36613df03">MaybeFallThrough</a>:</div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span>         <span class="keywordflow">if</span> (HasNoReturn)</div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span>           S.<a class="code" href="classclang_1_1Sema.html#ad29dfd1f2677772bf6b1da186a7583c3" title="Emit a diagnostic.">Diag</a>(Compound->getRBracLoc(),</div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span>                  CD.diag_MaybeFallThrough_HasNoReturn);</div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span>         <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!ReturnsVoid)</div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span>           S.<a class="code" href="classclang_1_1Sema.html#ad29dfd1f2677772bf6b1da186a7583c3" title="Emit a diagnostic.">Diag</a>(Compound->getRBracLoc(),</div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span>                  CD.diag_MaybeFallThrough_ReturnsNonVoid);</div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span>       <span class="keywordflow">case</span> <a class="code" href="AnalysisBasedWarnings_8cpp.html#ae22270a01a5107410b5fdd633db115a0a99dc5d4eec19ded7e3d302877e86c40c">AlwaysFallThrough</a>:</div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span>         <span class="keywordflow">if</span> (HasNoReturn)</div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span>           S.<a class="code" href="classclang_1_1Sema.html#ad29dfd1f2677772bf6b1da186a7583c3" title="Emit a diagnostic.">Diag</a>(Compound->getRBracLoc(),</div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span>                  CD.diag_AlwaysFallThrough_HasNoReturn);</div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span>         <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!ReturnsVoid)</div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span>           S.<a class="code" href="classclang_1_1Sema.html#ad29dfd1f2677772bf6b1da186a7583c3" title="Emit a diagnostic.">Diag</a>(Compound->getRBracLoc(),</div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span>                  CD.diag_AlwaysFallThrough_ReturnsNonVoid);</div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span>       <span class="keywordflow">case</span> <a class="code" href="AnalysisBasedWarnings_8cpp.html#ae22270a01a5107410b5fdd633db115a0a75b4ea1f484bc9fceacd93b410048c6d">NeverFallThroughOrReturn</a>:</div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span>         <span class="keywordflow">if</span> (ReturnsVoid && !HasNoReturn && CD.diag_NeverFallThroughOrReturn) {</div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span>           <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1FunctionDecl.html">FunctionDecl</a> *FD = dyn_cast<FunctionDecl>(D)) {</div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span>             S.<a class="code" href="classclang_1_1Sema.html#ad29dfd1f2677772bf6b1da186a7583c3" title="Emit a diagnostic.">Diag</a>(Compound->getLBracLoc(), CD.diag_NeverFallThroughOrReturn)</div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span>               << 0 << FD;</div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span>           } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *MD = dyn_cast<ObjCMethodDecl>(D)) {</div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span>             S.<a class="code" href="classclang_1_1Sema.html#ad29dfd1f2677772bf6b1da186a7583c3" title="Emit a diagnostic.">Diag</a>(Compound->getLBracLoc(), CD.diag_NeverFallThroughOrReturn)</div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span>               << 1 << MD;</div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span>           } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span>             S.<a class="code" href="classclang_1_1Sema.html#ad29dfd1f2677772bf6b1da186a7583c3" title="Emit a diagnostic.">Diag</a>(Compound->getLBracLoc(), CD.diag_NeverFallThroughOrReturn);</div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span>           }</div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span>         }</div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span>       <span class="keywordflow">case</span> <a class="code" href="AnalysisBasedWarnings_8cpp.html#ae22270a01a5107410b5fdd633db115a0a06dded1b7d5ee94bce66249d18e30c41">NeverFallThrough</a>:</div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span>     }</div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span>   }</div>
+<div class="line"><a name="l00396"></a><span class="lineno">  396</span> }</div>
+<div class="line"><a name="l00397"></a><span class="lineno">  397</span> </div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00399"></a><span class="lineno">  399</span> <span class="comment">// -Wuninitialized</span></div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00401"></a><span class="lineno">  401</span> </div>
+<div class="line"><a name="l00402"></a><span class="lineno">  402</span> <span class="keyword">namespace </span>{<span class="comment"></span></div>
+<div class="line"><a name="l00403"></a><span class="lineno">  403</span> <span class="comment">/// ContainsReference - A visitor class to search for references to</span></div>
+<div class="line"><a name="l00404"></a><span class="lineno">  404</span> <span class="comment">/// a particular declaration (the needle) within any evaluated component of an</span></div>
+<div class="line"><a name="l00405"></a><span class="lineno">  405</span> <span class="comment">/// expression (recursively).</span></div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span> <span class="comment"></span><span class="keyword">class </span>ContainsReference : <span class="keyword">public</span> <a class="code" href="classclang_1_1EvaluatedExprVisitor.html" title="Given a potentially-evaluated expression, this visitor visits all of its potentially-evaluated subexp...">EvaluatedExprVisitor</a><ContainsReference> {</div>
+<div class="line"><a name="l00407"></a><span class="lineno">  407</span>   <span class="keywordtype">bool</span> FoundReference;</div>
+<div class="line"><a name="l00408"></a><span class="lineno">  408</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1DeclRefExpr.html" title="A reference to a declared variable, function, enum, etc. [C99 6.5.1p2].">DeclRefExpr</a> *Needle;</div>
+<div class="line"><a name="l00409"></a><span class="lineno">  409</span> </div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span>   ContainsReference(<a class="code" href="classclang_1_1ASTContext.html" title="Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...">ASTContext</a> &<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, <span class="keyword">const</span> <a class="code" href="classclang_1_1DeclRefExpr.html" title="A reference to a declared variable, function, enum, etc. [C99 6.5.1p2].">DeclRefExpr</a> *Needle)</div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span>     : <a class="code" href="classclang_1_1EvaluatedExprVisitor.html" title="Given a potentially-evaluated expression, this visitor visits all of its potentially-evaluated subexp...">EvaluatedExprVisitor</a><ContainsReference>(Context),</div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</span>       FoundReference(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>), Needle(Needle) {}</div>
+<div class="line"><a name="l00414"></a><span class="lineno">  414</span> </div>
+<div class="line"><a name="l00415"></a><span class="lineno">  415</span>   <span class="keywordtype">void</span> VisitExpr(<a class="code" href="classclang_1_1Expr.html">Expr</a> *E) {</div>
+<div class="line"><a name="l00416"></a><span class="lineno">  416</span>     <span class="comment">// Stop evaluating if we already have a reference.</span></div>
+<div class="line"><a name="l00417"></a><span class="lineno">  417</span>     <span class="keywordflow">if</span> (FoundReference)</div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span> </div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span>     <a class="code" href="classclang_1_1EvaluatedExprVisitor.html" title="Given a potentially-evaluated expression, this visitor visits all of its potentially-evaluated subexp...">EvaluatedExprVisitor<ContainsReference>::VisitExpr</a>(E);</div>
+<div class="line"><a name="l00421"></a><span class="lineno">  421</span>   }</div>
+<div class="line"><a name="l00422"></a><span class="lineno">  422</span> </div>
+<div class="line"><a name="l00423"></a><span class="lineno">  423</span>   <span class="keywordtype">void</span> VisitDeclRefExpr(<a class="code" href="classclang_1_1DeclRefExpr.html" title="A reference to a declared variable, function, enum, etc. [C99 6.5.1p2].">DeclRefExpr</a> *E) {</div>
+<div class="line"><a name="l00424"></a><span class="lineno">  424</span>     <span class="keywordflow">if</span> (E == Needle)</div>
+<div class="line"><a name="l00425"></a><span class="lineno">  425</span>       FoundReference = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span>     <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00427"></a><span class="lineno">  427</span>       <a class="code" href="classclang_1_1EvaluatedExprVisitor.html#a3650c63d662e734fd2c6234f2ad09669">EvaluatedExprVisitor<ContainsReference>::VisitDeclRefExpr</a>(E);</div>
+<div class="line"><a name="l00428"></a><span class="lineno">  428</span>   }</div>
+<div class="line"><a name="l00429"></a><span class="lineno">  429</span> </div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span>   <span class="keywordtype">bool</span> doesContainReference()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> FoundReference; }</div>
+<div class="line"><a name="l00431"></a><span class="lineno">  431</span> };</div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span> }</div>
+<div class="line"><a name="l00433"></a><span class="lineno">  433</span> </div>
+<div class="line"><a name="l00434"></a><span class="lineno"><a class="code" href="AnalysisBasedWarnings_8cpp.html#a15645986cd0c10cd237855bcbe2a694a">  434</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="AnalysisBasedWarnings_8cpp.html#a15645986cd0c10cd237855bcbe2a694a">SuggestInitializationFixit</a>(<a class="code" href="classclang_1_1Sema.html" title="Sema - This implements semantic analysis and AST building for C.">Sema</a> &<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>, <span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *VD) {</div>
+<div class="line"><a name="l00435"></a><span class="lineno">  435</span>   <a class="code" href="classclang_1_1QualType.html">QualType</a> VariableTy = VD-><a class="code" href="classclang_1_1ValueDecl.html#aefa6d3327144aee23d2935f41d993484">getType</a>().<a class="code" href="classclang_1_1QualType.html#abae06108b779ed32a4dc18fe8802fd6e">getCanonicalType</a>();</div>
+<div class="line"><a name="l00436"></a><span class="lineno">  436</span>   <span class="keywordflow">if</span> (VariableTy-><a class="code" href="classclang_1_1Type.html#ad6cd1a04cac76bfb304bbc02bf23a9bb">isBlockPointerType</a>() &&</div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span>       !VD-><a class="code" href="classclang_1_1Decl.html#ac60cc8b34313e03a5c40277c5c5ad61b">hasAttr</a><<a class="code" href="classclang_1_1BlocksAttr.html">BlocksAttr</a>>()) {</div>
+<div class="line"><a name="l00438"></a><span class="lineno">  438</span>     S.<a class="code" href="classclang_1_1Sema.html#ad29dfd1f2677772bf6b1da186a7583c3" title="Emit a diagnostic.">Diag</a>(VD-><a class="code" href="classclang_1_1Decl.html#a2348196ac4e0b1d5ebb1859c31b99eac">getLocation</a>(), diag::note_block_var_fixit_add_initialization) << VD-><a class="code" href="classclang_1_1NamedDecl.html#a1e3e90455be89bb5c7c23640cbbd7153">getDeclName</a>()</div>
+<div class="line"><a name="l00439"></a><span class="lineno">  439</span>     << <a class="code" href="classclang_1_1FixItHint.html#afd481d826e9ddaa39fc82a698a810246" title="Create a code modification hint that inserts the given code string at a specific location.">FixItHint::CreateInsertion</a>(VD-><a class="code" href="classclang_1_1Decl.html#a2348196ac4e0b1d5ebb1859c31b99eac">getLocation</a>(), <span class="stringliteral">"__block "</span>);</div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span>     <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00441"></a><span class="lineno">  441</span>   }</div>
+<div class="line"><a name="l00442"></a><span class="lineno">  442</span> </div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</span>   <span class="comment">// Don't issue a fixit if there is already an initializer.</span></div>
+<div class="line"><a name="l00444"></a><span class="lineno">  444</span>   <span class="keywordflow">if</span> (VD-><a class="code" href="classclang_1_1VarDecl.html#af6438debfc45cb2ad2d5cb5ce2711e0c">getInit</a>())</div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00446"></a><span class="lineno">  446</span> </div>
+<div class="line"><a name="l00447"></a><span class="lineno">  447</span>   <span class="comment">// Don't suggest a fixit inside macros.</span></div>
+<div class="line"><a name="l00448"></a><span class="lineno">  448</span>   <span class="keywordflow">if</span> (VD-><a class="code" href="classclang_1_1Decl.html#a6eb7b247deafb504e09a9d225bbea0c4">getLocEnd</a>().<a class="code" href="classclang_1_1SourceLocation.html#a83c660ad7c57096011c5f40c50b52c7d">isMacroID</a>())</div>
+<div class="line"><a name="l00449"></a><span class="lineno">  449</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00450"></a><span class="lineno">  450</span> </div>
+<div class="line"><a name="l00451"></a><span class="lineno">  451</span>   <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc = S.<a class="code" href="classclang_1_1Sema.html#a6829f2b169c74ad544c53a8b1415061b">PP</a>.<a class="code" href="classclang_1_1Preprocessor.html#aef7193e9d262ea6852d666beb28dc1a0" title="Computes the source location just past the end of the token at this source location.">getLocForEndOfToken</a>(VD-><a class="code" href="classclang_1_1Decl.html#a6eb7b247deafb504e09a9d225bbea0c4">getLocEnd</a>());</div>
+<div class="line"><a name="l00452"></a><span class="lineno">  452</span> </div>
+<div class="line"><a name="l00453"></a><span class="lineno">  453</span>   <span class="comment">// Suggest possible initialization (if any).</span></div>
+<div class="line"><a name="l00454"></a><span class="lineno">  454</span>   std::string Init = S.<a class="code" href="classclang_1_1Sema.html#a65668d2434f3d1b4665de9291c39d392" title="Get a string to suggest for zero-initialization of a type.">getFixItZeroInitializerForType</a>(VariableTy, Loc);</div>
+<div class="line"><a name="l00455"></a><span class="lineno">  455</span>   <span class="keywordflow">if</span> (Init.empty())</div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00457"></a><span class="lineno">  457</span> </div>
+<div class="line"><a name="l00458"></a><span class="lineno">  458</span>   S.<a class="code" href="classclang_1_1Sema.html#ad29dfd1f2677772bf6b1da186a7583c3" title="Emit a diagnostic.">Diag</a>(Loc, diag::note_var_fixit_add_initialization) << VD-><a class="code" href="classclang_1_1NamedDecl.html#a1e3e90455be89bb5c7c23640cbbd7153">getDeclName</a>()</div>
+<div class="line"><a name="l00459"></a><span class="lineno">  459</span>     << <a class="code" href="classclang_1_1FixItHint.html#afd481d826e9ddaa39fc82a698a810246" title="Create a code modification hint that inserts the given code string at a specific location.">FixItHint::CreateInsertion</a>(Loc, Init);</div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span>   <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span> }</div>
+<div class="line"><a name="l00462"></a><span class="lineno">  462</span> <span class="comment"></span></div>
+<div class="line"><a name="l00463"></a><span class="lineno">  463</span> <span class="comment">/// Create a fixit to remove an if-like statement, on the assumption that its</span></div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</span> <span class="comment">/// condition is CondVal.</span></div>
+<div class="line"><a name="l00465"></a><span class="lineno"><a class="code" href="AnalysisBasedWarnings_8cpp.html#a6edea5818010be100d9d1aadaa9b39f4">  465</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="AnalysisBasedWarnings_8cpp.html#a6edea5818010be100d9d1aadaa9b39f4">CreateIfFixit</a>(<a class="code" href="classclang_1_1Sema.html" title="Sema - This implements semantic analysis and AST building for C.">Sema</a> &<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>, <span class="keyword">const</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *If, <span class="keyword">const</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *Then,</div>
+<div class="line"><a name="l00466"></a><span class="lineno">  466</span>                           <span class="keyword">const</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *Else, <span class="keywordtype">bool</span> CondVal,</div>
+<div class="line"><a name="l00467"></a><span class="lineno">  467</span>                           <a class="code" href="classclang_1_1FixItHint.html" title="Annotates a diagnostic with some code that should be inserted, removed, or replaced to fix the proble...">FixItHint</a> &Fixit1, <a class="code" href="classclang_1_1FixItHint.html" title="Annotates a diagnostic with some code that should be inserted, removed, or replaced to fix the proble...">FixItHint</a> &Fixit2) {</div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span>   <span class="keywordflow">if</span> (CondVal) {</div>
+<div class="line"><a name="l00469"></a><span class="lineno">  469</span>     <span class="comment">// If condition is always true, remove all but the 'then'.</span></div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span>     Fixit1 = <a class="code" href="classclang_1_1FixItHint.html#a9e11ae1e22983fd4abea805755ecddbe" title="Create a code modification hint that removes the given source range.">FixItHint::CreateRemoval</a>(</div>
+<div class="line"><a name="l00471"></a><span class="lineno">  471</span>         <a class="code" href="classclang_1_1CharSourceRange.html#a3a85bd6fe56a23b41680fb7893ce8e2e">CharSourceRange::getCharRange</a>(If-><a class="code" href="classclang_1_1Stmt.html#a0270d9cff7ed2b38acb39690b96586d2">getLocStart</a>(),</div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span>                                       Then-><a class="code" href="classclang_1_1Stmt.html#a0270d9cff7ed2b38acb39690b96586d2">getLocStart</a>()));</div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span>     <span class="keywordflow">if</span> (Else) {</div>
+<div class="line"><a name="l00474"></a><span class="lineno">  474</span>       <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> ElseKwLoc = <a class="code" href="classclang_1_1Lexer.html#ae504b980c4435513f71c826a90df2bee" title="Computes the source location just past the end of the token at this source location.">Lexer::getLocForEndOfToken</a>(</div>
+<div class="line"><a name="l00475"></a><span class="lineno">  475</span>           Then-><a class="code" href="classclang_1_1Stmt.html#acdd36e45abff718e8134873f9b7448ef">getLocEnd</a>(), 0, S.<a class="code" href="classclang_1_1Sema.html#aa6addac536d2911c8d411bfb1bd97fac">getSourceManager</a>(), S.<a class="code" href="classclang_1_1Sema.html#a5f632d714a520550786bde65d3771228">getLangOpts</a>());</div>
+<div class="line"><a name="l00476"></a><span class="lineno">  476</span>       Fixit2 = <a class="code" href="classclang_1_1FixItHint.html#a9e11ae1e22983fd4abea805755ecddbe" title="Create a code modification hint that removes the given source range.">FixItHint::CreateRemoval</a>(</div>
+<div class="line"><a name="l00477"></a><span class="lineno">  477</span>           <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a>(ElseKwLoc, Else-><a class="code" href="classclang_1_1Stmt.html#acdd36e45abff718e8134873f9b7448ef">getLocEnd</a>()));</div>
+<div class="line"><a name="l00478"></a><span class="lineno">  478</span>     }</div>
+<div class="line"><a name="l00479"></a><span class="lineno">  479</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span>     <span class="comment">// If condition is always false, remove all but the 'else'.</span></div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span>     <span class="keywordflow">if</span> (Else)</div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span>       Fixit1 = <a class="code" href="classclang_1_1FixItHint.html#a9e11ae1e22983fd4abea805755ecddbe" title="Create a code modification hint that removes the given source range.">FixItHint::CreateRemoval</a>(</div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span>           <a class="code" href="classclang_1_1CharSourceRange.html#a3a85bd6fe56a23b41680fb7893ce8e2e">CharSourceRange::getCharRange</a>(If-><a class="code" href="classclang_1_1Stmt.html#a0270d9cff7ed2b38acb39690b96586d2">getLocStart</a>(),</div>
+<div class="line"><a name="l00484"></a><span class="lineno">  484</span>                                         Else-><a class="code" href="classclang_1_1Stmt.html#a0270d9cff7ed2b38acb39690b96586d2">getLocStart</a>()));</div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span>     <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00486"></a><span class="lineno">  486</span>       Fixit1 = <a class="code" href="classclang_1_1FixItHint.html#a9e11ae1e22983fd4abea805755ecddbe" title="Create a code modification hint that removes the given source range.">FixItHint::CreateRemoval</a>(If-><a class="code" href="classclang_1_1Stmt.html#a6844392ee6148b5fe821f211b95e5d1b">getSourceRange</a>());</div>
+<div class="line"><a name="l00487"></a><span class="lineno">  487</span>   }</div>
+<div class="line"><a name="l00488"></a><span class="lineno">  488</span> }</div>
+<div class="line"><a name="l00489"></a><span class="lineno">  489</span> <span class="comment"></span></div>
+<div class="line"><a name="l00490"></a><span class="lineno">  490</span> <span class="comment">/// DiagUninitUse -- Helper function to produce a diagnostic for an</span></div>
+<div class="line"><a name="l00491"></a><span class="lineno">  491</span> <span class="comment">/// uninitialized use of a variable.</span></div>
+<div class="line"><a name="l00492"></a><span class="lineno"><a class="code" href="AnalysisBasedWarnings_8cpp.html#acf86596bad53cfa7eb71b84545576a8d">  492</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="AnalysisBasedWarnings_8cpp.html#acf86596bad53cfa7eb71b84545576a8d">DiagUninitUse</a>(<a class="code" href="classclang_1_1Sema.html" title="Sema - This implements semantic analysis and AST building for C.">Sema</a> &<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>, <span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *VD, <span class="keyword">const</span> <a class="code" href="classclang_1_1UninitUse.html" title="A use of a variable, which might be uninitialized.">UninitUse</a> &Use,</div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span>                           <span class="keywordtype">bool</span> IsCapturedByBlock) {</div>
+<div class="line"><a name="l00494"></a><span class="lineno">  494</span>   <span class="keywordtype">bool</span> Diagnosed = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00495"></a><span class="lineno">  495</span> </div>
+<div class="line"><a name="l00496"></a><span class="lineno">  496</span>   <span class="keywordflow">switch</span> (Use.<a class="code" href="classclang_1_1UninitUse.html#a48c78437c312416aadb115df583abfea" title="Get the kind of uninitialized use.">getKind</a>()) {</div>
+<div class="line"><a name="l00497"></a><span class="lineno">  497</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1UninitUse.html#af24ad5db6cb44b0fb541d02558b53cd5a39ecf5e3b0aad55d7ddfaefc8ae93a45" title="The use is always uninitialized.">UninitUse::Always</a>:</div>
+<div class="line"><a name="l00498"></a><span class="lineno">  498</span>     S.<a class="code" href="classclang_1_1Sema.html#ad29dfd1f2677772bf6b1da186a7583c3" title="Emit a diagnostic.">Diag</a>(Use.<a class="code" href="classclang_1_1UninitUse.html#a8e728bb1a8547b5f5eca4db9e617de60" title="Get the expression containing the uninitialized use.">getUser</a>()-><a class="code" href="classclang_1_1Stmt.html#a0270d9cff7ed2b38acb39690b96586d2">getLocStart</a>(), diag::warn_uninit_var)</div>
+<div class="line"><a name="l00499"></a><span class="lineno">  499</span>         << VD-><a class="code" href="classclang_1_1NamedDecl.html#a1e3e90455be89bb5c7c23640cbbd7153">getDeclName</a>() << IsCapturedByBlock</div>
+<div class="line"><a name="l00500"></a><span class="lineno">  500</span>         << Use.<a class="code" href="classclang_1_1UninitUse.html#a8e728bb1a8547b5f5eca4db9e617de60" title="Get the expression containing the uninitialized use.">getUser</a>()-><a class="code" href="classclang_1_1Stmt.html#a6844392ee6148b5fe821f211b95e5d1b">getSourceRange</a>();</div>
+<div class="line"><a name="l00501"></a><span class="lineno">  501</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00502"></a><span class="lineno">  502</span> </div>
+<div class="line"><a name="l00503"></a><span class="lineno">  503</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1UninitUse.html#af24ad5db6cb44b0fb541d02558b53cd5a4ac762cb233832f2d1ea6da8da15f0c9">UninitUse::AfterDecl</a>:</div>
+<div class="line"><a name="l00504"></a><span class="lineno">  504</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1UninitUse.html#af24ad5db6cb44b0fb541d02558b53cd5af0e285dc2411b83f1c107bddf3ccf7e7">UninitUse::AfterCall</a>:</div>
+<div class="line"><a name="l00505"></a><span class="lineno">  505</span>     S.<a class="code" href="classclang_1_1Sema.html#ad29dfd1f2677772bf6b1da186a7583c3" title="Emit a diagnostic.">Diag</a>(VD-><a class="code" href="classclang_1_1Decl.html#a2348196ac4e0b1d5ebb1859c31b99eac">getLocation</a>(), diag::warn_sometimes_uninit_var)</div>
+<div class="line"><a name="l00506"></a><span class="lineno">  506</span>       << VD-><a class="code" href="classclang_1_1NamedDecl.html#a1e3e90455be89bb5c7c23640cbbd7153">getDeclName</a>() << IsCapturedByBlock</div>
+<div class="line"><a name="l00507"></a><span class="lineno">  507</span>       << (Use.<a class="code" href="classclang_1_1UninitUse.html#a48c78437c312416aadb115df583abfea" title="Get the kind of uninitialized use.">getKind</a>() == <a class="code" href="classclang_1_1UninitUse.html#af24ad5db6cb44b0fb541d02558b53cd5a4ac762cb233832f2d1ea6da8da15f0c9">UninitUse::AfterDecl</a> ? 4 : 5)</div>
+<div class="line"><a name="l00508"></a><span class="lineno">  508</span>       << const_cast<DeclContext*>(VD-><a class="code" href="classclang_1_1Decl.html#aa390f755d0a0a1fc7fc557af886e4c93">getLexicalDeclContext</a>())</div>
+<div class="line"><a name="l00509"></a><span class="lineno">  509</span>       << VD-><a class="code" href="classclang_1_1VarDecl.html#af31bc71a9b9305192c22735c0c3c9d91" title="Source range that this declaration covers.">getSourceRange</a>();</div>
+<div class="line"><a name="l00510"></a><span class="lineno">  510</span>     S.<a class="code" href="classclang_1_1Sema.html#ad29dfd1f2677772bf6b1da186a7583c3" title="Emit a diagnostic.">Diag</a>(Use.<a class="code" href="classclang_1_1UninitUse.html#a8e728bb1a8547b5f5eca4db9e617de60" title="Get the expression containing the uninitialized use.">getUser</a>()-><a class="code" href="classclang_1_1Stmt.html#a0270d9cff7ed2b38acb39690b96586d2">getLocStart</a>(), diag::note_uninit_var_use)</div>
+<div class="line"><a name="l00511"></a><span class="lineno">  511</span>       << IsCapturedByBlock << Use.<a class="code" href="classclang_1_1UninitUse.html#a8e728bb1a8547b5f5eca4db9e617de60" title="Get the expression containing the uninitialized use.">getUser</a>()-><a class="code" href="classclang_1_1Stmt.html#a6844392ee6148b5fe821f211b95e5d1b">getSourceRange</a>();</div>
+<div class="line"><a name="l00512"></a><span class="lineno">  512</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00513"></a><span class="lineno">  513</span> </div>
+<div class="line"><a name="l00514"></a><span class="lineno">  514</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1UninitUse.html#af24ad5db6cb44b0fb541d02558b53cd5a5336bcec06d751af8771f9e9de4f89e2" title="The use might be uninitialized.">UninitUse::Maybe</a>:</div>
+<div class="line"><a name="l00515"></a><span class="lineno">  515</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1UninitUse.html#af24ad5db6cb44b0fb541d02558b53cd5af135c00be48e8f9e440e8913d47f274c" title="The use is uninitialized whenever a certain branch is taken.">UninitUse::Sometimes</a>:</div>
+<div class="line"><a name="l00516"></a><span class="lineno">  516</span>     <span class="comment">// Carry on to report sometimes-uninitialized branches, if possible,</span></div>
+<div class="line"><a name="l00517"></a><span class="lineno">  517</span>     <span class="comment">// or a 'may be used uninitialized' diagnostic otherwise.</span></div>
+<div class="line"><a name="l00518"></a><span class="lineno">  518</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00519"></a><span class="lineno">  519</span>   }</div>
+<div class="line"><a name="l00520"></a><span class="lineno">  520</span> </div>
+<div class="line"><a name="l00521"></a><span class="lineno">  521</span>   <span class="comment">// Diagnose each branch which leads to a sometimes-uninitialized use.</span></div>
+<div class="line"><a name="l00522"></a><span class="lineno">  522</span>   <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1UninitUse.html#a328dde059bc6169bab954e5587a10224">UninitUse::branch_iterator</a> I = Use.<a class="code" href="classclang_1_1UninitUse.html#a8397e6a58baf35cae16fe65315a48553" title="Branches which inevitably result in the variable being used uninitialized.">branch_begin</a>(), E = Use.<a class="code" href="classclang_1_1UninitUse.html#a6e10b3f8cc733d8bdd46f3d8530734aa">branch_end</a>();</div>
+<div class="line"><a name="l00523"></a><span class="lineno">  523</span>        I != E; ++I) {</div>
+<div class="line"><a name="l00524"></a><span class="lineno">  524</span>     assert(Use.<a class="code" href="classclang_1_1UninitUse.html#a48c78437c312416aadb115df583abfea" title="Get the kind of uninitialized use.">getKind</a>() == <a class="code" href="classclang_1_1UninitUse.html#af24ad5db6cb44b0fb541d02558b53cd5af135c00be48e8f9e440e8913d47f274c" title="The use is uninitialized whenever a certain branch is taken.">UninitUse::Sometimes</a>);</div>
+<div class="line"><a name="l00525"></a><span class="lineno">  525</span> </div>
+<div class="line"><a name="l00526"></a><span class="lineno">  526</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *User = Use.<a class="code" href="classclang_1_1UninitUse.html#a8e728bb1a8547b5f5eca4db9e617de60" title="Get the expression containing the uninitialized use.">getUser</a>();</div>
+<div class="line"><a name="l00527"></a><span class="lineno">  527</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *Term = I->Terminator;</div>
+<div class="line"><a name="l00528"></a><span class="lineno">  528</span> </div>
+<div class="line"><a name="l00529"></a><span class="lineno">  529</span>     <span class="comment">// Information used when building the diagnostic.</span></div>
+<div class="line"><a name="l00530"></a><span class="lineno">  530</span>     <span class="keywordtype">unsigned</span> DiagKind;</div>
+<div class="line"><a name="l00531"></a><span class="lineno">  531</span>     StringRef Str;</div>
+<div class="line"><a name="l00532"></a><span class="lineno">  532</span>     <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> Range;</div>
+<div class="line"><a name="l00533"></a><span class="lineno">  533</span> </div>
+<div class="line"><a name="l00534"></a><span class="lineno">  534</span>     <span class="comment">// FixIts to suppress the diagnostic by removing the dead condition.</span></div>
+<div class="line"><a name="l00535"></a><span class="lineno">  535</span>     <span class="comment">// For all binary terminators, branch 0 is taken if the condition is true,</span></div>
+<div class="line"><a name="l00536"></a><span class="lineno">  536</span>     <span class="comment">// and branch 1 is taken if the condition is false.</span></div>
+<div class="line"><a name="l00537"></a><span class="lineno">  537</span>     <span class="keywordtype">int</span> RemoveDiagKind = -1;</div>
+<div class="line"><a name="l00538"></a><span class="lineno">  538</span>     <span class="keyword">const</span> <span class="keywordtype">char</span> *FixitStr =</div>
+<div class="line"><a name="l00539"></a><span class="lineno">  539</span>         S.<a class="code" href="classclang_1_1Sema.html#a5f632d714a520550786bde65d3771228">getLangOpts</a>().CPlusPlus ? (I->Output ? <span class="stringliteral">"true"</span> : <span class="stringliteral">"false"</span>)</div>
+<div class="line"><a name="l00540"></a><span class="lineno">  540</span>                                   : (I->Output ? <span class="stringliteral">"1"</span> : <span class="stringliteral">"0"</span>);</div>
+<div class="line"><a name="l00541"></a><span class="lineno">  541</span>     <a class="code" href="classclang_1_1FixItHint.html" title="Annotates a diagnostic with some code that should be inserted, removed, or replaced to fix the proble...">FixItHint</a> Fixit1, Fixit2;</div>
+<div class="line"><a name="l00542"></a><span class="lineno">  542</span> </div>
+<div class="line"><a name="l00543"></a><span class="lineno">  543</span>     <span class="keywordflow">switch</span> (Term ? Term-><a class="code" href="classclang_1_1Stmt.html#ac881a5954ff27d475c1bbab6f5d80150">getStmtClass</a>() : Stmt::DeclStmtClass) {</div>
+<div class="line"><a name="l00544"></a><span class="lineno">  544</span>     <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l00545"></a><span class="lineno">  545</span>       <span class="comment">// Don't know how to report this. Just fall back to 'may be used</span></div>
+<div class="line"><a name="l00546"></a><span class="lineno">  546</span>       <span class="comment">// uninitialized'. FIXME: Can this happen?</span></div>
+<div class="line"><a name="l00547"></a><span class="lineno">  547</span>       <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00548"></a><span class="lineno">  548</span> </div>
+<div class="line"><a name="l00549"></a><span class="lineno">  549</span>     <span class="comment">// "condition is true / condition is false".</span></div>
+<div class="line"><a name="l00550"></a><span class="lineno">  550</span>     <span class="keywordflow">case</span> Stmt::IfStmtClass: {</div>
+<div class="line"><a name="l00551"></a><span class="lineno">  551</span>       <span class="keyword">const</span> <a class="code" href="classclang_1_1IfStmt.html">IfStmt</a> *IS = cast<IfStmt>(Term);</div>
+<div class="line"><a name="l00552"></a><span class="lineno">  552</span>       DiagKind = 0;</div>
+<div class="line"><a name="l00553"></a><span class="lineno">  553</span>       Str = <span class="stringliteral">"if"</span>;</div>
+<div class="line"><a name="l00554"></a><span class="lineno">  554</span>       Range = IS-><a class="code" href="classclang_1_1IfStmt.html#a2abf6bc9a2b3d4c8f1c90f49e9baa81d">getCond</a>()-><a class="code" href="classclang_1_1Stmt.html#a6844392ee6148b5fe821f211b95e5d1b">getSourceRange</a>();</div>
+<div class="line"><a name="l00555"></a><span class="lineno">  555</span>       RemoveDiagKind = 0;</div>
+<div class="line"><a name="l00556"></a><span class="lineno">  556</span>       <a class="code" href="AnalysisBasedWarnings_8cpp.html#a6edea5818010be100d9d1aadaa9b39f4">CreateIfFixit</a>(S, IS, IS-><a class="code" href="classclang_1_1IfStmt.html#adc5d1594ff597deaa6d431ce45fa8c96">getThen</a>(), IS-><a class="code" href="classclang_1_1IfStmt.html#a799cbc371f3c02319d779040c9b3ceae">getElse</a>(),</div>
+<div class="line"><a name="l00557"></a><span class="lineno">  557</span>                     I->Output, Fixit1, Fixit2);</div>
+<div class="line"><a name="l00558"></a><span class="lineno">  558</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00559"></a><span class="lineno">  559</span>     }</div>
+<div class="line"><a name="l00560"></a><span class="lineno">  560</span>     <span class="keywordflow">case</span> Stmt::ConditionalOperatorClass: {</div>
+<div class="line"><a name="l00561"></a><span class="lineno">  561</span>       <span class="keyword">const</span> <a class="code" href="classclang_1_1ConditionalOperator.html">ConditionalOperator</a> *CO = cast<ConditionalOperator>(Term);</div>
+<div class="line"><a name="l00562"></a><span class="lineno">  562</span>       DiagKind = 0;</div>
+<div class="line"><a name="l00563"></a><span class="lineno">  563</span>       Str = <span class="stringliteral">"?:"</span>;</div>
+<div class="line"><a name="l00564"></a><span class="lineno">  564</span>       Range = CO-><a class="code" href="classclang_1_1ConditionalOperator.html#adde4b8e0f728e60640fe4401e3eac1d3">getCond</a>()-><a class="code" href="classclang_1_1Stmt.html#a6844392ee6148b5fe821f211b95e5d1b">getSourceRange</a>();</div>
+<div class="line"><a name="l00565"></a><span class="lineno">  565</span>       RemoveDiagKind = 0;</div>
+<div class="line"><a name="l00566"></a><span class="lineno">  566</span>       <a class="code" href="AnalysisBasedWarnings_8cpp.html#a6edea5818010be100d9d1aadaa9b39f4">CreateIfFixit</a>(S, CO, CO-><a class="code" href="classclang_1_1ConditionalOperator.html#ae3c023a9354513f08eca2810fad50fb5">getTrueExpr</a>(), CO-><a class="code" href="classclang_1_1ConditionalOperator.html#a496da4ba98b85ef8076e6bf675ffc6e9">getFalseExpr</a>(),</div>
+<div class="line"><a name="l00567"></a><span class="lineno">  567</span>                     I->Output, Fixit1, Fixit2);</div>
+<div class="line"><a name="l00568"></a><span class="lineno">  568</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00569"></a><span class="lineno">  569</span>     }</div>
+<div class="line"><a name="l00570"></a><span class="lineno">  570</span>     <span class="keywordflow">case</span> Stmt::BinaryOperatorClass: {</div>
+<div class="line"><a name="l00571"></a><span class="lineno">  571</span>       <span class="keyword">const</span> <a class="code" href="classclang_1_1BinaryOperator.html" title="A builtin binary operation expression such as "x + y" or "x <= y".">BinaryOperator</a> *BO = cast<BinaryOperator>(Term);</div>
+<div class="line"><a name="l00572"></a><span class="lineno">  572</span>       <span class="keywordflow">if</span> (!BO-><a class="code" href="classclang_1_1BinaryOperator.html#a0149731b48b397fabc77b60bca65c6c6">isLogicalOp</a>())</div>
+<div class="line"><a name="l00573"></a><span class="lineno">  573</span>         <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00574"></a><span class="lineno">  574</span>       DiagKind = 0;</div>
+<div class="line"><a name="l00575"></a><span class="lineno">  575</span>       Str = BO-><a class="code" href="classclang_1_1BinaryOperator.html#a839c4ea97f1ac89e09226b54d2310e43">getOpcodeStr</a>();</div>
+<div class="line"><a name="l00576"></a><span class="lineno">  576</span>       Range = BO-><a class="code" href="classclang_1_1BinaryOperator.html#ad8b108ac1a7795b9f388d8dece6b8924">getLHS</a>()-><a class="code" href="classclang_1_1Stmt.html#a6844392ee6148b5fe821f211b95e5d1b">getSourceRange</a>();</div>
+<div class="line"><a name="l00577"></a><span class="lineno">  577</span>       RemoveDiagKind = 0;</div>
+<div class="line"><a name="l00578"></a><span class="lineno">  578</span>       <span class="keywordflow">if</span> ((BO-><a class="code" href="classclang_1_1BinaryOperator.html#a497174c5cc2816aa3a3f29e12dd93165">getOpcode</a>() == <a class="code" href="namespaceclang.html#a443b552ee80020cfeb2b86c99e7f85e1a30e5536f851a7efedefd1ca23a295741">BO_LAnd</a> && I->Output) ||</div>
+<div class="line"><a name="l00579"></a><span class="lineno">  579</span>           (BO-><a class="code" href="classclang_1_1BinaryOperator.html#a497174c5cc2816aa3a3f29e12dd93165">getOpcode</a>() == <a class="code" href="namespaceclang.html#a443b552ee80020cfeb2b86c99e7f85e1a7bc0171ddbb52333099a4774326d72c9">BO_LOr</a> && !I->Output))</div>
+<div class="line"><a name="l00580"></a><span class="lineno">  580</span>         <span class="comment">// true && y -> y, false || y -> y.</span></div>
+<div class="line"><a name="l00581"></a><span class="lineno">  581</span>         Fixit1 = <a class="code" href="classclang_1_1FixItHint.html#a9e11ae1e22983fd4abea805755ecddbe" title="Create a code modification hint that removes the given source range.">FixItHint::CreateRemoval</a>(<a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a>(BO-><a class="code" href="classclang_1_1BinaryOperator.html#abb35f66f51c82502ea0c9f4101f23511">getLocStart</a>(),</div>
+<div class="line"><a name="l00582"></a><span class="lineno">  582</span>                                                       BO-><a class="code" href="classclang_1_1BinaryOperator.html#a0b017effb7b1d6ca87b78bd28f6be9ad">getOperatorLoc</a>()));</div>
+<div class="line"><a name="l00583"></a><span class="lineno">  583</span>       <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00584"></a><span class="lineno">  584</span>         <span class="comment">// false && y -> false, true || y -> true.</span></div>
+<div class="line"><a name="l00585"></a><span class="lineno">  585</span>         Fixit1 = <a class="code" href="classclang_1_1FixItHint.html#a90e122cd34933ba821718385fddfae7a" title="Create a code modification hint that replaces the given source range with the given code string...">FixItHint::CreateReplacement</a>(BO-><a class="code" href="classclang_1_1Stmt.html#a6844392ee6148b5fe821f211b95e5d1b">getSourceRange</a>(), FixitStr);</div>
+<div class="line"><a name="l00586"></a><span class="lineno">  586</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00587"></a><span class="lineno">  587</span>     }</div>
+<div class="line"><a name="l00588"></a><span class="lineno">  588</span> </div>
+<div class="line"><a name="l00589"></a><span class="lineno">  589</span>     <span class="comment">// "loop is entered / loop is exited".</span></div>
+<div class="line"><a name="l00590"></a><span class="lineno">  590</span>     <span class="keywordflow">case</span> Stmt::WhileStmtClass:</div>
+<div class="line"><a name="l00591"></a><span class="lineno">  591</span>       DiagKind = 1;</div>
+<div class="line"><a name="l00592"></a><span class="lineno">  592</span>       Str = <span class="stringliteral">"while"</span>;</div>
+<div class="line"><a name="l00593"></a><span class="lineno">  593</span>       Range = cast<WhileStmt>(Term)->getCond()->getSourceRange();</div>
+<div class="line"><a name="l00594"></a><span class="lineno">  594</span>       RemoveDiagKind = 1;</div>
+<div class="line"><a name="l00595"></a><span class="lineno">  595</span>       Fixit1 = <a class="code" href="classclang_1_1FixItHint.html#a90e122cd34933ba821718385fddfae7a" title="Create a code modification hint that replaces the given source range with the given code string...">FixItHint::CreateReplacement</a>(Range, FixitStr);</div>
+<div class="line"><a name="l00596"></a><span class="lineno">  596</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00597"></a><span class="lineno">  597</span>     <span class="keywordflow">case</span> Stmt::ForStmtClass:</div>
+<div class="line"><a name="l00598"></a><span class="lineno">  598</span>       DiagKind = 1;</div>
+<div class="line"><a name="l00599"></a><span class="lineno">  599</span>       Str = <span class="stringliteral">"for"</span>;</div>
+<div class="line"><a name="l00600"></a><span class="lineno">  600</span>       Range = cast<ForStmt>(Term)->getCond()->getSourceRange();</div>
+<div class="line"><a name="l00601"></a><span class="lineno">  601</span>       RemoveDiagKind = 1;</div>
+<div class="line"><a name="l00602"></a><span class="lineno">  602</span>       <span class="keywordflow">if</span> (I->Output)</div>
+<div class="line"><a name="l00603"></a><span class="lineno">  603</span>         Fixit1 = <a class="code" href="classclang_1_1FixItHint.html#a9e11ae1e22983fd4abea805755ecddbe" title="Create a code modification hint that removes the given source range.">FixItHint::CreateRemoval</a>(Range);</div>
+<div class="line"><a name="l00604"></a><span class="lineno">  604</span>       <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00605"></a><span class="lineno">  605</span>         Fixit1 = <a class="code" href="classclang_1_1FixItHint.html#a90e122cd34933ba821718385fddfae7a" title="Create a code modification hint that replaces the given source range with the given code string...">FixItHint::CreateReplacement</a>(Range, FixitStr);</div>
+<div class="line"><a name="l00606"></a><span class="lineno">  606</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00607"></a><span class="lineno">  607</span>     <span class="keywordflow">case</span> Stmt::CXXForRangeStmtClass:</div>
+<div class="line"><a name="l00608"></a><span class="lineno">  608</span>       <span class="keywordflow">if</span> (I->Output == 1) {</div>
+<div class="line"><a name="l00609"></a><span class="lineno">  609</span>         <span class="comment">// The use occurs if a range-based for loop's body never executes.</span></div>
+<div class="line"><a name="l00610"></a><span class="lineno">  610</span>         <span class="comment">// That may be impossible, and there's no syntactic fix for this,</span></div>
+<div class="line"><a name="l00611"></a><span class="lineno">  611</span>         <span class="comment">// so treat it as a 'may be uninitialized' case.</span></div>
+<div class="line"><a name="l00612"></a><span class="lineno">  612</span>         <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00613"></a><span class="lineno">  613</span>       }</div>
+<div class="line"><a name="l00614"></a><span class="lineno">  614</span>       DiagKind = 1;</div>
+<div class="line"><a name="l00615"></a><span class="lineno">  615</span>       Str = <span class="stringliteral">"for"</span>;</div>
+<div class="line"><a name="l00616"></a><span class="lineno">  616</span>       Range = cast<CXXForRangeStmt>(Term)->getRangeInit()->getSourceRange();</div>
+<div class="line"><a name="l00617"></a><span class="lineno">  617</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00618"></a><span class="lineno">  618</span> </div>
+<div class="line"><a name="l00619"></a><span class="lineno">  619</span>     <span class="comment">// "condition is true / loop is exited".</span></div>
+<div class="line"><a name="l00620"></a><span class="lineno">  620</span>     <span class="keywordflow">case</span> Stmt::DoStmtClass:</div>
+<div class="line"><a name="l00621"></a><span class="lineno">  621</span>       DiagKind = 2;</div>
+<div class="line"><a name="l00622"></a><span class="lineno">  622</span>       Str = <span class="stringliteral">"do"</span>;</div>
+<div class="line"><a name="l00623"></a><span class="lineno">  623</span>       Range = cast<DoStmt>(Term)->getCond()->getSourceRange();</div>
+<div class="line"><a name="l00624"></a><span class="lineno">  624</span>       RemoveDiagKind = 1;</div>
+<div class="line"><a name="l00625"></a><span class="lineno">  625</span>       Fixit1 = <a class="code" href="classclang_1_1FixItHint.html#a90e122cd34933ba821718385fddfae7a" title="Create a code modification hint that replaces the given source range with the given code string...">FixItHint::CreateReplacement</a>(Range, FixitStr);</div>
+<div class="line"><a name="l00626"></a><span class="lineno">  626</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00627"></a><span class="lineno">  627</span> </div>
+<div class="line"><a name="l00628"></a><span class="lineno">  628</span>     <span class="comment">// "switch case is taken".</span></div>
+<div class="line"><a name="l00629"></a><span class="lineno">  629</span>     <span class="keywordflow">case</span> Stmt::CaseStmtClass:</div>
+<div class="line"><a name="l00630"></a><span class="lineno">  630</span>       DiagKind = 3;</div>
+<div class="line"><a name="l00631"></a><span class="lineno">  631</span>       Str = <span class="stringliteral">"case"</span>;</div>
+<div class="line"><a name="l00632"></a><span class="lineno">  632</span>       Range = cast<CaseStmt>(Term)->getLHS()->getSourceRange();</div>
+<div class="line"><a name="l00633"></a><span class="lineno">  633</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00634"></a><span class="lineno">  634</span>     <span class="keywordflow">case</span> Stmt::DefaultStmtClass:</div>
+<div class="line"><a name="l00635"></a><span class="lineno">  635</span>       DiagKind = 3;</div>
+<div class="line"><a name="l00636"></a><span class="lineno">  636</span>       Str = <span class="stringliteral">"default"</span>;</div>
+<div class="line"><a name="l00637"></a><span class="lineno">  637</span>       Range = cast<DefaultStmt>(Term)->getDefaultLoc();</div>
+<div class="line"><a name="l00638"></a><span class="lineno">  638</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00639"></a><span class="lineno">  639</span>     }</div>
+<div class="line"><a name="l00640"></a><span class="lineno">  640</span> </div>
+<div class="line"><a name="l00641"></a><span class="lineno">  641</span>     S.<a class="code" href="classclang_1_1Sema.html#ad29dfd1f2677772bf6b1da186a7583c3" title="Emit a diagnostic.">Diag</a>(Range.<a class="code" href="classclang_1_1SourceRange.html#a890dff14560eb9aceb08be18dfe74208">getBegin</a>(), diag::warn_sometimes_uninit_var)</div>
+<div class="line"><a name="l00642"></a><span class="lineno">  642</span>       << VD-><a class="code" href="classclang_1_1NamedDecl.html#a1e3e90455be89bb5c7c23640cbbd7153">getDeclName</a>() << IsCapturedByBlock << DiagKind</div>
+<div class="line"><a name="l00643"></a><span class="lineno">  643</span>       << Str << I->Output << Range;</div>
+<div class="line"><a name="l00644"></a><span class="lineno">  644</span>     S.<a class="code" href="classclang_1_1Sema.html#ad29dfd1f2677772bf6b1da186a7583c3" title="Emit a diagnostic.">Diag</a>(User->getLocStart(), diag::note_uninit_var_use)</div>
+<div class="line"><a name="l00645"></a><span class="lineno">  645</span>       << IsCapturedByBlock << User->getSourceRange();</div>
+<div class="line"><a name="l00646"></a><span class="lineno">  646</span>     <span class="keywordflow">if</span> (RemoveDiagKind != -1)</div>
+<div class="line"><a name="l00647"></a><span class="lineno">  647</span>       S.<a class="code" href="classclang_1_1Sema.html#ad29dfd1f2677772bf6b1da186a7583c3" title="Emit a diagnostic.">Diag</a>(Fixit1.<a class="code" href="classclang_1_1FixItHint.html#a5f7f3e68c26742c35764ebd1b0e94abb" title="Code that should be replaced to correct the error. Empty for an insertion hint.">RemoveRange</a>.<a class="code" href="classclang_1_1CharSourceRange.html#a93f9ab18a904f1c089698b99dace2e82">getBegin</a>(), diag::note_uninit_fixit_remove_cond)</div>
+<div class="line"><a name="l00648"></a><span class="lineno">  648</span>         << RemoveDiagKind << Str << I->Output << Fixit1 << Fixit2;</div>
+<div class="line"><a name="l00649"></a><span class="lineno">  649</span> </div>
+<div class="line"><a name="l00650"></a><span class="lineno">  650</span>     Diagnosed = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00651"></a><span class="lineno">  651</span>   }</div>
+<div class="line"><a name="l00652"></a><span class="lineno">  652</span> </div>
+<div class="line"><a name="l00653"></a><span class="lineno">  653</span>   <span class="keywordflow">if</span> (!Diagnosed)</div>
+<div class="line"><a name="l00654"></a><span class="lineno">  654</span>     S.<a class="code" href="classclang_1_1Sema.html#ad29dfd1f2677772bf6b1da186a7583c3" title="Emit a diagnostic.">Diag</a>(Use.<a class="code" href="classclang_1_1UninitUse.html#a8e728bb1a8547b5f5eca4db9e617de60" title="Get the expression containing the uninitialized use.">getUser</a>()-><a class="code" href="classclang_1_1Stmt.html#a0270d9cff7ed2b38acb39690b96586d2">getLocStart</a>(), diag::warn_maybe_uninit_var)</div>
+<div class="line"><a name="l00655"></a><span class="lineno">  655</span>         << VD-><a class="code" href="classclang_1_1NamedDecl.html#a1e3e90455be89bb5c7c23640cbbd7153">getDeclName</a>() << IsCapturedByBlock</div>
+<div class="line"><a name="l00656"></a><span class="lineno">  656</span>         << Use.<a class="code" href="classclang_1_1UninitUse.html#a8e728bb1a8547b5f5eca4db9e617de60" title="Get the expression containing the uninitialized use.">getUser</a>()-><a class="code" href="classclang_1_1Stmt.html#a6844392ee6148b5fe821f211b95e5d1b">getSourceRange</a>();</div>
+<div class="line"><a name="l00657"></a><span class="lineno">  657</span> }</div>
+<div class="line"><a name="l00658"></a><span class="lineno">  658</span> <span class="comment"></span></div>
+<div class="line"><a name="l00659"></a><span class="lineno">  659</span> <span class="comment">/// DiagnoseUninitializedUse -- Helper function for diagnosing uses of an</span></div>
+<div class="line"><a name="l00660"></a><span class="lineno">  660</span> <span class="comment">/// uninitialized variable. This manages the different forms of diagnostic</span></div>
+<div class="line"><a name="l00661"></a><span class="lineno">  661</span> <span class="comment">/// emitted for particular types of uses. Returns true if the use was diagnosed</span></div>
+<div class="line"><a name="l00662"></a><span class="lineno">  662</span> <span class="comment">/// as a warning. If a particular use is one we omit warnings for, returns</span></div>
+<div class="line"><a name="l00663"></a><span class="lineno">  663</span> <span class="comment">/// false.</span></div>
+<div class="line"><a name="l00664"></a><span class="lineno"><a class="code" href="AnalysisBasedWarnings_8cpp.html#a96c4a5a2d5c5093b3ee119398d89085e">  664</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="AnalysisBasedWarnings_8cpp.html#a96c4a5a2d5c5093b3ee119398d89085e">DiagnoseUninitializedUse</a>(<a class="code" href="classclang_1_1Sema.html" title="Sema - This implements semantic analysis and AST building for C.">Sema</a> &<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>, <span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *VD,</div>
+<div class="line"><a name="l00665"></a><span class="lineno">  665</span>                                      <span class="keyword">const</span> <a class="code" href="classclang_1_1UninitUse.html" title="A use of a variable, which might be uninitialized.">UninitUse</a> &Use,</div>
+<div class="line"><a name="l00666"></a><span class="lineno">  666</span>                                      <span class="keywordtype">bool</span> alwaysReportSelfInit = <span class="keyword">false</span>) {</div>
+<div class="line"><a name="l00667"></a><span class="lineno">  667</span> </div>
+<div class="line"><a name="l00668"></a><span class="lineno">  668</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1DeclRefExpr.html" title="A reference to a declared variable, function, enum, etc. [C99 6.5.1p2].">DeclRefExpr</a> *DRE = dyn_cast<DeclRefExpr>(Use.<a class="code" href="classclang_1_1UninitUse.html#a8e728bb1a8547b5f5eca4db9e617de60" title="Get the expression containing the uninitialized use.">getUser</a>())) {</div>
+<div class="line"><a name="l00669"></a><span class="lineno">  669</span>     <span class="comment">// Inspect the initializer of the variable declaration which is</span></div>
+<div class="line"><a name="l00670"></a><span class="lineno">  670</span>     <span class="comment">// being referenced prior to its initialization. We emit</span></div>
+<div class="line"><a name="l00671"></a><span class="lineno">  671</span>     <span class="comment">// specialized diagnostics for self-initialization, and we</span></div>
+<div class="line"><a name="l00672"></a><span class="lineno">  672</span>     <span class="comment">// specifically avoid warning about self references which take the</span></div>
+<div class="line"><a name="l00673"></a><span class="lineno">  673</span>     <span class="comment">// form of:</span></div>
+<div class="line"><a name="l00674"></a><span class="lineno">  674</span>     <span class="comment">//</span></div>
+<div class="line"><a name="l00675"></a><span class="lineno">  675</span>     <span class="comment">//   int x = x;</span></div>
+<div class="line"><a name="l00676"></a><span class="lineno">  676</span>     <span class="comment">//</span></div>
+<div class="line"><a name="l00677"></a><span class="lineno">  677</span>     <span class="comment">// This is used to indicate to GCC that 'x' is intentionally left</span></div>
+<div class="line"><a name="l00678"></a><span class="lineno">  678</span>     <span class="comment">// uninitialized. Proven code paths which access 'x' in</span></div>
+<div class="line"><a name="l00679"></a><span class="lineno">  679</span>     <span class="comment">// an uninitialized state after this will still warn.</span></div>
+<div class="line"><a name="l00680"></a><span class="lineno">  680</span>     <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *Initializer = VD-><a class="code" href="classclang_1_1VarDecl.html#af6438debfc45cb2ad2d5cb5ce2711e0c">getInit</a>()) {</div>
+<div class="line"><a name="l00681"></a><span class="lineno">  681</span>       <span class="keywordflow">if</span> (!alwaysReportSelfInit && DRE == Initializer->IgnoreParenImpCasts())</div>
+<div class="line"><a name="l00682"></a><span class="lineno">  682</span>         <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00683"></a><span class="lineno">  683</span> </div>
+<div class="line"><a name="l00684"></a><span class="lineno">  684</span>       ContainsReference CR(S.<a class="code" href="classclang_1_1Sema.html#a3ccddacb1f4f71b084296175cc9e5b0e">Context</a>, DRE);</div>
+<div class="line"><a name="l00685"></a><span class="lineno">  685</span>       CR.Visit(const_cast<Expr*>(Initializer));</div>
+<div class="line"><a name="l00686"></a><span class="lineno">  686</span>       <span class="keywordflow">if</span> (CR.doesContainReference()) {</div>
+<div class="line"><a name="l00687"></a><span class="lineno">  687</span>         S.<a class="code" href="classclang_1_1Sema.html#ad29dfd1f2677772bf6b1da186a7583c3" title="Emit a diagnostic.">Diag</a>(DRE->getLocStart(),</div>
+<div class="line"><a name="l00688"></a><span class="lineno">  688</span>                diag::warn_uninit_self_reference_in_init)</div>
+<div class="line"><a name="l00689"></a><span class="lineno">  689</span>           << VD-><a class="code" href="classclang_1_1NamedDecl.html#a1e3e90455be89bb5c7c23640cbbd7153">getDeclName</a>() << VD-><a class="code" href="classclang_1_1Decl.html#a2348196ac4e0b1d5ebb1859c31b99eac">getLocation</a>() << DRE->getSourceRange();</div>
+<div class="line"><a name="l00690"></a><span class="lineno">  690</span>         <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00691"></a><span class="lineno">  691</span>       }</div>
+<div class="line"><a name="l00692"></a><span class="lineno">  692</span>     }</div>
+<div class="line"><a name="l00693"></a><span class="lineno">  693</span> </div>
+<div class="line"><a name="l00694"></a><span class="lineno">  694</span>     <a class="code" href="AnalysisBasedWarnings_8cpp.html#acf86596bad53cfa7eb71b84545576a8d">DiagUninitUse</a>(S, VD, Use, <span class="keyword">false</span>);</div>
+<div class="line"><a name="l00695"></a><span class="lineno">  695</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00696"></a><span class="lineno">  696</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1BlockExpr.html">BlockExpr</a> *BE = cast<BlockExpr>(Use.<a class="code" href="classclang_1_1UninitUse.html#a8e728bb1a8547b5f5eca4db9e617de60" title="Get the expression containing the uninitialized use.">getUser</a>());</div>
+<div class="line"><a name="l00697"></a><span class="lineno">  697</span>     <span class="keywordflow">if</span> (VD-><a class="code" href="classclang_1_1ValueDecl.html#aefa6d3327144aee23d2935f41d993484">getType</a>()-><a class="code" href="classclang_1_1Type.html#ad6cd1a04cac76bfb304bbc02bf23a9bb">isBlockPointerType</a>() && !VD-><a class="code" href="classclang_1_1Decl.html#ac60cc8b34313e03a5c40277c5c5ad61b">hasAttr</a><<a class="code" href="classclang_1_1BlocksAttr.html">BlocksAttr</a>>())</div>
+<div class="line"><a name="l00698"></a><span class="lineno">  698</span>       S.<a class="code" href="classclang_1_1Sema.html#ad29dfd1f2677772bf6b1da186a7583c3" title="Emit a diagnostic.">Diag</a>(BE-><a class="code" href="classclang_1_1BlockExpr.html#ae4b1e6b875fff9ee88baec7ff7375b51">getLocStart</a>(),</div>
+<div class="line"><a name="l00699"></a><span class="lineno">  699</span>              diag::warn_uninit_byref_blockvar_captured_by_block)</div>
+<div class="line"><a name="l00700"></a><span class="lineno">  700</span>         << VD-><a class="code" href="classclang_1_1NamedDecl.html#a1e3e90455be89bb5c7c23640cbbd7153">getDeclName</a>();</div>
+<div class="line"><a name="l00701"></a><span class="lineno">  701</span>     <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00702"></a><span class="lineno">  702</span>       <a class="code" href="AnalysisBasedWarnings_8cpp.html#acf86596bad53cfa7eb71b84545576a8d">DiagUninitUse</a>(S, VD, Use, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00703"></a><span class="lineno">  703</span>   }</div>
+<div class="line"><a name="l00704"></a><span class="lineno">  704</span> </div>
+<div class="line"><a name="l00705"></a><span class="lineno">  705</span>   <span class="comment">// Report where the variable was declared when the use wasn't within</span></div>
+<div class="line"><a name="l00706"></a><span class="lineno">  706</span>   <span class="comment">// the initializer of that declaration & we didn't already suggest</span></div>
+<div class="line"><a name="l00707"></a><span class="lineno">  707</span>   <span class="comment">// an initialization fixit.</span></div>
+<div class="line"><a name="l00708"></a><span class="lineno">  708</span>   <span class="keywordflow">if</span> (!<a class="code" href="AnalysisBasedWarnings_8cpp.html#a15645986cd0c10cd237855bcbe2a694a">SuggestInitializationFixit</a>(S, VD))</div>
+<div class="line"><a name="l00709"></a><span class="lineno">  709</span>     S.<a class="code" href="classclang_1_1Sema.html#ad29dfd1f2677772bf6b1da186a7583c3" title="Emit a diagnostic.">Diag</a>(VD-><a class="code" href="classclang_1_1DeclaratorDecl.html#a6d2ddcefd349a098905a94c33732c51e">getLocStart</a>(), diag::note_uninit_var_def)</div>
+<div class="line"><a name="l00710"></a><span class="lineno">  710</span>       << VD-><a class="code" href="classclang_1_1NamedDecl.html#a1e3e90455be89bb5c7c23640cbbd7153">getDeclName</a>();</div>
+<div class="line"><a name="l00711"></a><span class="lineno">  711</span> </div>
+<div class="line"><a name="l00712"></a><span class="lineno">  712</span>   <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00713"></a><span class="lineno">  713</span> }</div>
+<div class="line"><a name="l00714"></a><span class="lineno">  714</span> </div>
+<div class="line"><a name="l00715"></a><span class="lineno">  715</span> <span class="keyword">namespace </span>{</div>
+<div class="line"><a name="l00716"></a><span class="lineno">  716</span>   <span class="keyword">class </span>FallthroughMapper : <span class="keyword">public</span> <a class="code" href="classclang_1_1RecursiveASTVisitor.html" title="A class that does preorder depth-first traversal on the entire Clang AST and visits each node...">RecursiveASTVisitor</a><FallthroughMapper> {</div>
+<div class="line"><a name="l00717"></a><span class="lineno">  717</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00718"></a><span class="lineno">  718</span>     FallthroughMapper(<a class="code" href="classclang_1_1Sema.html" title="Sema - This implements semantic analysis and AST building for C.">Sema</a> &<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>)</div>
+<div class="line"><a name="l00719"></a><span class="lineno">  719</span>       : FoundSwitchStatements(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>),</div>
+<div class="line"><a name="l00720"></a><span class="lineno">  720</span>         S(S) {</div>
+<div class="line"><a name="l00721"></a><span class="lineno">  721</span>     }</div>
+<div class="line"><a name="l00722"></a><span class="lineno">  722</span> </div>
+<div class="line"><a name="l00723"></a><span class="lineno">  723</span>     <span class="keywordtype">bool</span> foundSwitchStatements()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> FoundSwitchStatements; }</div>
+<div class="line"><a name="l00724"></a><span class="lineno">  724</span> </div>
+<div class="line"><a name="l00725"></a><span class="lineno">  725</span>     <span class="keywordtype">void</span> markFallthroughVisited(<span class="keyword">const</span> <a class="code" href="classclang_1_1AttributedStmt.html" title="Represents an attribute applied to a statement.">AttributedStmt</a> *<a class="code" href="classclang_1_1Stmt.html">Stmt</a>) {</div>
+<div class="line"><a name="l00726"></a><span class="lineno">  726</span>       <span class="keywordtype">bool</span> Found = FallthroughStmts.erase(Stmt);</div>
+<div class="line"><a name="l00727"></a><span class="lineno">  727</span>       assert(Found);</div>
+<div class="line"><a name="l00728"></a><span class="lineno">  728</span>       (void)Found;</div>
+<div class="line"><a name="l00729"></a><span class="lineno">  729</span>     }</div>
+<div class="line"><a name="l00730"></a><span class="lineno">  730</span> </div>
+<div class="line"><a name="l00731"></a><span class="lineno">  731</span>     <span class="keyword">typedef</span> llvm::SmallPtrSet<const AttributedStmt*, 8> AttrStmts;</div>
+<div class="line"><a name="l00732"></a><span class="lineno">  732</span> </div>
+<div class="line"><a name="l00733"></a><span class="lineno">  733</span>     <span class="keyword">const</span> AttrStmts &getFallthroughStmts()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00734"></a><span class="lineno">  734</span>       <span class="keywordflow">return</span> FallthroughStmts;</div>
+<div class="line"><a name="l00735"></a><span class="lineno">  735</span>     }</div>
+<div class="line"><a name="l00736"></a><span class="lineno">  736</span> </div>
+<div class="line"><a name="l00737"></a><span class="lineno">  737</span>     <span class="keywordtype">void</span> fillReachableBlocks(<a class="code" href="classclang_1_1CFG.html">CFG</a> *Cfg) {</div>
+<div class="line"><a name="l00738"></a><span class="lineno">  738</span>       assert(ReachableBlocks.empty() && <span class="stringliteral">"ReachableBlocks already filled"</span>);</div>
+<div class="line"><a name="l00739"></a><span class="lineno">  739</span>       std::deque<const CFGBlock *> BlockQueue;</div>
+<div class="line"><a name="l00740"></a><span class="lineno">  740</span> </div>
+<div class="line"><a name="l00741"></a><span class="lineno">  741</span>       ReachableBlocks.insert(&Cfg-><a class="code" href="classclang_1_1CFG.html#ad5618d5c0636efb4d71510bd66c066cf">getEntry</a>());</div>
+<div class="line"><a name="l00742"></a><span class="lineno">  742</span>       BlockQueue.push_back(&Cfg-><a class="code" href="classclang_1_1CFG.html#ad5618d5c0636efb4d71510bd66c066cf">getEntry</a>());</div>
+<div class="line"><a name="l00743"></a><span class="lineno">  743</span>       <span class="comment">// Mark all case blocks reachable to avoid problems with switching on</span></div>
+<div class="line"><a name="l00744"></a><span class="lineno">  744</span>       <span class="comment">// constants, covered enums, etc.</span></div>
+<div class="line"><a name="l00745"></a><span class="lineno">  745</span>       <span class="comment">// These blocks can contain fall-through annotations, and we don't want to</span></div>
+<div class="line"><a name="l00746"></a><span class="lineno">  746</span>       <span class="comment">// issue a warn_fallthrough_attr_unreachable for them.</span></div>
+<div class="line"><a name="l00747"></a><span class="lineno">  747</span>       <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1CFGBlock.html">CFG::iterator</a> I = Cfg-><a class="code" href="classclang_1_1CFG.html#a908c392e8ab90beaa7dd0dc70b8e2ab2">begin</a>(), E = Cfg-><a class="code" href="classclang_1_1CFG.html#a2013eeb0c97e5c50514c9ca54d00c621">end</a>(); I != E; ++I) {</div>
+<div class="line"><a name="l00748"></a><span class="lineno">  748</span>         <span class="keyword">const</span> <a class="code" href="classclang_1_1CFGBlock.html">CFGBlock</a> *B = *I;</div>
+<div class="line"><a name="l00749"></a><span class="lineno">  749</span>         <span class="keyword">const</span> Stmt *L = B-><a class="code" href="classclang_1_1CFGBlock.html#a76c61ba94f1308d79aa29eec072ffd30">getLabel</a>();</div>
+<div class="line"><a name="l00750"></a><span class="lineno">  750</span>         <span class="keywordflow">if</span> (L && isa<SwitchCase>(L) && ReachableBlocks.insert(B))</div>
+<div class="line"><a name="l00751"></a><span class="lineno">  751</span>           BlockQueue.push_back(B);</div>
+<div class="line"><a name="l00752"></a><span class="lineno">  752</span>       }</div>
+<div class="line"><a name="l00753"></a><span class="lineno">  753</span> </div>
+<div class="line"><a name="l00754"></a><span class="lineno">  754</span>       <span class="keywordflow">while</span> (!BlockQueue.empty()) {</div>
+<div class="line"><a name="l00755"></a><span class="lineno">  755</span>         <span class="keyword">const</span> <a class="code" href="classclang_1_1CFGBlock.html">CFGBlock</a> *<a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a> = BlockQueue.front();</div>
+<div class="line"><a name="l00756"></a><span class="lineno">  756</span>         BlockQueue.pop_front();</div>
+<div class="line"><a name="l00757"></a><span class="lineno">  757</span>         <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1CFGBlock.html">CFGBlock::const_succ_iterator</a> I = P-><a class="code" href="classclang_1_1CFGBlock.html#a9d6bfab26a9034c5573ddfd804766b91">succ_begin</a>(),</div>
+<div class="line"><a name="l00758"></a><span class="lineno">  758</span>                                            E = P-><a class="code" href="classclang_1_1CFGBlock.html#a1bcc002635a676581313a5e832b31cbc">succ_end</a>();</div>
+<div class="line"><a name="l00759"></a><span class="lineno">  759</span>              I != E; ++I) {</div>
+<div class="line"><a name="l00760"></a><span class="lineno">  760</span>           <span class="keywordflow">if</span> (*I && ReachableBlocks.insert(*I))</div>
+<div class="line"><a name="l00761"></a><span class="lineno">  761</span>             BlockQueue.push_back(*I);</div>
+<div class="line"><a name="l00762"></a><span class="lineno">  762</span>         }</div>
+<div class="line"><a name="l00763"></a><span class="lineno">  763</span>       }</div>
+<div class="line"><a name="l00764"></a><span class="lineno">  764</span>     }</div>
+<div class="line"><a name="l00765"></a><span class="lineno">  765</span> </div>
+<div class="line"><a name="l00766"></a><span class="lineno">  766</span>     <span class="keywordtype">bool</span> checkFallThroughIntoBlock(<span class="keyword">const</span> <a class="code" href="classclang_1_1CFGBlock.html">CFGBlock</a> &B, <span class="keywordtype">int</span> &AnnotatedCnt) {</div>
+<div class="line"><a name="l00767"></a><span class="lineno">  767</span>       assert(!ReachableBlocks.empty() && <span class="stringliteral">"ReachableBlocks empty"</span>);</div>
+<div class="line"><a name="l00768"></a><span class="lineno">  768</span> </div>
+<div class="line"><a name="l00769"></a><span class="lineno">  769</span>       <span class="keywordtype">int</span> UnannotatedCnt = 0;</div>
+<div class="line"><a name="l00770"></a><span class="lineno">  770</span>       AnnotatedCnt = 0;</div>
+<div class="line"><a name="l00771"></a><span class="lineno">  771</span> </div>
+<div class="line"><a name="l00772"></a><span class="lineno">  772</span>       std::deque<const CFGBlock*> BlockQueue;</div>
+<div class="line"><a name="l00773"></a><span class="lineno">  773</span> </div>
+<div class="line"><a name="l00774"></a><span class="lineno">  774</span>       std::copy(B.<a class="code" href="classclang_1_1CFGBlock.html#ac0001ac14b86768c641f769c5fb1f4c6">pred_begin</a>(), B.<a class="code" href="classclang_1_1CFGBlock.html#a172965bda787bf3795bb7f02b2520033">pred_end</a>(), std::back_inserter(BlockQueue));</div>
+<div class="line"><a name="l00775"></a><span class="lineno">  775</span> </div>
+<div class="line"><a name="l00776"></a><span class="lineno">  776</span>       <span class="keywordflow">while</span> (!BlockQueue.empty()) {</div>
+<div class="line"><a name="l00777"></a><span class="lineno">  777</span>         <span class="keyword">const</span> <a class="code" href="classclang_1_1CFGBlock.html">CFGBlock</a> *P = BlockQueue.<a class="code" href="classclang_1_1CFGBlock.html#aab6a3fcc44889306735d92d3eeab4768">front</a>();</div>
+<div class="line"><a name="l00778"></a><span class="lineno">  778</span>         BlockQueue.pop_front();</div>
+<div class="line"><a name="l00779"></a><span class="lineno">  779</span> </div>
+<div class="line"><a name="l00780"></a><span class="lineno">  780</span>         <span class="keyword">const</span> Stmt *Term = P-><a class="code" href="classclang_1_1CFGBlock.html#af1276a7d6dea5546ea7421b85162375a">getTerminator</a>();</div>
+<div class="line"><a name="l00781"></a><span class="lineno">  781</span>         <span class="keywordflow">if</span> (Term && isa<SwitchStmt>(Term))</div>
+<div class="line"><a name="l00782"></a><span class="lineno">  782</span>           <span class="keywordflow">continue</span>; <span class="comment">// Switch statement, good.</span></div>
+<div class="line"><a name="l00783"></a><span class="lineno">  783</span> </div>
+<div class="line"><a name="l00784"></a><span class="lineno">  784</span>         <span class="keyword">const</span> <a class="code" href="classclang_1_1SwitchCase.html">SwitchCase</a> *SW = dyn_cast_or_null<SwitchCase>(P-><a class="code" href="classclang_1_1CFGBlock.html#a76c61ba94f1308d79aa29eec072ffd30">getLabel</a>());</div>
+<div class="line"><a name="l00785"></a><span class="lineno">  785</span>         <span class="keywordflow">if</span> (SW && SW-><a class="code" href="classclang_1_1SwitchCase.html#ad040e52bb9d7cc68f057f020a4a6aa1d">getSubStmt</a>() == B.<a class="code" href="classclang_1_1CFGBlock.html#a76c61ba94f1308d79aa29eec072ffd30">getLabel</a>() && P-><a class="code" href="classclang_1_1CFGBlock.html#a6f23244410ba39354a8ce965328a7155">begin</a>() == P-><a class="code" href="classclang_1_1CFGBlock.html#acaa9a29bf0b724c80860bee0f663a07e">end</a>())</div>
+<div class="line"><a name="l00786"></a><span class="lineno">  786</span>           <span class="keywordflow">continue</span>; <span class="comment">// Previous case label has no statements, good.</span></div>
+<div class="line"><a name="l00787"></a><span class="lineno">  787</span> </div>
+<div class="line"><a name="l00788"></a><span class="lineno">  788</span>         <span class="keyword">const</span> <a class="code" href="classclang_1_1LabelStmt.html">LabelStmt</a> *L = dyn_cast_or_null<LabelStmt>(P-><a class="code" href="classclang_1_1CFGBlock.html#a76c61ba94f1308d79aa29eec072ffd30">getLabel</a>());</div>
+<div class="line"><a name="l00789"></a><span class="lineno">  789</span>         <span class="keywordflow">if</span> (L && L-><a class="code" href="classclang_1_1LabelStmt.html#adeb5f693b5baff78c96e8d5078914800">getSubStmt</a>() == B.<a class="code" href="classclang_1_1CFGBlock.html#a76c61ba94f1308d79aa29eec072ffd30">getLabel</a>() && P-><a class="code" href="classclang_1_1CFGBlock.html#a6f23244410ba39354a8ce965328a7155">begin</a>() == P-><a class="code" href="classclang_1_1CFGBlock.html#acaa9a29bf0b724c80860bee0f663a07e">end</a>())</div>
+<div class="line"><a name="l00790"></a><span class="lineno">  790</span>           <span class="keywordflow">continue</span>; <span class="comment">// Case label is preceded with a normal label, good.</span></div>
+<div class="line"><a name="l00791"></a><span class="lineno">  791</span> </div>
+<div class="line"><a name="l00792"></a><span class="lineno">  792</span>         <span class="keywordflow">if</span> (!ReachableBlocks.count(P)) {</div>
+<div class="line"><a name="l00793"></a><span class="lineno">  793</span>           <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1CFGElement.html" title="CFGElement - Represents a top-level expression in a basic block.">CFGBlock::const_reverse_iterator</a> ElemIt = P-><a class="code" href="classclang_1_1CFGBlock.html#a28d1c9e2bcd34217a4debc899ebb8a58">rbegin</a>(),</div>
+<div class="line"><a name="l00794"></a><span class="lineno">  794</span>                                                 ElemEnd = P-><a class="code" href="classclang_1_1CFGBlock.html#a3f50816a051e41aeddd0cdacaaa5f1b4">rend</a>();</div>
+<div class="line"><a name="l00795"></a><span class="lineno">  795</span>                ElemIt != ElemEnd; ++ElemIt) {</div>
+<div class="line"><a name="l00796"></a><span class="lineno">  796</span>             <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1Optional.html">Optional<CFGStmt></a> CS = ElemIt->getAs<<a class="code" href="classclang_1_1CFGStmt.html">CFGStmt</a>>()) {</div>
+<div class="line"><a name="l00797"></a><span class="lineno">  797</span>               <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1AttributedStmt.html" title="Represents an attribute applied to a statement.">AttributedStmt</a> *AS = asFallThroughAttr(CS->getStmt())) {</div>
+<div class="line"><a name="l00798"></a><span class="lineno">  798</span>                 <a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>.<a class="code" href="classclang_1_1Sema.html#ad29dfd1f2677772bf6b1da186a7583c3" title="Emit a diagnostic.">Diag</a>(AS->getLocStart(),</div>
+<div class="line"><a name="l00799"></a><span class="lineno">  799</span>                        diag::warn_fallthrough_attr_unreachable);</div>
+<div class="line"><a name="l00800"></a><span class="lineno">  800</span>                 markFallthroughVisited(AS);</div>
+<div class="line"><a name="l00801"></a><span class="lineno">  801</span>                 ++AnnotatedCnt;</div>
+<div class="line"><a name="l00802"></a><span class="lineno">  802</span>                 <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00803"></a><span class="lineno">  803</span>               }</div>
+<div class="line"><a name="l00804"></a><span class="lineno">  804</span>               <span class="comment">// Don't care about other unreachable statements.</span></div>
+<div class="line"><a name="l00805"></a><span class="lineno">  805</span>             }</div>
+<div class="line"><a name="l00806"></a><span class="lineno">  806</span>           }</div>
+<div class="line"><a name="l00807"></a><span class="lineno">  807</span>           <span class="comment">// If there are no unreachable statements, this may be a special</span></div>
+<div class="line"><a name="l00808"></a><span class="lineno">  808</span>           <span class="comment">// case in CFG:</span></div>
+<div class="line"><a name="l00809"></a><span class="lineno">  809</span>           <span class="comment">// case X: {</span></div>
+<div class="line"><a name="l00810"></a><span class="lineno">  810</span>           <span class="comment">//    A a;  // A has a destructor.</span></div>
+<div class="line"><a name="l00811"></a><span class="lineno">  811</span>           <span class="comment">//    break;</span></div>
+<div class="line"><a name="l00812"></a><span class="lineno">  812</span>           <span class="comment">// }</span></div>
+<div class="line"><a name="l00813"></a><span class="lineno">  813</span>           <span class="comment">// // <<<< This place is represented by a 'hanging' CFG block.</span></div>
+<div class="line"><a name="l00814"></a><span class="lineno">  814</span>           <span class="comment">// case Y:</span></div>
+<div class="line"><a name="l00815"></a><span class="lineno">  815</span>           <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00816"></a><span class="lineno">  816</span>         }</div>
+<div class="line"><a name="l00817"></a><span class="lineno">  817</span> </div>
+<div class="line"><a name="l00818"></a><span class="lineno">  818</span>         <span class="keyword">const</span> Stmt *LastStmt = <a class="code" href="ExprEngineCallAndReturn_8cpp.html#af97f3b866317de6e93c14d9cad43cc4b">getLastStmt</a>(*P);</div>
+<div class="line"><a name="l00819"></a><span class="lineno">  819</span>         <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1AttributedStmt.html" title="Represents an attribute applied to a statement.">AttributedStmt</a> *AS = asFallThroughAttr(LastStmt)) {</div>
+<div class="line"><a name="l00820"></a><span class="lineno">  820</span>           markFallthroughVisited(AS);</div>
+<div class="line"><a name="l00821"></a><span class="lineno">  821</span>           ++AnnotatedCnt;</div>
+<div class="line"><a name="l00822"></a><span class="lineno">  822</span>           <span class="keywordflow">continue</span>; <span class="comment">// Fallthrough annotation, good.</span></div>
+<div class="line"><a name="l00823"></a><span class="lineno">  823</span>         }</div>
+<div class="line"><a name="l00824"></a><span class="lineno">  824</span> </div>
+<div class="line"><a name="l00825"></a><span class="lineno">  825</span>         <span class="keywordflow">if</span> (!LastStmt) { <span class="comment">// This block contains no executable statements.</span></div>
+<div class="line"><a name="l00826"></a><span class="lineno">  826</span>           <span class="comment">// Traverse its predecessors.</span></div>
+<div class="line"><a name="l00827"></a><span class="lineno">  827</span>           std::copy(P-><a class="code" href="classclang_1_1CFGBlock.html#ac0001ac14b86768c641f769c5fb1f4c6">pred_begin</a>(), P-><a class="code" href="classclang_1_1CFGBlock.html#a172965bda787bf3795bb7f02b2520033">pred_end</a>(),</div>
+<div class="line"><a name="l00828"></a><span class="lineno">  828</span>                     std::back_inserter(BlockQueue));</div>
+<div class="line"><a name="l00829"></a><span class="lineno">  829</span>           <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00830"></a><span class="lineno">  830</span>         }</div>
+<div class="line"><a name="l00831"></a><span class="lineno">  831</span> </div>
+<div class="line"><a name="l00832"></a><span class="lineno">  832</span>         ++UnannotatedCnt;</div>
+<div class="line"><a name="l00833"></a><span class="lineno">  833</span>       }</div>
+<div class="line"><a name="l00834"></a><span class="lineno">  834</span>       <span class="keywordflow">return</span> !!UnannotatedCnt;</div>
+<div class="line"><a name="l00835"></a><span class="lineno">  835</span>     }</div>
+<div class="line"><a name="l00836"></a><span class="lineno">  836</span> </div>
+<div class="line"><a name="l00837"></a><span class="lineno">  837</span>     <span class="comment">// RecursiveASTVisitor setup.</span></div>
+<div class="line"><a name="l00838"></a><span class="lineno">  838</span>     <span class="keywordtype">bool</span> shouldWalkTypesOfTypeLocs()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div>
+<div class="line"><a name="l00839"></a><span class="lineno">  839</span> </div>
+<div class="line"><a name="l00840"></a><span class="lineno">  840</span>     <span class="keywordtype">bool</span> VisitAttributedStmt(<a class="code" href="classclang_1_1AttributedStmt.html" title="Represents an attribute applied to a statement.">AttributedStmt</a> *<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>) {</div>
+<div class="line"><a name="l00841"></a><span class="lineno">  841</span>       <span class="keywordflow">if</span> (asFallThroughAttr(S))</div>
+<div class="line"><a name="l00842"></a><span class="lineno">  842</span>         FallthroughStmts.insert(S);</div>
+<div class="line"><a name="l00843"></a><span class="lineno">  843</span>       <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00844"></a><span class="lineno">  844</span>     }</div>
+<div class="line"><a name="l00845"></a><span class="lineno">  845</span> </div>
+<div class="line"><a name="l00846"></a><span class="lineno">  846</span>     <span class="keywordtype">bool</span> VisitSwitchStmt(<a class="code" href="classclang_1_1SwitchStmt.html">SwitchStmt</a> *S) {</div>
+<div class="line"><a name="l00847"></a><span class="lineno">  847</span>       FoundSwitchStatements = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00848"></a><span class="lineno">  848</span>       <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00849"></a><span class="lineno">  849</span>     }</div>
+<div class="line"><a name="l00850"></a><span class="lineno">  850</span> </div>
+<div class="line"><a name="l00851"></a><span class="lineno">  851</span>     <span class="comment">// We don't want to traverse local type declarations. We analyze their</span></div>
+<div class="line"><a name="l00852"></a><span class="lineno">  852</span>     <span class="comment">// methods separately.</span></div>
+<div class="line"><a name="l00853"></a><span class="lineno">  853</span>     <span class="keywordtype">bool</span> TraverseDecl(<a class="code" href="classclang_1_1Decl.html">Decl</a> *D) { <span class="keywordflow">return</span> <span class="keyword">true</span>; }</div>
+<div class="line"><a name="l00854"></a><span class="lineno">  854</span> </div>
+<div class="line"><a name="l00855"></a><span class="lineno">  855</span>   <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00856"></a><span class="lineno">  856</span> </div>
+<div class="line"><a name="l00857"></a><span class="lineno">  857</span>     <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1AttributedStmt.html" title="Represents an attribute applied to a statement.">AttributedStmt</a> *asFallThroughAttr(<span class="keyword">const</span> Stmt *S) {</div>
+<div class="line"><a name="l00858"></a><span class="lineno">  858</span>       <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1AttributedStmt.html" title="Represents an attribute applied to a statement.">AttributedStmt</a> *AS = dyn_cast_or_null<AttributedStmt>(S)) {</div>
+<div class="line"><a name="l00859"></a><span class="lineno">  859</span>         <span class="keywordflow">if</span> (hasSpecificAttr<FallThroughAttr>(AS->getAttrs()))</div>
+<div class="line"><a name="l00860"></a><span class="lineno">  860</span>           <span class="keywordflow">return</span> AS;</div>
+<div class="line"><a name="l00861"></a><span class="lineno">  861</span>       }</div>
+<div class="line"><a name="l00862"></a><span class="lineno">  862</span>       <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00863"></a><span class="lineno">  863</span>     }</div>
+<div class="line"><a name="l00864"></a><span class="lineno">  864</span> </div>
+<div class="line"><a name="l00865"></a><span class="lineno">  865</span>     <span class="keyword">static</span> <span class="keyword">const</span> Stmt *<a class="code" href="ExprEngineCallAndReturn_8cpp.html#af97f3b866317de6e93c14d9cad43cc4b">getLastStmt</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CFGBlock.html">CFGBlock</a> &B) {</div>
+<div class="line"><a name="l00866"></a><span class="lineno">  866</span>       <span class="keywordflow">if</span> (<span class="keyword">const</span> Stmt *Term = B.<a class="code" href="classclang_1_1CFGBlock.html#af1276a7d6dea5546ea7421b85162375a">getTerminator</a>())</div>
+<div class="line"><a name="l00867"></a><span class="lineno">  867</span>         <span class="keywordflow">return</span> Term;</div>
+<div class="line"><a name="l00868"></a><span class="lineno">  868</span>       <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1CFGElement.html" title="CFGElement - Represents a top-level expression in a basic block.">CFGBlock::const_reverse_iterator</a> ElemIt = B.<a class="code" href="classclang_1_1CFGBlock.html#a28d1c9e2bcd34217a4debc899ebb8a58">rbegin</a>(),</div>
+<div class="line"><a name="l00869"></a><span class="lineno">  869</span>                                             ElemEnd = B.<a class="code" href="classclang_1_1CFGBlock.html#a3f50816a051e41aeddd0cdacaaa5f1b4">rend</a>();</div>
+<div class="line"><a name="l00870"></a><span class="lineno">  870</span>                                             ElemIt != ElemEnd; ++ElemIt) {</div>
+<div class="line"><a name="l00871"></a><span class="lineno">  871</span>         <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1Optional.html">Optional<CFGStmt></a> CS = ElemIt->getAs<<a class="code" href="classclang_1_1CFGStmt.html">CFGStmt</a>>())</div>
+<div class="line"><a name="l00872"></a><span class="lineno">  872</span>           <span class="keywordflow">return</span> CS->getStmt();</div>
+<div class="line"><a name="l00873"></a><span class="lineno">  873</span>       }</div>
+<div class="line"><a name="l00874"></a><span class="lineno">  874</span>       <span class="comment">// Workaround to detect a statement thrown out by CFGBuilder:</span></div>
+<div class="line"><a name="l00875"></a><span class="lineno">  875</span>       <span class="comment">//   case X: {} case Y:</span></div>
+<div class="line"><a name="l00876"></a><span class="lineno">  876</span>       <span class="comment">//   case X: ; case Y:</span></div>
+<div class="line"><a name="l00877"></a><span class="lineno">  877</span>       <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1SwitchCase.html">SwitchCase</a> *SW = dyn_cast_or_null<SwitchCase>(B.<a class="code" href="classclang_1_1CFGBlock.html#a76c61ba94f1308d79aa29eec072ffd30">getLabel</a>()))</div>
+<div class="line"><a name="l00878"></a><span class="lineno">  878</span>         <span class="keywordflow">if</span> (!isa<SwitchCase>(SW-><a class="code" href="classclang_1_1SwitchCase.html#ad040e52bb9d7cc68f057f020a4a6aa1d">getSubStmt</a>()))</div>
+<div class="line"><a name="l00879"></a><span class="lineno">  879</span>           <span class="keywordflow">return</span> SW-><a class="code" href="classclang_1_1SwitchCase.html#ad040e52bb9d7cc68f057f020a4a6aa1d">getSubStmt</a>();</div>
+<div class="line"><a name="l00880"></a><span class="lineno">  880</span> </div>
+<div class="line"><a name="l00881"></a><span class="lineno">  881</span>       <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00882"></a><span class="lineno">  882</span>     }</div>
+<div class="line"><a name="l00883"></a><span class="lineno">  883</span> </div>
+<div class="line"><a name="l00884"></a><span class="lineno">  884</span>     <span class="keywordtype">bool</span> FoundSwitchStatements;</div>
+<div class="line"><a name="l00885"></a><span class="lineno">  885</span>     AttrStmts FallthroughStmts;</div>
+<div class="line"><a name="l00886"></a><span class="lineno">  886</span>     <a class="code" href="classclang_1_1Sema.html" title="Sema - This implements semantic analysis and AST building for C.">Sema</a> &<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>;</div>
+<div class="line"><a name="l00887"></a><span class="lineno">  887</span>     llvm::SmallPtrSet<const CFGBlock *, 16> ReachableBlocks;</div>
+<div class="line"><a name="l00888"></a><span class="lineno">  888</span>   };</div>
+<div class="line"><a name="l00889"></a><span class="lineno">  889</span> }</div>
+<div class="line"><a name="l00890"></a><span class="lineno">  890</span> </div>
+<div class="line"><a name="l00891"></a><span class="lineno"><a class="code" href="AnalysisBasedWarnings_8cpp.html#a56dd9fa882859e7d6f35ffc5b15edefe">  891</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="AnalysisBasedWarnings_8cpp.html#a56dd9fa882859e7d6f35ffc5b15edefe">DiagnoseSwitchLabelsFallthrough</a>(<a class="code" href="classclang_1_1Sema.html" title="Sema - This implements semantic analysis and AST building for C.">Sema</a> &S, <a class="code" href="classclang_1_1AnalysisDeclContext.html">AnalysisDeclContext</a> &AC,</div>
+<div class="line"><a name="l00892"></a><span class="lineno">  892</span>                                             <span class="keywordtype">bool</span> PerFunction) {</div>
+<div class="line"><a name="l00893"></a><span class="lineno">  893</span>   <span class="comment">// Only perform this analysis when using C++11.  There is no good workflow</span></div>
+<div class="line"><a name="l00894"></a><span class="lineno">  894</span>   <span class="comment">// for this warning when not using C++11.  There is no good way to silence</span></div>
+<div class="line"><a name="l00895"></a><span class="lineno">  895</span>   <span class="comment">// the warning (no attribute is available) unless we are using C++11's support</span></div>
+<div class="line"><a name="l00896"></a><span class="lineno">  896</span>   <span class="comment">// for generalized attributes.  Once could use pragmas to silence the warning,</span></div>
+<div class="line"><a name="l00897"></a><span class="lineno">  897</span>   <span class="comment">// but as a general solution that is gross and not in the spirit of this</span></div>
+<div class="line"><a name="l00898"></a><span class="lineno">  898</span>   <span class="comment">// warning.</span></div>
+<div class="line"><a name="l00899"></a><span class="lineno">  899</span>   <span class="comment">//</span></div>
+<div class="line"><a name="l00900"></a><span class="lineno">  900</span>   <span class="comment">// NOTE: This an intermediate solution.  There are on-going discussions on</span></div>
+<div class="line"><a name="l00901"></a><span class="lineno">  901</span>   <span class="comment">// how to properly support this warning outside of C++11 with an annotation.</span></div>
+<div class="line"><a name="l00902"></a><span class="lineno">  902</span>   <span class="keywordflow">if</span> (!AC.<a class="code" href="classclang_1_1AnalysisDeclContext.html#ab702d747ada83aab3ede6f08c9e32390">getASTContext</a>().<a class="code" href="classclang_1_1ASTContext.html#a3faa7b5a5e8d1637c53dea680acca0ff">getLangOpts</a>().CPlusPlus11)</div>
+<div class="line"><a name="l00903"></a><span class="lineno">  903</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00904"></a><span class="lineno">  904</span> </div>
+<div class="line"><a name="l00905"></a><span class="lineno">  905</span>   FallthroughMapper FM(S);</div>
+<div class="line"><a name="l00906"></a><span class="lineno">  906</span>   FM.TraverseStmt(AC.<a class="code" href="classclang_1_1AnalysisDeclContext.html#a3c8673fce55235dc9e1d1773ee0ee899" title="Get the body of the Declaration.">getBody</a>());</div>
+<div class="line"><a name="l00907"></a><span class="lineno">  907</span> </div>
+<div class="line"><a name="l00908"></a><span class="lineno">  908</span>   <span class="keywordflow">if</span> (!FM.foundSwitchStatements())</div>
+<div class="line"><a name="l00909"></a><span class="lineno">  909</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00910"></a><span class="lineno">  910</span> </div>
+<div class="line"><a name="l00911"></a><span class="lineno">  911</span>   <span class="keywordflow">if</span> (PerFunction && FM.getFallthroughStmts().empty())</div>
+<div class="line"><a name="l00912"></a><span class="lineno">  912</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00913"></a><span class="lineno">  913</span> </div>
+<div class="line"><a name="l00914"></a><span class="lineno">  914</span>   <a class="code" href="classclang_1_1CFG.html">CFG</a> *Cfg = AC.<a class="code" href="classclang_1_1AnalysisDeclContext.html#a8a3aa357f5d09fa5c71e952f961a5bca">getCFG</a>();</div>
+<div class="line"><a name="l00915"></a><span class="lineno">  915</span> </div>
+<div class="line"><a name="l00916"></a><span class="lineno">  916</span>   <span class="keywordflow">if</span> (!Cfg)</div>
+<div class="line"><a name="l00917"></a><span class="lineno">  917</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00918"></a><span class="lineno">  918</span> </div>
+<div class="line"><a name="l00919"></a><span class="lineno">  919</span>   FM.fillReachableBlocks(Cfg);</div>
+<div class="line"><a name="l00920"></a><span class="lineno">  920</span> </div>
+<div class="line"><a name="l00921"></a><span class="lineno">  921</span>   <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1CFG.html#a2638246dde80aec2025ef8b5867d892d">CFG::reverse_iterator</a> I = Cfg-><a class="code" href="classclang_1_1CFG.html#af473ea584cc53ff50fe9186669db7091">rbegin</a>(), E = Cfg-><a class="code" href="classclang_1_1CFG.html#af5f06960f3e68e77b988f7af4529477b">rend</a>(); I != E; ++I) {</div>
+<div class="line"><a name="l00922"></a><span class="lineno">  922</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1CFGBlock.html">CFGBlock</a> *B = *I;</div>
+<div class="line"><a name="l00923"></a><span class="lineno">  923</span>     <span class="keyword">const</span> Stmt *Label = B-><a class="code" href="classclang_1_1CFGBlock.html#a76c61ba94f1308d79aa29eec072ffd30">getLabel</a>();</div>
+<div class="line"><a name="l00924"></a><span class="lineno">  924</span> </div>
+<div class="line"><a name="l00925"></a><span class="lineno">  925</span>     <span class="keywordflow">if</span> (!Label || !isa<SwitchCase>(Label))</div>
+<div class="line"><a name="l00926"></a><span class="lineno">  926</span>       <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00927"></a><span class="lineno">  927</span> </div>
+<div class="line"><a name="l00928"></a><span class="lineno">  928</span>     <span class="keywordtype">int</span> AnnotatedCnt;</div>
+<div class="line"><a name="l00929"></a><span class="lineno">  929</span> </div>
+<div class="line"><a name="l00930"></a><span class="lineno">  930</span>     <span class="keywordflow">if</span> (!FM.checkFallThroughIntoBlock(*B, AnnotatedCnt))</div>
+<div class="line"><a name="l00931"></a><span class="lineno">  931</span>       <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00932"></a><span class="lineno">  932</span> </div>
+<div class="line"><a name="l00933"></a><span class="lineno">  933</span>     S.<a class="code" href="classclang_1_1Sema.html#ad29dfd1f2677772bf6b1da186a7583c3" title="Emit a diagnostic.">Diag</a>(Label-><a class="code" href="classclang_1_1Stmt.html#a0270d9cff7ed2b38acb39690b96586d2">getLocStart</a>(),</div>
+<div class="line"><a name="l00934"></a><span class="lineno">  934</span>         PerFunction ? diag::warn_unannotated_fallthrough_per_function</div>
+<div class="line"><a name="l00935"></a><span class="lineno">  935</span>                     : diag::warn_unannotated_fallthrough);</div>
+<div class="line"><a name="l00936"></a><span class="lineno">  936</span> </div>
+<div class="line"><a name="l00937"></a><span class="lineno">  937</span>     <span class="keywordflow">if</span> (!AnnotatedCnt) {</div>
+<div class="line"><a name="l00938"></a><span class="lineno">  938</span>       <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> L = Label-><a class="code" href="classclang_1_1Stmt.html#a0270d9cff7ed2b38acb39690b96586d2">getLocStart</a>();</div>
+<div class="line"><a name="l00939"></a><span class="lineno">  939</span>       <span class="keywordflow">if</span> (L.<a class="code" href="classclang_1_1SourceLocation.html#a83c660ad7c57096011c5f40c50b52c7d">isMacroID</a>())</div>
+<div class="line"><a name="l00940"></a><span class="lineno">  940</span>         <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00941"></a><span class="lineno">  941</span>       <span class="keywordflow">if</span> (S.<a class="code" href="classclang_1_1Sema.html#a5f632d714a520550786bde65d3771228">getLangOpts</a>().CPlusPlus11) {</div>
+<div class="line"><a name="l00942"></a><span class="lineno">  942</span>         <span class="keyword">const</span> Stmt *Term = B-><a class="code" href="classclang_1_1CFGBlock.html#af1276a7d6dea5546ea7421b85162375a">getTerminator</a>();</div>
+<div class="line"><a name="l00943"></a><span class="lineno">  943</span>         <span class="comment">// Skip empty cases.</span></div>
+<div class="line"><a name="l00944"></a><span class="lineno">  944</span>         <span class="keywordflow">while</span> (B-><a class="code" href="classclang_1_1CFGBlock.html#a6ada8898caf2ac3bdd6f52531cf42ac3">empty</a>() && !Term && B-><a class="code" href="classclang_1_1CFGBlock.html#a2b57cc985337076f6072ca63ceae400e">succ_size</a>() == 1) {</div>
+<div class="line"><a name="l00945"></a><span class="lineno">  945</span>           B = *B-><a class="code" href="classclang_1_1CFGBlock.html#a9d6bfab26a9034c5573ddfd804766b91">succ_begin</a>();</div>
+<div class="line"><a name="l00946"></a><span class="lineno">  946</span>           Term = B-><a class="code" href="classclang_1_1CFGBlock.html#af1276a7d6dea5546ea7421b85162375a">getTerminator</a>();</div>
+<div class="line"><a name="l00947"></a><span class="lineno">  947</span>         }</div>
+<div class="line"><a name="l00948"></a><span class="lineno">  948</span>         <span class="keywordflow">if</span> (!(B-><a class="code" href="classclang_1_1CFGBlock.html#a6ada8898caf2ac3bdd6f52531cf42ac3">empty</a>() && Term && isa<BreakStmt>(Term))) {</div>
+<div class="line"><a name="l00949"></a><span class="lineno">  949</span>           <a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP = S.<a class="code" href="classclang_1_1Sema.html#a1ce39c4c2de770bfbf2fd4a4b2acf0eb">getPreprocessor</a>();</div>
+<div class="line"><a name="l00950"></a><span class="lineno">  950</span>           <a class="code" href="classclang_1_1TokenValue.html" title="Stores token information for comparing actual tokens with predefined values. Only handles simple toke...">TokenValue</a> <a class="code" href="Format_8cpp.html#ad41a4805c2afafefced9cd28d505075b">Tokens</a>[] = {</div>
+<div class="line"><a name="l00951"></a><span class="lineno">  951</span>             tok::l_square, tok::l_square, PP.<a class="code" href="classclang_1_1Preprocessor.html#acbacad0c69321bd63102c7697a95b67d">getIdentifierInfo</a>(<span class="stringliteral">"clang"</span>),</div>
+<div class="line"><a name="l00952"></a><span class="lineno">  952</span>             tok::coloncolon, PP.<a class="code" href="classclang_1_1Preprocessor.html#acbacad0c69321bd63102c7697a95b67d">getIdentifierInfo</a>(<span class="stringliteral">"fallthrough"</span>),</div>
+<div class="line"><a name="l00953"></a><span class="lineno">  953</span>             tok::r_square, tok::r_square</div>
+<div class="line"><a name="l00954"></a><span class="lineno">  954</span>           };</div>
+<div class="line"><a name="l00955"></a><span class="lineno">  955</span>           StringRef AnnotationSpelling = <span class="stringliteral">"[[clang::fallthrough]]"</span>;</div>
+<div class="line"><a name="l00956"></a><span class="lineno">  956</span>           StringRef MacroName = PP.<a class="code" href="classclang_1_1Preprocessor.html#a03cde5489db730d73e55164938855e98" title="Return the name of the macro defined before Loc that has spelling Tokens. If there are multiple macro...">getLastMacroWithSpelling</a>(L, Tokens);</div>
+<div class="line"><a name="l00957"></a><span class="lineno">  957</span>           <span class="keywordflow">if</span> (!MacroName.empty())</div>
+<div class="line"><a name="l00958"></a><span class="lineno">  958</span>             AnnotationSpelling = MacroName;</div>
+<div class="line"><a name="l00959"></a><span class="lineno">  959</span>           <a class="code" href="classllvm_1_1SmallString.html">SmallString<64></a> TextToInsert(AnnotationSpelling);</div>
+<div class="line"><a name="l00960"></a><span class="lineno">  960</span>           TextToInsert += <span class="stringliteral">"; "</span>;</div>
+<div class="line"><a name="l00961"></a><span class="lineno">  961</span>           S.<a class="code" href="classclang_1_1Sema.html#ad29dfd1f2677772bf6b1da186a7583c3" title="Emit a diagnostic.">Diag</a>(L, diag::note_insert_fallthrough_fixit) <<</div>
+<div class="line"><a name="l00962"></a><span class="lineno">  962</span>               AnnotationSpelling <<</div>
+<div class="line"><a name="l00963"></a><span class="lineno">  963</span>               <a class="code" href="classclang_1_1FixItHint.html#afd481d826e9ddaa39fc82a698a810246" title="Create a code modification hint that inserts the given code string at a specific location.">FixItHint::CreateInsertion</a>(L, TextToInsert);</div>
+<div class="line"><a name="l00964"></a><span class="lineno">  964</span>         }</div>
+<div class="line"><a name="l00965"></a><span class="lineno">  965</span>       }</div>
+<div class="line"><a name="l00966"></a><span class="lineno">  966</span>       S.<a class="code" href="classclang_1_1Sema.html#ad29dfd1f2677772bf6b1da186a7583c3" title="Emit a diagnostic.">Diag</a>(L, diag::note_insert_break_fixit) <<</div>
+<div class="line"><a name="l00967"></a><span class="lineno">  967</span>         <a class="code" href="classclang_1_1FixItHint.html#afd481d826e9ddaa39fc82a698a810246" title="Create a code modification hint that inserts the given code string at a specific location.">FixItHint::CreateInsertion</a>(L, <span class="stringliteral">"break; "</span>);</div>
+<div class="line"><a name="l00968"></a><span class="lineno">  968</span>     }</div>
+<div class="line"><a name="l00969"></a><span class="lineno">  969</span>   }</div>
+<div class="line"><a name="l00970"></a><span class="lineno">  970</span> </div>
+<div class="line"><a name="l00971"></a><span class="lineno">  971</span>   <span class="keyword">const</span> FallthroughMapper::AttrStmts &Fallthroughs = FM.getFallthroughStmts();</div>
+<div class="line"><a name="l00972"></a><span class="lineno">  972</span>   <span class="keywordflow">for</span> (FallthroughMapper::AttrStmts::const_iterator I = Fallthroughs.begin(),</div>
+<div class="line"><a name="l00973"></a><span class="lineno">  973</span>                                                     E = Fallthroughs.end();</div>
+<div class="line"><a name="l00974"></a><span class="lineno">  974</span>                                                     I != E; ++I) {</div>
+<div class="line"><a name="l00975"></a><span class="lineno">  975</span>     S.<a class="code" href="classclang_1_1Sema.html#ad29dfd1f2677772bf6b1da186a7583c3" title="Emit a diagnostic.">Diag</a>((*I)->getLocStart(), diag::warn_fallthrough_attr_invalid_placement);</div>
+<div class="line"><a name="l00976"></a><span class="lineno">  976</span>   }</div>
+<div class="line"><a name="l00977"></a><span class="lineno">  977</span> </div>
+<div class="line"><a name="l00978"></a><span class="lineno">  978</span> }</div>
+<div class="line"><a name="l00979"></a><span class="lineno">  979</span> </div>
+<div class="line"><a name="l00980"></a><span class="lineno">  980</span> <span class="keyword">namespace </span>{</div>
+<div class="line"><a name="l00981"></a><span class="lineno">  981</span> <span class="keyword">typedef</span> std::pair<<span class="keyword">const</span> Stmt *,</div>
+<div class="line"><a name="l00982"></a><span class="lineno">  982</span>                   sema::FunctionScopeInfo::WeakObjectUseMap::const_iterator></div>
+<div class="line"><a name="l00983"></a><span class="lineno">  983</span>         StmtUsesPair;</div>
+<div class="line"><a name="l00984"></a><span class="lineno">  984</span> </div>
+<div class="line"><a name="l00985"></a><span class="lineno">  985</span> <span class="keyword">class </span>StmtUseSorter {</div>
+<div class="line"><a name="l00986"></a><span class="lineno">  986</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1SourceManager.html" title="This class handles loading and caching of source files into memory.">SourceManager</a> &<a class="code" href="AnalysisBasedWarnings_8cpp.html#afe4356a77609114d8df0bfc9c2b8701f">SM</a>;</div>
+<div class="line"><a name="l00987"></a><span class="lineno">  987</span> </div>
+<div class="line"><a name="l00988"></a><span class="lineno">  988</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00989"></a><span class="lineno">  989</span>   <span class="keyword">explicit</span> StmtUseSorter(<span class="keyword">const</span> <a class="code" href="classclang_1_1SourceManager.html" title="This class handles loading and caching of source files into memory.">SourceManager</a> &<a class="code" href="AnalysisBasedWarnings_8cpp.html#afe4356a77609114d8df0bfc9c2b8701f">SM</a>) : SM(SM) { }</div>
+<div class="line"><a name="l00990"></a><span class="lineno">  990</span> </div>
+<div class="line"><a name="l00991"></a><span class="lineno">  991</span>   <span class="keywordtype">bool</span> operator()(<span class="keyword">const</span> StmtUsesPair &LHS, <span class="keyword">const</span> StmtUsesPair &RHS) {</div>
+<div class="line"><a name="l00992"></a><span class="lineno">  992</span>     <span class="keywordflow">return</span> <a class="code" href="AnalysisBasedWarnings_8cpp.html#afe4356a77609114d8df0bfc9c2b8701f">SM</a>.<a class="code" href="classclang_1_1SourceManager.html#a80e6af876450686c7811c34fc72fcbdc" title="Determines the order of 2 source locations in the translation unit.">isBeforeInTranslationUnit</a>(LHS.first->getLocStart(),</div>
+<div class="line"><a name="l00993"></a><span class="lineno">  993</span>                                         RHS.first->getLocStart());</div>
+<div class="line"><a name="l00994"></a><span class="lineno">  994</span>   }</div>
+<div class="line"><a name="l00995"></a><span class="lineno">  995</span> };</div>
+<div class="line"><a name="l00996"></a><span class="lineno">  996</span> }</div>
+<div class="line"><a name="l00997"></a><span class="lineno">  997</span> </div>
+<div class="line"><a name="l00998"></a><span class="lineno"><a class="code" href="AnalysisBasedWarnings_8cpp.html#a29350010123c0351b1f7588948e7551a">  998</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="AnalysisBasedWarnings_8cpp.html#a29350010123c0351b1f7588948e7551a">isInLoop</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ASTContext.html" title="Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...">ASTContext</a> &Ctx, <span class="keyword">const</span> <a class="code" href="classclang_1_1ParentMap.html">ParentMap</a> &PM,</div>
+<div class="line"><a name="l00999"></a><span class="lineno">  999</span>                      <span class="keyword">const</span> Stmt *S) {</div>
+<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>   assert(S);</div>
+<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span> </div>
+<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>   <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>     <span class="keywordflow">switch</span> (S-><a class="code" href="classclang_1_1Stmt.html#ac881a5954ff27d475c1bbab6f5d80150">getStmtClass</a>()) {</div>
+<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>     <span class="keywordflow">case</span> Stmt::ForStmtClass:</div>
+<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>     <span class="keywordflow">case</span> Stmt::WhileStmtClass:</div>
+<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>     <span class="keywordflow">case</span> Stmt::CXXForRangeStmtClass:</div>
+<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>     <span class="keywordflow">case</span> Stmt::ObjCForCollectionStmtClass:</div>
+<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>       <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>     <span class="keywordflow">case</span> Stmt::DoStmtClass: {</div>
+<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>       <span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *Cond = cast<DoStmt>(<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>)->getCond();</div>
+<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>       llvm::APSInt Val;</div>
+<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>       <span class="keywordflow">if</span> (!Cond-><a class="code" href="classclang_1_1Expr.html#aea5aa4f172677bf59f1a149ee1513c9c">EvaluateAsInt</a>(Val, Ctx))</div>
+<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>         <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>       <span class="keywordflow">return</span> Val.getBoolValue();</div>
+<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>     }</div>
+<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>     <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>     }</div>
+<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>   } <span class="keywordflow">while</span> ((S = PM.<a class="code" href="classclang_1_1ParentMap.html#a54f199a219ffdf21cee2f782f88e03ca">getParent</a>(S)));</div>
+<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span> </div>
+<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>   <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span> }</div>
+<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span> </div>
+<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span> </div>
+<div class="line"><a name="l01025"></a><span class="lineno"><a class="code" href="AnalysisBasedWarnings_8cpp.html#a3e0d4d94881239b1857350bbebade3d1"> 1025</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="AnalysisBasedWarnings_8cpp.html#a3e0d4d94881239b1857350bbebade3d1">diagnoseRepeatedUseOfWeak</a>(<a class="code" href="classclang_1_1Sema.html" title="Sema - This implements semantic analysis and AST building for C.">Sema</a> &S,</div>
+<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>                                       <span class="keyword">const</span> <a class="code" href="classclang_1_1sema_1_1FunctionScopeInfo.html" title="Retains information about a function, method, or block that is currently being parsed.">sema::FunctionScopeInfo</a> *CurFn,</div>
+<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>                                       <span class="keyword">const</span> <a class="code" href="classclang_1_1Decl.html">Decl</a> *D,</div>
+<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>                                       <span class="keyword">const</span> <a class="code" href="classclang_1_1ParentMap.html">ParentMap</a> &PM) {</div>
+<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>   <span class="keyword">typedef</span> <a class="code" href="classclang_1_1sema_1_1FunctionScopeInfo_1_1WeakObjectProfileTy.html">sema::FunctionScopeInfo::WeakObjectProfileTy</a> WeakObjectProfileTy;</div>
+<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>   <span class="keyword">typedef</span> <a class="code" href="classclang_1_1sema_1_1FunctionScopeInfo.html#a81eafc73dfb462e13d9160c92d396d11">sema::FunctionScopeInfo::WeakObjectUseMap</a> WeakObjectUseMap;</div>
+<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>   <span class="keyword">typedef</span> <a class="code" href="classllvm_1_1SmallVector.html">sema::FunctionScopeInfo::WeakUseVector</a> WeakUseVector;</div>
+<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span> </div>
+<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>   <a class="code" href="classclang_1_1ASTContext.html" title="Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...">ASTContext</a> &Ctx = S.<a class="code" href="classclang_1_1Sema.html#a67eff5b9492fff49360d8000819a6719">getASTContext</a>();</div>
+<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span> </div>
+<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>   <span class="keyword">const</span> WeakObjectUseMap &WeakMap = CurFn-><a class="code" href="classclang_1_1sema_1_1FunctionScopeInfo.html#a9dfd21d156e739a1b1f8d011fa47a3c2">getWeakObjectUses</a>();</div>
+<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span> </div>
+<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>   <span class="comment">// Extract all weak objects that are referenced more than once.</span></div>
+<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<StmtUsesPair, 8></a> UsesByStmt;</div>
+<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>   <span class="keywordflow">for</span> (WeakObjectUseMap::const_iterator I = WeakMap.begin(), E = WeakMap.end();</div>
+<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>        I != E; ++I) {</div>
+<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>     <span class="keyword">const</span> WeakUseVector &Uses = I->second;</div>
+<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span> </div>
+<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>     <span class="comment">// Find the first read of the weak object.</span></div>
+<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>     WeakUseVector::const_iterator UI = Uses.begin(), UE = Uses.end();</div>
+<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>     <span class="keywordflow">for</span> ( ; UI != UE; ++UI) {</div>
+<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>       <span class="keywordflow">if</span> (UI->isUnsafe())</div>
+<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>     }</div>
+<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span> </div>
+<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>     <span class="comment">// If there were only writes to this object, don't warn.</span></div>
+<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>     <span class="keywordflow">if</span> (UI == UE)</div>
+<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>       <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span> </div>
+<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>     <span class="comment">// If there was only one read, followed by any number of writes, and the</span></div>
+<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>     <span class="comment">// read is not within a loop, don't warn. Additionally, don't warn in a</span></div>
+<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>     <span class="comment">// loop if the base object is a local variable -- local variables are often</span></div>
+<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>     <span class="comment">// changed in loops.</span></div>
+<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>     <span class="keywordflow">if</span> (UI == Uses.begin()) {</div>
+<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>       WeakUseVector::const_iterator UI2 = UI;</div>
+<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>       <span class="keywordflow">for</span> (++UI2; UI2 != UE; ++UI2)</div>
+<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>         <span class="keywordflow">if</span> (UI2->isUnsafe())</div>
+<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>           <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span> </div>
+<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>       <span class="keywordflow">if</span> (UI2 == UE) {</div>
+<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>         <span class="keywordflow">if</span> (!<a class="code" href="AnalysisBasedWarnings_8cpp.html#a29350010123c0351b1f7588948e7551a">isInLoop</a>(Ctx, PM, UI->getUseExpr()))</div>
+<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>           <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span> </div>
+<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>         <span class="keyword">const</span> WeakObjectProfileTy &Profile = I->first;</div>
+<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>         <span class="keywordflow">if</span> (!Profile.isExactProfile())</div>
+<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>           <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span> </div>
+<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>         <span class="keyword">const</span> <a class="code" href="classclang_1_1NamedDecl.html">NamedDecl</a> *<a class="code" href="classclang_1_1Base.html">Base</a> = Profile.getBase();</div>
+<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>         <span class="keywordflow">if</span> (!Base)</div>
+<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>           Base = Profile.getProperty();</div>
+<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>         assert(Base && <span class="stringliteral">"A profile always has a base or property."</span>);</div>
+<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span> </div>
+<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>         <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *BaseVar = dyn_cast<VarDecl>(Base))</div>
+<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>           <span class="keywordflow">if</span> (BaseVar->hasLocalStorage() && !isa<ParmVarDecl>(Base))</div>
+<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>             <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>       }</div>
+<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>     }</div>
+<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span> </div>
+<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>     UsesByStmt.push_back(StmtUsesPair(UI->getUseExpr(), I));</div>
+<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>   }</div>
+<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span> </div>
+<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>   <span class="keywordflow">if</span> (UsesByStmt.empty())</div>
+<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span> </div>
+<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>   <span class="comment">// Sort by first use so that we emit the warnings in a deterministic order.</span></div>
+<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>   std::sort(UsesByStmt.begin(), UsesByStmt.end(),</div>
+<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>             StmtUseSorter(S.<a class="code" href="classclang_1_1Sema.html#aa6addac536d2911c8d411bfb1bd97fac">getSourceManager</a>()));</div>
+<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span> </div>
+<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>   <span class="comment">// Classify the current code body for better warning text.</span></div>
+<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>   <span class="comment">// This enum should stay in sync with the cases in</span></div>
+<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>   <span class="comment">// warn_arc_repeated_use_of_weak and warn_arc_possible_repeated_use_of_weak.</span></div>
+<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>   <span class="comment">// FIXME: Should we use a common classification enum and the same set of</span></div>
+<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>   <span class="comment">// possibilities all throughout Sema?</span></div>
+<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>   <span class="keyword">enum</span> {</div>
+<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>     Function,</div>
+<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>     Method,</div>
+<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>     Block,</div>
+<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>     Lambda</div>
+<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>   } FunctionKind;</div>
+<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span> </div>
+<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>   <span class="keywordflow">if</span> (isa<sema::BlockScopeInfo>(CurFn))</div>
+<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>     FunctionKind = Block;</div>
+<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>   <span class="keywordflow">else</span> <span class="keywordflow">if</span> (isa<sema::LambdaScopeInfo>(CurFn))</div>
+<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>     FunctionKind = Lambda;</div>
+<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>   <span class="keywordflow">else</span> <span class="keywordflow">if</span> (isa<ObjCMethodDecl>(D))</div>
+<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>     FunctionKind = Method;</div>
+<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>   <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>     FunctionKind = Function;</div>
+<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span> </div>
+<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>   <span class="comment">// Iterate through the sorted problems and emit warnings for each.</span></div>
+<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<StmtUsesPair>::const_iterator</a> I = UsesByStmt.begin(),</div>
+<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>                                                      E = UsesByStmt.end();</div>
+<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>        I != E; ++I) {</div>
+<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>     <span class="keyword">const</span> Stmt *FirstRead = I->first;</div>
+<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>     <span class="keyword">const</span> WeakObjectProfileTy &Key = I->second->first;</div>
+<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>     <span class="keyword">const</span> WeakUseVector &Uses = I->second->second;</div>
+<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span> </div>
+<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>     <span class="comment">// For complicated expressions like 'a.b.c' and 'x.b.c', WeakObjectProfileTy</span></div>
+<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>     <span class="comment">// may not contain enough information to determine that these are different</span></div>
+<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>     <span class="comment">// properties. We can only be 100% sure of a repeated use in certain cases,</span></div>
+<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>     <span class="comment">// and we adjust the diagnostic kind accordingly so that the less certain</span></div>
+<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>     <span class="comment">// case can be turned off if it is too noisy.</span></div>
+<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>     <span class="keywordtype">unsigned</span> DiagKind;</div>
+<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>     <span class="keywordflow">if</span> (Key.isExactProfile())</div>
+<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>       DiagKind = diag::warn_arc_repeated_use_of_weak;</div>
+<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>     <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>       DiagKind = diag::warn_arc_possible_repeated_use_of_weak;</div>
+<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span> </div>
+<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>     <span class="comment">// Classify the weak object being accessed for better warning text.</span></div>
+<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>     <span class="comment">// This enum should stay in sync with the cases in</span></div>
+<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>     <span class="comment">// warn_arc_repeated_use_of_weak and warn_arc_possible_repeated_use_of_weak.</span></div>
+<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>     <span class="keyword">enum</span> {</div>
+<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>       Variable,</div>
+<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>       Property,</div>
+<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>       ImplicitProperty,</div>
+<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>       Ivar</div>
+<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>     } ObjectKind;</div>
+<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span> </div>
+<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1NamedDecl.html">NamedDecl</a> *D = Key.getProperty();</div>
+<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>     <span class="keywordflow">if</span> (isa<VarDecl>(D))</div>
+<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>       ObjectKind = Variable;</div>
+<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (isa<ObjCPropertyDecl>(D))</div>
+<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>       ObjectKind = Property;</div>
+<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (isa<ObjCMethodDecl>(D))</div>
+<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>       ObjectKind = ImplicitProperty;</div>
+<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (isa<ObjCIvarDecl>(D))</div>
+<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>       ObjectKind = Ivar;</div>
+<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>     <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>       llvm_unreachable(<span class="stringliteral">"Unexpected weak object kind!"</span>);</div>
+<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span> </div>
+<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>     <span class="comment">// Show the first time the object was read.</span></div>
+<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>     S.<a class="code" href="classclang_1_1Sema.html#ad29dfd1f2677772bf6b1da186a7583c3" title="Emit a diagnostic.">Diag</a>(FirstRead-><a class="code" href="classclang_1_1Stmt.html#a0270d9cff7ed2b38acb39690b96586d2">getLocStart</a>(), DiagKind)</div>
+<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>       << <span class="keywordtype">int</span>(ObjectKind) << D << int(FunctionKind)</div>
+<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>       << FirstRead-><a class="code" href="classclang_1_1Stmt.html#a6844392ee6148b5fe821f211b95e5d1b">getSourceRange</a>();</div>
+<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span> </div>
+<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>     <span class="comment">// Print all the other accesses as notes.</span></div>
+<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>     <span class="keywordflow">for</span> (WeakUseVector::const_iterator UI = Uses.begin(), UE = Uses.end();</div>
+<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>          UI != UE; ++UI) {</div>
+<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>       <span class="keywordflow">if</span> (UI->getUseExpr() == FirstRead)</div>
+<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>         <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>       S.<a class="code" href="classclang_1_1Sema.html#ad29dfd1f2677772bf6b1da186a7583c3" title="Emit a diagnostic.">Diag</a>(UI->getUseExpr()->getLocStart(),</div>
+<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>              diag::note_arc_weak_also_accessed_here)</div>
+<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>         << UI->getUseExpr()->getSourceRange();</div>
+<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>     }</div>
+<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>   }</div>
+<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span> }</div>
+<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span> </div>
+<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span> </div>
+<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span> <span class="keyword">namespace </span>{</div>
+<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span> <span class="keyword">struct </span>SLocSort {</div>
+<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>   <span class="keywordtype">bool</span> operator()(<span class="keyword">const</span> <a class="code" href="classclang_1_1UninitUse.html" title="A use of a variable, which might be uninitialized.">UninitUse</a> &a, <span class="keyword">const</span> <a class="code" href="classclang_1_1UninitUse.html" title="A use of a variable, which might be uninitialized.">UninitUse</a> &b) {</div>
+<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>     <span class="comment">// Prefer a more confident report over a less confident one.</span></div>
+<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>     <span class="keywordflow">if</span> (a.<a class="code" href="classclang_1_1UninitUse.html#a48c78437c312416aadb115df583abfea" title="Get the kind of uninitialized use.">getKind</a>() != b.<a class="code" href="classclang_1_1UninitUse.html#a48c78437c312416aadb115df583abfea" title="Get the kind of uninitialized use.">getKind</a>())</div>
+<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>       <span class="keywordflow">return</span> a.<a class="code" href="classclang_1_1UninitUse.html#a48c78437c312416aadb115df583abfea" title="Get the kind of uninitialized use.">getKind</a>() > b.<a class="code" href="classclang_1_1UninitUse.html#a48c78437c312416aadb115df583abfea" title="Get the kind of uninitialized use.">getKind</a>();</div>
+<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>     <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> aLoc = a.<a class="code" href="classclang_1_1UninitUse.html#a8e728bb1a8547b5f5eca4db9e617de60" title="Get the expression containing the uninitialized use.">getUser</a>()-><a class="code" href="classclang_1_1Stmt.html#a0270d9cff7ed2b38acb39690b96586d2">getLocStart</a>();</div>
+<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>     <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> bLoc = b.<a class="code" href="classclang_1_1UninitUse.html#a8e728bb1a8547b5f5eca4db9e617de60" title="Get the expression containing the uninitialized use.">getUser</a>()-><a class="code" href="classclang_1_1Stmt.html#a0270d9cff7ed2b38acb39690b96586d2">getLocStart</a>();</div>
+<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>     <span class="keywordflow">return</span> aLoc.<a class="code" href="classclang_1_1SourceLocation.html#a3b9eca838127c4105fd77fd0d3b5962a" title="When a SourceLocation itself cannot be used, this returns an (opaque) 32-bit integer encoding for it...">getRawEncoding</a>() < bLoc.<a class="code" href="classclang_1_1SourceLocation.html#a3b9eca838127c4105fd77fd0d3b5962a" title="When a SourceLocation itself cannot be used, this returns an (opaque) 32-bit integer encoding for it...">getRawEncoding</a>();</div>
+<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>   }</div>
+<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span> };</div>
+<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span> </div>
+<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span> <span class="keyword">class </span>UninitValsDiagReporter : <span class="keyword">public</span> <a class="code" href="classclang_1_1UninitVariablesHandler.html">UninitVariablesHandler</a> {</div>
+<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>   <a class="code" href="classclang_1_1Sema.html" title="Sema - This implements semantic analysis and AST building for C.">Sema</a> &<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>;</div>
+<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>   <span class="keyword">typedef</span> <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<UninitUse, 2></a> UsesVec;</div>
+<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>   <span class="keyword">typedef</span> llvm::PointerIntPair<UsesVec *, 1, bool> MappedType;</div>
+<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>   <span class="comment">// Prefer using MapVector to DenseMap, so that iteration order will be</span></div>
+<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>   <span class="comment">// the same as insertion order. This is needed to obtain a deterministic</span></div>
+<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>   <span class="comment">// order of diagnostics when calling flushDiagnostics().</span></div>
+<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>   <span class="keyword">typedef</span> llvm::MapVector<const VarDecl *, MappedType> UsesMap;</div>
+<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>   UsesMap *uses;</div>
+<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>   </div>
+<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>   UninitValsDiagReporter(<a class="code" href="classclang_1_1Sema.html" title="Sema - This implements semantic analysis and AST building for C.">Sema</a> &S) : S(S), uses(0) {}</div>
+<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>   ~UninitValsDiagReporter() { </div>
+<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>     <a class="code" href="AnalysisBasedWarnings_8cpp.html#ae275d052f17c92c3a250fbd45f2c3705">flushDiagnostics</a>();</div>
+<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>   }</div>
+<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span> </div>
+<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>   MappedType &getUses(<span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *vd) {</div>
+<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>     <span class="keywordflow">if</span> (!uses)</div>
+<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>       uses = <span class="keyword">new</span> UsesMap();</div>
+<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span> </div>
+<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>     MappedType &V = (*uses)[vd];</div>
+<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>     <span class="keywordflow">if</span> (!V.getPointer())</div>
+<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>       V.setPointer(<span class="keyword">new</span> UsesVec());</div>
+<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>     </div>
+<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>     <span class="keywordflow">return</span> V;</div>
+<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>   }</div>
+<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>   </div>
+<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>   <span class="keywordtype">void</span> handleUseOfUninitVariable(<span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *vd, <span class="keyword">const</span> <a class="code" href="classclang_1_1UninitUse.html" title="A use of a variable, which might be uninitialized.">UninitUse</a> &use) {</div>
+<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>     getUses(vd).getPointer()->push_back(use);</div>
+<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>   }</div>
+<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>   </div>
+<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>   <span class="keywordtype">void</span> handleSelfInit(<span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *vd) {</div>
+<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>     getUses(vd).setInt(<span class="keyword">true</span>);</div>
+<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>   }</div>
+<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>   </div>
+<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>   <span class="keywordtype">void</span> <a class="code" href="AnalysisBasedWarnings_8cpp.html#ae275d052f17c92c3a250fbd45f2c3705">flushDiagnostics</a>() {</div>
+<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>     <span class="keywordflow">if</span> (!uses)</div>
+<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span> </div>
+<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>     <span class="keywordflow">for</span> (UsesMap::iterator i = uses->begin(), e = uses->end(); i != e; ++i) {</div>
+<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>       <span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *vd = i->first;</div>
+<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>       <span class="keyword">const</span> MappedType &V = i->second;</div>
+<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span> </div>
+<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>       UsesVec *vec = V.getPointer();</div>
+<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>       <span class="keywordtype">bool</span> hasSelfInit = V.getInt();</div>
+<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span> </div>
+<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>       <span class="comment">// Specially handle the case where we have uses of an uninitialized </span></div>
+<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>       <span class="comment">// variable, but the root cause is an idiomatic self-init.  We want</span></div>
+<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>       <span class="comment">// to report the diagnostic at the self-init since that is the root cause.</span></div>
+<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>       <span class="keywordflow">if</span> (!vec->empty() && hasSelfInit && hasAlwaysUninitializedUse(vec))</div>
+<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>         <a class="code" href="AnalysisBasedWarnings_8cpp.html#a96c4a5a2d5c5093b3ee119398d89085e">DiagnoseUninitializedUse</a>(S, vd,</div>
+<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>                                  <a class="code" href="classclang_1_1UninitUse.html" title="A use of a variable, which might be uninitialized.">UninitUse</a>(vd-><a class="code" href="classclang_1_1VarDecl.html#af6438debfc45cb2ad2d5cb5ce2711e0c">getInit</a>()-><a class="code" href="classclang_1_1Expr.html#a397a707d10e0d3ac4a150325eafa4368">IgnoreParenCasts</a>(),</div>
+<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>                                            <span class="comment">/* isAlwaysUninit */</span> <span class="keyword">true</span>),</div>
+<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>                                  <span class="comment">/* alwaysReportSelfInit */</span> <span class="keyword">true</span>);</div>
+<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>       <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>         <span class="comment">// Sort the uses by their SourceLocations.  While not strictly</span></div>
+<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>         <span class="comment">// guaranteed to produce them in line/column order, this will provide</span></div>
+<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>         <span class="comment">// a stable ordering.</span></div>
+<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>         std::sort(vec->begin(), vec->end(), SLocSort());</div>
+<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>         </div>
+<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>         <span class="keywordflow">for</span> (UsesVec::iterator vi = vec->begin(), ve = vec->end(); vi != ve;</div>
+<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>              ++vi) {</div>
+<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>           <span class="comment">// If we have self-init, downgrade all uses to 'may be uninitialized'.</span></div>
+<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>           <a class="code" href="classclang_1_1UninitUse.html" title="A use of a variable, which might be uninitialized.">UninitUse</a> Use = hasSelfInit ? <a class="code" href="classclang_1_1UninitUse.html" title="A use of a variable, which might be uninitialized.">UninitUse</a>(vi->getUser(), <span class="keyword">false</span>) : *vi;</div>
+<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span> </div>
+<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>           <span class="keywordflow">if</span> (<a class="code" href="AnalysisBasedWarnings_8cpp.html#a96c4a5a2d5c5093b3ee119398d89085e">DiagnoseUninitializedUse</a>(S, vd, Use))</div>
+<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>             <span class="comment">// Skip further diagnostics for this variable. We try to warn only</span></div>
+<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>             <span class="comment">// on the first point at which a variable is used uninitialized.</span></div>
+<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>             <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>         }</div>
+<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>       }</div>
+<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>       </div>
+<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>       <span class="comment">// Release the uses vector.</span></div>
+<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>       <span class="keyword">delete</span> vec;</div>
+<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>     }</div>
+<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>     <span class="keyword">delete</span> uses;</div>
+<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>   }</div>
+<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span> </div>
+<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>   <span class="keyword">static</span> <span class="keywordtype">bool</span> hasAlwaysUninitializedUse(<span class="keyword">const</span> UsesVec* vec) {</div>
+<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>   <span class="keywordflow">for</span> (UsesVec::const_iterator i = vec->begin(), e = vec->end(); i != e; ++i) {</div>
+<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>     <span class="keywordflow">if</span> (i->getKind() == <a class="code" href="classclang_1_1UninitUse.html#af24ad5db6cb44b0fb541d02558b53cd5a39ecf5e3b0aad55d7ddfaefc8ae93a45" title="The use is always uninitialized.">UninitUse::Always</a> ||</div>
+<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>         i->getKind() == <a class="code" href="classclang_1_1UninitUse.html#af24ad5db6cb44b0fb541d02558b53cd5af0e285dc2411b83f1c107bddf3ccf7e7">UninitUse::AfterCall</a> ||</div>
+<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>         i->getKind() == <a class="code" href="classclang_1_1UninitUse.html#af24ad5db6cb44b0fb541d02558b53cd5a4ac762cb233832f2d1ea6da8da15f0c9">UninitUse::AfterDecl</a>) {</div>
+<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>       <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>     }</div>
+<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>   }</div>
+<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>   <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span> }</div>
+<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span> };</div>
+<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span> }</div>
+<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span> </div>
+<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span> <span class="keyword">namespace </span>clang {</div>
+<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span> <span class="keyword">namespace </span>{</div>
+<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span> <span class="keyword">typedef</span> <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<PartialDiagnosticAt, 1></a> <a class="code" href="namespaceclang_1_1consumed.html#a46298023e56c7c149eb6cc50d83c825e">OptionalNotes</a>;</div>
+<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span> <span class="keyword">typedef</span> std::pair<PartialDiagnosticAt, OptionalNotes> <a class="code" href="namespaceclang_1_1consumed.html#a6f0749fc3d1453737bb8726e8ac289b7">DelayedDiag</a>;</div>
+<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span> <span class="keyword">typedef</span> std::list<DelayedDiag> <a class="code" href="VerifyDiagnosticConsumer_8cpp.html#a0f00e86935c082a81574e1f0a022431a">DiagList</a>;</div>
+<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span> </div>
+<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span> <span class="keyword">struct </span>SortDiagBySourceLocation {</div>
+<div class="line"><a name="l01284"></a><span class="lineno"><a class="code" href="AnalysisBasedWarnings_8cpp.html#afe4356a77609114d8df0bfc9c2b8701f"> 1284</a></span>   <a class="code" href="classclang_1_1SourceManager.html" title="This class handles loading and caching of source files into memory.">SourceManager</a> &<a class="code" href="AnalysisBasedWarnings_8cpp.html#afe4356a77609114d8df0bfc9c2b8701f">SM</a>;</div>
+<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>   SortDiagBySourceLocation(<a class="code" href="classclang_1_1SourceManager.html" title="This class handles loading and caching of source files into memory.">SourceManager</a> &<a class="code" href="AnalysisBasedWarnings_8cpp.html#afe4356a77609114d8df0bfc9c2b8701f">SM</a>) : SM(SM) {}</div>
+<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span> </div>
+<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>   <span class="keywordtype">bool</span> operator()(<span class="keyword">const</span> DelayedDiag &left, <span class="keyword">const</span> DelayedDiag &right) {</div>
+<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>     <span class="comment">// Although this call will be slow, this is only called when outputting</span></div>
+<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>     <span class="comment">// multiple warnings.</span></div>
+<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>     <span class="keywordflow">return</span> <a class="code" href="AnalysisBasedWarnings_8cpp.html#afe4356a77609114d8df0bfc9c2b8701f">SM</a>.<a class="code" href="classclang_1_1SourceManager.html#a80e6af876450686c7811c34fc72fcbdc" title="Determines the order of 2 source locations in the translation unit.">isBeforeInTranslationUnit</a>(left.first.first, right.first.first);</div>
+<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>   }</div>
+<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span> };</div>
+<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span> }}</div>
+<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span> </div>
+<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span> <span class="comment">// -Wthread-safety</span></div>
+<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span> <span class="keyword">namespace </span>clang {</div>
+<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span> <span class="keyword">namespace </span>thread_safety {</div>
+<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span> <span class="keyword">namespace </span>{</div>
+<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span> <span class="keyword">class </span>ThreadSafetyReporter : <span class="keyword">public</span> <a class="code" href="classclang_1_1thread__safety_1_1ThreadSafetyHandler.html" title="Handler class for thread safety warnings.">clang::thread_safety::ThreadSafetyHandler</a> {</div>
+<div class="line"><a name="l01302"></a><span class="lineno"><a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648"> 1302</a></span>   <a class="code" href="classclang_1_1Sema.html" title="Sema - This implements semantic analysis and AST building for C.">Sema</a> &<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>;</div>
+<div class="line"><a name="l01303"></a><span class="lineno"><a class="code" href="AnalysisBasedWarnings_8cpp.html#a0400cf9c618deb5b82358e439996ebe5"> 1303</a></span>   <a class="code" href="VerifyDiagnosticConsumer_8cpp.html#a0f00e86935c082a81574e1f0a022431a">DiagList</a> <a class="code" href="AnalysisBasedWarnings_8cpp.html#a0400cf9c618deb5b82358e439996ebe5">Warnings</a>;</div>
+<div class="line"><a name="l01304"></a><span class="lineno"><a class="code" href="AnalysisBasedWarnings_8cpp.html#a91d397b3bcf6fdf04547ae4348d1255a"> 1304</a></span>   <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> <a class="code" href="AnalysisBasedWarnings_8cpp.html#a91d397b3bcf6fdf04547ae4348d1255a">FunLocation</a>, <a class="code" href="AnalysisBasedWarnings_8cpp.html#a47e705cedebd5c98401e7750624d218d">FunEndLocation</a>;</div>
+<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span> </div>
+<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>   <span class="comment">// Helper functions</span></div>
+<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>   <span class="keywordtype">void</span> warnLockMismatch(<span class="keywordtype">unsigned</span> DiagID, Name LockName, <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc) {</div>
+<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>     <span class="comment">// Gracefully handle rare cases when the analysis can't get a more</span></div>
+<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>     <span class="comment">// precise source location.</span></div>
+<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>     <span class="keywordflow">if</span> (!Loc.<a class="code" href="classclang_1_1SourceLocation.html#ad504978d83973770506b6ddb1d7b48f9" title="Return true if this is a valid SourceLocation object.">isValid</a>())</div>
+<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>       Loc = <a class="code" href="AnalysisBasedWarnings_8cpp.html#a91d397b3bcf6fdf04547ae4348d1255a">FunLocation</a>;</div>
+<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>     <a class="code" href="namespaceclang.html#aad93c2ca4f90628847152a2d03cb5b2d" title="A partial diagnostic along with the source location where this diagnostic occurs.">PartialDiagnosticAt</a> Warning(Loc, S.PDiag(DiagID) << LockName);</div>
+<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>     <a class="code" href="AnalysisBasedWarnings_8cpp.html#a0400cf9c618deb5b82358e439996ebe5">Warnings</a>.push_back(<a class="code" href="namespaceclang_1_1consumed.html#a6f0749fc3d1453737bb8726e8ac289b7">DelayedDiag</a>(Warning, <a class="code" href="namespaceclang_1_1consumed.html#a46298023e56c7c149eb6cc50d83c825e">OptionalNotes</a>()));</div>
+<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>   }</div>
+<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span> </div>
+<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>   ThreadSafetyReporter(<a class="code" href="classclang_1_1Sema.html" title="Sema - This implements semantic analysis and AST building for C.">Sema</a> &S, <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> FL, <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> FEL)</div>
+<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>     : S(S), <a class="code" href="AnalysisBasedWarnings_8cpp.html#a91d397b3bcf6fdf04547ae4348d1255a">FunLocation</a>(FL), <a class="code" href="AnalysisBasedWarnings_8cpp.html#a47e705cedebd5c98401e7750624d218d">FunEndLocation</a>(FEL) {}</div>
+<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span> <span class="comment"></span></div>
+<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span> <span class="comment">  /// \brief Emit all buffered diagnostics in order of sourcelocation.</span></div>
+<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span> <span class="comment">  /// We need to output diagnostics produced while iterating through</span></div>
+<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span> <span class="comment">  /// the lockset in deterministic order, so this function orders diagnostics</span></div>
+<div class="line"><a name="l01323"></a><span class="lineno"> 1323</span> <span class="comment">  /// and outputs them.</span></div>
+<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span> <span class="comment"></span>  <span class="keywordtype">void</span> emitDiagnostics() {</div>
+<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>     <a class="code" href="AnalysisBasedWarnings_8cpp.html#a0400cf9c618deb5b82358e439996ebe5">Warnings</a>.sort(SortDiagBySourceLocation(S.getSourceManager()));</div>
+<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>     <span class="keywordflow">for</span> (DiagList::iterator I = <a class="code" href="AnalysisBasedWarnings_8cpp.html#a0400cf9c618deb5b82358e439996ebe5">Warnings</a>.begin(), E = <a class="code" href="AnalysisBasedWarnings_8cpp.html#a0400cf9c618deb5b82358e439996ebe5">Warnings</a>.end();</div>
+<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>          I != E; ++I) {</div>
+<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>       S.Diag(I->first.first, I->first.second);</div>
+<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>       <span class="keyword">const</span> <a class="code" href="namespaceclang_1_1consumed.html#a46298023e56c7c149eb6cc50d83c825e">OptionalNotes</a> &Notes = I->second;</div>
+<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>       <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> NoteI = 0, NoteN = Notes.size(); NoteI != NoteN; ++NoteI)</div>
+<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>         S.Diag(Notes[NoteI].first, Notes[NoteI].second);</div>
+<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>     }</div>
+<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>   }</div>
+<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span> </div>
+<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>   <span class="keywordtype">void</span> handleInvalidLockExp(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc) {</div>
+<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>     <a class="code" href="namespaceclang.html#aad93c2ca4f90628847152a2d03cb5b2d" title="A partial diagnostic along with the source location where this diagnostic occurs.">PartialDiagnosticAt</a> Warning(Loc,</div>
+<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>                                 S.PDiag(diag::warn_cannot_resolve_lock) << Loc);</div>
+<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>     <a class="code" href="AnalysisBasedWarnings_8cpp.html#a0400cf9c618deb5b82358e439996ebe5">Warnings</a>.push_back(<a class="code" href="namespaceclang_1_1consumed.html#a6f0749fc3d1453737bb8726e8ac289b7">DelayedDiag</a>(Warning, <a class="code" href="namespaceclang_1_1consumed.html#a46298023e56c7c149eb6cc50d83c825e">OptionalNotes</a>()));</div>
+<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>   }</div>
+<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>   <span class="keywordtype">void</span> handleUnmatchedUnlock(Name LockName, <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc) {</div>
+<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>     warnLockMismatch(diag::warn_unlock_but_no_lock, LockName, Loc);</div>
+<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>   }</div>
+<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span> </div>
+<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>   <span class="keywordtype">void</span> handleDoubleLock(Name LockName, <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc) {</div>
+<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>     warnLockMismatch(diag::warn_double_lock, LockName, Loc);</div>
+<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>   }</div>
+<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span> </div>
+<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>   <span class="keywordtype">void</span> handleMutexHeldEndOfScope(Name LockName, <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> LocLocked,</div>
+<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>                                  <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> LocEndOfScope,</div>
+<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>                                  <a class="code" href="namespaceclang_1_1thread__safety.html#a821fcf1ff3ab8747a8ec2bd5d13579af">LockErrorKind</a> LEK){</div>
+<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>     <span class="keywordtype">unsigned</span> DiagID = 0;</div>
+<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>     <span class="keywordflow">switch</span> (LEK) {</div>
+<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>       <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1thread__safety.html#a821fcf1ff3ab8747a8ec2bd5d13579afaba72ddd512b5365f360ae3a615ccc2b0">LEK_LockedSomePredecessors</a>:</div>
+<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>         DiagID = diag::warn_lock_some_predecessors;</div>
+<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>       <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1thread__safety.html#a821fcf1ff3ab8747a8ec2bd5d13579afa68f44773434adb551d16bd5b24a3802e">LEK_LockedSomeLoopIterations</a>:</div>
+<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>         DiagID = diag::warn_expecting_lock_held_on_loop;</div>
+<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>       <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1thread__safety.html#a821fcf1ff3ab8747a8ec2bd5d13579afa4e84ff7fd53207ff4363ee3825020b26">LEK_LockedAtEndOfFunction</a>:</div>
+<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>         DiagID = diag::warn_no_unlock;</div>
+<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>       <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1thread__safety.html#a821fcf1ff3ab8747a8ec2bd5d13579afa81af1a0ffd07ba7634ba8e5136d547db">LEK_NotLockedAtEndOfFunction</a>:</div>
+<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>         DiagID = diag::warn_expecting_locked;</div>
+<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>     }</div>
+<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>     <span class="keywordflow">if</span> (LocEndOfScope.<a class="code" href="classclang_1_1SourceLocation.html#a1936fc09837ff8a195fa63e29f05796f">isInvalid</a>())</div>
+<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>       LocEndOfScope = <a class="code" href="AnalysisBasedWarnings_8cpp.html#a47e705cedebd5c98401e7750624d218d">FunEndLocation</a>;</div>
+<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span> </div>
+<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>     <a class="code" href="namespaceclang.html#aad93c2ca4f90628847152a2d03cb5b2d" title="A partial diagnostic along with the source location where this diagnostic occurs.">PartialDiagnosticAt</a> Warning(LocEndOfScope, S.PDiag(DiagID) << LockName);</div>
+<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>     <span class="keywordflow">if</span> (LocLocked.<a class="code" href="classclang_1_1SourceLocation.html#ad504978d83973770506b6ddb1d7b48f9" title="Return true if this is a valid SourceLocation object.">isValid</a>()) {</div>
+<div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>       <a class="code" href="namespaceclang.html#aad93c2ca4f90628847152a2d03cb5b2d" title="A partial diagnostic along with the source location where this diagnostic occurs.">PartialDiagnosticAt</a> Note(LocLocked, S.PDiag(diag::note_locked_here));</div>
+<div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>       <a class="code" href="AnalysisBasedWarnings_8cpp.html#a0400cf9c618deb5b82358e439996ebe5">Warnings</a>.push_back(<a class="code" href="namespaceclang_1_1consumed.html#a6f0749fc3d1453737bb8726e8ac289b7">DelayedDiag</a>(Warning, <a class="code" href="namespaceclang_1_1consumed.html#a46298023e56c7c149eb6cc50d83c825e">OptionalNotes</a>(1, Note)));</div>
+<div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>     }</div>
+<div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>     <a class="code" href="AnalysisBasedWarnings_8cpp.html#a0400cf9c618deb5b82358e439996ebe5">Warnings</a>.push_back(<a class="code" href="namespaceclang_1_1consumed.html#a6f0749fc3d1453737bb8726e8ac289b7">DelayedDiag</a>(Warning, <a class="code" href="namespaceclang_1_1consumed.html#a46298023e56c7c149eb6cc50d83c825e">OptionalNotes</a>()));</div>
+<div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>   }</div>
+<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span> </div>
+<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span> </div>
+<div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>   <span class="keywordtype">void</span> handleExclusiveAndShared(Name LockName, <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc1,</div>
+<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>                                 <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc2) {</div>
+<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>     <a class="code" href="namespaceclang.html#aad93c2ca4f90628847152a2d03cb5b2d" title="A partial diagnostic along with the source location where this diagnostic occurs.">PartialDiagnosticAt</a> Warning(</div>
+<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>       Loc1, S.PDiag(diag::warn_lock_exclusive_and_shared) << LockName);</div>
+<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>     <a class="code" href="namespaceclang.html#aad93c2ca4f90628847152a2d03cb5b2d" title="A partial diagnostic along with the source location where this diagnostic occurs.">PartialDiagnosticAt</a> Note(</div>
+<div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>       Loc2, S.PDiag(diag::note_lock_exclusive_and_shared) << LockName);</div>
+<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>     <a class="code" href="AnalysisBasedWarnings_8cpp.html#a0400cf9c618deb5b82358e439996ebe5">Warnings</a>.push_back(<a class="code" href="namespaceclang_1_1consumed.html#a6f0749fc3d1453737bb8726e8ac289b7">DelayedDiag</a>(Warning, <a class="code" href="namespaceclang_1_1consumed.html#a46298023e56c7c149eb6cc50d83c825e">OptionalNotes</a>(1, Note)));</div>
+<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>   }</div>
+<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span> </div>
+<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>   <span class="keywordtype">void</span> handleNoMutexHeld(<span class="keyword">const</span> <a class="code" href="classclang_1_1NamedDecl.html">NamedDecl</a> *D, <a class="code" href="namespaceclang_1_1thread__safety.html#ab56bea71ea30a44d4acee3664a76e76a">ProtectedOperationKind</a> POK,</div>
+<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>                          <a class="code" href="namespaceclang_1_1thread__safety.html#a8b642bd0ea1baf8d1a9284ff6973c877">AccessKind</a> AK, <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc) {</div>
+<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>     assert((POK == <a class="code" href="namespaceclang_1_1thread__safety.html#ab56bea71ea30a44d4acee3664a76e76aa70dfc3b2d8f5584b0e50e3b31cbb50b6" title="Reading or writing a variable (e.g. x in x = 5;)">POK_VarAccess</a> || POK == <a class="code" href="namespaceclang_1_1thread__safety.html#ab56bea71ea30a44d4acee3664a76e76aa59d17bd54613e19bf1186fcf30eea484" title="Dereferencing a variable (e.g. p in *p = 5;)">POK_VarDereference</a>)</div>
+<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>              && <span class="stringliteral">"Only works for variables"</span>);</div>
+<div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>     <span class="keywordtype">unsigned</span> DiagID = POK == <a class="code" href="namespaceclang_1_1thread__safety.html#ab56bea71ea30a44d4acee3664a76e76aa70dfc3b2d8f5584b0e50e3b31cbb50b6" title="Reading or writing a variable (e.g. x in x = 5;)">POK_VarAccess</a>?</div>
+<div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>                         diag::warn_variable_requires_any_lock:</div>
+<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>                         diag::warn_var_deref_requires_any_lock;</div>
+<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>     <a class="code" href="namespaceclang.html#aad93c2ca4f90628847152a2d03cb5b2d" title="A partial diagnostic along with the source location where this diagnostic occurs.">PartialDiagnosticAt</a> Warning(Loc, S.PDiag(DiagID)</div>
+<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>       << D-><a class="code" href="classclang_1_1NamedDecl.html#a99d453b314da693c106d5acbc598fc6c">getNameAsString</a>() << <a class="code" href="namespaceclang_1_1thread__safety.html#a05abb43bcc4026ddba023ef3d95beb23" title="Helper function that returns a LockKind required for the given level of access.">getLockKindFromAccessKind</a>(AK));</div>
+<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>     <a class="code" href="AnalysisBasedWarnings_8cpp.html#a0400cf9c618deb5b82358e439996ebe5">Warnings</a>.push_back(<a class="code" href="namespaceclang_1_1consumed.html#a6f0749fc3d1453737bb8726e8ac289b7">DelayedDiag</a>(Warning, <a class="code" href="namespaceclang_1_1consumed.html#a46298023e56c7c149eb6cc50d83c825e">OptionalNotes</a>()));</div>
+<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>   }</div>
+<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span> </div>
+<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>   <span class="keywordtype">void</span> handleMutexNotHeld(<span class="keyword">const</span> <a class="code" href="classclang_1_1NamedDecl.html">NamedDecl</a> *D, <a class="code" href="namespaceclang_1_1thread__safety.html#ab56bea71ea30a44d4acee3664a76e76a">ProtectedOperationKind</a> POK,</div>
+<div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>                           Name LockName, <a class="code" href="namespaceclang_1_1thread__safety.html#afe1b60f7cb2fcf79bb2d9b0c5f2dac23">LockKind</a> LK, <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc,</div>
+<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>                           Name *PossibleMatch) {</div>
+<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>     <span class="keywordtype">unsigned</span> DiagID = 0;</div>
+<div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>     <span class="keywordflow">if</span> (PossibleMatch) {</div>
+<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>       <span class="keywordflow">switch</span> (POK) {</div>
+<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>         <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1thread__safety.html#ab56bea71ea30a44d4acee3664a76e76aa70dfc3b2d8f5584b0e50e3b31cbb50b6" title="Reading or writing a variable (e.g. x in x = 5;)">POK_VarAccess</a>:</div>
+<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>           DiagID = diag::warn_variable_requires_lock_precise;</div>
+<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>           <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>         <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1thread__safety.html#ab56bea71ea30a44d4acee3664a76e76aa59d17bd54613e19bf1186fcf30eea484" title="Dereferencing a variable (e.g. p in *p = 5;)">POK_VarDereference</a>:</div>
+<div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>           DiagID = diag::warn_var_deref_requires_lock_precise;</div>
+<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>           <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>         <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1thread__safety.html#ab56bea71ea30a44d4acee3664a76e76aa1019aff9a8f2ac8429ec903e579137f3" title="Making a function call (e.g. fool())">POK_FunctionCall</a>:</div>
+<div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>           DiagID = diag::warn_fun_requires_lock_precise;</div>
+<div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>           <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>       }</div>
+<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>       <a class="code" href="namespaceclang.html#aad93c2ca4f90628847152a2d03cb5b2d" title="A partial diagnostic along with the source location where this diagnostic occurs.">PartialDiagnosticAt</a> Warning(Loc, S.PDiag(DiagID)</div>
+<div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>         << D-><a class="code" href="classclang_1_1NamedDecl.html#a99d453b314da693c106d5acbc598fc6c">getNameAsString</a>() << LockName << LK);</div>
+<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>       <a class="code" href="namespaceclang.html#aad93c2ca4f90628847152a2d03cb5b2d" title="A partial diagnostic along with the source location where this diagnostic occurs.">PartialDiagnosticAt</a> Note(Loc, S.PDiag(diag::note_found_mutex_near_match)</div>
+<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>                                << *PossibleMatch);</div>
+<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>       <a class="code" href="AnalysisBasedWarnings_8cpp.html#a0400cf9c618deb5b82358e439996ebe5">Warnings</a>.push_back(<a class="code" href="namespaceclang_1_1consumed.html#a6f0749fc3d1453737bb8726e8ac289b7">DelayedDiag</a>(Warning, <a class="code" href="namespaceclang_1_1consumed.html#a46298023e56c7c149eb6cc50d83c825e">OptionalNotes</a>(1, Note)));</div>
+<div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>       <span class="keywordflow">switch</span> (POK) {</div>
+<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>         <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1thread__safety.html#ab56bea71ea30a44d4acee3664a76e76aa70dfc3b2d8f5584b0e50e3b31cbb50b6" title="Reading or writing a variable (e.g. x in x = 5;)">POK_VarAccess</a>:</div>
+<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>           DiagID = diag::warn_variable_requires_lock;</div>
+<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>           <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>         <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1thread__safety.html#ab56bea71ea30a44d4acee3664a76e76aa59d17bd54613e19bf1186fcf30eea484" title="Dereferencing a variable (e.g. p in *p = 5;)">POK_VarDereference</a>:</div>
+<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>           DiagID = diag::warn_var_deref_requires_lock;</div>
+<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>           <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>         <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1thread__safety.html#ab56bea71ea30a44d4acee3664a76e76aa1019aff9a8f2ac8429ec903e579137f3" title="Making a function call (e.g. fool())">POK_FunctionCall</a>:</div>
+<div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>           DiagID = diag::warn_fun_requires_lock;</div>
+<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>           <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>       }</div>
+<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>       <a class="code" href="namespaceclang.html#aad93c2ca4f90628847152a2d03cb5b2d" title="A partial diagnostic along with the source location where this diagnostic occurs.">PartialDiagnosticAt</a> Warning(Loc, S.PDiag(DiagID)</div>
+<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>         << D-><a class="code" href="classclang_1_1NamedDecl.html#a99d453b314da693c106d5acbc598fc6c">getNameAsString</a>() << LockName << LK);</div>
+<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>       <a class="code" href="AnalysisBasedWarnings_8cpp.html#a0400cf9c618deb5b82358e439996ebe5">Warnings</a>.push_back(<a class="code" href="namespaceclang_1_1consumed.html#a6f0749fc3d1453737bb8726e8ac289b7">DelayedDiag</a>(Warning, <a class="code" href="namespaceclang_1_1consumed.html#a46298023e56c7c149eb6cc50d83c825e">OptionalNotes</a>()));</div>
+<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>     }</div>
+<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>   }</div>
+<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span> </div>
+<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>   <span class="keywordtype">void</span> handleFunExcludesLock(Name FunName, Name LockName, <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc) {</div>
+<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>     <a class="code" href="namespaceclang.html#aad93c2ca4f90628847152a2d03cb5b2d" title="A partial diagnostic along with the source location where this diagnostic occurs.">PartialDiagnosticAt</a> Warning(Loc,</div>
+<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>       S.PDiag(diag::warn_fun_excludes_mutex) << FunName << LockName);</div>
+<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>     <a class="code" href="AnalysisBasedWarnings_8cpp.html#a0400cf9c618deb5b82358e439996ebe5">Warnings</a>.push_back(<a class="code" href="namespaceclang_1_1consumed.html#a6f0749fc3d1453737bb8726e8ac289b7">DelayedDiag</a>(Warning, <a class="code" href="namespaceclang_1_1consumed.html#a46298023e56c7c149eb6cc50d83c825e">OptionalNotes</a>()));</div>
+<div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>   }</div>
+<div class="line"><a name="l01444"></a><span class="lineno"> 1444</span> };</div>
+<div class="line"><a name="l01445"></a><span class="lineno"> 1445</span> }</div>
+<div class="line"><a name="l01446"></a><span class="lineno"> 1446</span> }</div>
+<div class="line"><a name="l01447"></a><span class="lineno"> 1447</span> }</div>
+<div class="line"><a name="l01448"></a><span class="lineno"> 1448</span> </div>
+<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span> <span class="comment">// -Wconsumed</span></div>
+<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span> </div>
+<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span> <span class="keyword">namespace </span>clang {</div>
+<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span> <span class="keyword">namespace </span>consumed {</div>
+<div class="line"><a name="l01455"></a><span class="lineno"> 1455</span> <span class="keyword">namespace </span>{</div>
+<div class="line"><a name="l01456"></a><span class="lineno"> 1456</span> <span class="keyword">class </span>ConsumedWarningsHandler : <span class="keyword">public</span> ConsumedWarningsHandlerBase {</div>
+<div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>   </div>
+<div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>   <a class="code" href="classclang_1_1Sema.html" title="Sema - This implements semantic analysis and AST building for C.">Sema</a> &<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>;</div>
+<div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>   <a class="code" href="VerifyDiagnosticConsumer_8cpp.html#a0f00e86935c082a81574e1f0a022431a">DiagList</a> <a class="code" href="AnalysisBasedWarnings_8cpp.html#a0400cf9c618deb5b82358e439996ebe5">Warnings</a>;</div>
+<div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>   </div>
+<div class="line"><a name="l01461"></a><span class="lineno"> 1461</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>   </div>
+<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>   ConsumedWarningsHandler(<a class="code" href="classclang_1_1Sema.html" title="Sema - This implements semantic analysis and AST building for C.">Sema</a> &S) : S(S) {}</div>
+<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>   </div>
+<div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>   <span class="keywordtype">void</span> emitDiagnostics() {</div>
+<div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>     <a class="code" href="AnalysisBasedWarnings_8cpp.html#a0400cf9c618deb5b82358e439996ebe5">Warnings</a>.sort(SortDiagBySourceLocation(S.getSourceManager()));</div>
+<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>     </div>
+<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>     <span class="keywordflow">for</span> (DiagList::iterator I = <a class="code" href="AnalysisBasedWarnings_8cpp.html#a0400cf9c618deb5b82358e439996ebe5">Warnings</a>.begin(), E = <a class="code" href="AnalysisBasedWarnings_8cpp.html#a0400cf9c618deb5b82358e439996ebe5">Warnings</a>.end();</div>
+<div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>          I != E; ++I) {</div>
+<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>       </div>
+<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>       <span class="keyword">const</span> <a class="code" href="namespaceclang_1_1consumed.html#a46298023e56c7c149eb6cc50d83c825e">OptionalNotes</a> &Notes = I->second;</div>
+<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>       S.Diag(I->first.first, I->first.second);</div>
+<div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>       </div>
+<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>       <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> NoteI = 0, NoteN = Notes.size(); NoteI != NoteN; ++NoteI) {</div>
+<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>         S.Diag(Notes[NoteI].first, Notes[NoteI].second);</div>
+<div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>       }</div>
+<div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>     }</div>
+<div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>   }</div>
+<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>   </div>
+<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>   <span class="keywordtype">void</span> warnLoopStateMismatch(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc, StringRef VariableName) {</div>
+<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>     <a class="code" href="namespaceclang.html#aad93c2ca4f90628847152a2d03cb5b2d" title="A partial diagnostic along with the source location where this diagnostic occurs.">PartialDiagnosticAt</a> Warning(Loc, S.PDiag(diag::warn_loop_state_mismatch) <<</div>
+<div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>       VariableName);</div>
+<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>     </div>
+<div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>     <a class="code" href="AnalysisBasedWarnings_8cpp.html#a0400cf9c618deb5b82358e439996ebe5">Warnings</a>.push_back(<a class="code" href="namespaceclang_1_1consumed.html#a6f0749fc3d1453737bb8726e8ac289b7">DelayedDiag</a>(Warning, <a class="code" href="namespaceclang_1_1consumed.html#a46298023e56c7c149eb6cc50d83c825e">OptionalNotes</a>()));</div>
+<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>   }</div>
+<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>   </div>
+<div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>   <span class="keywordtype">void</span> warnParamReturnTypestateMismatch(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc,</div>
+<div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>                                         StringRef VariableName,</div>
+<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>                                         StringRef ExpectedState,</div>
+<div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>                                         StringRef ObservedState) {</div>
+<div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>     </div>
+<div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>     <a class="code" href="namespaceclang.html#aad93c2ca4f90628847152a2d03cb5b2d" title="A partial diagnostic along with the source location where this diagnostic occurs.">PartialDiagnosticAt</a> Warning(Loc, S.PDiag(</div>
+<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>       diag::warn_param_return_typestate_mismatch) << VariableName <<</div>
+<div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>         ExpectedState << ObservedState);</div>
+<div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>     </div>
+<div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>     <a class="code" href="AnalysisBasedWarnings_8cpp.html#a0400cf9c618deb5b82358e439996ebe5">Warnings</a>.push_back(<a class="code" href="namespaceclang_1_1consumed.html#a6f0749fc3d1453737bb8726e8ac289b7">DelayedDiag</a>(Warning, <a class="code" href="namespaceclang_1_1consumed.html#a46298023e56c7c149eb6cc50d83c825e">OptionalNotes</a>()));</div>
+<div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>   }</div>
+<div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>   </div>
+<div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>   <span class="keywordtype">void</span> warnParamTypestateMismatch(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc, StringRef ExpectedState,</div>
+<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>                                   StringRef ObservedState) {</div>
+<div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>     </div>
+<div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>     <a class="code" href="namespaceclang.html#aad93c2ca4f90628847152a2d03cb5b2d" title="A partial diagnostic along with the source location where this diagnostic occurs.">PartialDiagnosticAt</a> Warning(Loc, S.PDiag(</div>
+<div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>       diag::warn_param_typestate_mismatch) << ExpectedState << ObservedState);</div>
+<div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>     </div>
+<div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>     <a class="code" href="AnalysisBasedWarnings_8cpp.html#a0400cf9c618deb5b82358e439996ebe5">Warnings</a>.push_back(<a class="code" href="namespaceclang_1_1consumed.html#a6f0749fc3d1453737bb8726e8ac289b7">DelayedDiag</a>(Warning, <a class="code" href="namespaceclang_1_1consumed.html#a46298023e56c7c149eb6cc50d83c825e">OptionalNotes</a>()));</div>
+<div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>   }</div>
+<div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>   </div>
+<div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>   <span class="keywordtype">void</span> warnReturnTypestateForUnconsumableType(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc,</div>
+<div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>                                               StringRef TypeName) {</div>
+<div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>     <a class="code" href="namespaceclang.html#aad93c2ca4f90628847152a2d03cb5b2d" title="A partial diagnostic along with the source location where this diagnostic occurs.">PartialDiagnosticAt</a> Warning(Loc, S.PDiag(</div>
+<div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>       diag::warn_return_typestate_for_unconsumable_type) << TypeName);</div>
+<div class="line"><a name="l01512"></a><span class="lineno"> 1512</span>     </div>
+<div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>     <a class="code" href="AnalysisBasedWarnings_8cpp.html#a0400cf9c618deb5b82358e439996ebe5">Warnings</a>.push_back(<a class="code" href="namespaceclang_1_1consumed.html#a6f0749fc3d1453737bb8726e8ac289b7">DelayedDiag</a>(Warning, <a class="code" href="namespaceclang_1_1consumed.html#a46298023e56c7c149eb6cc50d83c825e">OptionalNotes</a>()));</div>
+<div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>   }</div>
+<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>   </div>
+<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>   <span class="keywordtype">void</span> warnReturnTypestateMismatch(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc, StringRef ExpectedState,</div>
+<div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>                                    StringRef ObservedState) {</div>
+<div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>                                     </div>
+<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>     <a class="code" href="namespaceclang.html#aad93c2ca4f90628847152a2d03cb5b2d" title="A partial diagnostic along with the source location where this diagnostic occurs.">PartialDiagnosticAt</a> Warning(Loc, S.PDiag(</div>
+<div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>       diag::warn_return_typestate_mismatch) << ExpectedState << ObservedState);</div>
+<div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>     </div>
+<div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>     <a class="code" href="AnalysisBasedWarnings_8cpp.html#a0400cf9c618deb5b82358e439996ebe5">Warnings</a>.push_back(<a class="code" href="namespaceclang_1_1consumed.html#a6f0749fc3d1453737bb8726e8ac289b7">DelayedDiag</a>(Warning, <a class="code" href="namespaceclang_1_1consumed.html#a46298023e56c7c149eb6cc50d83c825e">OptionalNotes</a>()));</div>
+<div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>   }</div>
+<div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>   </div>
+<div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>   <span class="keywordtype">void</span> warnUseOfTempInInvalidState(StringRef MethodName, StringRef <a class="code" href="Format_8cpp.html#a83e9e4ff6cb05dbdf72ab2a01aa289c0">State</a>,</div>
+<div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>                                    <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc) {</div>
+<div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>                                                     </div>
+<div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>     <a class="code" href="namespaceclang.html#aad93c2ca4f90628847152a2d03cb5b2d" title="A partial diagnostic along with the source location where this diagnostic occurs.">PartialDiagnosticAt</a> Warning(Loc, S.PDiag(</div>
+<div class="line"><a name="l01529"></a><span class="lineno"> 1529</span>       diag::warn_use_of_temp_in_invalid_state) << MethodName << <a class="code" href="Format_8cpp.html#a83e9e4ff6cb05dbdf72ab2a01aa289c0">State</a>);</div>
+<div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>     </div>
+<div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>     <a class="code" href="AnalysisBasedWarnings_8cpp.html#a0400cf9c618deb5b82358e439996ebe5">Warnings</a>.push_back(<a class="code" href="namespaceclang_1_1consumed.html#a6f0749fc3d1453737bb8726e8ac289b7">DelayedDiag</a>(Warning, <a class="code" href="namespaceclang_1_1consumed.html#a46298023e56c7c149eb6cc50d83c825e">OptionalNotes</a>()));</div>
+<div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>   }</div>
+<div class="line"><a name="l01533"></a><span class="lineno"> 1533</span>   </div>
+<div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>   <span class="keywordtype">void</span> warnUseInInvalidState(StringRef MethodName, StringRef VariableName,</div>
+<div class="line"><a name="l01535"></a><span class="lineno"> 1535</span>                                   StringRef State, <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc) {</div>
+<div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>   </div>
+<div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>     <a class="code" href="namespaceclang.html#aad93c2ca4f90628847152a2d03cb5b2d" title="A partial diagnostic along with the source location where this diagnostic occurs.">PartialDiagnosticAt</a> Warning(Loc, S.PDiag(diag::warn_use_in_invalid_state) <<</div>
+<div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>                                 MethodName << VariableName << <a class="code" href="Format_8cpp.html#a83e9e4ff6cb05dbdf72ab2a01aa289c0">State</a>);</div>
+<div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>     </div>
+<div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>     <a class="code" href="AnalysisBasedWarnings_8cpp.html#a0400cf9c618deb5b82358e439996ebe5">Warnings</a>.push_back(<a class="code" href="namespaceclang_1_1consumed.html#a6f0749fc3d1453737bb8726e8ac289b7">DelayedDiag</a>(Warning, <a class="code" href="namespaceclang_1_1consumed.html#a46298023e56c7c149eb6cc50d83c825e">OptionalNotes</a>()));</div>
+<div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>   }</div>
+<div class="line"><a name="l01542"></a><span class="lineno"> 1542</span> };</div>
+<div class="line"><a name="l01543"></a><span class="lineno"> 1543</span> }}}</div>
+<div class="line"><a name="l01544"></a><span class="lineno"> 1544</span> </div>
+<div class="line"><a name="l01545"></a><span class="lineno"> 1545</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l01546"></a><span class="lineno"> 1546</span> <span class="comment">// AnalysisBasedWarnings - Worker object used by Sema to execute analysis-based</span></div>
+<div class="line"><a name="l01547"></a><span class="lineno"> 1547</span> <span class="comment">//  warnings on a function, method, or block.</span></div>
+<div class="line"><a name="l01548"></a><span class="lineno"> 1548</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l01549"></a><span class="lineno"> 1549</span> </div>
+<div class="line"><a name="l01550"></a><span class="lineno"><a class="code" href="classclang_1_1sema_1_1AnalysisBasedWarnings_1_1Policy.html#a7f8fa9a40e3db8b3f8bf4fa907e4a5fc"> 1550</a></span> <a class="code" href="classclang_1_1sema_1_1AnalysisBasedWarnings_1_1Policy.html#a7f8fa9a40e3db8b3f8bf4fa907e4a5fc">clang::sema::AnalysisBasedWarnings::Policy::Policy</a>() {</div>
+<div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>   enableCheckFallThrough = 1;</div>
+<div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>   enableCheckUnreachable = 0;</div>
+<div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>   enableThreadSafetyAnalysis = 0;</div>
+<div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>   enableConsumedAnalysis = 0;</div>
+<div class="line"><a name="l01555"></a><span class="lineno"> 1555</span> }</div>
+<div class="line"><a name="l01556"></a><span class="lineno"> 1556</span> </div>
+<div class="line"><a name="l01557"></a><span class="lineno"><a class="code" href="classclang_1_1sema_1_1AnalysisBasedWarnings.html#af361c7703f19512e367547891bc8a30c"> 1557</a></span> <a class="code" href="classclang_1_1sema_1_1AnalysisBasedWarnings.html#af361c7703f19512e367547891bc8a30c">clang::sema::AnalysisBasedWarnings::AnalysisBasedWarnings</a>(<a class="code" href="classclang_1_1Sema.html" title="Sema - This implements semantic analysis and AST building for C.">Sema</a> &s)</div>
+<div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>   : S(s),</div>
+<div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>     NumFunctionsAnalyzed(0),</div>
+<div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>     NumFunctionsWithBadCFGs(0),</div>
+<div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>     NumCFGBlocks(0),</div>
+<div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>     MaxCFGBlocksPerFunction(0),</div>
+<div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>     NumUninitAnalysisFunctions(0),</div>
+<div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>     NumUninitAnalysisVariables(0),</div>
+<div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>     MaxUninitAnalysisVariablesPerFunction(0),</div>
+<div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>     NumUninitAnalysisBlockVisits(0),</div>
+<div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>     MaxUninitAnalysisBlockVisitsPerFunction(0) {</div>
+<div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>   <a class="code" href="classclang_1_1DiagnosticsEngine.html" title="Concrete class used by the front-end to report problems and issues.">DiagnosticsEngine</a> &D = S.getDiagnostics();</div>
+<div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>   DefaultPolicy.enableCheckUnreachable = (<a class="code" href="classunsigned.html">unsigned</a>)</div>
+<div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>     (D.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a1a9de9de7e5ad8218fa06ca8568aa52c" title="Based on the way the client configured the DiagnosticsEngine object, classify the specified diagnosti...">getDiagnosticLevel</a>(diag::warn_unreachable, <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a>()) !=</div>
+<div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>         <a class="code" href="classclang_1_1DiagnosticsEngine.html#a94e5078973aa3a34432e91f3b26263e0a7576ca0c5417d008077e743b3d412234">DiagnosticsEngine::Ignored</a>);</div>
+<div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>   DefaultPolicy.enableThreadSafetyAnalysis = (<a class="code" href="classunsigned.html">unsigned</a>)</div>
+<div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>     (D.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a1a9de9de7e5ad8218fa06ca8568aa52c" title="Based on the way the client configured the DiagnosticsEngine object, classify the specified diagnosti...">getDiagnosticLevel</a>(diag::warn_double_lock, <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a>()) !=</div>
+<div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>      <a class="code" href="classclang_1_1DiagnosticsEngine.html#a94e5078973aa3a34432e91f3b26263e0a7576ca0c5417d008077e743b3d412234">DiagnosticsEngine::Ignored</a>);</div>
+<div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>   DefaultPolicy.enableConsumedAnalysis = (<a class="code" href="classunsigned.html">unsigned</a>)</div>
+<div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>     (D.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a1a9de9de7e5ad8218fa06ca8568aa52c" title="Based on the way the client configured the DiagnosticsEngine object, classify the specified diagnosti...">getDiagnosticLevel</a>(diag::warn_use_in_invalid_state, <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a>()) !=</div>
+<div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>      <a class="code" href="classclang_1_1DiagnosticsEngine.html#a94e5078973aa3a34432e91f3b26263e0a7576ca0c5417d008077e743b3d412234">DiagnosticsEngine::Ignored</a>);</div>
+<div class="line"><a name="l01578"></a><span class="lineno"> 1578</span> }</div>
+<div class="line"><a name="l01579"></a><span class="lineno"> 1579</span> </div>
+<div class="line"><a name="l01580"></a><span class="lineno"><a class="code" href="AnalysisBasedWarnings_8cpp.html#ae275d052f17c92c3a250fbd45f2c3705"> 1580</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="AnalysisBasedWarnings_8cpp.html#ae275d052f17c92c3a250fbd45f2c3705">flushDiagnostics</a>(<a class="code" href="classclang_1_1Sema.html" title="Sema - This implements semantic analysis and AST building for C.">Sema</a> &S, <a class="code" href="classclang_1_1sema_1_1FunctionScopeInfo.html" title="Retains information about a function, method, or block that is currently being parsed.">sema::FunctionScopeInfo</a> *fscope) {</div>
+<div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<sema::PossiblyUnreachableDiag>::iterator</a></div>
+<div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>        i = fscope-><a class="code" href="classclang_1_1sema_1_1FunctionScopeInfo.html#a88d17c5849748f653f7c68a072b3bb87" title="A list of PartialDiagnostics created but delayed within the current function scope. These diagnostics are vetted for reachability prior to being emitted.">PossiblyUnreachableDiags</a>.begin(),</div>
+<div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>        e = fscope-><a class="code" href="classclang_1_1sema_1_1FunctionScopeInfo.html#a88d17c5849748f653f7c68a072b3bb87" title="A list of PartialDiagnostics created but delayed within the current function scope. These diagnostics are vetted for reachability prior to being emitted.">PossiblyUnreachableDiags</a>.end();</div>
+<div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>        i != e; ++i) {</div>
+<div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1sema_1_1PossiblyUnreachableDiag.html">sema::PossiblyUnreachableDiag</a> &D = *i;</div>
+<div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>     S.<a class="code" href="classclang_1_1Sema.html#ad29dfd1f2677772bf6b1da186a7583c3" title="Emit a diagnostic.">Diag</a>(D.<a class="code" href="classclang_1_1sema_1_1PossiblyUnreachableDiag.html#a5927b8e2475b05b3997f3d727b625822">Loc</a>, D.<a class="code" href="classclang_1_1sema_1_1PossiblyUnreachableDiag.html#a8086e99ebff959836cc488b393cf268d">PD</a>);</div>
+<div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>   }</div>
+<div class="line"><a name="l01588"></a><span class="lineno"> 1588</span> }</div>
+<div class="line"><a name="l01589"></a><span class="lineno"> 1589</span> </div>
+<div class="line"><a name="l01590"></a><span class="lineno"> 1590</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1sema_1_1AnalysisBasedWarnings.html#a960fbc412597771fda6ae83e8c16b29b">clang::sema::</a></div>
+<div class="line"><a name="l01591"></a><span class="lineno"><a class="code" href="classclang_1_1sema_1_1AnalysisBasedWarnings.html#a960fbc412597771fda6ae83e8c16b29b"> 1591</a></span> <a class="code" href="classclang_1_1sema_1_1AnalysisBasedWarnings.html#a960fbc412597771fda6ae83e8c16b29b">AnalysisBasedWarnings::IssueWarnings</a>(<a class="code" href="classclang_1_1sema_1_1AnalysisBasedWarnings_1_1Policy.html">sema::AnalysisBasedWarnings::Policy</a> P,</div>
+<div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>                                      <a class="code" href="classclang_1_1sema_1_1FunctionScopeInfo.html" title="Retains information about a function, method, or block that is currently being parsed.">sema::FunctionScopeInfo</a> *fscope,</div>
+<div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>                                      <span class="keyword">const</span> <a class="code" href="classclang_1_1Decl.html">Decl</a> *D, <span class="keyword">const</span> <a class="code" href="classclang_1_1BlockExpr.html">BlockExpr</a> *blkExpr) {</div>
+<div class="line"><a name="l01594"></a><span class="lineno"> 1594</span> </div>
+<div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>   <span class="comment">// We avoid doing analysis-based warnings when there are errors for</span></div>
+<div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>   <span class="comment">// two reasons:</span></div>
+<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>   <span class="comment">// (1) The CFGs often can't be constructed (if the body is invalid), so</span></div>
+<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>   <span class="comment">//     don't bother trying.</span></div>
+<div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>   <span class="comment">// (2) The code already has problems; running the analysis just takes more</span></div>
+<div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>   <span class="comment">//     time.</span></div>
+<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>   <a class="code" href="classclang_1_1DiagnosticsEngine.html" title="Concrete class used by the front-end to report problems and issues.">DiagnosticsEngine</a> &Diags = S.getDiagnostics();</div>
+<div class="line"><a name="l01602"></a><span class="lineno"> 1602</span> </div>
+<div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>   <span class="comment">// Do not do any analysis for declarations in system headers if we are</span></div>
+<div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>   <span class="comment">// going to just ignore them.</span></div>
+<div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>   <span class="keywordflow">if</span> (Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#acb709a931ea0ff1ab26fd513cb70d32a">getSuppressSystemWarnings</a>() &&</div>
+<div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>       S.SourceMgr.isInSystemHeader(D-><a class="code" href="classclang_1_1Decl.html#a2348196ac4e0b1d5ebb1859c31b99eac">getLocation</a>()))</div>
+<div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01608"></a><span class="lineno"> 1608</span> </div>
+<div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>   <span class="comment">// For code in dependent contexts, we'll do this at instantiation time.</span></div>
+<div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>   <span class="keywordflow">if</span> (cast<DeclContext>(D)->isDependentContext())</div>
+<div class="line"><a name="l01611"></a><span class="lineno"> 1611</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01612"></a><span class="lineno"> 1612</span> </div>
+<div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>   <span class="keywordflow">if</span> (Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a863937d8c73ddc216a237f10a83b00bd" title="Errors that actually prevent compilation, not those that are upgraded from a warning by -Werror...">hasUncompilableErrorOccurred</a>() || Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a82c23e36066c68b06270954e5b51ecea">hasFatalErrorOccurred</a>()) {</div>
+<div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>     <span class="comment">// Flush out any possibly unreachable diagnostics.</span></div>
+<div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>     <a class="code" href="AnalysisBasedWarnings_8cpp.html#ae275d052f17c92c3a250fbd45f2c3705">flushDiagnostics</a>(S, fscope);</div>
+<div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>   }</div>
+<div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>   </div>
+<div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>   <span class="keyword">const</span> Stmt *Body = D-><a class="code" href="classclang_1_1Decl.html#a128fd27b232c03226d9a34fcfa959e01">getBody</a>();</div>
+<div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>   assert(Body);</div>
+<div class="line"><a name="l01621"></a><span class="lineno"> 1621</span> </div>
+<div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>   <span class="comment">// Construct the analysis context with the specified CFG build options.</span></div>
+<div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>   <a class="code" href="classclang_1_1AnalysisDeclContext.html">AnalysisDeclContext</a> AC(<span class="comment">/* AnalysisDeclContextManager */</span> 0, D);</div>
+<div class="line"><a name="l01624"></a><span class="lineno"> 1624</span> </div>
+<div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>   <span class="comment">// Don't generate EH edges for CallExprs as we'd like to avoid the n^2</span></div>
+<div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>   <span class="comment">// explosion for destructors that can result and the compile time hit.</span></div>
+<div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>   AC.<a class="code" href="classclang_1_1AnalysisDeclContext.html#a8c873b09afb1c7d38a5259989e7f986c" title="Return the build options used to construct the CFG.">getCFGBuildOptions</a>().<a class="code" href="classclang_1_1CFG_1_1BuildOptions.html#a051bdd77827eba5b4980136e725cf5b6">PruneTriviallyFalseEdges</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>   AC.<a class="code" href="classclang_1_1AnalysisDeclContext.html#a8c873b09afb1c7d38a5259989e7f986c" title="Return the build options used to construct the CFG.">getCFGBuildOptions</a>().<a class="code" href="classclang_1_1CFG_1_1BuildOptions.html#a9c9d1dd74ba0fcc9b04adca41663d5ac">AddEHEdges</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>   AC.<a class="code" href="classclang_1_1AnalysisDeclContext.html#a8c873b09afb1c7d38a5259989e7f986c" title="Return the build options used to construct the CFG.">getCFGBuildOptions</a>().<a class="code" href="classclang_1_1CFG_1_1BuildOptions.html#a9f3870f8091934cf596575fe3834b7a4">AddInitializers</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>   AC.<a class="code" href="classclang_1_1AnalysisDeclContext.html#a8c873b09afb1c7d38a5259989e7f986c" title="Return the build options used to construct the CFG.">getCFGBuildOptions</a>().<a class="code" href="classclang_1_1CFG_1_1BuildOptions.html#a71ed950a150e3af17c5f6ffdc7bec896">AddImplicitDtors</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>   AC.<a class="code" href="classclang_1_1AnalysisDeclContext.html#a8c873b09afb1c7d38a5259989e7f986c" title="Return the build options used to construct the CFG.">getCFGBuildOptions</a>().<a class="code" href="classclang_1_1CFG_1_1BuildOptions.html#a36d618152fd315cc8bd29aea4e0c6072">AddTemporaryDtors</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01632"></a><span class="lineno"> 1632</span> </div>
+<div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>   <span class="comment">// Force that certain expressions appear as CFGElements in the CFG.  This</span></div>
+<div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>   <span class="comment">// is used to speed up various analyses.</span></div>
+<div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>   <span class="comment">// FIXME: This isn't the right factoring.  This is here for initial</span></div>
+<div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>   <span class="comment">// prototyping, but we need a way for analyses to say what expressions they</span></div>
+<div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>   <span class="comment">// expect to always be CFGElements and then fill in the BuildOptions</span></div>
+<div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>   <span class="comment">// appropriately.  This is essentially a layering violation.</span></div>
+<div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>   <span class="keywordflow">if</span> (P.enableCheckUnreachable || P.enableThreadSafetyAnalysis ||</div>
+<div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>       P.enableConsumedAnalysis) {</div>
+<div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>     <span class="comment">// Unreachable code analysis and thread safety require a linearized CFG.</span></div>
+<div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>     AC.<a class="code" href="classclang_1_1AnalysisDeclContext.html#a8c873b09afb1c7d38a5259989e7f986c" title="Return the build options used to construct the CFG.">getCFGBuildOptions</a>().<a class="code" href="classclang_1_1CFG_1_1BuildOptions.html#acdd79f3e8e981e1be91fdf8a3ff01b61">setAllAlwaysAdd</a>();</div>
+<div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>   }</div>
+<div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>   <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>     AC.<a class="code" href="classclang_1_1AnalysisDeclContext.html#a8c873b09afb1c7d38a5259989e7f986c" title="Return the build options used to construct the CFG.">getCFGBuildOptions</a>()</div>
+<div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>       .<a class="code" href="classclang_1_1CFG_1_1BuildOptions.html#a1710e9e5b460eaecf8b19b92ecbe48d5">setAlwaysAdd</a>(Stmt::BinaryOperatorClass)</div>
+<div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>       .<a class="code" href="classclang_1_1CFG_1_1BuildOptions.html#a1710e9e5b460eaecf8b19b92ecbe48d5">setAlwaysAdd</a>(Stmt::CompoundAssignOperatorClass)</div>
+<div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>       .<a class="code" href="classclang_1_1CFG_1_1BuildOptions.html#a1710e9e5b460eaecf8b19b92ecbe48d5">setAlwaysAdd</a>(Stmt::BlockExprClass)</div>
+<div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>       .<a class="code" href="classclang_1_1CFG_1_1BuildOptions.html#a1710e9e5b460eaecf8b19b92ecbe48d5">setAlwaysAdd</a>(Stmt::CStyleCastExprClass)</div>
+<div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>       .<a class="code" href="classclang_1_1CFG_1_1BuildOptions.html#a1710e9e5b460eaecf8b19b92ecbe48d5">setAlwaysAdd</a>(Stmt::DeclRefExprClass)</div>
+<div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>       .<a class="code" href="classclang_1_1CFG_1_1BuildOptions.html#a1710e9e5b460eaecf8b19b92ecbe48d5">setAlwaysAdd</a>(Stmt::ImplicitCastExprClass)</div>
+<div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>       .<a class="code" href="classclang_1_1CFG_1_1BuildOptions.html#a1710e9e5b460eaecf8b19b92ecbe48d5">setAlwaysAdd</a>(Stmt::UnaryOperatorClass)</div>
+<div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>       .<a class="code" href="classclang_1_1CFG_1_1BuildOptions.html#a1710e9e5b460eaecf8b19b92ecbe48d5">setAlwaysAdd</a>(Stmt::AttributedStmtClass);</div>
+<div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>   }</div>
+<div class="line"><a name="l01655"></a><span class="lineno"> 1655</span> </div>
+<div class="line"><a name="l01656"></a><span class="lineno"> 1656</span> </div>
+<div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>   <span class="comment">// Emit delayed diagnostics.</span></div>
+<div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>   <span class="keywordflow">if</span> (!fscope-><a class="code" href="classclang_1_1sema_1_1FunctionScopeInfo.html#a88d17c5849748f653f7c68a072b3bb87" title="A list of PartialDiagnostics created but delayed within the current function scope. These diagnostics are vetted for reachability prior to being emitted.">PossiblyUnreachableDiags</a>.empty()) {</div>
+<div class="line"><a name="l01659"></a><span class="lineno"> 1659</span>     <span class="keywordtype">bool</span> analyzed = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01660"></a><span class="lineno"> 1660</span> </div>
+<div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>     <span class="comment">// Register the expressions with the CFGBuilder.</span></div>
+<div class="line"><a name="l01662"></a><span class="lineno"> 1662</span>     <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<sema::PossiblyUnreachableDiag>::iterator</a></div>
+<div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>          i = fscope-><a class="code" href="classclang_1_1sema_1_1FunctionScopeInfo.html#a88d17c5849748f653f7c68a072b3bb87" title="A list of PartialDiagnostics created but delayed within the current function scope. These diagnostics are vetted for reachability prior to being emitted.">PossiblyUnreachableDiags</a>.begin(),</div>
+<div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>          e = fscope-><a class="code" href="classclang_1_1sema_1_1FunctionScopeInfo.html#a88d17c5849748f653f7c68a072b3bb87" title="A list of PartialDiagnostics created but delayed within the current function scope. These diagnostics are vetted for reachability prior to being emitted.">PossiblyUnreachableDiags</a>.end();</div>
+<div class="line"><a name="l01665"></a><span class="lineno"> 1665</span>          i != e; ++i) {</div>
+<div class="line"><a name="l01666"></a><span class="lineno"> 1666</span>       <span class="keywordflow">if</span> (<span class="keyword">const</span> Stmt *<a class="code" href="namespaceclang_1_1ast__matchers.html#afb4ea98cfdb46fdfbea24fd10b8926e7" title="Matches statements.">stmt</a> = i->stmt)</div>
+<div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>         AC.<a class="code" href="classclang_1_1AnalysisDeclContext.html#a0d6ffa39415248f0b1a9eb1bf6bf1711">registerForcedBlockExpression</a>(<a class="code" href="namespaceclang_1_1ast__matchers.html#afb4ea98cfdb46fdfbea24fd10b8926e7" title="Matches statements.">stmt</a>);</div>
+<div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>     }</div>
+<div class="line"><a name="l01669"></a><span class="lineno"> 1669</span> </div>
+<div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>     <span class="keywordflow">if</span> (AC.<a class="code" href="classclang_1_1AnalysisDeclContext.html#a8a3aa357f5d09fa5c71e952f961a5bca">getCFG</a>()) {</div>
+<div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>       analyzed = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>       <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<sema::PossiblyUnreachableDiag>::iterator</a></div>
+<div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>             i = fscope-><a class="code" href="classclang_1_1sema_1_1FunctionScopeInfo.html#a88d17c5849748f653f7c68a072b3bb87" title="A list of PartialDiagnostics created but delayed within the current function scope. These diagnostics are vetted for reachability prior to being emitted.">PossiblyUnreachableDiags</a>.begin(),</div>
+<div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>             e = fscope-><a class="code" href="classclang_1_1sema_1_1FunctionScopeInfo.html#a88d17c5849748f653f7c68a072b3bb87" title="A list of PartialDiagnostics created but delayed within the current function scope. These diagnostics are vetted for reachability prior to being emitted.">PossiblyUnreachableDiags</a>.end();</div>
+<div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>             i != e; ++i)</div>
+<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>       {</div>
+<div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>         <span class="keyword">const</span> <a class="code" href="classclang_1_1sema_1_1PossiblyUnreachableDiag.html">sema::PossiblyUnreachableDiag</a> &D = *i;</div>
+<div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>         <span class="keywordtype">bool</span> processed = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>         <span class="keywordflow">if</span> (<span class="keyword">const</span> Stmt *<a class="code" href="namespaceclang_1_1ast__matchers.html#afb4ea98cfdb46fdfbea24fd10b8926e7" title="Matches statements.">stmt</a> = i->stmt) {</div>
+<div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>           <span class="keyword">const</span> <a class="code" href="classclang_1_1CFGBlock.html">CFGBlock</a> *block = AC.<a class="code" href="classclang_1_1AnalysisDeclContext.html#a1919479a5dbcdc62c9529bf0e7db314b">getBlockForRegisteredExpression</a>(<a class="code" href="namespaceclang_1_1ast__matchers.html#afb4ea98cfdb46fdfbea24fd10b8926e7" title="Matches statements.">stmt</a>);</div>
+<div class="line"><a name="l01681"></a><span class="lineno"> 1681</span>           <a class="code" href="classclang_1_1CFGReverseBlockReachabilityAnalysis.html">CFGReverseBlockReachabilityAnalysis</a> *cra =</div>
+<div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>               AC.<a class="code" href="classclang_1_1AnalysisDeclContext.html#aa57517d8b32b89faca609d78864a5e5d">getCFGReachablityAnalysis</a>();</div>
+<div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>           <span class="comment">// FIXME: We should be able to assert that block is non-null, but</span></div>
+<div class="line"><a name="l01684"></a><span class="lineno"> 1684</span>           <span class="comment">// the CFG analysis can skip potentially-evaluated expressions in</span></div>
+<div class="line"><a name="l01685"></a><span class="lineno"> 1685</span>           <span class="comment">// edge cases; see test/Sema/vla-2.c.</span></div>
+<div class="line"><a name="l01686"></a><span class="lineno"> 1686</span>           <span class="keywordflow">if</span> (block && cra) {</div>
+<div class="line"><a name="l01687"></a><span class="lineno"> 1687</span>             <span class="comment">// Can this block be reached from the entrance?</span></div>
+<div class="line"><a name="l01688"></a><span class="lineno"> 1688</span>             <span class="keywordflow">if</span> (cra-><a class="code" href="classclang_1_1CFGReverseBlockReachabilityAnalysis.html#a73cec1b9cbbc6e2461470906e6a0720a" title="Returns true if the block 'Dst' can be reached from block 'Src'.">isReachable</a>(&AC.<a class="code" href="classclang_1_1AnalysisDeclContext.html#a8a3aa357f5d09fa5c71e952f961a5bca">getCFG</a>()-><a class="code" href="classclang_1_1CFG.html#ad5618d5c0636efb4d71510bd66c066cf">getEntry</a>(), block))</div>
+<div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>               S.Diag(D.<a class="code" href="classclang_1_1sema_1_1PossiblyUnreachableDiag.html#a5927b8e2475b05b3997f3d727b625822">Loc</a>, D.<a class="code" href="classclang_1_1sema_1_1PossiblyUnreachableDiag.html#a8086e99ebff959836cc488b393cf268d">PD</a>);</div>
+<div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>             processed = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01691"></a><span class="lineno"> 1691</span>           }</div>
+<div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>         }</div>
+<div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>         <span class="keywordflow">if</span> (!processed) {</div>
+<div class="line"><a name="l01694"></a><span class="lineno"> 1694</span>           <span class="comment">// Emit the warning anyway if we cannot map to a basic block.</span></div>
+<div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>           S.Diag(D.<a class="code" href="classclang_1_1sema_1_1PossiblyUnreachableDiag.html#a5927b8e2475b05b3997f3d727b625822">Loc</a>, D.<a class="code" href="classclang_1_1sema_1_1PossiblyUnreachableDiag.html#a8086e99ebff959836cc488b393cf268d">PD</a>);</div>
+<div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>         }</div>
+<div class="line"><a name="l01697"></a><span class="lineno"> 1697</span>       }</div>
+<div class="line"><a name="l01698"></a><span class="lineno"> 1698</span>     }</div>
+<div class="line"><a name="l01699"></a><span class="lineno"> 1699</span> </div>
+<div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>     <span class="keywordflow">if</span> (!analyzed)</div>
+<div class="line"><a name="l01701"></a><span class="lineno"> 1701</span>       <a class="code" href="AnalysisBasedWarnings_8cpp.html#ae275d052f17c92c3a250fbd45f2c3705">flushDiagnostics</a>(S, fscope);</div>
+<div class="line"><a name="l01702"></a><span class="lineno"> 1702</span>   }</div>
+<div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>   </div>
+<div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>   </div>
+<div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>   <span class="comment">// Warning: check missing 'return'</span></div>
+<div class="line"><a name="l01706"></a><span class="lineno"> 1706</span>   <span class="keywordflow">if</span> (P.enableCheckFallThrough) {</div>
+<div class="line"><a name="l01707"></a><span class="lineno"> 1707</span>     <span class="keyword">const</span> CheckFallThroughDiagnostics &CD =</div>
+<div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>       (isa<BlockDecl>(D) ? CheckFallThroughDiagnostics::MakeForBlock()</div>
+<div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>        : (isa<CXXMethodDecl>(D) &&</div>
+<div class="line"><a name="l01710"></a><span class="lineno"> 1710</span>           cast<CXXMethodDecl>(D)->getOverloadedOperator() == OO_Call &&</div>
+<div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>           cast<CXXMethodDecl>(D)->getParent()->isLambda())</div>
+<div class="line"><a name="l01712"></a><span class="lineno"> 1712</span>             ? CheckFallThroughDiagnostics::MakeForLambda()</div>
+<div class="line"><a name="l01713"></a><span class="lineno"> 1713</span>             : CheckFallThroughDiagnostics::MakeForFunction(D));</div>
+<div class="line"><a name="l01714"></a><span class="lineno"> 1714</span>     <a class="code" href="AnalysisBasedWarnings_8cpp.html#a1b3d302c20d4720844ede4364334b315">CheckFallThroughForBody</a>(S, D, Body, blkExpr, CD, AC);</div>
+<div class="line"><a name="l01715"></a><span class="lineno"> 1715</span>   }</div>
+<div class="line"><a name="l01716"></a><span class="lineno"> 1716</span> </div>
+<div class="line"><a name="l01717"></a><span class="lineno"> 1717</span>   <span class="comment">// Warning: check for unreachable code</span></div>
+<div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>   <span class="keywordflow">if</span> (P.enableCheckUnreachable) {</div>
+<div class="line"><a name="l01719"></a><span class="lineno"> 1719</span>     <span class="comment">// Only check for unreachable code on non-template instantiations.</span></div>
+<div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>     <span class="comment">// Different template instantiations can effectively change the control-flow</span></div>
+<div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>     <span class="comment">// and it is very difficult to prove that a snippet of code in a template</span></div>
+<div class="line"><a name="l01722"></a><span class="lineno"> 1722</span>     <span class="comment">// is unreachable for all instantiations.</span></div>
+<div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>     <span class="keywordtype">bool</span> isTemplateInstantiation = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>     <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1FunctionDecl.html">FunctionDecl</a> *Function = dyn_cast<FunctionDecl>(D))</div>
+<div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>       isTemplateInstantiation = Function->isTemplateInstantiation();</div>
+<div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>     <span class="keywordflow">if</span> (!isTemplateInstantiation)</div>
+<div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>       <a class="code" href="AnalysisBasedWarnings_8cpp.html#ad8cb19963479b442c4215960080c76f0" title="CheckUnreachable - Check for unreachable code.">CheckUnreachable</a>(S, AC);</div>
+<div class="line"><a name="l01728"></a><span class="lineno"> 1728</span>   }</div>
+<div class="line"><a name="l01729"></a><span class="lineno"> 1729</span> </div>
+<div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>   <span class="comment">// Check for thread safety violations</span></div>
+<div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>   <span class="keywordflow">if</span> (P.enableThreadSafetyAnalysis) {</div>
+<div class="line"><a name="l01732"></a><span class="lineno"> 1732</span>     <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> FL = AC.<a class="code" href="classclang_1_1AnalysisDeclContext.html#a186957365fe71ad94edd297ac9446ac9">getDecl</a>()-><a class="code" href="classclang_1_1Decl.html#a2348196ac4e0b1d5ebb1859c31b99eac">getLocation</a>();</div>
+<div class="line"><a name="l01733"></a><span class="lineno"> 1733</span>     <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> FEL = AC.<a class="code" href="classclang_1_1AnalysisDeclContext.html#a186957365fe71ad94edd297ac9446ac9">getDecl</a>()-><a class="code" href="classclang_1_1Decl.html#a6eb7b247deafb504e09a9d225bbea0c4">getLocEnd</a>();</div>
+<div class="line"><a name="l01734"></a><span class="lineno"> 1734</span>     thread_safety::ThreadSafetyReporter Reporter(S, FL, FEL);</div>
+<div class="line"><a name="l01735"></a><span class="lineno"> 1735</span>     <span class="keywordflow">if</span> (Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a1a9de9de7e5ad8218fa06ca8568aa52c" title="Based on the way the client configured the DiagnosticsEngine object, classify the specified diagnosti...">getDiagnosticLevel</a>(diag::warn_thread_safety_beta,D-><a class="code" href="classclang_1_1Decl.html#ae66a13d419e9cad2f6c3643bfce45c54">getLocStart</a>())</div>
+<div class="line"><a name="l01736"></a><span class="lineno"> 1736</span>         != <a class="code" href="classclang_1_1DiagnosticsEngine.html#a94e5078973aa3a34432e91f3b26263e0a7576ca0c5417d008077e743b3d412234">DiagnosticsEngine::Ignored</a>)</div>
+<div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>       Reporter.setIssueBetaWarnings(<span class="keyword">true</span>);</div>
+<div class="line"><a name="l01738"></a><span class="lineno"> 1738</span> </div>
+<div class="line"><a name="l01739"></a><span class="lineno"> 1739</span>     <a class="code" href="namespaceclang_1_1thread__safety.html#a56ea92bea1db6d5bc45f9117c85bde6f" title="Check a function's CFG for thread-safety violations.">thread_safety::runThreadSafetyAnalysis</a>(AC, Reporter);</div>
+<div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>     Reporter.emitDiagnostics();</div>
+<div class="line"><a name="l01741"></a><span class="lineno"> 1741</span>   }</div>
+<div class="line"><a name="l01742"></a><span class="lineno"> 1742</span> </div>
+<div class="line"><a name="l01743"></a><span class="lineno"> 1743</span>   <span class="comment">// Check for violations of consumed properties.</span></div>
+<div class="line"><a name="l01744"></a><span class="lineno"> 1744</span>   <span class="keywordflow">if</span> (P.enableConsumedAnalysis) {</div>
+<div class="line"><a name="l01745"></a><span class="lineno"> 1745</span>     consumed::ConsumedWarningsHandler WarningHandler(S);</div>
+<div class="line"><a name="l01746"></a><span class="lineno"> 1746</span>     <a class="code" href="classclang_1_1consumed_1_1ConsumedAnalyzer.html" title="A class that handles the analysis of uniqueness violations.">consumed::ConsumedAnalyzer</a> Analyzer(WarningHandler);</div>
+<div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>     Analyzer.<a class="code" href="classclang_1_1consumed_1_1ConsumedAnalyzer.html#a526c98ca903ea1970c65860fd7df1c4d" title="Check a function's CFG for consumed violations.">run</a>(AC);</div>
+<div class="line"><a name="l01748"></a><span class="lineno"> 1748</span>   }</div>
+<div class="line"><a name="l01749"></a><span class="lineno"> 1749</span> </div>
+<div class="line"><a name="l01750"></a><span class="lineno"> 1750</span>   <span class="keywordflow">if</span> (Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a1a9de9de7e5ad8218fa06ca8568aa52c" title="Based on the way the client configured the DiagnosticsEngine object, classify the specified diagnosti...">getDiagnosticLevel</a>(diag::warn_uninit_var, D-><a class="code" href="classclang_1_1Decl.html#ae66a13d419e9cad2f6c3643bfce45c54">getLocStart</a>())</div>
+<div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>       != <a class="code" href="classclang_1_1DiagnosticsEngine.html#a94e5078973aa3a34432e91f3b26263e0a7576ca0c5417d008077e743b3d412234">DiagnosticsEngine::Ignored</a> ||</div>
+<div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>       Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a1a9de9de7e5ad8218fa06ca8568aa52c" title="Based on the way the client configured the DiagnosticsEngine object, classify the specified diagnosti...">getDiagnosticLevel</a>(diag::warn_sometimes_uninit_var,D-><a class="code" href="classclang_1_1Decl.html#ae66a13d419e9cad2f6c3643bfce45c54">getLocStart</a>())</div>
+<div class="line"><a name="l01753"></a><span class="lineno"> 1753</span>       != <a class="code" href="classclang_1_1DiagnosticsEngine.html#a94e5078973aa3a34432e91f3b26263e0a7576ca0c5417d008077e743b3d412234">DiagnosticsEngine::Ignored</a> ||</div>
+<div class="line"><a name="l01754"></a><span class="lineno"> 1754</span>       Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a1a9de9de7e5ad8218fa06ca8568aa52c" title="Based on the way the client configured the DiagnosticsEngine object, classify the specified diagnosti...">getDiagnosticLevel</a>(diag::warn_maybe_uninit_var, D-><a class="code" href="classclang_1_1Decl.html#ae66a13d419e9cad2f6c3643bfce45c54">getLocStart</a>())</div>
+<div class="line"><a name="l01755"></a><span class="lineno"> 1755</span>       != <a class="code" href="classclang_1_1DiagnosticsEngine.html#a94e5078973aa3a34432e91f3b26263e0a7576ca0c5417d008077e743b3d412234">DiagnosticsEngine::Ignored</a>) {</div>
+<div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1CFG.html">CFG</a> *cfg = AC.<a class="code" href="classclang_1_1AnalysisDeclContext.html#a8a3aa357f5d09fa5c71e952f961a5bca">getCFG</a>()) {</div>
+<div class="line"><a name="l01757"></a><span class="lineno"> 1757</span>       UninitValsDiagReporter reporter(S);</div>
+<div class="line"><a name="l01758"></a><span class="lineno"> 1758</span>       <a class="code" href="structclang_1_1UninitVariablesAnalysisStats.html">UninitVariablesAnalysisStats</a> stats;</div>
+<div class="line"><a name="l01759"></a><span class="lineno"> 1759</span>       std::memset(&stats, 0, <span class="keyword">sizeof</span>(<a class="code" href="structclang_1_1UninitVariablesAnalysisStats.html">UninitVariablesAnalysisStats</a>));</div>
+<div class="line"><a name="l01760"></a><span class="lineno"> 1760</span>       <a class="code" href="namespaceclang.html#a92587c6a54510c709666cac7f416e66f">runUninitializedVariablesAnalysis</a>(*cast<DeclContext>(D), *cfg, AC,</div>
+<div class="line"><a name="l01761"></a><span class="lineno"> 1761</span>                                         reporter, stats);</div>
+<div class="line"><a name="l01762"></a><span class="lineno"> 1762</span> </div>
+<div class="line"><a name="l01763"></a><span class="lineno"> 1763</span>       <span class="keywordflow">if</span> (S.CollectStats && stats.<a class="code" href="structclang_1_1UninitVariablesAnalysisStats.html#ae32f2fd7ef2d70500baf2f8637cf4940">NumVariablesAnalyzed</a> > 0) {</div>
+<div class="line"><a name="l01764"></a><span class="lineno"> 1764</span>         ++NumUninitAnalysisFunctions;</div>
+<div class="line"><a name="l01765"></a><span class="lineno"> 1765</span>         NumUninitAnalysisVariables += stats.<a class="code" href="structclang_1_1UninitVariablesAnalysisStats.html#ae32f2fd7ef2d70500baf2f8637cf4940">NumVariablesAnalyzed</a>;</div>
+<div class="line"><a name="l01766"></a><span class="lineno"> 1766</span>         NumUninitAnalysisBlockVisits += stats.<a class="code" href="structclang_1_1UninitVariablesAnalysisStats.html#ac5ea80b5d7df478524ed81e58db488de">NumBlockVisits</a>;</div>
+<div class="line"><a name="l01767"></a><span class="lineno"> 1767</span>         MaxUninitAnalysisVariablesPerFunction =</div>
+<div class="line"><a name="l01768"></a><span class="lineno"> 1768</span>             std::max(MaxUninitAnalysisVariablesPerFunction,</div>
+<div class="line"><a name="l01769"></a><span class="lineno"> 1769</span>                      stats.<a class="code" href="structclang_1_1UninitVariablesAnalysisStats.html#ae32f2fd7ef2d70500baf2f8637cf4940">NumVariablesAnalyzed</a>);</div>
+<div class="line"><a name="l01770"></a><span class="lineno"> 1770</span>         MaxUninitAnalysisBlockVisitsPerFunction =</div>
+<div class="line"><a name="l01771"></a><span class="lineno"> 1771</span>             std::max(MaxUninitAnalysisBlockVisitsPerFunction,</div>
+<div class="line"><a name="l01772"></a><span class="lineno"> 1772</span>                      stats.<a class="code" href="structclang_1_1UninitVariablesAnalysisStats.html#ac5ea80b5d7df478524ed81e58db488de">NumBlockVisits</a>);</div>
+<div class="line"><a name="l01773"></a><span class="lineno"> 1773</span>       }</div>
+<div class="line"><a name="l01774"></a><span class="lineno"> 1774</span>     }</div>
+<div class="line"><a name="l01775"></a><span class="lineno"> 1775</span>   }</div>
+<div class="line"><a name="l01776"></a><span class="lineno"> 1776</span> </div>
+<div class="line"><a name="l01777"></a><span class="lineno"> 1777</span>   <span class="keywordtype">bool</span> FallThroughDiagFull =</div>
+<div class="line"><a name="l01778"></a><span class="lineno"> 1778</span>       Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a1a9de9de7e5ad8218fa06ca8568aa52c" title="Based on the way the client configured the DiagnosticsEngine object, classify the specified diagnosti...">getDiagnosticLevel</a>(diag::warn_unannotated_fallthrough,</div>
+<div class="line"><a name="l01779"></a><span class="lineno"> 1779</span>                                D-><a class="code" href="classclang_1_1Decl.html#ae66a13d419e9cad2f6c3643bfce45c54">getLocStart</a>()) != <a class="code" href="classclang_1_1DiagnosticsEngine.html#a94e5078973aa3a34432e91f3b26263e0a7576ca0c5417d008077e743b3d412234">DiagnosticsEngine::Ignored</a>;</div>
+<div class="line"><a name="l01780"></a><span class="lineno"> 1780</span>   <span class="keywordtype">bool</span> FallThroughDiagPerFunction =</div>
+<div class="line"><a name="l01781"></a><span class="lineno"> 1781</span>       Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a1a9de9de7e5ad8218fa06ca8568aa52c" title="Based on the way the client configured the DiagnosticsEngine object, classify the specified diagnosti...">getDiagnosticLevel</a>(diag::warn_unannotated_fallthrough_per_function,</div>
+<div class="line"><a name="l01782"></a><span class="lineno"> 1782</span>                                D-><a class="code" href="classclang_1_1Decl.html#ae66a13d419e9cad2f6c3643bfce45c54">getLocStart</a>()) != <a class="code" href="classclang_1_1DiagnosticsEngine.html#a94e5078973aa3a34432e91f3b26263e0a7576ca0c5417d008077e743b3d412234">DiagnosticsEngine::Ignored</a>;</div>
+<div class="line"><a name="l01783"></a><span class="lineno"> 1783</span>   <span class="keywordflow">if</span> (FallThroughDiagFull || FallThroughDiagPerFunction) {</div>
+<div class="line"><a name="l01784"></a><span class="lineno"> 1784</span>     <a class="code" href="AnalysisBasedWarnings_8cpp.html#a56dd9fa882859e7d6f35ffc5b15edefe">DiagnoseSwitchLabelsFallthrough</a>(S, AC, !FallThroughDiagFull);</div>
+<div class="line"><a name="l01785"></a><span class="lineno"> 1785</span>   }</div>
+<div class="line"><a name="l01786"></a><span class="lineno"> 1786</span> </div>
+<div class="line"><a name="l01787"></a><span class="lineno"> 1787</span>   <span class="keywordflow">if</span> (S.getLangOpts().ObjCARCWeak &&</div>
+<div class="line"><a name="l01788"></a><span class="lineno"> 1788</span>       Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a1a9de9de7e5ad8218fa06ca8568aa52c" title="Based on the way the client configured the DiagnosticsEngine object, classify the specified diagnosti...">getDiagnosticLevel</a>(diag::warn_arc_repeated_use_of_weak,</div>
+<div class="line"><a name="l01789"></a><span class="lineno"> 1789</span>                                D-><a class="code" href="classclang_1_1Decl.html#ae66a13d419e9cad2f6c3643bfce45c54">getLocStart</a>()) != <a class="code" href="classclang_1_1DiagnosticsEngine.html#a94e5078973aa3a34432e91f3b26263e0a7576ca0c5417d008077e743b3d412234">DiagnosticsEngine::Ignored</a>)</div>
+<div class="line"><a name="l01790"></a><span class="lineno"> 1790</span>     <a class="code" href="AnalysisBasedWarnings_8cpp.html#a3e0d4d94881239b1857350bbebade3d1">diagnoseRepeatedUseOfWeak</a>(S, fscope, D, AC.<a class="code" href="classclang_1_1AnalysisDeclContext.html#a256bac2bc8021dd087a7239750de5527">getParentMap</a>());</div>
+<div class="line"><a name="l01791"></a><span class="lineno"> 1791</span> </div>
+<div class="line"><a name="l01792"></a><span class="lineno"> 1792</span>   <span class="comment">// Collect statistics about the CFG if it was built.</span></div>
+<div class="line"><a name="l01793"></a><span class="lineno"> 1793</span>   <span class="keywordflow">if</span> (S.CollectStats && AC.<a class="code" href="classclang_1_1AnalysisDeclContext.html#a04f2286e0f9b7fe4a2cd611d01f1dd5f" title="Returns true if we have built a CFG for this analysis context. Note that this doesn't correspond to w...">isCFGBuilt</a>()) {</div>
+<div class="line"><a name="l01794"></a><span class="lineno"> 1794</span>     ++NumFunctionsAnalyzed;</div>
+<div class="line"><a name="l01795"></a><span class="lineno"> 1795</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1CFG.html">CFG</a> *cfg = AC.<a class="code" href="classclang_1_1AnalysisDeclContext.html#a8a3aa357f5d09fa5c71e952f961a5bca">getCFG</a>()) {</div>
+<div class="line"><a name="l01796"></a><span class="lineno"> 1796</span>       <span class="comment">// If we successfully built a CFG for this context, record some more</span></div>
+<div class="line"><a name="l01797"></a><span class="lineno"> 1797</span>       <span class="comment">// detail information about it.</span></div>
+<div class="line"><a name="l01798"></a><span class="lineno"> 1798</span>       NumCFGBlocks += cfg->getNumBlockIDs();</div>
+<div class="line"><a name="l01799"></a><span class="lineno"> 1799</span>       MaxCFGBlocksPerFunction = std::max(MaxCFGBlocksPerFunction,</div>
+<div class="line"><a name="l01800"></a><span class="lineno"> 1800</span>                                          cfg->getNumBlockIDs());</div>
+<div class="line"><a name="l01801"></a><span class="lineno"> 1801</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01802"></a><span class="lineno"> 1802</span>       ++NumFunctionsWithBadCFGs;</div>
+<div class="line"><a name="l01803"></a><span class="lineno"> 1803</span>     }</div>
+<div class="line"><a name="l01804"></a><span class="lineno"> 1804</span>   }</div>
+<div class="line"><a name="l01805"></a><span class="lineno"> 1805</span> }</div>
+<div class="line"><a name="l01806"></a><span class="lineno"> 1806</span> </div>
+<div class="line"><a name="l01807"></a><span class="lineno"><a class="code" href="classclang_1_1sema_1_1AnalysisBasedWarnings.html#abd46e6918a2bdeab4decbdcd39f27dbd"> 1807</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1sema_1_1AnalysisBasedWarnings.html#abd46e6918a2bdeab4decbdcd39f27dbd">clang::sema::AnalysisBasedWarnings::PrintStats</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01808"></a><span class="lineno"> 1808</span>   llvm::errs() << <span class="stringliteral">"\n*** Analysis Based Warnings Stats:\n"</span>;</div>
+<div class="line"><a name="l01809"></a><span class="lineno"> 1809</span> </div>
+<div class="line"><a name="l01810"></a><span class="lineno"> 1810</span>   <span class="keywordtype">unsigned</span> NumCFGsBuilt = NumFunctionsAnalyzed - NumFunctionsWithBadCFGs;</div>
+<div class="line"><a name="l01811"></a><span class="lineno"> 1811</span>   <span class="keywordtype">unsigned</span> AvgCFGBlocksPerFunction =</div>
+<div class="line"><a name="l01812"></a><span class="lineno"> 1812</span>       !NumCFGsBuilt ? 0 : NumCFGBlocks/NumCFGsBuilt;</div>
+<div class="line"><a name="l01813"></a><span class="lineno"> 1813</span>   llvm::errs() << NumFunctionsAnalyzed << <span class="stringliteral">" functions analyzed ("</span></div>
+<div class="line"><a name="l01814"></a><span class="lineno"> 1814</span>                << NumFunctionsWithBadCFGs << <span class="stringliteral">" w/o CFGs).\n"</span></div>
+<div class="line"><a name="l01815"></a><span class="lineno"> 1815</span>                << <span class="stringliteral">"  "</span> << NumCFGBlocks << <span class="stringliteral">" CFG blocks built.\n"</span></div>
+<div class="line"><a name="l01816"></a><span class="lineno"> 1816</span>                << <span class="stringliteral">"  "</span> << AvgCFGBlocksPerFunction</div>
+<div class="line"><a name="l01817"></a><span class="lineno"> 1817</span>                << <span class="stringliteral">" average CFG blocks per function.\n"</span></div>
+<div class="line"><a name="l01818"></a><span class="lineno"> 1818</span>                << <span class="stringliteral">"  "</span> << MaxCFGBlocksPerFunction</div>
+<div class="line"><a name="l01819"></a><span class="lineno"> 1819</span>                << <span class="stringliteral">" max CFG blocks per function.\n"</span>;</div>
+<div class="line"><a name="l01820"></a><span class="lineno"> 1820</span> </div>
+<div class="line"><a name="l01821"></a><span class="lineno"> 1821</span>   <span class="keywordtype">unsigned</span> AvgUninitVariablesPerFunction = !NumUninitAnalysisFunctions ? 0</div>
+<div class="line"><a name="l01822"></a><span class="lineno"> 1822</span>       : NumUninitAnalysisVariables/NumUninitAnalysisFunctions;</div>
+<div class="line"><a name="l01823"></a><span class="lineno"> 1823</span>   <span class="keywordtype">unsigned</span> AvgUninitBlockVisitsPerFunction = !NumUninitAnalysisFunctions ? 0</div>
+<div class="line"><a name="l01824"></a><span class="lineno"> 1824</span>       : NumUninitAnalysisBlockVisits/NumUninitAnalysisFunctions;</div>
+<div class="line"><a name="l01825"></a><span class="lineno"> 1825</span>   llvm::errs() << NumUninitAnalysisFunctions</div>
+<div class="line"><a name="l01826"></a><span class="lineno"> 1826</span>                << <span class="stringliteral">" functions analyzed for uninitialiazed variables\n"</span></div>
+<div class="line"><a name="l01827"></a><span class="lineno"> 1827</span>                << <span class="stringliteral">"  "</span> << NumUninitAnalysisVariables << <span class="stringliteral">" variables analyzed.\n"</span></div>
+<div class="line"><a name="l01828"></a><span class="lineno"> 1828</span>                << <span class="stringliteral">"  "</span> << AvgUninitVariablesPerFunction</div>
+<div class="line"><a name="l01829"></a><span class="lineno"> 1829</span>                << <span class="stringliteral">" average variables per function.\n"</span></div>
+<div class="line"><a name="l01830"></a><span class="lineno"> 1830</span>                << <span class="stringliteral">"  "</span> << MaxUninitAnalysisVariablesPerFunction</div>
+<div class="line"><a name="l01831"></a><span class="lineno"> 1831</span>                << <span class="stringliteral">" max variables per function.\n"</span></div>
+<div class="line"><a name="l01832"></a><span class="lineno"> 1832</span>                << <span class="stringliteral">"  "</span> << NumUninitAnalysisBlockVisits << <span class="stringliteral">" block visits.\n"</span></div>
+<div class="line"><a name="l01833"></a><span class="lineno"> 1833</span>                << <span class="stringliteral">"  "</span> << AvgUninitBlockVisitsPerFunction</div>
+<div class="line"><a name="l01834"></a><span class="lineno"> 1834</span>                << <span class="stringliteral">" average block visits per function.\n"</span></div>
+<div class="line"><a name="l01835"></a><span class="lineno"> 1835</span>                << <span class="stringliteral">"  "</span> << MaxUninitAnalysisBlockVisitsPerFunction</div>
+<div class="line"><a name="l01836"></a><span class="lineno"> 1836</span>                << <span class="stringliteral">" max block visits per function.\n"</span>;</div>
+<div class="line"><a name="l01837"></a><span class="lineno"> 1837</span> }</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:03 for r$LatestRev$ by <a href="http://www.doxygen.org">Doxygen 
+1.8.3.1</a>.</p>
+<p class="footer">
+See the <a href="http://clang.llvm.org">Main Clang Web Page</a> for more 
+information.</p>
+</body>
+</html>






More information about the llvm-commits mailing list