[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/ASTReaderDecl_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ASTReaderDecl_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ASTReaderDecl_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ASTReaderDecl_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,3076 @@
+<!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: ASTReaderDecl.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_76f5807b435ffff72c67c480f0b9aa5b.html">Serialization</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">ASTReaderDecl.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="ASTReaderDecl_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">//===--- ASTReaderDecl.cpp - Decl Deserialization ---------------*- 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 implements the ASTReader::ReadDeclRecord method, which is the</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="comment">// entrypoint for loading a decl.</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="ASTReader_8h.html">clang/Serialization/ASTReader.h</a>"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="preprocessor">#include "<a class="code" href="ASTCommon_8h.html">ASTCommon.h</a>"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="preprocessor">#include "<a class="code" href="ASTReaderInternals_8h.html">ASTReaderInternals.h</a>"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="preprocessor">#include "<a class="code" href="ASTConsumer_8h.html">clang/AST/ASTConsumer.h</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</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="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="DeclGroup_8h.html">clang/AST/DeclGroup.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="DeclVisitor_8h.html">clang/AST/DeclVisitor.h</a>"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="preprocessor">#include "<a class="code" href="Expr_8h.html">clang/AST/Expr.h</a>"</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="preprocessor">#include "<a class="code" href="IdentifierResolver_8h.html">clang/Sema/IdentifierResolver.h</a>"</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="preprocessor">#include "<a class="code" href="Sema_8h.html">clang/Sema/Sema.h</a>"</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="preprocessor">#include "<a class="code" href="SemaDiagnostic_8h.html">clang/Sema/SemaDiagnostic.h</a>"</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="preprocessor">#include "llvm/Support/SaveAndRestore.h"</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="keyword">using namespace </span>clang;</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="keyword">using namespace </span>clang::serialization;</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> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span> <span class="comment">// Declaration deserialization</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span> <span class="comment">//===----------------------------------------------------------------------===//</span></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> <span class="keyword">namespace </span>clang {</div>
+<div class="line"><a name="l00037"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html">   37</a></span>   <span class="keyword">class </span><a class="code" href="classclang_1_1ASTDeclReader.html">ASTDeclReader</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1DeclVisitor.html" title="A simple visitor class that helps create declaration visitors.">DeclVisitor</a><ASTDeclReader, void> {</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>     <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="l00039"></a><span class="lineno">   39</span>     ModuleFile &F;</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>     <span class="keyword">const</span> <a class="code" href="namespaceclang_1_1serialization.html#af3f9c681595246da4bb499bd210e7f36" title="An ID number that refers to a declaration in an AST file.">DeclID</a> ThisDeclID;</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>     <span class="keyword">const</span> <span class="keywordtype">unsigned</span> RawLocation;</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>     <span class="keyword">typedef</span> <a class="code" href="classllvm_1_1SmallVector.html">ASTReader::RecordData</a> <a class="code" href="classllvm_1_1SmallVector.html">RecordData</a>;</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>     <span class="keyword">const</span> <a class="code" href="classllvm_1_1SmallVector.html">RecordData</a> &Record;</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>     <span class="keywordtype">unsigned</span> &Idx;</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>     <a class="code" href="namespaceclang_1_1serialization.html#a0e09d1ee46891ec8fe62b5ab5b583d12" title="An ID number that refers to a type in an AST file.">TypeID</a> TypeIDForTypeDecl;</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>     <span class="keywordtype">bool</span> HasPendingBody;</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>     uint64_t GetCurrentCursorOffset();</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="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> ReadSourceLocation(<span class="keyword">const</span> <a class="code" href="classllvm_1_1SmallVector.html">RecordData</a> &R, <span class="keywordtype">unsigned</span> &I) {</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>       <span class="keywordflow">return</span> Reader.ReadSourceLocation(F, R, I);</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>     </div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>     <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> ReadSourceRange(<span class="keyword">const</span> <a class="code" href="classllvm_1_1SmallVector.html">RecordData</a> &R, <span class="keywordtype">unsigned</span> &I) {</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>       <span class="keywordflow">return</span> Reader.ReadSourceRange(F, R, I);</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>     <a class="code" href="classclang_1_1TypeSourceInfo.html" title="A container of type source information.">TypeSourceInfo</a> *GetTypeSourceInfo(<span class="keyword">const</span> <a class="code" href="classllvm_1_1SmallVector.html">RecordData</a> &R, <span class="keywordtype">unsigned</span> &I) {</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>       <span class="keywordflow">return</span> Reader.GetTypeSourceInfo(F, R, I);</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>     </div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</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> ReadDeclID(<span class="keyword">const</span> <a class="code" href="classllvm_1_1SmallVector.html">RecordData</a> &R, <span class="keywordtype">unsigned</span> &I) {</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>       <span class="keywordflow">return</span> Reader.ReadDeclID(F, R, I);</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>     </div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>     <a class="code" href="classclang_1_1Decl.html">Decl</a> *ReadDecl(<span class="keyword">const</span> <a class="code" href="classllvm_1_1SmallVector.html">RecordData</a> &R, <span class="keywordtype">unsigned</span> &I) {</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>       <span class="keywordflow">return</span> Reader.ReadDecl(F, R, I);</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> </div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>     <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>     T *ReadDeclAs(<span class="keyword">const</span> <a class="code" href="classllvm_1_1SmallVector.html">RecordData</a> &R, <span class="keywordtype">unsigned</span> &I) {</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>       <span class="keywordflow">return</span> Reader.ReadDeclAs<T>(F, R, I);</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> ReadQualifierInfo(<a class="code" href="structclang_1_1QualifierInfo.html">QualifierInfo</a> &Info,</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>                            <span class="keyword">const</span> <a class="code" href="classllvm_1_1SmallVector.html">RecordData</a> &R, <span class="keywordtype">unsigned</span> &I) {</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>       Reader.ReadQualifierInfo(F, Info, R, I);</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>     </div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>     <span class="keywordtype">void</span> ReadDeclarationNameLoc(<a class="code" href="structclang_1_1DeclarationNameLoc.html">DeclarationNameLoc</a> &DNLoc, <a class="code" href="classclang_1_1DeclarationName.html">DeclarationName</a> Name,</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>                                 <span class="keyword">const</span> <a class="code" href="classllvm_1_1SmallVector.html">RecordData</a> &R, <span class="keywordtype">unsigned</span> &I) {</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>       Reader.ReadDeclarationNameLoc(F, DNLoc, Name, R, I);</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>     }</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>     </div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>     <span class="keywordtype">void</span> ReadDeclarationNameInfo(<a class="code" href="structclang_1_1DeclarationNameInfo.html">DeclarationNameInfo</a> &NameInfo,</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>                                 <span class="keyword">const</span> <a class="code" href="classllvm_1_1SmallVector.html">RecordData</a> &R, <span class="keywordtype">unsigned</span> &I) {</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>       Reader.ReadDeclarationNameInfo(F, NameInfo, R, I);</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>     }</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>     <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> readSubmoduleID(<span class="keyword">const</span> <a class="code" href="classllvm_1_1SmallVector.html">RecordData</a> &R, </div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>                                                <span class="keywordtype">unsigned</span> &I) {</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>       <span class="keywordflow">if</span> (I >= R.size())</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>         <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>       </div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>       <span class="keywordflow">return</span> Reader.getGlobalSubmoduleID(F, R[I++]);</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>     }</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>     <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *readModule(<span class="keyword">const</span> <a class="code" href="classllvm_1_1SmallVector.html">RecordData</a> &R, <span class="keywordtype">unsigned</span> &I) {</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>       <span class="keywordflow">return</span> Reader.getSubmodule(readSubmoduleID(R, I));</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>     }</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>     <span class="keywordtype">void</span> ReadCXXDefinitionData(<span class="keyword">struct</span> CXXRecordDecl::DefinitionData &Data,</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>                                <span class="keyword">const</span> <a class="code" href="classllvm_1_1SmallVector.html">RecordData</a> &R, <span class="keywordtype">unsigned</span> &I);</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 RAII class used to capture the first ID within a redeclaration</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span> <span class="comment">    /// chain and to introduce it into the list of pending redeclaration chains</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span> <span class="comment">    /// on destruction.</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span> <span class="comment">    ///</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span> <span class="comment">    /// The caller can choose not to introduce this ID into the redeclaration</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span> <span class="comment">    /// chain by calling \c suppress().</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span> <span class="comment"></span>    <span class="keyword">class </span>RedeclarableResult {</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>       <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="l00114"></a><span class="lineno">  114</span>       <a class="code" href="namespaceclang_1_1serialization.html#a55ccff09ed644b98b2b7c5915b601c14">GlobalDeclID</a> FirstID;</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>       <span class="keyword">mutable</span> <span class="keywordtype">bool</span> Owning;</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>       <a class="code" href="classclang_1_1Decl.html#a4c591bf2c0aa4f4d5f343ec665cbf196" title="Lists the kind of concrete classes of Decl.">Decl::Kind</a> DeclKind;</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> operator=(RedeclarableResult &) LLVM_DELETED_FUNCTION;</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>       RedeclarableResult(<a class="code" href="classclang_1_1ASTReader.html" title="Reads an AST files chain containing the contents of a translation unit.">ASTReader</a> &Reader, <a class="code" href="namespaceclang_1_1serialization.html#a55ccff09ed644b98b2b7c5915b601c14">GlobalDeclID</a> FirstID,</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>                          <a class="code" href="classclang_1_1Decl.html#a4c591bf2c0aa4f4d5f343ec665cbf196" title="Lists the kind of concrete classes of Decl.">Decl::Kind</a> DeclKind)</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>         : Reader(Reader), FirstID(FirstID), Owning(<span class="keyword">true</span>), DeclKind(DeclKind) { }</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span> </div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>       RedeclarableResult(<span class="keyword">const</span> RedeclarableResult &Other)</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>         : Reader(Other.Reader), FirstID(Other.FirstID), Owning(Other.Owning) ,</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>           DeclKind(Other.DeclKind)</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>         Other.Owning = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>       }</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>       ~RedeclarableResult() {</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>         <span class="keywordflow">if</span> (FirstID && Owning && <a class="code" href="namespaceclang_1_1serialization.html#a323f8d6164864e57f01dcfef5c400502" title="Determine whether the given declaration kind is redeclarable.">isRedeclarableDeclKind</a>(DeclKind) &&</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>             Reader.PendingDeclChainsKnown.insert(FirstID))</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>           Reader.PendingDeclChains.push_back(FirstID);</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"></span></div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span> <span class="comment">      /// \brief Retrieve the first ID.</span></div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span> <span class="comment"></span>      <a class="code" href="namespaceclang_1_1serialization.html#a55ccff09ed644b98b2b7c5915b601c14">GlobalDeclID</a> getFirstID()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> FirstID; }</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">      /// \brief Do not introduce this declaration ID into the set of pending</span></div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span> <span class="comment">      /// declaration chains.</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span> <span class="comment"></span>      <span class="keywordtype">void</span> suppress() {</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>         Owning = <span class="keyword">false</span>;</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>     };</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span> <span class="comment"></span></div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span> <span class="comment">    /// \brief Class used to capture the result of searching for an existing</span></div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span> <span class="comment">    /// declaration of a specific kind and name, along with the ability</span></div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span> <span class="comment">    /// to update the place where this result was found (the declaration</span></div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span> <span class="comment">    /// chain hanging off an identifier or the DeclContext we searched in)</span></div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span> <span class="comment">    /// if requested.</span></div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span> <span class="comment"></span>    <span class="keyword">class </span>FindExistingResult {</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>       <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="l00155"></a><span class="lineno">  155</span>       <a class="code" href="classclang_1_1NamedDecl.html">NamedDecl</a> *New;</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>       <a class="code" href="classclang_1_1NamedDecl.html">NamedDecl</a> *Existing;</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>       <span class="keyword">mutable</span> <span class="keywordtype">bool</span> AddResult;</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>       </div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>       <span class="keywordtype">void</span> operator=(FindExistingResult&) LLVM_DELETED_FUNCTION;</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="keyword">public</span>:</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>       FindExistingResult(<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="l00163"></a><span class="lineno">  163</span>         : Reader(Reader), New(0), Existing(0), AddResult(<span class="keyword">false</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>       FindExistingResult(<a class="code" href="classclang_1_1ASTReader.html" title="Reads an AST files chain containing the contents of a translation unit.">ASTReader</a> &Reader, <a class="code" href="classclang_1_1NamedDecl.html">NamedDecl</a> *New, <a class="code" href="classclang_1_1NamedDecl.html">NamedDecl</a> *Existing)</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>         : Reader(Reader), New(New), Existing(Existing), AddResult(<span class="keyword">true</span>) { }</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>       FindExistingResult(<span class="keyword">const</span> FindExistingResult &Other)</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>         : Reader(Other.Reader), New(Other.New), Existing(Other.Existing), </div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>           AddResult(Other.AddResult)</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>         Other.AddResult = <span class="keyword">false</span>;</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>       </div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>       ~FindExistingResult();</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>       <span class="comment"></span></div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span> <span class="comment">      /// \brief Suppress the addition of this result into the known set of</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span> <span class="comment">      /// names.</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span> <span class="comment"></span>      <span class="keywordtype">void</span> suppress() { AddResult = <span class="keyword">false</span>; }</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>       <span class="keyword">operator</span> <a class="code" href="classclang_1_1NamedDecl.html">NamedDecl</a>*() <span class="keyword">const</span> { <span class="keywordflow">return</span> Existing; }</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>       </div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>       <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>       <span class="keyword">operator</span> T*() <span class="keyword">const</span> { <span class="keywordflow">return</span> dyn_cast_or_null<T>(Existing); }</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>     </div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>     FindExistingResult findExisting(<a class="code" href="classclang_1_1NamedDecl.html">NamedDecl</a> *D);</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>     </div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00190"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a5c875dd2b71b3fcd390a845ec11a46ee">  190</a></span>     <a class="code" href="classclang_1_1ASTDeclReader.html">ASTDeclReader</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, ModuleFile &F,</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>                   <a class="code" href="namespaceclang_1_1serialization.html#af3f9c681595246da4bb499bd210e7f36" title="An ID number that refers to a declaration in an AST file.">DeclID</a> thisDeclID,</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>                   <span class="keywordtype">unsigned</span> RawLocation,</div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span>                   <span class="keyword">const</span> <a class="code" href="classllvm_1_1SmallVector.html">RecordData</a> &Record, <span class="keywordtype">unsigned</span> &Idx)</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>       : Reader(Reader), F(F), ThisDeclID(thisDeclID),</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>         RawLocation(RawLocation), Record(Record), Idx(Idx),</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>         TypeIDForTypeDecl(0), HasPendingBody(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>) { }</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>     <span class="keyword">static</span> <span class="keywordtype">void</span> attachPreviousDecl(<a class="code" href="classclang_1_1Decl.html">Decl</a> *D, <a class="code" href="classclang_1_1Decl.html">Decl</a> *previous);</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>     <span class="keyword">static</span> <span class="keywordtype">void</span> attachLatestDecl(<a class="code" href="classclang_1_1Decl.html">Decl</a> *D, <a class="code" href="classclang_1_1Decl.html">Decl</a> *latest);</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">    /// \brief Determine whether this declaration has a pending body.</span></div>
+<div class="line"><a name="l00202"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a9945c142dfe6d6686566d4ea02ab8d2d">  202</a></span> <span class="comment"></span>    <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a9945c142dfe6d6686566d4ea02ab8d2d" title="Determine whether this declaration has a pending body.">hasPendingBody</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> HasPendingBody; }</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>     <span class="keywordtype">void</span> Visit(<a class="code" href="classclang_1_1Decl.html">Decl</a> *D);</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>     <span class="keywordtype">void</span> UpdateDecl(<a class="code" href="classclang_1_1Decl.html">Decl</a> *D, ModuleFile &ModuleFile,</div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span>                     <span class="keyword">const</span> RecordData &Record);</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span> </div>
+<div class="line"><a name="l00209"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a84cb2de639caa9d311c7cc06db2bc96f">  209</a></span>     <span class="keyword">static</span> <span class="keywordtype">void</span> setNextObjCCategory(<a class="code" href="classclang_1_1ObjCCategoryDecl.html">ObjCCategoryDecl</a> *Cat,</div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>                                     <a class="code" href="classclang_1_1ObjCCategoryDecl.html">ObjCCategoryDecl</a> *Next) {</div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>       Cat->NextClassCategory = Next;</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> </div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>     <span class="keywordtype">void</span> VisitDecl(<a class="code" href="classclang_1_1Decl.html">Decl</a> *D);</div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span>     <span class="keywordtype">void</span> VisitTranslationUnitDecl(<a class="code" href="classclang_1_1TranslationUnitDecl.html" title="TranslationUnitDecl - The top declaration context.">TranslationUnitDecl</a> *TU);</div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span>     <span class="keywordtype">void</span> VisitNamedDecl(<a class="code" href="classclang_1_1NamedDecl.html">NamedDecl</a> *ND);</div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span>     <span class="keywordtype">void</span> VisitLabelDecl(<a class="code" href="classclang_1_1LabelDecl.html">LabelDecl</a> *LD);</div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>     <span class="keywordtype">void</span> VisitNamespaceDecl(<a class="code" href="classclang_1_1NamespaceDecl.html" title="NamespaceDecl - Represent a C++ namespace.">NamespaceDecl</a> *D);</div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>     <span class="keywordtype">void</span> VisitUsingDirectiveDecl(<a class="code" href="classclang_1_1UsingDirectiveDecl.html" title="Represents C++ using-directive.">UsingDirectiveDecl</a> *D);</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>     <span class="keywordtype">void</span> VisitNamespaceAliasDecl(<a class="code" href="classclang_1_1NamespaceAliasDecl.html" title="Represents a C++ namespace alias.">NamespaceAliasDecl</a> *D);</div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span>     <span class="keywordtype">void</span> VisitTypeDecl(<a class="code" href="classclang_1_1TypeDecl.html">TypeDecl</a> *TD);</div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span>     <span class="keywordtype">void</span> VisitTypedefNameDecl(<a class="code" href="classclang_1_1TypedefNameDecl.html" title="Base class for declarations which introduce a typedef-name.">TypedefNameDecl</a> *TD);</div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span>     <span class="keywordtype">void</span> VisitTypedefDecl(<a class="code" href="classclang_1_1TypedefDecl.html">TypedefDecl</a> *TD);</div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>     <span class="keywordtype">void</span> VisitTypeAliasDecl(<a class="code" href="classclang_1_1TypeAliasDecl.html">TypeAliasDecl</a> *TD);</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>     <span class="keywordtype">void</span> VisitUnresolvedUsingTypenameDecl(<a class="code" href="classclang_1_1UnresolvedUsingTypenameDecl.html" title="Represents a dependent using declaration which was marked with typename.">UnresolvedUsingTypenameDecl</a> *D);</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>     RedeclarableResult VisitTagDecl(<a class="code" href="classclang_1_1TagDecl.html" title="TagDecl - Represents the declaration of a struct/union/class/enum.">TagDecl</a> *TD);</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>     <span class="keywordtype">void</span> VisitEnumDecl(<a class="code" href="classclang_1_1EnumDecl.html">EnumDecl</a> *ED);</div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span>     RedeclarableResult VisitRecordDeclImpl(<a class="code" href="classclang_1_1RecordDecl.html">RecordDecl</a> *RD);</div>
+<div class="line"><a name="l00229"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a6fa37407c326b65122752c31a84186f3">  229</a></span>     <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a6fa37407c326b65122752c31a84186f3">VisitRecordDecl</a>(<a class="code" href="classclang_1_1RecordDecl.html">RecordDecl</a> *RD) { VisitRecordDeclImpl(RD); }</div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span>     RedeclarableResult VisitCXXRecordDeclImpl(<a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *D);</div>
+<div class="line"><a name="l00231"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a68ec987a30919347d07908e6daf1dbe3">  231</a></span>     <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a68ec987a30919347d07908e6daf1dbe3">VisitCXXRecordDecl</a>(<a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *D) { VisitCXXRecordDeclImpl(D); }</div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span>     RedeclarableResult VisitClassTemplateSpecializationDeclImpl(</div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</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="l00234"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a88fd6e18c144287664d3fa23fbae53f9">  234</a></span>     <span class="keywordtype">void</span> VisitClassTemplateSpecializationDecl(</div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</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="l00236"></a><span class="lineno">  236</span>       VisitClassTemplateSpecializationDeclImpl(D);</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>     <span class="keywordtype">void</span> VisitClassTemplatePartialSpecializationDecl(</div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span>                                      <a class="code" href="classclang_1_1ClassTemplatePartialSpecializationDecl.html">ClassTemplatePartialSpecializationDecl</a> *D);</div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span>     <span class="keywordtype">void</span> VisitClassScopeFunctionSpecializationDecl(</div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span>                                        <a class="code" href="classclang_1_1ClassScopeFunctionSpecializationDecl.html" title="Declaration of a function specialization at template class scope.">ClassScopeFunctionSpecializationDecl</a> *D);</div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span>     RedeclarableResult</div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span>     VisitVarTemplateSpecializationDeclImpl(<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="l00244"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a23a5c656b001e49e9c86319bfb2a3902">  244</a></span>     <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a23a5c656b001e49e9c86319bfb2a3902">VisitVarTemplateSpecializationDecl</a>(<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="l00245"></a><span class="lineno">  245</span>       VisitVarTemplateSpecializationDeclImpl(D);</div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span>     }</div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span>     <span class="keywordtype">void</span> VisitVarTemplatePartialSpecializationDecl(</div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span>         <a class="code" href="classclang_1_1VarTemplatePartialSpecializationDecl.html">VarTemplatePartialSpecializationDecl</a> *D);</div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span>     <span class="keywordtype">void</span> VisitTemplateTypeParmDecl(<a class="code" href="classclang_1_1TemplateTypeParmDecl.html" title="Declaration of a template type parameter.">TemplateTypeParmDecl</a> *D);</div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span>     <span class="keywordtype">void</span> VisitValueDecl(<a class="code" href="classclang_1_1ValueDecl.html">ValueDecl</a> *VD);</div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span>     <span class="keywordtype">void</span> VisitEnumConstantDecl(<a class="code" href="classclang_1_1EnumConstantDecl.html">EnumConstantDecl</a> *ECD);</div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span>     <span class="keywordtype">void</span> VisitUnresolvedUsingValueDecl(<a class="code" href="classclang_1_1UnresolvedUsingValueDecl.html" title="Represents a dependent using declaration which was not marked with typename.">UnresolvedUsingValueDecl</a> *D);</div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span>     <span class="keywordtype">void</span> VisitDeclaratorDecl(<a class="code" href="classclang_1_1DeclaratorDecl.html" title="Represents a ValueDecl that came out of a declarator. Contains type source information through TypeSo...">DeclaratorDecl</a> *DD);</div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span>     <span class="keywordtype">void</span> VisitFunctionDecl(<a class="code" href="classclang_1_1FunctionDecl.html">FunctionDecl</a> *FD);</div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span>     <span class="keywordtype">void</span> VisitCXXMethodDecl(<a class="code" href="classclang_1_1CXXMethodDecl.html" title="Represents a static or instance method of a struct/union/class.">CXXMethodDecl</a> *D);</div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span>     <span class="keywordtype">void</span> VisitCXXConstructorDecl(<a class="code" href="classclang_1_1CXXConstructorDecl.html" title="Represents a C++ constructor within a class.">CXXConstructorDecl</a> *D);</div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span>     <span class="keywordtype">void</span> VisitCXXDestructorDecl(<a class="code" href="classclang_1_1CXXDestructorDecl.html" title="Represents a C++ destructor within a class.">CXXDestructorDecl</a> *D);</div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span>     <span class="keywordtype">void</span> VisitCXXConversionDecl(<a class="code" href="classclang_1_1CXXConversionDecl.html" title="Represents a C++ conversion function within a class.">CXXConversionDecl</a> *D);</div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span>     <span class="keywordtype">void</span> VisitFieldDecl(<a class="code" href="classclang_1_1FieldDecl.html">FieldDecl</a> *FD);</div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span>     <span class="keywordtype">void</span> VisitMSPropertyDecl(<a class="code" href="classclang_1_1MSPropertyDecl.html">MSPropertyDecl</a> *FD);</div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span>     <span class="keywordtype">void</span> VisitIndirectFieldDecl(<a class="code" href="classclang_1_1IndirectFieldDecl.html">IndirectFieldDecl</a> *FD);</div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span>     RedeclarableResult VisitVarDeclImpl(<a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *D);</div>
+<div class="line"><a name="l00263"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a24553a467345803aa48208990c287946">  263</a></span>     <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a24553a467345803aa48208990c287946">VisitVarDecl</a>(<a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *VD) { VisitVarDeclImpl(VD); }</div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span>     <span class="keywordtype">void</span> VisitImplicitParamDecl(<a class="code" href="classclang_1_1ImplicitParamDecl.html">ImplicitParamDecl</a> *PD);</div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span>     <span class="keywordtype">void</span> VisitParmVarDecl(<a class="code" href="classclang_1_1ParmVarDecl.html" title="ParmVarDecl - Represents a parameter to a function.">ParmVarDecl</a> *PD);</div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span>     <span class="keywordtype">void</span> VisitNonTypeTemplateParmDecl(<a class="code" href="classclang_1_1NonTypeTemplateParmDecl.html">NonTypeTemplateParmDecl</a> *D);</div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span>     <span class="keywordtype">void</span> VisitTemplateDecl(<a class="code" href="classclang_1_1TemplateDecl.html" title="The base class of all kinds of template declarations (e.g., class, function, etc.).">TemplateDecl</a> *D);</div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span>     RedeclarableResult VisitRedeclarableTemplateDecl(<a class="code" href="classclang_1_1RedeclarableTemplateDecl.html" title="Declaration of a redeclarable template.">RedeclarableTemplateDecl</a> *D);</div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span>     <span class="keywordtype">void</span> VisitClassTemplateDecl(<a class="code" href="classclang_1_1ClassTemplateDecl.html" title="Declaration of a class template.">ClassTemplateDecl</a> *D);</div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span>     <span class="keywordtype">void</span> VisitVarTemplateDecl(<a class="code" href="classclang_1_1VarTemplateDecl.html" title="Declaration of a variable template.">VarTemplateDecl</a> *D);</div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span>     <span class="keywordtype">void</span> VisitFunctionTemplateDecl(<a class="code" href="classclang_1_1FunctionTemplateDecl.html" title="Declaration of a template function.">FunctionTemplateDecl</a> *D);</div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span>     <span class="keywordtype">void</span> VisitTemplateTemplateParmDecl(<a class="code" href="classclang_1_1TemplateTemplateParmDecl.html">TemplateTemplateParmDecl</a> *D);</div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span>     <span class="keywordtype">void</span> VisitTypeAliasTemplateDecl(<a class="code" href="classclang_1_1TypeAliasTemplateDecl.html" title="Declaration of an alias template.">TypeAliasTemplateDecl</a> *D);</div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span>     <span class="keywordtype">void</span> VisitUsingDecl(<a class="code" href="classclang_1_1UsingDecl.html" title="Represents a C++ using-declaration.">UsingDecl</a> *D);</div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span>     <span class="keywordtype">void</span> VisitUsingShadowDecl(<a class="code" href="classclang_1_1UsingShadowDecl.html" title="Represents a shadow declaration introduced into a scope by a (resolved) using declaration.">UsingShadowDecl</a> *D);</div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span>     <span class="keywordtype">void</span> VisitLinkageSpecDecl(<a class="code" href="classclang_1_1LinkageSpecDecl.html" title="Represents a linkage specification.">LinkageSpecDecl</a> *D);</div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span>     <span class="keywordtype">void</span> VisitFileScopeAsmDecl(<a class="code" href="classclang_1_1FileScopeAsmDecl.html">FileScopeAsmDecl</a> *AD);</div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span>     <span class="keywordtype">void</span> VisitImportDecl(<a class="code" href="classclang_1_1ImportDecl.html" title="Describes a module import declaration, which makes the contents of the named module visible in the cu...">ImportDecl</a> *D);</div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span>     <span class="keywordtype">void</span> VisitAccessSpecDecl(<a class="code" href="classclang_1_1AccessSpecDecl.html" title="Represents an access specifier followed by colon ':'.">AccessSpecDecl</a> *D);</div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span>     <span class="keywordtype">void</span> VisitFriendDecl(<a class="code" href="classclang_1_1FriendDecl.html">FriendDecl</a> *D);</div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span>     <span class="keywordtype">void</span> VisitFriendTemplateDecl(<a class="code" href="classclang_1_1FriendTemplateDecl.html" title="Declaration of a friend template.">FriendTemplateDecl</a> *D);</div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span>     <span class="keywordtype">void</span> VisitStaticAssertDecl(<a class="code" href="classclang_1_1StaticAssertDecl.html" title="Represents a C++11 static_assert declaration.">StaticAssertDecl</a> *D);</div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span>     <span class="keywordtype">void</span> VisitBlockDecl(<a class="code" href="classclang_1_1BlockDecl.html">BlockDecl</a> *BD);</div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span>     <span class="keywordtype">void</span> VisitCapturedDecl(<a class="code" href="classclang_1_1CapturedDecl.html" title="This represents the body of a CapturedStmt, and serves as its DeclContext.">CapturedDecl</a> *CD);</div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span>     <span class="keywordtype">void</span> VisitEmptyDecl(<a class="code" href="classclang_1_1EmptyDecl.html" title="Represents an empty-declaration.">EmptyDecl</a> *D);</div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span> </div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span>     std::pair<uint64_t, uint64_t> VisitDeclContext(<a class="code" href="classclang_1_1DeclContext.html">DeclContext</a> *DC);</div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span>     </div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span>     <span class="keyword">template</span><<span class="keyword">typename</span> T> </div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span>     RedeclarableResult VisitRedeclarable(<a class="code" href="classclang_1_1Redeclarable.html" title="Provides common interface for the Decls that can be redeclared.">Redeclarable<T></a> *D);</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">template</span><<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span>     <span class="keywordtype">void</span> mergeRedeclarable(<a class="code" href="classclang_1_1Redeclarable.html" title="Provides common interface for the Decls that can be redeclared.">Redeclarable<T></a> *D, RedeclarableResult &Redecl);</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>     <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span>     <span class="keywordtype">void</span> mergeRedeclarable(<a class="code" href="classclang_1_1Redeclarable.html" title="Provides common interface for the Decls that can be redeclared.">Redeclarable<T></a> *D, T *Existing,</div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span>                            RedeclarableResult &Redecl);</div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span> </div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span>     <span class="keyword">template</span><<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span>     <span class="keywordtype">void</span> mergeMergeable(<a class="code" href="classclang_1_1Mergeable.html" title="Provides common interface for the Decls that cannot be redeclared, but can be merged if the same decl...">Mergeable<T></a> *D);</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>     <span class="comment">// FIXME: Reorder according to DeclNodes.td?</span></div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span>     <span class="keywordtype">void</span> VisitObjCMethodDecl(<a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *D);</div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span>     <span class="keywordtype">void</span> VisitObjCContainerDecl(<a class="code" href="classclang_1_1ObjCContainerDecl.html">ObjCContainerDecl</a> *D);</div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span>     <span class="keywordtype">void</span> VisitObjCInterfaceDecl(<a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *D);</div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span>     <span class="keywordtype">void</span> VisitObjCIvarDecl(<a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *D);</div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span>     <span class="keywordtype">void</span> VisitObjCProtocolDecl(<a class="code" href="classclang_1_1ObjCProtocolDecl.html" title="Represents an Objective-C protocol declaration.">ObjCProtocolDecl</a> *D);</div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span>     <span class="keywordtype">void</span> VisitObjCAtDefsFieldDecl(<a class="code" href="classclang_1_1ObjCAtDefsFieldDecl.html" title="Represents a field declaration created by an @defs(...).">ObjCAtDefsFieldDecl</a> *D);</div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span>     <span class="keywordtype">void</span> VisitObjCCategoryDecl(<a class="code" href="classclang_1_1ObjCCategoryDecl.html">ObjCCategoryDecl</a> *D);</div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span>     <span class="keywordtype">void</span> VisitObjCImplDecl(<a class="code" href="classclang_1_1ObjCImplDecl.html">ObjCImplDecl</a> *D);</div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span>     <span class="keywordtype">void</span> VisitObjCCategoryImplDecl(<a class="code" href="classclang_1_1ObjCCategoryImplDecl.html">ObjCCategoryImplDecl</a> *D);</div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span>     <span class="keywordtype">void</span> VisitObjCImplementationDecl(<a class="code" href="classclang_1_1ObjCImplementationDecl.html">ObjCImplementationDecl</a> *D);</div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span>     <span class="keywordtype">void</span> VisitObjCCompatibleAliasDecl(<a class="code" href="classclang_1_1ObjCCompatibleAliasDecl.html">ObjCCompatibleAliasDecl</a> *D);</div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span>     <span class="keywordtype">void</span> VisitObjCPropertyDecl(<a class="code" href="classclang_1_1ObjCPropertyDecl.html" title="Represents one property declaration in an Objective-C interface.">ObjCPropertyDecl</a> *D);</div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span>     <span class="keywordtype">void</span> VisitObjCPropertyImplDecl(<a class="code" href="classclang_1_1ObjCPropertyImplDecl.html">ObjCPropertyImplDecl</a> *D);</div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span>     <span class="keywordtype">void</span> VisitOMPThreadPrivateDecl(<a class="code" href="classclang_1_1OMPThreadPrivateDecl.html" title="This represents '#pragma omp threadprivate ...' directive. For example, in the following, both 'a' and 'A::b' are threadprivate:">OMPThreadPrivateDecl</a> *D);</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> </div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span> uint64_t ASTDeclReader::GetCurrentCursorOffset() {</div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span>   <span class="keywordflow">return</span> F.DeclsCursor.GetCurrentBitNo() + F.GlobalBitOffset;</div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span> }</div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span> </div>
+<div class="line"><a name="l00324"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a83edb5c6b1645f1086ff82ad08144bf5">  324</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a83edb5c6b1645f1086ff82ad08144bf5">ASTDeclReader::Visit</a>(<a class="code" href="classclang_1_1Decl.html">Decl</a> *D) {</div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span>   <a class="code" href="classclang_1_1declvisitor_1_1Base.html#a23af79ab6d02d9ea6033253eb5b60e95">DeclVisitor<ASTDeclReader, void>::Visit</a>(D);</div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span> </div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1DeclaratorDecl.html" title="Represents a ValueDecl that came out of a declarator. Contains type source information through TypeSo...">DeclaratorDecl</a> *DD = dyn_cast<DeclaratorDecl>(D)) {</div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span>     <span class="keywordflow">if</span> (DD->DeclInfo) {</div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span>       DeclaratorDecl::ExtInfo *Info =</div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span>           DD->DeclInfo.get<DeclaratorDecl::ExtInfo *>();</div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span>       Info->TInfo =</div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span>           GetTypeSourceInfo(Record, Idx);</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>     <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00335"></a><span class="lineno">  335</span>       DD->DeclInfo = GetTypeSourceInfo(Record, Idx);</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>   }</div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span> </div>
+<div class="line"><a name="l00339"></a><span class="lineno">  339</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1TypeDecl.html">TypeDecl</a> *TD = dyn_cast<TypeDecl>(D)) {</div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span>     <span class="comment">// if we have a fully initialized TypeDecl, we can safely read its type now.</span></div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span>     TD->setTypeForDecl(Reader.GetType(TypeIDForTypeDecl).getTypePtrOrNull());</div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *<a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a> = dyn_cast<ObjCInterfaceDecl>(D)) {</div>
+<div class="line"><a name="l00343"></a><span class="lineno">  343</span>     <span class="comment">// if we have a fully initialized TypeDecl, we can safely read its type now.</span></div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span>     <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>->TypeForDecl = Reader.GetType(TypeIDForTypeDecl).getTypePtrOrNull();</div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1FunctionDecl.html">FunctionDecl</a> *FD = dyn_cast<FunctionDecl>(D)) {</div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span>     <span class="comment">// FunctionDecl's body was written last after all other Stmts/Exprs.</span></div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span>     <span class="comment">// We only read it if FD doesn't already have a body (e.g., from another</span></div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span>     <span class="comment">// module).</span></div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span>     <span class="comment">// FIXME: Also consider = default and = delete.</span></div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span>     <span class="comment">// FIXME: Can we diagnose ODR violations somehow?</span></div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span>     <span class="keywordflow">if</span> (Record[Idx++]) {</div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span>       Reader.PendingBodies[FD] = GetCurrentCursorOffset();</div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span>       HasPendingBody = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span>     }</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> }</div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span> </div>
+<div class="line"><a name="l00358"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#ab5f5e797c0e06a7038ded111d94d1910">  358</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#ab5f5e797c0e06a7038ded111d94d1910">ASTDeclReader::VisitDecl</a>(<a class="code" href="classclang_1_1Decl.html">Decl</a> *D) {</div>
+<div class="line"><a name="l00359"></a><span class="lineno">  359</span>   <span class="keywordflow">if</span> (D-><a class="code" href="classclang_1_1Decl.html#a1d4075c86d784c816d5a6cbc06d8f871">isTemplateParameter</a>()) {</div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span>     <span class="comment">// We don't want to deserialize the DeclContext of a template</span></div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span>     <span class="comment">// parameter immediately, because the template parameter might be</span></div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span>     <span class="comment">// used in the formulation of its DeclContext. Use the translation</span></div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span>     <span class="comment">// unit DeclContext as a placeholder.</span></div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span>     <a class="code" href="namespaceclang_1_1serialization.html#a55ccff09ed644b98b2b7c5915b601c14">GlobalDeclID</a> SemaDCIDForTemplateParmDecl = ReadDeclID(Record, Idx);</div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span>     <a class="code" href="namespaceclang_1_1serialization.html#a55ccff09ed644b98b2b7c5915b601c14">GlobalDeclID</a> LexicalDCIDForTemplateParmDecl = ReadDeclID(Record, Idx);</div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span>     Reader.addPendingDeclContextInfo(D,</div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span>                                      SemaDCIDForTemplateParmDecl,</div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span>                                      LexicalDCIDForTemplateParmDecl);</div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span>     D-><a class="code" href="classclang_1_1Decl.html#ada1b39fcda7fc270cf6e73da6a5d7e51">setDeclContext</a>(Reader.getContext().getTranslationUnitDecl()); </div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span>     <a class="code" href="classclang_1_1DeclContext.html">DeclContext</a> *SemaDC = ReadDeclAs<DeclContext>(Record, Idx);</div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span>     <a class="code" href="classclang_1_1DeclContext.html">DeclContext</a> *LexicalDC = ReadDeclAs<DeclContext>(Record, Idx);</div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span>     <a class="code" href="classclang_1_1DeclContext.html">DeclContext</a> *MergedSemaDC = Reader.MergedDeclContexts.<a class="code" href="classclang_1_1DeclContext.html#a0916b364472e2acc42122885e087222b">lookup</a>(SemaDC);</div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span>     <span class="comment">// Avoid calling setLexicalDeclContext() directly because it uses</span></div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span>     <span class="comment">// Decl::getASTContext() internally which is unsafe during derialization.</span></div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span>     D->setDeclContextsImpl(MergedSemaDC ? MergedSemaDC : SemaDC, LexicalDC,</div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span>                            Reader.getContext());</div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span>   }</div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span>   D-><a class="code" href="classclang_1_1Decl.html#ab9567d0129af38839ace3ddbf21c0ae1">setLocation</a>(Reader.ReadSourceLocation(F, RawLocation));</div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span>   D-><a class="code" href="classclang_1_1Decl.html#a46b92fa90488bdc219831b05cd858c0b">setInvalidDecl</a>(Record[Idx++]);</div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span>   <span class="keywordflow">if</span> (Record[Idx++]) { <span class="comment">// hasAttrs</span></div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span>     <a class="code" href="classllvm_1_1SmallVector.html">AttrVec</a> Attrs;</div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span>     Reader.ReadAttributes(F, Attrs, Record, Idx);</div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span>     <span class="comment">// Avoid calling setAttrs() directly because it uses Decl::getASTContext()</span></div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span>     <span class="comment">// internally which is unsafe during derialization.</span></div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span>     D->setAttrsImpl(Attrs, Reader.getContext());</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>   D-><a class="code" href="classclang_1_1Decl.html#aa89b44dad7f4fd7e9c15129f8f0784e4">setImplicit</a>(Record[Idx++]);</div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span>   D->Used = Record[Idx++];</div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span>   D-><a class="code" href="classclang_1_1Decl.html#aa8edfe1810cd86e605a11febe018f5dd">setReferenced</a>(Record[Idx++]);</div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span>   D-><a class="code" href="classclang_1_1Decl.html#a50e8918bb8e92d50cd197a8521b93c59">setTopLevelDeclInObjCContainer</a>(Record[Idx++]);</div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span>   D-><a class="code" href="classclang_1_1Decl.html#a96fe786efdaa56c50aaa76baaf787a02">setAccess</a>((<a class="code" href="namespaceclang.html#afc8aabd1f46cf32e805cd0d970ef988f" title="A C++ access specifier (public, private, protected), plus the special value "none" which means differ...">AccessSpecifier</a>)Record[Idx++]);</div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span>   D-><a class="code" href="classclang_1_1Decl.html#a91dd79d0dcdba11d3760c6abe1930d50" title="Whether this declaration was loaded from an AST file.">FromASTFile</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span>   D-><a class="code" href="classclang_1_1Decl.html#a77b7c1769f7c6ea39899414430461ece" title="Specify whether this declaration was marked as being private to the module in which it was defined...">setModulePrivate</a>(Record[Idx++]);</div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span>   D-><a class="code" href="classclang_1_1Decl.html#ad58279c91e474c764e418e5a09d32073" title="Whether this declaration is hidden from normal name lookup, e.g., because it is was loaded from an AS...">Hidden</a> = D-><a class="code" href="classclang_1_1Decl.html#a80d5f9396cdbe4551ad425b030c99df8" title="Whether this declaration was marked as being private to the module in which it was defined...">isModulePrivate</a>();</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>   <span class="comment">// Determine whether this declaration is part of a (sub)module. If so, it</span></div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span>   <span class="comment">// may not yet be visible.</span></div>
+<div class="line"><a name="l00399"></a><span class="lineno">  399</span>   <span class="keywordflow">if</span> (<span class="keywordtype">unsigned</span> <a class="code" href="namespaceclang_1_1serialization.html#a4bd106e4761bfc2a1b2ba41b391d3073" title="An ID number that refers to a submodule in a module file.">SubmoduleID</a> = readSubmoduleID(Record, Idx)) {</div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span>     <span class="comment">// Store the owning submodule ID in the declaration.</span></div>
+<div class="line"><a name="l00401"></a><span class="lineno">  401</span>     D-><a class="code" href="classclang_1_1Decl.html#a79c1e52b4c8e9855503874b82279b3f5" title="Set the owning module ID.">setOwningModuleID</a>(<a class="code" href="namespaceclang_1_1serialization.html#a4bd106e4761bfc2a1b2ba41b391d3073" title="An ID number that refers to a submodule in a module file.">SubmoduleID</a>);</div>
+<div class="line"><a name="l00402"></a><span class="lineno">  402</span>     </div>
+<div class="line"><a name="l00403"></a><span class="lineno">  403</span>     <span class="comment">// Module-private declarations are never visible, so there is no work to do.</span></div>
+<div class="line"><a name="l00404"></a><span class="lineno">  404</span>     <span class="keywordflow">if</span> (!D-><a class="code" href="classclang_1_1Decl.html#a80d5f9396cdbe4551ad425b030c99df8" title="Whether this declaration was marked as being private to the module in which it was defined...">isModulePrivate</a>()) {</div>
+<div class="line"><a name="l00405"></a><span class="lineno">  405</span>       <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Owner = Reader.getSubmodule(<a class="code" href="namespaceclang_1_1serialization.html#a4bd106e4761bfc2a1b2ba41b391d3073" title="An ID number that refers to a submodule in a module file.">SubmoduleID</a>)) {</div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span>         <span class="keywordflow">if</span> (Owner->NameVisibility != <a class="code" href="classclang_1_1Module.html#a1ca9cf81299c2f40c68d04f44eea8a67ab2042481b5eab6785bdbe0a928c7062a" title="All of the names in this module are visible.">Module::AllVisible</a>) {</div>
+<div class="line"><a name="l00407"></a><span class="lineno">  407</span>           <span class="comment">// The owning module is not visible. Mark this declaration as hidden.</span></div>
+<div class="line"><a name="l00408"></a><span class="lineno">  408</span>           D-><a class="code" href="classclang_1_1Decl.html#ad58279c91e474c764e418e5a09d32073" title="Whether this declaration is hidden from normal name lookup, e.g., because it is was loaded from an AS...">Hidden</a> = <span class="keyword">true</span>;</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="comment">// Note that this declaration was hidden because its owning module is </span></div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span>           <span class="comment">// not yet visible.</span></div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span>           Reader.HiddenNamesMap[Owner].push_back(D);</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>       }</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>   }</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> </div>
+<div class="line"><a name="l00419"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#ac342a995f057d4850a96383f16a44663">  419</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#ac342a995f057d4850a96383f16a44663">ASTDeclReader::VisitTranslationUnitDecl</a>(<a class="code" href="classclang_1_1TranslationUnitDecl.html" title="TranslationUnitDecl - The top declaration context.">TranslationUnitDecl</a> *TU) {</div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span>   llvm_unreachable(<span class="stringliteral">"Translation units are not serialized"</span>);</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"><a class="code" href="classclang_1_1ASTDeclReader.html#a75a2c2e4799a688fd8b7b9d646534e7d">  423</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a75a2c2e4799a688fd8b7b9d646534e7d">ASTDeclReader::VisitNamedDecl</a>(<a class="code" href="classclang_1_1NamedDecl.html">NamedDecl</a> *ND) {</div>
+<div class="line"><a name="l00424"></a><span class="lineno">  424</span>   VisitDecl(ND);</div>
+<div class="line"><a name="l00425"></a><span class="lineno">  425</span>   ND-><a class="code" href="classclang_1_1NamedDecl.html#aeb59a31c670e562254b2abd917e58a13" title="Set the name of this declaration.">setDeclName</a>(Reader.ReadDeclarationName(F, Record, Idx));</div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span> }</div>
+<div class="line"><a name="l00427"></a><span class="lineno">  427</span> </div>
+<div class="line"><a name="l00428"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#ac99e704f92ad63fdb88355939a8ab6ac">  428</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#ac99e704f92ad63fdb88355939a8ab6ac">ASTDeclReader::VisitTypeDecl</a>(<a class="code" href="classclang_1_1TypeDecl.html">TypeDecl</a> *TD) {</div>
+<div class="line"><a name="l00429"></a><span class="lineno">  429</span>   VisitNamedDecl(TD);</div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span>   TD-><a class="code" href="classclang_1_1TypeDecl.html#a369a0488281c35ad306e5a407d39d039">setLocStart</a>(ReadSourceLocation(Record, Idx));</div>
+<div class="line"><a name="l00431"></a><span class="lineno">  431</span>   <span class="comment">// Delay type reading until after we have fully initialized the decl.</span></div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span>   TypeIDForTypeDecl = Reader.getGlobalTypeID(F, Record[Idx++]);</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> </div>
+<div class="line"><a name="l00435"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a00a4053cb345b4697473f82cc708bf6b">  435</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a00a4053cb345b4697473f82cc708bf6b">ASTDeclReader::VisitTypedefNameDecl</a>(<a class="code" href="classclang_1_1TypedefNameDecl.html" title="Base class for declarations which introduce a typedef-name.">TypedefNameDecl</a> *TD) {</div>
+<div class="line"><a name="l00436"></a><span class="lineno">  436</span>   RedeclarableResult Redecl = VisitRedeclarable(TD);</div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span>   VisitTypeDecl(TD);</div>
+<div class="line"><a name="l00438"></a><span class="lineno">  438</span>   <a class="code" href="classclang_1_1TypeSourceInfo.html" title="A container of type source information.">TypeSourceInfo</a> *TInfo = GetTypeSourceInfo(Record, Idx);</div>
+<div class="line"><a name="l00439"></a><span class="lineno">  439</span>   <span class="keywordflow">if</span> (Record[Idx++]) { <span class="comment">// isModed</span></div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span>     <a class="code" href="classclang_1_1QualType.html">QualType</a> modedT = Reader.readType(F, Record, Idx);</div>
+<div class="line"><a name="l00441"></a><span class="lineno">  441</span>     TD-><a class="code" href="classclang_1_1TypedefNameDecl.html#a3d91ea65b8e6bb6821a34249888e5906">setModedTypeSourceInfo</a>(TInfo, modedT);</div>
+<div class="line"><a name="l00442"></a><span class="lineno">  442</span>   } <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</span>     TD-><a class="code" href="classclang_1_1TypedefNameDecl.html#aae88187317060630b86dc3d46aa9d14d">setTypeSourceInfo</a>(TInfo);</div>
+<div class="line"><a name="l00444"></a><span class="lineno">  444</span>   mergeRedeclarable(TD, Redecl);</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> </div>
+<div class="line"><a name="l00447"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#afd69589eec110a78b571cc3e98db14ad">  447</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#afd69589eec110a78b571cc3e98db14ad">ASTDeclReader::VisitTypedefDecl</a>(<a class="code" href="classclang_1_1TypedefDecl.html">TypedefDecl</a> *TD) {</div>
+<div class="line"><a name="l00448"></a><span class="lineno">  448</span>   VisitTypedefNameDecl(TD);</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> </div>
+<div class="line"><a name="l00451"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#acf05a74e951e5afe2111515e6175a85f">  451</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#acf05a74e951e5afe2111515e6175a85f">ASTDeclReader::VisitTypeAliasDecl</a>(<a class="code" href="classclang_1_1TypeAliasDecl.html">TypeAliasDecl</a> *TD) {</div>
+<div class="line"><a name="l00452"></a><span class="lineno">  452</span>   VisitTypedefNameDecl(TD);</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> </div>
+<div class="line"><a name="l00455"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a5dd13e47f899d85938261a6ba814ea2b">  455</a></span> ASTDeclReader::RedeclarableResult <a class="code" href="classclang_1_1ASTDeclReader.html#a5dd13e47f899d85938261a6ba814ea2b">ASTDeclReader::VisitTagDecl</a>(<a class="code" href="classclang_1_1TagDecl.html" title="TagDecl - Represents the declaration of a struct/union/class/enum.">TagDecl</a> *TD) {</div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span>   RedeclarableResult Redecl = VisitRedeclarable(TD);</div>
+<div class="line"><a name="l00457"></a><span class="lineno">  457</span>   VisitTypeDecl(TD);</div>
+<div class="line"><a name="l00458"></a><span class="lineno">  458</span>   </div>
+<div class="line"><a name="l00459"></a><span class="lineno">  459</span>   TD-><a class="code" href="classclang_1_1Decl.html#a9e38ae17197f1ebf6cdbb58260133710">IdentifierNamespace</a> = Record[Idx++];</div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span>   TD-><a class="code" href="classclang_1_1TagDecl.html#a096474395bad667ca2d3e7406e84f39c">setTagKind</a>((<a class="code" href="namespaceclang.html#a9237bdb3cf715b9bff8bcb3172635548" title="The kind of a tag type.">TagDecl::TagKind</a>)Record[Idx++]);</div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span>   TD-><a class="code" href="classclang_1_1TagDecl.html#a54700fac0e7e3fefa38e2f6c25f43dff">setCompleteDefinition</a>(Record[Idx++]);</div>
+<div class="line"><a name="l00462"></a><span class="lineno">  462</span>   TD-><a class="code" href="classclang_1_1TagDecl.html#a30adda2cb5d9df9167eacfb87ab5e1a3">setEmbeddedInDeclarator</a>(Record[Idx++]);</div>
+<div class="line"><a name="l00463"></a><span class="lineno">  463</span>   TD-><a class="code" href="classclang_1_1TagDecl.html#acc36b074ef031a8242fb12710ae66464">setFreeStanding</a>(Record[Idx++]);</div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</span>   TD-><a class="code" href="classclang_1_1TagDecl.html#a14c5f2d19ecff2300b45136806e29385">setCompleteDefinitionRequired</a>(Record[Idx++]);</div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span>   TD-><a class="code" href="classclang_1_1TagDecl.html#a3ce2c1c98494dd3bac4f1ebbfe1e5f9f">setRBraceLoc</a>(ReadSourceLocation(Record, Idx));</div>
+<div class="line"><a name="l00466"></a><span class="lineno">  466</span>   </div>
+<div class="line"><a name="l00467"></a><span class="lineno">  467</span>   <span class="keywordflow">if</span> (Record[Idx++]) { <span class="comment">// hasExtInfo</span></div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span>     <a class="code" href="structclang_1_1QualifierInfo.html">TagDecl::ExtInfo</a> *Info = <span class="keyword">new</span> (Reader.getContext()) <a class="code" href="structclang_1_1QualifierInfo.html">TagDecl::ExtInfo</a>();</div>
+<div class="line"><a name="l00469"></a><span class="lineno">  469</span>     ReadQualifierInfo(*Info, Record, Idx);</div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span>     TD->NamedDeclOrQualifier = Info;</div>
+<div class="line"><a name="l00471"></a><span class="lineno">  471</span>   } <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span>     TD->NamedDeclOrQualifier = ReadDeclAs<NamedDecl>(Record, Idx);</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>   mergeRedeclarable(TD, Redecl);</div>
+<div class="line"><a name="l00475"></a><span class="lineno">  475</span>   <span class="keywordflow">return</span> Redecl;</div>
+<div class="line"><a name="l00476"></a><span class="lineno">  476</span> }</div>
+<div class="line"><a name="l00477"></a><span class="lineno">  477</span> </div>
+<div class="line"><a name="l00478"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a50b9dfdccff5359b715e5f24fd653ec7">  478</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a50b9dfdccff5359b715e5f24fd653ec7">ASTDeclReader::VisitEnumDecl</a>(<a class="code" href="classclang_1_1EnumDecl.html">EnumDecl</a> *ED) {</div>
+<div class="line"><a name="l00479"></a><span class="lineno">  479</span>   VisitTagDecl(ED);</div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1TypeSourceInfo.html" title="A container of type source information.">TypeSourceInfo</a> *TI = Reader.GetTypeSourceInfo(F, Record, Idx))</div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span>     ED-><a class="code" href="classclang_1_1EnumDecl.html#a34b9afb1bfd10d0227b22b0909bd1548" title="Set the underlying integer type source info.">setIntegerTypeSourceInfo</a>(TI);</div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span>   <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span>     ED-><a class="code" href="classclang_1_1EnumDecl.html#a2a7d97718269081c373454815cb452ab" title="Set the underlying integer type.">setIntegerType</a>(Reader.readType(F, Record, Idx));</div>
+<div class="line"><a name="l00484"></a><span class="lineno">  484</span>   ED-><a class="code" href="classclang_1_1EnumDecl.html#a9e137a7d8bd953a4d65edb5df0a80739" title="Set the promotion type.">setPromotionType</a>(Reader.readType(F, Record, Idx));</div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span>   ED-><a class="code" href="classclang_1_1EnumDecl.html#a66aa64e23fdc549dcdfea746a2e4bb7d">setNumPositiveBits</a>(Record[Idx++]);</div>
+<div class="line"><a name="l00486"></a><span class="lineno">  486</span>   ED-><a class="code" href="classclang_1_1EnumDecl.html#ac2fa32cd5f779ce9ba436173493e1cc3">setNumNegativeBits</a>(Record[Idx++]);</div>
+<div class="line"><a name="l00487"></a><span class="lineno">  487</span>   ED-><a class="code" href="classclang_1_1TagDecl.html#af7665b8e8feda2ca7dc16e311996e64a">IsScoped</a> = Record[Idx++];</div>
+<div class="line"><a name="l00488"></a><span class="lineno">  488</span>   ED-><a class="code" href="classclang_1_1TagDecl.html#ae3a142c92193426cecdb6177518078d0">IsScopedUsingClassTag</a> = Record[Idx++];</div>
+<div class="line"><a name="l00489"></a><span class="lineno">  489</span>   ED-><a class="code" href="classclang_1_1TagDecl.html#a21570dc048239288f37f5c5f17cf751f">IsFixed</a> = Record[Idx++];</div>
+<div class="line"><a name="l00490"></a><span class="lineno">  490</span> </div>
+<div class="line"><a name="l00491"></a><span class="lineno">  491</span>   <span class="comment">// If this is a definition subject to the ODR, and we already have a</span></div>
+<div class="line"><a name="l00492"></a><span class="lineno">  492</span>   <span class="comment">// definition, merge this one into it.</span></div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span>   <span class="keywordflow">if</span> (ED->IsCompleteDefinition &&</div>
+<div class="line"><a name="l00494"></a><span class="lineno">  494</span>       Reader.getContext().getLangOpts().Modules &&</div>
+<div class="line"><a name="l00495"></a><span class="lineno">  495</span>       Reader.getContext().getLangOpts().CPlusPlus) {</div>
+<div class="line"><a name="l00496"></a><span class="lineno">  496</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1EnumDecl.html">EnumDecl</a> *&OldDef = Reader.EnumDefinitions[ED-><a class="code" href="classclang_1_1EnumDecl.html#a4ec618463ccb59bf3ac591308cb0a76e" title="Retrieves the "canonical" declaration of the given declaration.">getCanonicalDecl</a>()]) {</div>
+<div class="line"><a name="l00497"></a><span class="lineno">  497</span>       Reader.MergedDeclContexts.insert(std::make_pair(ED, OldDef));</div>
+<div class="line"><a name="l00498"></a><span class="lineno">  498</span>       ED->IsCompleteDefinition = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00499"></a><span class="lineno">  499</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00500"></a><span class="lineno">  500</span>       OldDef = ED;</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>   }</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>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1EnumDecl.html">EnumDecl</a> *InstED = ReadDeclAs<EnumDecl>(Record, Idx)) {</div>
+<div class="line"><a name="l00505"></a><span class="lineno">  505</span>     <a class="code" href="namespaceclang.html#ae689bf8e3dcc54751a81974a4a12c3d2" title="Describes the kind of template specialization that a particular template specialization declaration r...">TemplateSpecializationKind</a> TSK = (<a class="code" href="namespaceclang.html#ae689bf8e3dcc54751a81974a4a12c3d2" title="Describes the kind of template specialization that a particular template specialization declaration r...">TemplateSpecializationKind</a>)Record[Idx++];</div>
+<div class="line"><a name="l00506"></a><span class="lineno">  506</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> POI = ReadSourceLocation(Record, Idx);</div>
+<div class="line"><a name="l00507"></a><span class="lineno">  507</span>     ED->setInstantiationOfMemberEnum(Reader.getContext(), InstED, TSK);</div>
+<div class="line"><a name="l00508"></a><span class="lineno">  508</span>     ED-><a class="code" href="classclang_1_1EnumDecl.html#a71a523e816381fd59d1f598da861d210" title="If this enumeration is an instantiation of a member enumeration of a class template specialization...">getMemberSpecializationInfo</a>()-><a class="code" href="classclang_1_1MemberSpecializationInfo.html#ac7a0b5ffbb14524e20aab5c82adfff92" title="Set the first point of instantiation.">setPointOfInstantiation</a>(POI);</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> }</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> ASTDeclReader::RedeclarableResult</div>
+<div class="line"><a name="l00513"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#aca906cc88faaee4e802001b51d3d0903">  513</a></span> <a class="code" href="classclang_1_1ASTDeclReader.html#aca906cc88faaee4e802001b51d3d0903">ASTDeclReader::VisitRecordDeclImpl</a>(<a class="code" href="classclang_1_1RecordDecl.html">RecordDecl</a> *RD) {</div>
+<div class="line"><a name="l00514"></a><span class="lineno">  514</span>   RedeclarableResult Redecl = VisitTagDecl(RD);</div>
+<div class="line"><a name="l00515"></a><span class="lineno">  515</span>   RD-><a class="code" href="classclang_1_1RecordDecl.html#a761a096fe09059f7e5ca806b8f4d3676">setHasFlexibleArrayMember</a>(Record[Idx++]);</div>
+<div class="line"><a name="l00516"></a><span class="lineno">  516</span>   RD-><a class="code" href="classclang_1_1RecordDecl.html#a2041cc03634e31c3627c88c059a84623">setAnonymousStructOrUnion</a>(Record[Idx++]);</div>
+<div class="line"><a name="l00517"></a><span class="lineno">  517</span>   RD-><a class="code" href="classclang_1_1RecordDecl.html#a92594398b3504a22693556ce3637d079">setHasObjectMember</a>(Record[Idx++]);</div>
+<div class="line"><a name="l00518"></a><span class="lineno">  518</span>   RD-><a class="code" href="classclang_1_1RecordDecl.html#aa6ebd5306b3862f1e9403a07c707dd4c">setHasVolatileMember</a>(Record[Idx++]);</div>
+<div class="line"><a name="l00519"></a><span class="lineno">  519</span>   <span class="keywordflow">return</span> Redecl;</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> </div>
+<div class="line"><a name="l00522"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a4f60d1066ff7719a5512c4fbadfadb0e">  522</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a4f60d1066ff7719a5512c4fbadfadb0e">ASTDeclReader::VisitValueDecl</a>(<a class="code" href="classclang_1_1ValueDecl.html">ValueDecl</a> *VD) {</div>
+<div class="line"><a name="l00523"></a><span class="lineno">  523</span>   VisitNamedDecl(VD);</div>
+<div class="line"><a name="l00524"></a><span class="lineno">  524</span>   VD-><a class="code" href="classclang_1_1ValueDecl.html#a3a82ca5762f3fb1c2d25d9cf63728cd2">setType</a>(Reader.readType(F, Record, Idx));</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> </div>
+<div class="line"><a name="l00527"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#acbcbcc9dc40fb2ee218fbd8f4b63b709">  527</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#acbcbcc9dc40fb2ee218fbd8f4b63b709">ASTDeclReader::VisitEnumConstantDecl</a>(<a class="code" href="classclang_1_1EnumConstantDecl.html">EnumConstantDecl</a> *ECD) {</div>
+<div class="line"><a name="l00528"></a><span class="lineno">  528</span>   VisitValueDecl(ECD);</div>
+<div class="line"><a name="l00529"></a><span class="lineno">  529</span>   <span class="keywordflow">if</span> (Record[Idx++])</div>
+<div class="line"><a name="l00530"></a><span class="lineno">  530</span>     ECD-><a class="code" href="classclang_1_1EnumConstantDecl.html#aa50b29fb411682a5ef45262fafcc2b9d">setInitExpr</a>(Reader.ReadExpr(F));</div>
+<div class="line"><a name="l00531"></a><span class="lineno">  531</span>   ECD-><a class="code" href="classclang_1_1EnumConstantDecl.html#afae1e8b246abacfd70b45450c730716e">setInitVal</a>(Reader.ReadAPSInt(Record, Idx));</div>
+<div class="line"><a name="l00532"></a><span class="lineno">  532</span>   mergeMergeable(ECD);</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> </div>
+<div class="line"><a name="l00535"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a5d985c947c5f74f553a1d427efa71090">  535</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a5d985c947c5f74f553a1d427efa71090">ASTDeclReader::VisitDeclaratorDecl</a>(<a class="code" href="classclang_1_1DeclaratorDecl.html" title="Represents a ValueDecl that came out of a declarator. Contains type source information through TypeSo...">DeclaratorDecl</a> *DD) {</div>
+<div class="line"><a name="l00536"></a><span class="lineno">  536</span>   VisitValueDecl(DD);</div>
+<div class="line"><a name="l00537"></a><span class="lineno">  537</span>   DD-><a class="code" href="classclang_1_1DeclaratorDecl.html#a3fba93da9aebbac5e0d3c8c7d32ba305">setInnerLocStart</a>(ReadSourceLocation(Record, Idx));</div>
+<div class="line"><a name="l00538"></a><span class="lineno">  538</span>   <span class="keywordflow">if</span> (Record[Idx++]) { <span class="comment">// hasExtInfo</span></div>
+<div class="line"><a name="l00539"></a><span class="lineno">  539</span>     DeclaratorDecl::ExtInfo *Info</div>
+<div class="line"><a name="l00540"></a><span class="lineno">  540</span>         = <span class="keyword">new</span> (Reader.getContext()) DeclaratorDecl::ExtInfo();</div>
+<div class="line"><a name="l00541"></a><span class="lineno">  541</span>     ReadQualifierInfo(*Info, Record, Idx);</div>
+<div class="line"><a name="l00542"></a><span class="lineno">  542</span>     DD->DeclInfo = Info;</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> }</div>
+<div class="line"><a name="l00545"></a><span class="lineno">  545</span> </div>
+<div class="line"><a name="l00546"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a19fb7ce20379fa3b2c6b66dd5cdb40ed">  546</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a19fb7ce20379fa3b2c6b66dd5cdb40ed">ASTDeclReader::VisitFunctionDecl</a>(<a class="code" href="classclang_1_1FunctionDecl.html">FunctionDecl</a> *FD) {</div>
+<div class="line"><a name="l00547"></a><span class="lineno">  547</span>   RedeclarableResult Redecl = VisitRedeclarable(FD);</div>
+<div class="line"><a name="l00548"></a><span class="lineno">  548</span>   VisitDeclaratorDecl(FD);</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>   ReadDeclarationNameLoc(FD->DNLoc, FD-><a class="code" href="classclang_1_1NamedDecl.html#a1e3e90455be89bb5c7c23640cbbd7153">getDeclName</a>(), Record, Idx);</div>
+<div class="line"><a name="l00551"></a><span class="lineno">  551</span>   FD-><a class="code" href="classclang_1_1Decl.html#a9e38ae17197f1ebf6cdbb58260133710">IdentifierNamespace</a> = Record[Idx++];</div>
+<div class="line"><a name="l00552"></a><span class="lineno">  552</span>   </div>
+<div class="line"><a name="l00553"></a><span class="lineno">  553</span>   <span class="comment">// FunctionDecl's body is handled last at ASTDeclReader::Visit,</span></div>
+<div class="line"><a name="l00554"></a><span class="lineno">  554</span>   <span class="comment">// after everything else is read.</span></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>   FD->SClass = (<a class="code" href="namespaceclang.html#a56dabc7d0ce7d72b9a35f6f5c3f89370" title="Storage classes.">StorageClass</a>)Record[Idx++];</div>
+<div class="line"><a name="l00557"></a><span class="lineno">  557</span>   FD->IsInline = Record[Idx++];</div>
+<div class="line"><a name="l00558"></a><span class="lineno">  558</span>   FD->IsInlineSpecified = Record[Idx++];</div>
+<div class="line"><a name="l00559"></a><span class="lineno">  559</span>   FD->IsVirtualAsWritten = Record[Idx++];</div>
+<div class="line"><a name="l00560"></a><span class="lineno">  560</span>   FD->IsPure = Record[Idx++];</div>
+<div class="line"><a name="l00561"></a><span class="lineno">  561</span>   FD->HasInheritedPrototype = Record[Idx++];</div>
+<div class="line"><a name="l00562"></a><span class="lineno">  562</span>   FD->HasWrittenPrototype = Record[Idx++];</div>
+<div class="line"><a name="l00563"></a><span class="lineno">  563</span>   FD->IsDeleted = Record[Idx++];</div>
+<div class="line"><a name="l00564"></a><span class="lineno">  564</span>   FD->IsTrivial = Record[Idx++];</div>
+<div class="line"><a name="l00565"></a><span class="lineno">  565</span>   FD->IsDefaulted = Record[Idx++];</div>
+<div class="line"><a name="l00566"></a><span class="lineno">  566</span>   FD->IsExplicitlyDefaulted = Record[Idx++];</div>
+<div class="line"><a name="l00567"></a><span class="lineno">  567</span>   FD->HasImplicitReturnZero = Record[Idx++];</div>
+<div class="line"><a name="l00568"></a><span class="lineno">  568</span>   FD->IsConstexpr = Record[Idx++];</div>
+<div class="line"><a name="l00569"></a><span class="lineno">  569</span>   FD->HasSkippedBody = Record[Idx++];</div>
+<div class="line"><a name="l00570"></a><span class="lineno">  570</span>   FD->IsLateTemplateParsed = Record[Idx++];</div>
+<div class="line"><a name="l00571"></a><span class="lineno">  571</span>   FD-><a class="code" href="classclang_1_1Decl.html#aa0eb399c315caf0100ce30e7edf9b4fe">setCachedLinkage</a>(<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>(Record[Idx++]));</div>
+<div class="line"><a name="l00572"></a><span class="lineno">  572</span>   FD->EndRangeLoc = ReadSourceLocation(Record, Idx);</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>   <span class="keywordflow">switch</span> ((<a class="code" href="classclang_1_1FunctionDecl.html#a66ab419ab9222b80ff2b2cdc0f989a4b" title="The kind of templated function a FunctionDecl can be.">FunctionDecl::TemplatedKind</a>)Record[Idx++]) {</div>
+<div class="line"><a name="l00575"></a><span class="lineno">  575</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1FunctionDecl.html#a66ab419ab9222b80ff2b2cdc0f989a4ba03cbb8840cfd89f7aa64112c723a8cb8">FunctionDecl::TK_NonTemplate</a>:</div>
+<div class="line"><a name="l00576"></a><span class="lineno">  576</span>     mergeRedeclarable(FD, Redecl);      </div>
+<div class="line"><a name="l00577"></a><span class="lineno">  577</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00578"></a><span class="lineno">  578</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1FunctionDecl.html#a66ab419ab9222b80ff2b2cdc0f989a4ba2d59d98e2766ef8f9cc5e990ea4b8779">FunctionDecl::TK_FunctionTemplate</a>:</div>
+<div class="line"><a name="l00579"></a><span class="lineno">  579</span>     FD-><a class="code" href="classclang_1_1FunctionDecl.html#a0217b7557e4d95b5e06d003f22f9a1f2">setDescribedFunctionTemplate</a>(ReadDeclAs<FunctionTemplateDecl>(Record, </div>
+<div class="line"><a name="l00580"></a><span class="lineno">  580</span>                                                                       Idx));</div>
+<div class="line"><a name="l00581"></a><span class="lineno">  581</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00582"></a><span class="lineno">  582</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1FunctionDecl.html#a66ab419ab9222b80ff2b2cdc0f989a4ba4048168b763d9f2605f02b911b0fc79c">FunctionDecl::TK_MemberSpecialization</a>: {</div>
+<div class="line"><a name="l00583"></a><span class="lineno">  583</span>     <a class="code" href="classclang_1_1FunctionDecl.html">FunctionDecl</a> *InstFD = ReadDeclAs<FunctionDecl>(Record, Idx);</div>
+<div class="line"><a name="l00584"></a><span class="lineno">  584</span>     <a class="code" href="namespaceclang.html#ae689bf8e3dcc54751a81974a4a12c3d2" title="Describes the kind of template specialization that a particular template specialization declaration r...">TemplateSpecializationKind</a> TSK = (<a class="code" href="namespaceclang.html#ae689bf8e3dcc54751a81974a4a12c3d2" title="Describes the kind of template specialization that a particular template specialization declaration r...">TemplateSpecializationKind</a>)Record[Idx++];</div>
+<div class="line"><a name="l00585"></a><span class="lineno">  585</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> POI = ReadSourceLocation(Record, Idx);</div>
+<div class="line"><a name="l00586"></a><span class="lineno">  586</span>     FD->setInstantiationOfMemberFunction(Reader.getContext(), InstFD, TSK);</div>
+<div class="line"><a name="l00587"></a><span class="lineno">  587</span>     FD-><a class="code" href="classclang_1_1FunctionDecl.html#acbc956fd0a4b04c47a0215942ddead08" title="If this function is an instantiation of a member function of a class template specialization, retrieves the member specialization information.">getMemberSpecializationInfo</a>()-><a class="code" href="classclang_1_1MemberSpecializationInfo.html#ac7a0b5ffbb14524e20aab5c82adfff92" title="Set the first point of instantiation.">setPointOfInstantiation</a>(POI);</div>
+<div class="line"><a name="l00588"></a><span class="lineno">  588</span>     <span class="keywordflow">break</span>;</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>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1FunctionDecl.html#a66ab419ab9222b80ff2b2cdc0f989a4bad983e13b6650ce1691e1fb1a46f94aaa">FunctionDecl::TK_FunctionTemplateSpecialization</a>: {</div>
+<div class="line"><a name="l00591"></a><span class="lineno">  591</span>     <a class="code" href="classclang_1_1FunctionTemplateDecl.html" title="Declaration of a template function.">FunctionTemplateDecl</a> *Template = ReadDeclAs<FunctionTemplateDecl>(Record, </div>
+<div class="line"><a name="l00592"></a><span class="lineno">  592</span>                                                                       Idx);</div>
+<div class="line"><a name="l00593"></a><span class="lineno">  593</span>     <a class="code" href="namespaceclang.html#ae689bf8e3dcc54751a81974a4a12c3d2" title="Describes the kind of template specialization that a particular template specialization declaration r...">TemplateSpecializationKind</a> TSK = (<a class="code" href="namespaceclang.html#ae689bf8e3dcc54751a81974a4a12c3d2" title="Describes the kind of template specialization that a particular template specialization declaration r...">TemplateSpecializationKind</a>)Record[Idx++];</div>
+<div class="line"><a name="l00594"></a><span class="lineno">  594</span>     </div>
+<div class="line"><a name="l00595"></a><span class="lineno">  595</span>     <span class="comment">// Template arguments.</span></div>
+<div class="line"><a name="l00596"></a><span class="lineno">  596</span>     <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<TemplateArgument, 8></a> TemplArgs;</div>
+<div class="line"><a name="l00597"></a><span class="lineno">  597</span>     Reader.ReadTemplateArgumentList(TemplArgs, F, Record, Idx);</div>
+<div class="line"><a name="l00598"></a><span class="lineno">  598</span>     </div>
+<div class="line"><a name="l00599"></a><span class="lineno">  599</span>     <span class="comment">// Template args as written.</span></div>
+<div class="line"><a name="l00600"></a><span class="lineno">  600</span>     <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<TemplateArgumentLoc, 8></a> TemplArgLocs;</div>
+<div class="line"><a name="l00601"></a><span class="lineno">  601</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> LAngleLoc, RAngleLoc;</div>
+<div class="line"><a name="l00602"></a><span class="lineno">  602</span>     <span class="keywordtype">bool</span> HasTemplateArgumentsAsWritten = Record[Idx++];</div>
+<div class="line"><a name="l00603"></a><span class="lineno">  603</span>     <span class="keywordflow">if</span> (HasTemplateArgumentsAsWritten) {</div>
+<div class="line"><a name="l00604"></a><span class="lineno">  604</span>       <span class="keywordtype">unsigned</span> NumTemplateArgLocs = Record[Idx++];</div>
+<div class="line"><a name="l00605"></a><span class="lineno">  605</span>       TemplArgLocs.reserve(NumTemplateArgLocs);</div>
+<div class="line"><a name="l00606"></a><span class="lineno">  606</span>       <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i=0; i != NumTemplateArgLocs; ++i)</div>
+<div class="line"><a name="l00607"></a><span class="lineno">  607</span>         TemplArgLocs.push_back(</div>
+<div class="line"><a name="l00608"></a><span class="lineno">  608</span>             Reader.ReadTemplateArgumentLoc(F, Record, Idx));</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>       LAngleLoc = ReadSourceLocation(Record, Idx);</div>
+<div class="line"><a name="l00611"></a><span class="lineno">  611</span>       RAngleLoc = ReadSourceLocation(Record, Idx);</div>
+<div class="line"><a name="l00612"></a><span class="lineno">  612</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>     <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> POI = ReadSourceLocation(Record, Idx);</div>
+<div class="line"><a name="l00615"></a><span class="lineno">  615</span> </div>
+<div class="line"><a name="l00616"></a><span class="lineno">  616</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> &C = Reader.getContext();</div>
+<div class="line"><a name="l00617"></a><span class="lineno">  617</span>     <a class="code" href="classclang_1_1TemplateArgumentList.html" title="A template argument list.">TemplateArgumentList</a> *TemplArgList</div>
+<div class="line"><a name="l00618"></a><span class="lineno">  618</span>       = <a class="code" href="classclang_1_1TemplateArgumentList.html#af838a4814e4d2bf5814fe89d4b19836a" title="Create a new template argument list that copies the given set of template arguments.">TemplateArgumentList::CreateCopy</a>(C, TemplArgs.data(), TemplArgs.size());</div>
+<div class="line"><a name="l00619"></a><span class="lineno">  619</span>     <a class="code" href="classclang_1_1TemplateArgumentListInfo.html">TemplateArgumentListInfo</a> TemplArgsInfo(LAngleLoc, RAngleLoc);</div>
+<div class="line"><a name="l00620"></a><span class="lineno">  620</span>     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i=0, e = TemplArgLocs.size(); i != e; ++i)</div>
+<div class="line"><a name="l00621"></a><span class="lineno">  621</span>       TemplArgsInfo.addArgument(TemplArgLocs[i]);</div>
+<div class="line"><a name="l00622"></a><span class="lineno">  622</span>     <a class="code" href="classclang_1_1FunctionTemplateSpecializationInfo.html" title="Provides information about a function template specialization, which is a FunctionDecl that has been ...">FunctionTemplateSpecializationInfo</a> *FTInfo</div>
+<div class="line"><a name="l00623"></a><span class="lineno">  623</span>         = <a class="code" href="classclang_1_1FunctionTemplateSpecializationInfo.html#a36f7b7a20602029a777f39bddf604e50">FunctionTemplateSpecializationInfo::Create</a>(C, FD, Template, TSK,</div>
+<div class="line"><a name="l00624"></a><span class="lineno">  624</span>                                                      TemplArgList,</div>
+<div class="line"><a name="l00625"></a><span class="lineno">  625</span>                              HasTemplateArgumentsAsWritten ? &TemplArgsInfo : 0,</div>
+<div class="line"><a name="l00626"></a><span class="lineno">  626</span>                                                      POI);</div>
+<div class="line"><a name="l00627"></a><span class="lineno">  627</span>     FD->TemplateOrSpecialization = FTInfo;</div>
+<div class="line"><a name="l00628"></a><span class="lineno">  628</span> </div>
+<div class="line"><a name="l00629"></a><span class="lineno">  629</span>     <span class="keywordflow">if</span> (FD-><a class="code" href="classclang_1_1Decl.html#a2b931baf609b7f7de1e61841a7b0d876" title="Whether this particular Decl is a canonical one.">isCanonicalDecl</a>()) { <span class="comment">// if canonical add to template's set.</span></div>
+<div class="line"><a name="l00630"></a><span class="lineno">  630</span>       <span class="comment">// The template that contains the specializations set. It's not safe to</span></div>
+<div class="line"><a name="l00631"></a><span class="lineno">  631</span>       <span class="comment">// use getCanonicalDecl on Template since it may still be initializing.</span></div>
+<div class="line"><a name="l00632"></a><span class="lineno">  632</span>       <a class="code" href="classclang_1_1FunctionTemplateDecl.html" title="Declaration of a template function.">FunctionTemplateDecl</a> *CanonTemplate</div>
+<div class="line"><a name="l00633"></a><span class="lineno">  633</span>         = ReadDeclAs<FunctionTemplateDecl>(Record, Idx);</div>
+<div class="line"><a name="l00634"></a><span class="lineno">  634</span>       <span class="comment">// Get the InsertPos by FindNodeOrInsertPos() instead of calling</span></div>
+<div class="line"><a name="l00635"></a><span class="lineno">  635</span>       <span class="comment">// InsertNode(FTInfo) directly to avoid the getASTContext() call in</span></div>
+<div class="line"><a name="l00636"></a><span class="lineno">  636</span>       <span class="comment">// FunctionTemplateSpecializationInfo's Profile().</span></div>
+<div class="line"><a name="l00637"></a><span class="lineno">  637</span>       <span class="comment">// We avoid getASTContext because a decl in the parent hierarchy may</span></div>
+<div class="line"><a name="l00638"></a><span class="lineno">  638</span>       <span class="comment">// be initializing.</span></div>
+<div class="line"><a name="l00639"></a><span class="lineno">  639</span>       llvm::FoldingSetNodeID <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="l00640"></a><span class="lineno">  640</span>       <a class="code" href="classclang_1_1FunctionTemplateSpecializationInfo.html#a86667c2146404e4608c94fd5bb9eaac5">FunctionTemplateSpecializationInfo::Profile</a>(ID, TemplArgs.data(),</div>
+<div class="line"><a name="l00641"></a><span class="lineno">  641</span>                                                   TemplArgs.size(), C);</div>
+<div class="line"><a name="l00642"></a><span class="lineno">  642</span>       <span class="keywordtype">void</span> *InsertPos = 0;</div>
+<div class="line"><a name="l00643"></a><span class="lineno">  643</span>       <a class="code" href="structclang_1_1FunctionTemplateDecl_1_1Common.html" title="Data that is common to all of the declarations of a given function template.">FunctionTemplateDecl::Common</a> *CommonPtr = CanonTemplate-><a class="code" href="classclang_1_1FunctionTemplateDecl.html#ab946ddea8bee9da118ddb8df73e82e8e">getCommonPtr</a>();</div>
+<div class="line"><a name="l00644"></a><span class="lineno">  644</span>       CommonPtr-><a class="code" href="structclang_1_1FunctionTemplateDecl_1_1Common.html#a18d89b6c9bf6702ef29b7d44e1801943" title="The function template specializations for this function template, including explicit specializations ...">Specializations</a>.FindNodeOrInsertPos(ID, InsertPos);</div>
+<div class="line"><a name="l00645"></a><span class="lineno">  645</span>       <span class="keywordflow">if</span> (InsertPos)</div>
+<div class="line"><a name="l00646"></a><span class="lineno">  646</span>         CommonPtr-><a class="code" href="structclang_1_1FunctionTemplateDecl_1_1Common.html#a18d89b6c9bf6702ef29b7d44e1801943" title="The function template specializations for this function template, including explicit specializations ...">Specializations</a>.InsertNode(FTInfo, InsertPos);</div>
+<div class="line"><a name="l00647"></a><span class="lineno">  647</span>       <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00648"></a><span class="lineno">  648</span>         assert(Reader.getContext().getLangOpts().Modules &&</div>
+<div class="line"><a name="l00649"></a><span class="lineno">  649</span>                <span class="stringliteral">"already deserialized this template specialization"</span>);</div>
+<div class="line"><a name="l00650"></a><span class="lineno">  650</span>         <span class="comment">// FIXME: This specialization is a redeclaration of one from another</span></div>
+<div class="line"><a name="l00651"></a><span class="lineno">  651</span>         <span class="comment">// module. Merge it.</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>     }</div>
+<div class="line"><a name="l00654"></a><span class="lineno">  654</span>     <span class="keywordflow">break</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">  656</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1FunctionDecl.html#a66ab419ab9222b80ff2b2cdc0f989a4baeb981f77ff99d11d9b0905f51322df66">FunctionDecl::TK_DependentFunctionTemplateSpecialization</a>: {</div>
+<div class="line"><a name="l00657"></a><span class="lineno">  657</span>     <span class="comment">// Templates.</span></div>
+<div class="line"><a name="l00658"></a><span class="lineno">  658</span>     <a class="code" href="classclang_1_1UnresolvedSet.html">UnresolvedSet<8></a> TemplDecls;</div>
+<div class="line"><a name="l00659"></a><span class="lineno">  659</span>     <span class="keywordtype">unsigned</span> NumTemplates = Record[Idx++];</div>
+<div class="line"><a name="l00660"></a><span class="lineno">  660</span>     <span class="keywordflow">while</span> (NumTemplates--)</div>
+<div class="line"><a name="l00661"></a><span class="lineno">  661</span>       TemplDecls.<a class="code" href="classclang_1_1UnresolvedSetImpl.html#af9acf1f68b7d1987270853e03df07145">addDecl</a>(ReadDeclAs<NamedDecl>(Record, Idx));</div>
+<div class="line"><a name="l00662"></a><span class="lineno">  662</span>     </div>
+<div class="line"><a name="l00663"></a><span class="lineno">  663</span>     <span class="comment">// Templates args.</span></div>
+<div class="line"><a name="l00664"></a><span class="lineno">  664</span>     <a class="code" href="classclang_1_1TemplateArgumentListInfo.html">TemplateArgumentListInfo</a> TemplArgs;</div>
+<div class="line"><a name="l00665"></a><span class="lineno">  665</span>     <span class="keywordtype">unsigned</span> NumArgs = Record[Idx++];</div>
+<div class="line"><a name="l00666"></a><span class="lineno">  666</span>     <span class="keywordflow">while</span> (NumArgs--)</div>
+<div class="line"><a name="l00667"></a><span class="lineno">  667</span>       TemplArgs.<a class="code" href="classclang_1_1TemplateArgumentListInfo.html#a5c00d322568afcc711f3ed1cd18092af">addArgument</a>(Reader.ReadTemplateArgumentLoc(F, Record, Idx));</div>
+<div class="line"><a name="l00668"></a><span class="lineno">  668</span>     TemplArgs.<a class="code" href="classclang_1_1TemplateArgumentListInfo.html#a0b1b8a8dac911fb998ca8b6e79c630df">setLAngleLoc</a>(ReadSourceLocation(Record, Idx));</div>
+<div class="line"><a name="l00669"></a><span class="lineno">  669</span>     TemplArgs.<a class="code" href="classclang_1_1TemplateArgumentListInfo.html#a15eb8ae25d912be1c83e908c458624cd">setRAngleLoc</a>(ReadSourceLocation(Record, Idx));</div>
+<div class="line"><a name="l00670"></a><span class="lineno">  670</span>     </div>
+<div class="line"><a name="l00671"></a><span class="lineno">  671</span>     FD-><a class="code" href="classclang_1_1FunctionDecl.html#a6821968053ca0900949b7693bd9bdaf9" title="Specifies that this function declaration is actually a dependent function template specialization...">setDependentTemplateSpecialization</a>(Reader.getContext(),</div>
+<div class="line"><a name="l00672"></a><span class="lineno">  672</span>                                            TemplDecls, TemplArgs);</div>
+<div class="line"><a name="l00673"></a><span class="lineno">  673</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00674"></a><span class="lineno">  674</span>   }</div>
+<div class="line"><a name="l00675"></a><span class="lineno">  675</span>   }</div>
+<div class="line"><a name="l00676"></a><span class="lineno">  676</span> </div>
+<div class="line"><a name="l00677"></a><span class="lineno">  677</span>   <span class="comment">// Read in the parameters.</span></div>
+<div class="line"><a name="l00678"></a><span class="lineno">  678</span>   <span class="keywordtype">unsigned</span> NumParams = Record[Idx++];</div>
+<div class="line"><a name="l00679"></a><span class="lineno">  679</span>   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<ParmVarDecl *, 16></a> Params;</div>
+<div class="line"><a name="l00680"></a><span class="lineno">  680</span>   Params.reserve(NumParams);</div>
+<div class="line"><a name="l00681"></a><span class="lineno">  681</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0; I != NumParams; ++I)</div>
+<div class="line"><a name="l00682"></a><span class="lineno">  682</span>     Params.push_back(ReadDeclAs<ParmVarDecl>(Record, Idx));</div>
+<div class="line"><a name="l00683"></a><span class="lineno">  683</span>   FD->setParams(Reader.getContext(), Params);</div>
+<div class="line"><a name="l00684"></a><span class="lineno">  684</span> }</div>
+<div class="line"><a name="l00685"></a><span class="lineno">  685</span> </div>
+<div class="line"><a name="l00686"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a1fd0033f3aed02f5026ee4ca9bbd0eae">  686</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a1fd0033f3aed02f5026ee4ca9bbd0eae">ASTDeclReader::VisitObjCMethodDecl</a>(<a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *MD) {</div>
+<div class="line"><a name="l00687"></a><span class="lineno">  687</span>   VisitNamedDecl(MD);</div>
+<div class="line"><a name="l00688"></a><span class="lineno">  688</span>   <span class="keywordflow">if</span> (Record[Idx++]) {</div>
+<div class="line"><a name="l00689"></a><span class="lineno">  689</span>     <span class="comment">// Load the body on-demand. Most clients won't care, because method</span></div>
+<div class="line"><a name="l00690"></a><span class="lineno">  690</span>     <span class="comment">// definitions rarely show up in headers.</span></div>
+<div class="line"><a name="l00691"></a><span class="lineno">  691</span>     Reader.PendingBodies[MD] = GetCurrentCursorOffset();</div>
+<div class="line"><a name="l00692"></a><span class="lineno">  692</span>     HasPendingBody = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00693"></a><span class="lineno">  693</span>     MD-><a class="code" href="classclang_1_1ObjCMethodDecl.html#a1b02a4e95a604905c0342c06478cef91">setSelfDecl</a>(ReadDeclAs<ImplicitParamDecl>(Record, Idx));</div>
+<div class="line"><a name="l00694"></a><span class="lineno">  694</span>     MD-><a class="code" href="classclang_1_1ObjCMethodDecl.html#a581e449964facb562ca1a893cee720ae">setCmdDecl</a>(ReadDeclAs<ImplicitParamDecl>(Record, Idx));</div>
+<div class="line"><a name="l00695"></a><span class="lineno">  695</span>   }</div>
+<div class="line"><a name="l00696"></a><span class="lineno">  696</span>   MD-><a class="code" href="classclang_1_1ObjCMethodDecl.html#af0db2ff75df4830ea290a8e4a1a34f96">setInstanceMethod</a>(Record[Idx++]);</div>
+<div class="line"><a name="l00697"></a><span class="lineno">  697</span>   MD-><a class="code" href="classclang_1_1ObjCMethodDecl.html#af683bdd05ffa2c34fc5c1a935674f49c">setVariadic</a>(Record[Idx++]);</div>
+<div class="line"><a name="l00698"></a><span class="lineno">  698</span>   MD-><a class="code" href="classclang_1_1ObjCMethodDecl.html#aa50dab341af0ece584e0e2c9ff8f8f4f">setPropertyAccessor</a>(Record[Idx++]);</div>
+<div class="line"><a name="l00699"></a><span class="lineno">  699</span>   MD-><a class="code" href="classclang_1_1ObjCMethodDecl.html#a0d40aeddd5c1adada29a2dd5356227b5">setDefined</a>(Record[Idx++]);</div>
+<div class="line"><a name="l00700"></a><span class="lineno">  700</span>   MD->IsOverriding = Record[Idx++];</div>
+<div class="line"><a name="l00701"></a><span class="lineno">  701</span>   MD->HasSkippedBody = Record[Idx++];</div>
+<div class="line"><a name="l00702"></a><span class="lineno">  702</span> </div>
+<div class="line"><a name="l00703"></a><span class="lineno">  703</span>   MD->IsRedeclaration = Record[Idx++];</div>
+<div class="line"><a name="l00704"></a><span class="lineno">  704</span>   MD->HasRedeclaration = Record[Idx++];</div>
+<div class="line"><a name="l00705"></a><span class="lineno">  705</span>   <span class="keywordflow">if</span> (MD->HasRedeclaration)</div>
+<div class="line"><a name="l00706"></a><span class="lineno">  706</span>     Reader.getContext().setObjCMethodRedeclaration(MD,</div>
+<div class="line"><a name="l00707"></a><span class="lineno">  707</span>                                        ReadDeclAs<ObjCMethodDecl>(Record, Idx));</div>
+<div class="line"><a name="l00708"></a><span class="lineno">  708</span> </div>
+<div class="line"><a name="l00709"></a><span class="lineno">  709</span>   MD-><a class="code" href="classclang_1_1ObjCMethodDecl.html#a8451d60a1b1742446029677ebd8fc874">setDeclImplementation</a>((<a class="code" href="classclang_1_1ObjCMethodDecl.html#a542f187aaa0c0781b19ead8e71198abe">ObjCMethodDecl::ImplementationControl</a>)Record[Idx++]);</div>
+<div class="line"><a name="l00710"></a><span class="lineno">  710</span>   MD-><a class="code" href="classclang_1_1ObjCMethodDecl.html#a0cf292b25f5422c92899ec2ed9e98a9f">setObjCDeclQualifier</a>((<a class="code" href="classclang_1_1Decl.html#a7f34c574aae8bf17eae69fc7bd8a3e24">Decl::ObjCDeclQualifier</a>)Record[Idx++]);</div>
+<div class="line"><a name="l00711"></a><span class="lineno">  711</span>   MD-><a class="code" href="classclang_1_1ObjCMethodDecl.html#a0c87969b5c77fd25bd4381e649eefd67" title="Note whether this method has a related result type.">SetRelatedResultType</a>(Record[Idx++]);</div>
+<div class="line"><a name="l00712"></a><span class="lineno">  712</span>   MD-><a class="code" href="classclang_1_1ObjCMethodDecl.html#a722178b2f8722cfafeaaa94dab872510">setResultType</a>(Reader.readType(F, Record, Idx));</div>
+<div class="line"><a name="l00713"></a><span class="lineno">  713</span>   MD-><a class="code" href="classclang_1_1ObjCMethodDecl.html#a4b67be3fb7c610d0e273d980ddfa1aeb">setResultTypeSourceInfo</a>(GetTypeSourceInfo(Record, Idx));</div>
+<div class="line"><a name="l00714"></a><span class="lineno">  714</span>   MD->DeclEndLoc = ReadSourceLocation(Record, Idx);</div>
+<div class="line"><a name="l00715"></a><span class="lineno">  715</span>   <span class="keywordtype">unsigned</span> NumParams = Record[Idx++];</div>
+<div class="line"><a name="l00716"></a><span class="lineno">  716</span>   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<ParmVarDecl *, 16></a> Params;</div>
+<div class="line"><a name="l00717"></a><span class="lineno">  717</span>   Params.reserve(NumParams);</div>
+<div class="line"><a name="l00718"></a><span class="lineno">  718</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0; I != NumParams; ++I)</div>
+<div class="line"><a name="l00719"></a><span class="lineno">  719</span>     Params.push_back(ReadDeclAs<ParmVarDecl>(Record, Idx));</div>
+<div class="line"><a name="l00720"></a><span class="lineno">  720</span> </div>
+<div class="line"><a name="l00721"></a><span class="lineno">  721</span>   MD->SelLocsKind = Record[Idx++];</div>
+<div class="line"><a name="l00722"></a><span class="lineno">  722</span>   <span class="keywordtype">unsigned</span> NumStoredSelLocs = Record[Idx++];</div>
+<div class="line"><a name="l00723"></a><span class="lineno">  723</span>   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<SourceLocation, 16></a> SelLocs;</div>
+<div class="line"><a name="l00724"></a><span class="lineno">  724</span>   SelLocs.reserve(NumStoredSelLocs);</div>
+<div class="line"><a name="l00725"></a><span class="lineno">  725</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i != NumStoredSelLocs; ++i)</div>
+<div class="line"><a name="l00726"></a><span class="lineno">  726</span>     SelLocs.push_back(ReadSourceLocation(Record, Idx));</div>
+<div class="line"><a name="l00727"></a><span class="lineno">  727</span> </div>
+<div class="line"><a name="l00728"></a><span class="lineno">  728</span>   MD->setParamsAndSelLocs(Reader.getContext(), Params, SelLocs);</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"><a class="code" href="classclang_1_1ASTDeclReader.html#a40f28344f8b1fac12190e56d372b43ae">  731</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a40f28344f8b1fac12190e56d372b43ae">ASTDeclReader::VisitObjCContainerDecl</a>(<a class="code" href="classclang_1_1ObjCContainerDecl.html">ObjCContainerDecl</a> *CD) {</div>
+<div class="line"><a name="l00732"></a><span class="lineno">  732</span>   VisitNamedDecl(CD);</div>
+<div class="line"><a name="l00733"></a><span class="lineno">  733</span>   CD-><a class="code" href="classclang_1_1ObjCContainerDecl.html#a26c7c9609741e2f83b6d2cf85617e33f">setAtStartLoc</a>(ReadSourceLocation(Record, Idx));</div>
+<div class="line"><a name="l00734"></a><span class="lineno">  734</span>   CD-><a class="code" href="classclang_1_1ObjCContainerDecl.html#a9f20c0dd3594b28dde5fbf6f8f9a35ef">setAtEndRange</a>(ReadSourceRange(Record, Idx));</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"><a class="code" href="classclang_1_1ASTDeclReader.html#a8d416117e36b807f51866588c820e504">  737</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a8d416117e36b807f51866588c820e504">ASTDeclReader::VisitObjCInterfaceDecl</a>(<a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</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="l00738"></a><span class="lineno">  738</span>   RedeclarableResult Redecl = VisitRedeclarable(ID);</div>
+<div class="line"><a name="l00739"></a><span class="lineno">  739</span>   VisitObjCContainerDecl(ID);</div>
+<div class="line"><a name="l00740"></a><span class="lineno">  740</span>   TypeIDForTypeDecl = Reader.getGlobalTypeID(F, Record[Idx++]);</div>
+<div class="line"><a name="l00741"></a><span class="lineno">  741</span>   mergeRedeclarable(ID, Redecl);</div>
+<div class="line"><a name="l00742"></a><span class="lineno">  742</span>   </div>
+<div class="line"><a name="l00743"></a><span class="lineno">  743</span>   <span class="keywordflow">if</span> (Record[Idx++]) {</div>
+<div class="line"><a name="l00744"></a><span class="lineno">  744</span>     <span class="comment">// Read the definition.</span></div>
+<div class="line"><a name="l00745"></a><span class="lineno">  745</span>     ID->allocateDefinitionData();</div>
+<div class="line"><a name="l00746"></a><span class="lineno">  746</span>     </div>
+<div class="line"><a name="l00747"></a><span class="lineno">  747</span>     <span class="comment">// Set the definition data of the canonical declaration, so other</span></div>
+<div class="line"><a name="l00748"></a><span class="lineno">  748</span>     <span class="comment">// redeclarations will see it.</span></div>
+<div class="line"><a name="l00749"></a><span class="lineno">  749</span>     ID-><a class="code" href="classclang_1_1ObjCInterfaceDecl.html#a8595a624c397109ebce97034e683be37" title="Retrieves the canonical declaration of this Objective-C class.">getCanonicalDecl</a>()->Data = ID->Data;</div>
+<div class="line"><a name="l00750"></a><span class="lineno">  750</span>     </div>
+<div class="line"><a name="l00751"></a><span class="lineno">  751</span>     ObjCInterfaceDecl::DefinitionData &Data = ID->data();</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>     <span class="comment">// Read the superclass.</span></div>
+<div class="line"><a name="l00754"></a><span class="lineno">  754</span>     Data.SuperClass = ReadDeclAs<ObjCInterfaceDecl>(Record, Idx);</div>
+<div class="line"><a name="l00755"></a><span class="lineno">  755</span>     Data.SuperClassLoc = ReadSourceLocation(Record, Idx);</div>
+<div class="line"><a name="l00756"></a><span class="lineno">  756</span> </div>
+<div class="line"><a name="l00757"></a><span class="lineno">  757</span>     Data.EndLoc = ReadSourceLocation(Record, Idx);</div>
+<div class="line"><a name="l00758"></a><span class="lineno">  758</span>     </div>
+<div class="line"><a name="l00759"></a><span class="lineno">  759</span>     <span class="comment">// Read the directly referenced protocols and their SourceLocations.</span></div>
+<div class="line"><a name="l00760"></a><span class="lineno">  760</span>     <span class="keywordtype">unsigned</span> NumProtocols = Record[Idx++];</div>
+<div class="line"><a name="l00761"></a><span class="lineno">  761</span>     <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<ObjCProtocolDecl *, 16></a> Protocols;</div>
+<div class="line"><a name="l00762"></a><span class="lineno">  762</span>     Protocols.reserve(NumProtocols);</div>
+<div class="line"><a name="l00763"></a><span class="lineno">  763</span>     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0; I != NumProtocols; ++I)</div>
+<div class="line"><a name="l00764"></a><span class="lineno">  764</span>       Protocols.push_back(ReadDeclAs<ObjCProtocolDecl>(Record, Idx));</div>
+<div class="line"><a name="l00765"></a><span class="lineno">  765</span>     <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<SourceLocation, 16></a> ProtoLocs;</div>
+<div class="line"><a name="l00766"></a><span class="lineno">  766</span>     ProtoLocs.reserve(NumProtocols);</div>
+<div class="line"><a name="l00767"></a><span class="lineno">  767</span>     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0; I != NumProtocols; ++I)</div>
+<div class="line"><a name="l00768"></a><span class="lineno">  768</span>       ProtoLocs.push_back(ReadSourceLocation(Record, Idx));</div>
+<div class="line"><a name="l00769"></a><span class="lineno">  769</span>     ID-><a class="code" href="classclang_1_1ObjCInterfaceDecl.html#a1c2af83058b55f3e8685dc24ed608c52">setProtocolList</a>(Protocols.data(), NumProtocols, ProtoLocs.data(),</div>
+<div class="line"><a name="l00770"></a><span class="lineno">  770</span>                         Reader.getContext());</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>     <span class="comment">// Read the transitive closure of protocols referenced by this class.</span></div>
+<div class="line"><a name="l00773"></a><span class="lineno">  773</span>     NumProtocols = Record[Idx++];</div>
+<div class="line"><a name="l00774"></a><span class="lineno">  774</span>     Protocols.clear();</div>
+<div class="line"><a name="l00775"></a><span class="lineno">  775</span>     Protocols.reserve(NumProtocols);</div>
+<div class="line"><a name="l00776"></a><span class="lineno">  776</span>     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0; I != NumProtocols; ++I)</div>
+<div class="line"><a name="l00777"></a><span class="lineno">  777</span>       Protocols.push_back(ReadDeclAs<ObjCProtocolDecl>(Record, Idx));</div>
+<div class="line"><a name="l00778"></a><span class="lineno">  778</span>     ID->data().AllReferencedProtocols.set(Protocols.data(), NumProtocols,</div>
+<div class="line"><a name="l00779"></a><span class="lineno">  779</span>                                           Reader.getContext());</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>     <span class="comment">// We will rebuild this list lazily.</span></div>
+<div class="line"><a name="l00782"></a><span class="lineno">  782</span>     ID-><a class="code" href="classclang_1_1ObjCInterfaceDecl.html#af807d34e6cb90eaab7e720bea065438e">setIvarList</a>(0);</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="comment">// Note that we have deserialized a definition.</span></div>
+<div class="line"><a name="l00785"></a><span class="lineno">  785</span>     Reader.PendingDefinitions.insert(ID);</div>
+<div class="line"><a name="l00786"></a><span class="lineno">  786</span>     </div>
+<div class="line"><a name="l00787"></a><span class="lineno">  787</span>     <span class="comment">// Note that we've loaded this Objective-C class.</span></div>
+<div class="line"><a name="l00788"></a><span class="lineno">  788</span>     Reader.ObjCClassesLoaded.push_back(ID);</div>
+<div class="line"><a name="l00789"></a><span class="lineno">  789</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00790"></a><span class="lineno">  790</span>     ID->Data = ID-><a class="code" href="classclang_1_1ObjCInterfaceDecl.html#a8595a624c397109ebce97034e683be37" title="Retrieves the canonical declaration of this Objective-C class.">getCanonicalDecl</a>()->Data;</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> }</div>
+<div class="line"><a name="l00793"></a><span class="lineno">  793</span> </div>
+<div class="line"><a name="l00794"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#ad6ceee4eeebbc1028005e4ca94793741">  794</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#ad6ceee4eeebbc1028005e4ca94793741">ASTDeclReader::VisitObjCIvarDecl</a>(<a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *IVD) {</div>
+<div class="line"><a name="l00795"></a><span class="lineno">  795</span>   VisitFieldDecl(IVD);</div>
+<div class="line"><a name="l00796"></a><span class="lineno">  796</span>   IVD-><a class="code" href="classclang_1_1ObjCIvarDecl.html#a0fcb9dddb66ec52a74881b86ab3a49e0">setAccessControl</a>((<a class="code" href="classclang_1_1ObjCIvarDecl.html#a6a902654b0b06d4a7392ab64a8ca3a9d">ObjCIvarDecl::AccessControl</a>)Record[Idx++]);</div>
+<div class="line"><a name="l00797"></a><span class="lineno">  797</span>   <span class="comment">// This field will be built lazily.</span></div>
+<div class="line"><a name="l00798"></a><span class="lineno">  798</span>   IVD-><a class="code" href="classclang_1_1ObjCIvarDecl.html#a338b6d4b0558780063062711a242ed6c">setNextIvar</a>(0);</div>
+<div class="line"><a name="l00799"></a><span class="lineno">  799</span>   <span class="keywordtype">bool</span> synth = Record[Idx++];</div>
+<div class="line"><a name="l00800"></a><span class="lineno">  800</span>   IVD-><a class="code" href="classclang_1_1ObjCIvarDecl.html#a721a093b8ff76d954335e097766a88fe">setSynthesize</a>(synth);</div>
+<div class="line"><a name="l00801"></a><span class="lineno">  801</span>   <span class="keywordtype">bool</span> backingIvarReferencedInAccessor = Record[Idx++];</div>
+<div class="line"><a name="l00802"></a><span class="lineno">  802</span>   IVD-><a class="code" href="classclang_1_1ObjCIvarDecl.html#a74455c2f6fb0c65abef65b78fc347b99">setBackingIvarReferencedInAccessor</a>(backingIvarReferencedInAccessor);</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> </div>
+<div class="line"><a name="l00805"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a57be4fc98cbdb45cf1e1a686cab9ddb1">  805</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a57be4fc98cbdb45cf1e1a686cab9ddb1">ASTDeclReader::VisitObjCProtocolDecl</a>(<a class="code" href="classclang_1_1ObjCProtocolDecl.html" title="Represents an Objective-C protocol declaration.">ObjCProtocolDecl</a> *PD) {</div>
+<div class="line"><a name="l00806"></a><span class="lineno">  806</span>   RedeclarableResult Redecl = VisitRedeclarable(PD);</div>
+<div class="line"><a name="l00807"></a><span class="lineno">  807</span>   VisitObjCContainerDecl(PD);</div>
+<div class="line"><a name="l00808"></a><span class="lineno">  808</span>   mergeRedeclarable(PD, Redecl);</div>
+<div class="line"><a name="l00809"></a><span class="lineno">  809</span>   </div>
+<div class="line"><a name="l00810"></a><span class="lineno">  810</span>   <span class="keywordflow">if</span> (Record[Idx++]) {</div>
+<div class="line"><a name="l00811"></a><span class="lineno">  811</span>     <span class="comment">// Read the definition.</span></div>
+<div class="line"><a name="l00812"></a><span class="lineno">  812</span>     PD->allocateDefinitionData();</div>
+<div class="line"><a name="l00813"></a><span class="lineno">  813</span>     </div>
+<div class="line"><a name="l00814"></a><span class="lineno">  814</span>     <span class="comment">// Set the definition data of the canonical declaration, so other</span></div>
+<div class="line"><a name="l00815"></a><span class="lineno">  815</span>     <span class="comment">// redeclarations will see it.</span></div>
+<div class="line"><a name="l00816"></a><span class="lineno">  816</span>     PD-><a class="code" href="classclang_1_1ObjCProtocolDecl.html#a1c0e972dbd312f8effdaa5f53dd1403d" title="Retrieves the canonical declaration of this Objective-C protocol.">getCanonicalDecl</a>()->Data = PD->Data;</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="keywordtype">unsigned</span> NumProtoRefs = Record[Idx++];</div>
+<div class="line"><a name="l00819"></a><span class="lineno">  819</span>     <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<ObjCProtocolDecl *, 16></a> ProtoRefs;</div>
+<div class="line"><a name="l00820"></a><span class="lineno">  820</span>     ProtoRefs.reserve(NumProtoRefs);</div>
+<div class="line"><a name="l00821"></a><span class="lineno">  821</span>     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0; I != NumProtoRefs; ++I)</div>
+<div class="line"><a name="l00822"></a><span class="lineno">  822</span>       ProtoRefs.push_back(ReadDeclAs<ObjCProtocolDecl>(Record, Idx));</div>
+<div class="line"><a name="l00823"></a><span class="lineno">  823</span>     <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<SourceLocation, 16></a> ProtoLocs;</div>
+<div class="line"><a name="l00824"></a><span class="lineno">  824</span>     ProtoLocs.reserve(NumProtoRefs);</div>
+<div class="line"><a name="l00825"></a><span class="lineno">  825</span>     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0; I != NumProtoRefs; ++I)</div>
+<div class="line"><a name="l00826"></a><span class="lineno">  826</span>       ProtoLocs.push_back(ReadSourceLocation(Record, Idx));</div>
+<div class="line"><a name="l00827"></a><span class="lineno">  827</span>     PD-><a class="code" href="classclang_1_1ObjCProtocolDecl.html#a2ce058458b21677baf5e68c1a145d688">setProtocolList</a>(ProtoRefs.data(), NumProtoRefs, ProtoLocs.data(),</div>
+<div class="line"><a name="l00828"></a><span class="lineno">  828</span>                         Reader.getContext());</div>
+<div class="line"><a name="l00829"></a><span class="lineno">  829</span>     </div>
+<div class="line"><a name="l00830"></a><span class="lineno">  830</span>     <span class="comment">// Note that we have deserialized a definition.</span></div>
+<div class="line"><a name="l00831"></a><span class="lineno">  831</span>     Reader.PendingDefinitions.insert(PD);</div>
+<div class="line"><a name="l00832"></a><span class="lineno">  832</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00833"></a><span class="lineno">  833</span>     PD->Data = PD-><a class="code" href="classclang_1_1ObjCProtocolDecl.html#a1c0e972dbd312f8effdaa5f53dd1403d" title="Retrieves the canonical declaration of this Objective-C protocol.">getCanonicalDecl</a>()->Data;</div>
+<div class="line"><a name="l00834"></a><span class="lineno">  834</span>   }</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"><a class="code" href="classclang_1_1ASTDeclReader.html#ae4fe647fc8784cd458a075f08333059f">  837</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#ae4fe647fc8784cd458a075f08333059f">ASTDeclReader::VisitObjCAtDefsFieldDecl</a>(<a class="code" href="classclang_1_1ObjCAtDefsFieldDecl.html" title="Represents a field declaration created by an @defs(...).">ObjCAtDefsFieldDecl</a> *FD) {</div>
+<div class="line"><a name="l00838"></a><span class="lineno">  838</span>   VisitFieldDecl(FD);</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> </div>
+<div class="line"><a name="l00841"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a13ffa4edc84446d7ba314b0544294947">  841</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a13ffa4edc84446d7ba314b0544294947">ASTDeclReader::VisitObjCCategoryDecl</a>(<a class="code" href="classclang_1_1ObjCCategoryDecl.html">ObjCCategoryDecl</a> *CD) {</div>
+<div class="line"><a name="l00842"></a><span class="lineno">  842</span>   VisitObjCContainerDecl(CD);</div>
+<div class="line"><a name="l00843"></a><span class="lineno">  843</span>   CD-><a class="code" href="classclang_1_1ObjCCategoryDecl.html#a682f6c3b7bd4cb8ece911f84774dd705">setCategoryNameLoc</a>(ReadSourceLocation(Record, Idx));</div>
+<div class="line"><a name="l00844"></a><span class="lineno">  844</span>   CD-><a class="code" href="classclang_1_1ObjCCategoryDecl.html#a5d4eb0f2931b8774e1d2f48a2f394e74">setIvarLBraceLoc</a>(ReadSourceLocation(Record, Idx));</div>
+<div class="line"><a name="l00845"></a><span class="lineno">  845</span>   CD-><a class="code" href="classclang_1_1ObjCCategoryDecl.html#a84950b4c5fb1ae23517ca14d87ed495d">setIvarRBraceLoc</a>(ReadSourceLocation(Record, Idx));</div>
+<div class="line"><a name="l00846"></a><span class="lineno">  846</span>   </div>
+<div class="line"><a name="l00847"></a><span class="lineno">  847</span>   <span class="comment">// Note that this category has been deserialized. We do this before</span></div>
+<div class="line"><a name="l00848"></a><span class="lineno">  848</span>   <span class="comment">// deserializing the interface declaration, so that it will consider this</span><span class="comment"></span></div>
+<div class="line"><a name="l00849"></a><span class="lineno">  849</span> <span class="comment">  /// category.</span></div>
+<div class="line"><a name="l00850"></a><span class="lineno">  850</span> <span class="comment"></span>  Reader.CategoriesDeserialized.insert(CD);</div>
+<div class="line"><a name="l00851"></a><span class="lineno">  851</span> </div>
+<div class="line"><a name="l00852"></a><span class="lineno">  852</span>   CD->ClassInterface = ReadDeclAs<ObjCInterfaceDecl>(Record, Idx);</div>
+<div class="line"><a name="l00853"></a><span class="lineno">  853</span>   <span class="keywordtype">unsigned</span> NumProtoRefs = Record[Idx++];</div>
+<div class="line"><a name="l00854"></a><span class="lineno">  854</span>   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<ObjCProtocolDecl *, 16></a> ProtoRefs;</div>
+<div class="line"><a name="l00855"></a><span class="lineno">  855</span>   ProtoRefs.reserve(NumProtoRefs);</div>
+<div class="line"><a name="l00856"></a><span class="lineno">  856</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0; I != NumProtoRefs; ++I)</div>
+<div class="line"><a name="l00857"></a><span class="lineno">  857</span>     ProtoRefs.push_back(ReadDeclAs<ObjCProtocolDecl>(Record, Idx));</div>
+<div class="line"><a name="l00858"></a><span class="lineno">  858</span>   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<SourceLocation, 16></a> ProtoLocs;</div>
+<div class="line"><a name="l00859"></a><span class="lineno">  859</span>   ProtoLocs.reserve(NumProtoRefs);</div>
+<div class="line"><a name="l00860"></a><span class="lineno">  860</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0; I != NumProtoRefs; ++I)</div>
+<div class="line"><a name="l00861"></a><span class="lineno">  861</span>     ProtoLocs.push_back(ReadSourceLocation(Record, Idx));</div>
+<div class="line"><a name="l00862"></a><span class="lineno">  862</span>   CD-><a class="code" href="classclang_1_1ObjCCategoryDecl.html#a441b91b3ae4d3834852993e0bac95f65">setProtocolList</a>(ProtoRefs.data(), NumProtoRefs, ProtoLocs.data(),</div>
+<div class="line"><a name="l00863"></a><span class="lineno">  863</span>                       Reader.getContext());</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> </div>
+<div class="line"><a name="l00866"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a7b1c99b377afc48da4748082575c8b39">  866</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a7b1c99b377afc48da4748082575c8b39">ASTDeclReader::VisitObjCCompatibleAliasDecl</a>(<a class="code" href="classclang_1_1ObjCCompatibleAliasDecl.html">ObjCCompatibleAliasDecl</a> *CAD) {</div>
+<div class="line"><a name="l00867"></a><span class="lineno">  867</span>   VisitNamedDecl(CAD);</div>
+<div class="line"><a name="l00868"></a><span class="lineno">  868</span>   CAD-><a class="code" href="classclang_1_1ObjCCompatibleAliasDecl.html#afd5e07bc2be8b6ee39f90bc219afc8f0">setClassInterface</a>(ReadDeclAs<ObjCInterfaceDecl>(Record, Idx));</div>
+<div class="line"><a name="l00869"></a><span class="lineno">  869</span> }</div>
+<div class="line"><a name="l00870"></a><span class="lineno">  870</span> </div>
+<div class="line"><a name="l00871"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#ad4d056f775f3ec3c5778a144d001a383">  871</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#ad4d056f775f3ec3c5778a144d001a383">ASTDeclReader::VisitObjCPropertyDecl</a>(<a class="code" href="classclang_1_1ObjCPropertyDecl.html" title="Represents one property declaration in an Objective-C interface.">ObjCPropertyDecl</a> *D) {</div>
+<div class="line"><a name="l00872"></a><span class="lineno">  872</span>   VisitNamedDecl(D);</div>
+<div class="line"><a name="l00873"></a><span class="lineno">  873</span>   D-><a class="code" href="classclang_1_1ObjCPropertyDecl.html#a18468109ae72297486334d14dcd9991c">setAtLoc</a>(ReadSourceLocation(Record, Idx));</div>
+<div class="line"><a name="l00874"></a><span class="lineno">  874</span>   D-><a class="code" href="classclang_1_1ObjCPropertyDecl.html#ab194c68e560e476823249ef2119f27c3">setLParenLoc</a>(ReadSourceLocation(Record, Idx));</div>
+<div class="line"><a name="l00875"></a><span class="lineno">  875</span>   D-><a class="code" href="classclang_1_1ObjCPropertyDecl.html#a31d191d240c4060695cf134325fb0d13">setType</a>(GetTypeSourceInfo(Record, Idx));</div>
+<div class="line"><a name="l00876"></a><span class="lineno">  876</span>   <span class="comment">// FIXME: stable encoding</span></div>
+<div class="line"><a name="l00877"></a><span class="lineno">  877</span>   D-><a class="code" href="classclang_1_1ObjCPropertyDecl.html#ac7cda0703ffb6b55a12fe2a2d9c18e90">setPropertyAttributes</a>(</div>
+<div class="line"><a name="l00878"></a><span class="lineno">  878</span>                       (<a class="code" href="classclang_1_1ObjCPropertyDecl.html#a8c30cbf1e395e8f65ea427afb5ed0e08">ObjCPropertyDecl::PropertyAttributeKind</a>)Record[Idx++]);</div>
+<div class="line"><a name="l00879"></a><span class="lineno">  879</span>   D-><a class="code" href="classclang_1_1ObjCPropertyDecl.html#afa6be9739c36c4dc73bc2c9c6685bf0b">setPropertyAttributesAsWritten</a>(</div>
+<div class="line"><a name="l00880"></a><span class="lineno">  880</span>                       (<a class="code" href="classclang_1_1ObjCPropertyDecl.html#a8c30cbf1e395e8f65ea427afb5ed0e08">ObjCPropertyDecl::PropertyAttributeKind</a>)Record[Idx++]);</div>
+<div class="line"><a name="l00881"></a><span class="lineno">  881</span>   <span class="comment">// FIXME: stable encoding</span></div>
+<div class="line"><a name="l00882"></a><span class="lineno">  882</span>   D-><a class="code" href="classclang_1_1ObjCPropertyDecl.html#a3a8419ff806a1c8c72b4ddac8091eb15">setPropertyImplementation</a>(</div>
+<div class="line"><a name="l00883"></a><span class="lineno">  883</span>                             (<a class="code" href="classclang_1_1ObjCPropertyDecl.html#a79a227c96a7b7d27c72c069e1e3d88ae">ObjCPropertyDecl::PropertyControl</a>)Record[Idx++]);</div>
+<div class="line"><a name="l00884"></a><span class="lineno">  884</span>   D-><a class="code" href="classclang_1_1ObjCPropertyDecl.html#a945e137d3c674e985ec44d4ccec3a4e2">setGetterName</a>(Reader.ReadDeclarationName(F,Record, Idx).getObjCSelector());</div>
+<div class="line"><a name="l00885"></a><span class="lineno">  885</span>   D-><a class="code" href="classclang_1_1ObjCPropertyDecl.html#accbdb0d5b1763be80f71b21c7cb92c9a">setSetterName</a>(Reader.ReadDeclarationName(F,Record, Idx).getObjCSelector());</div>
+<div class="line"><a name="l00886"></a><span class="lineno">  886</span>   D-><a class="code" href="classclang_1_1ObjCPropertyDecl.html#af80219de1244ec08c9c3e3afdd3b16b1">setGetterMethodDecl</a>(ReadDeclAs<ObjCMethodDecl>(Record, Idx));</div>
+<div class="line"><a name="l00887"></a><span class="lineno">  887</span>   D-><a class="code" href="classclang_1_1ObjCPropertyDecl.html#ad585a45817746ff31d5273a95e5ea8c1">setSetterMethodDecl</a>(ReadDeclAs<ObjCMethodDecl>(Record, Idx));</div>
+<div class="line"><a name="l00888"></a><span class="lineno">  888</span>   D-><a class="code" href="classclang_1_1ObjCPropertyDecl.html#ab40224cfc936956861ece0097b67b2ea">setPropertyIvarDecl</a>(ReadDeclAs<ObjCIvarDecl>(Record, Idx));</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="classclang_1_1ASTDeclReader.html#ac12d9681b36b287b4c01de5b5e39eb88">  891</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#ac12d9681b36b287b4c01de5b5e39eb88">ASTDeclReader::VisitObjCImplDecl</a>(<a class="code" href="classclang_1_1ObjCImplDecl.html">ObjCImplDecl</a> *D) {</div>
+<div class="line"><a name="l00892"></a><span class="lineno">  892</span>   VisitObjCContainerDecl(D);</div>
+<div class="line"><a name="l00893"></a><span class="lineno">  893</span>   D-><a class="code" href="classclang_1_1ObjCImplDecl.html#a6cd22b47fb6c36e3c05d3d29e9d7d73f">setClassInterface</a>(ReadDeclAs<ObjCInterfaceDecl>(Record, Idx));</div>
+<div class="line"><a name="l00894"></a><span class="lineno">  894</span> }</div>
+<div class="line"><a name="l00895"></a><span class="lineno">  895</span> </div>
+<div class="line"><a name="l00896"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#acb9646ce5a2f27e4716668788c770f72">  896</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#acb9646ce5a2f27e4716668788c770f72">ASTDeclReader::VisitObjCCategoryImplDecl</a>(<a class="code" href="classclang_1_1ObjCCategoryImplDecl.html">ObjCCategoryImplDecl</a> *D) {</div>
+<div class="line"><a name="l00897"></a><span class="lineno">  897</span>   VisitObjCImplDecl(D);</div>
+<div class="line"><a name="l00898"></a><span class="lineno">  898</span>   D-><a class="code" href="classclang_1_1ObjCCategoryImplDecl.html#aeaa77f57a811ef3c5c90e49861fa6192">setIdentifier</a>(Reader.GetIdentifierInfo(F, Record, Idx));</div>
+<div class="line"><a name="l00899"></a><span class="lineno">  899</span>   D->CategoryNameLoc = ReadSourceLocation(Record, Idx);</div>
+<div class="line"><a name="l00900"></a><span class="lineno">  900</span> }</div>
+<div class="line"><a name="l00901"></a><span class="lineno">  901</span> </div>
+<div class="line"><a name="l00902"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a031d8916070ca2e6239df15c39d2a1a7">  902</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a031d8916070ca2e6239df15c39d2a1a7">ASTDeclReader::VisitObjCImplementationDecl</a>(<a class="code" href="classclang_1_1ObjCImplementationDecl.html">ObjCImplementationDecl</a> *D) {</div>
+<div class="line"><a name="l00903"></a><span class="lineno">  903</span>   VisitObjCImplDecl(D);</div>
+<div class="line"><a name="l00904"></a><span class="lineno">  904</span>   D-><a class="code" href="classclang_1_1ObjCImplementationDecl.html#a9ec6740d5c448b80824df67ca5cbffdf">setSuperClass</a>(ReadDeclAs<ObjCInterfaceDecl>(Record, Idx));</div>
+<div class="line"><a name="l00905"></a><span class="lineno">  905</span>   D->SuperLoc = ReadSourceLocation(Record, Idx);</div>
+<div class="line"><a name="l00906"></a><span class="lineno">  906</span>   D-><a class="code" href="classclang_1_1ObjCImplementationDecl.html#a8a07ad9e89e1797bd554f738f496db0f">setIvarLBraceLoc</a>(ReadSourceLocation(Record, Idx));</div>
+<div class="line"><a name="l00907"></a><span class="lineno">  907</span>   D-><a class="code" href="classclang_1_1ObjCImplementationDecl.html#acdf71d6ee0994fe679833a74325f6a47">setIvarRBraceLoc</a>(ReadSourceLocation(Record, Idx));</div>
+<div class="line"><a name="l00908"></a><span class="lineno">  908</span>   D-><a class="code" href="classclang_1_1ObjCImplementationDecl.html#af76474ebe1e8f57fadadfd8787da8cf9">setHasNonZeroConstructors</a>(Record[Idx++]);</div>
+<div class="line"><a name="l00909"></a><span class="lineno">  909</span>   D-><a class="code" href="classclang_1_1ObjCImplementationDecl.html#af2f0aa523e01144e2c0312278435fdaa">setHasDestructors</a>(Record[Idx++]);</div>
+<div class="line"><a name="l00910"></a><span class="lineno">  910</span>   llvm::tie(D->IvarInitializers, D->NumIvarInitializers)</div>
+<div class="line"><a name="l00911"></a><span class="lineno">  911</span>       = Reader.ReadCXXCtorInitializers(F, Record, Idx);</div>
+<div class="line"><a name="l00912"></a><span class="lineno">  912</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> </div>
+<div class="line"><a name="l00915"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a9fba143fad1e529477172811aa81019a">  915</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a9fba143fad1e529477172811aa81019a">ASTDeclReader::VisitObjCPropertyImplDecl</a>(<a class="code" href="classclang_1_1ObjCPropertyImplDecl.html">ObjCPropertyImplDecl</a> *D) {</div>
+<div class="line"><a name="l00916"></a><span class="lineno">  916</span>   VisitDecl(D);</div>
+<div class="line"><a name="l00917"></a><span class="lineno">  917</span>   D-><a class="code" href="classclang_1_1ObjCPropertyImplDecl.html#aca52819e286a207796c9b07e5b1550ab">setAtLoc</a>(ReadSourceLocation(Record, Idx));</div>
+<div class="line"><a name="l00918"></a><span class="lineno">  918</span>   D-><a class="code" href="classclang_1_1ObjCPropertyImplDecl.html#ae50a77226574dcc752c8129bb692c83a">setPropertyDecl</a>(ReadDeclAs<ObjCPropertyDecl>(Record, Idx));</div>
+<div class="line"><a name="l00919"></a><span class="lineno">  919</span>   D->PropertyIvarDecl = ReadDeclAs<ObjCIvarDecl>(Record, Idx);</div>
+<div class="line"><a name="l00920"></a><span class="lineno">  920</span>   D->IvarLoc = ReadSourceLocation(Record, Idx);</div>
+<div class="line"><a name="l00921"></a><span class="lineno">  921</span>   D-><a class="code" href="classclang_1_1ObjCPropertyImplDecl.html#af0775981100e05dcd0c7936052b2d018">setGetterCXXConstructor</a>(Reader.ReadExpr(F));</div>
+<div class="line"><a name="l00922"></a><span class="lineno">  922</span>   D-><a class="code" href="classclang_1_1ObjCPropertyImplDecl.html#a91308ae678396fa1faa8eeaa45b4db93">setSetterCXXAssignment</a>(Reader.ReadExpr(F));</div>
+<div class="line"><a name="l00923"></a><span class="lineno">  923</span> }</div>
+<div class="line"><a name="l00924"></a><span class="lineno">  924</span> </div>
+<div class="line"><a name="l00925"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a8a9e8e6e53e750e780dbae744fdeee74">  925</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a8a9e8e6e53e750e780dbae744fdeee74">ASTDeclReader::VisitFieldDecl</a>(<a class="code" href="classclang_1_1FieldDecl.html">FieldDecl</a> *FD) {</div>
+<div class="line"><a name="l00926"></a><span class="lineno">  926</span>   VisitDeclaratorDecl(FD);</div>
+<div class="line"><a name="l00927"></a><span class="lineno">  927</span>   FD->Mutable = Record[Idx++];</div>
+<div class="line"><a name="l00928"></a><span class="lineno">  928</span>   <span class="keywordflow">if</span> (<span class="keywordtype">int</span> BitWidthOrInitializer = Record[Idx++]) {</div>
+<div class="line"><a name="l00929"></a><span class="lineno">  929</span>     FD->InitializerOrBitWidth.setInt(BitWidthOrInitializer - 1);</div>
+<div class="line"><a name="l00930"></a><span class="lineno">  930</span>     FD->InitializerOrBitWidth.setPointer(Reader.ReadExpr(F));</div>
+<div class="line"><a name="l00931"></a><span class="lineno">  931</span>   }</div>
+<div class="line"><a name="l00932"></a><span class="lineno">  932</span>   <span class="keywordflow">if</span> (!FD-><a class="code" href="classclang_1_1NamedDecl.html#a1e3e90455be89bb5c7c23640cbbd7153">getDeclName</a>()) {</div>
+<div class="line"><a name="l00933"></a><span class="lineno">  933</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1FieldDecl.html">FieldDecl</a> *Tmpl = ReadDeclAs<FieldDecl>(Record, Idx))</div>
+<div class="line"><a name="l00934"></a><span class="lineno">  934</span>       Reader.getContext().setInstantiatedFromUnnamedFieldDecl(FD, Tmpl);</div>
+<div class="line"><a name="l00935"></a><span class="lineno">  935</span>   }</div>
+<div class="line"><a name="l00936"></a><span class="lineno">  936</span>   mergeMergeable(FD);</div>
+<div class="line"><a name="l00937"></a><span class="lineno">  937</span> }</div>
+<div class="line"><a name="l00938"></a><span class="lineno">  938</span> </div>
+<div class="line"><a name="l00939"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a865c6d88c1159bd84014b7eba0b04928">  939</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a865c6d88c1159bd84014b7eba0b04928">ASTDeclReader::VisitMSPropertyDecl</a>(<a class="code" href="classclang_1_1MSPropertyDecl.html">MSPropertyDecl</a> *PD) {</div>
+<div class="line"><a name="l00940"></a><span class="lineno">  940</span>   VisitDeclaratorDecl(PD);</div>
+<div class="line"><a name="l00941"></a><span class="lineno">  941</span>   PD->GetterId = Reader.GetIdentifierInfo(F, Record, Idx);</div>
+<div class="line"><a name="l00942"></a><span class="lineno">  942</span>   PD->SetterId = Reader.GetIdentifierInfo(F, Record, Idx);</div>
+<div class="line"><a name="l00943"></a><span class="lineno">  943</span> }</div>
+<div class="line"><a name="l00944"></a><span class="lineno">  944</span> </div>
+<div class="line"><a name="l00945"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a40da5c556f70f07f31e4c904cf8d1940">  945</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a40da5c556f70f07f31e4c904cf8d1940">ASTDeclReader::VisitIndirectFieldDecl</a>(<a class="code" href="classclang_1_1IndirectFieldDecl.html">IndirectFieldDecl</a> *FD) {</div>
+<div class="line"><a name="l00946"></a><span class="lineno">  946</span>   VisitValueDecl(FD);</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>   FD->ChainingSize = Record[Idx++];</div>
+<div class="line"><a name="l00949"></a><span class="lineno">  949</span>   assert(FD->ChainingSize >= 2 && <span class="stringliteral">"Anonymous chaining must be >= 2"</span>);</div>
+<div class="line"><a name="l00950"></a><span class="lineno">  950</span>   FD->Chaining = <span class="keyword">new</span> (Reader.getContext())<a class="code" href="classclang_1_1NamedDecl.html">NamedDecl</a>*[FD->ChainingSize];</div>
+<div class="line"><a name="l00951"></a><span class="lineno">  951</span> </div>
+<div class="line"><a name="l00952"></a><span class="lineno">  952</span>   <a class="code" href="namespaceclang.html#a355ba9af5ac2c9c6089bd5e5754f406a">for</a> (<span class="keywordtype">unsigned</span> I = 0; I != FD->ChainingSize; ++I)</div>
+<div class="line"><a name="l00953"></a><span class="lineno">  953</span>     FD->Chaining[I] = ReadDeclAs<NamedDecl>(Record, Idx);</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> </div>
+<div class="line"><a name="l00956"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a85558c6f603be6c3e1f43baad03e4212">  956</a></span> ASTDeclReader::RedeclarableResult <a class="code" href="classclang_1_1ASTDeclReader.html#a85558c6f603be6c3e1f43baad03e4212">ASTDeclReader::VisitVarDeclImpl</a>(<a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *VD) {</div>
+<div class="line"><a name="l00957"></a><span class="lineno">  957</span>   RedeclarableResult Redecl = VisitRedeclarable(VD);</div>
+<div class="line"><a name="l00958"></a><span class="lineno">  958</span>   VisitDeclaratorDecl(VD);</div>
+<div class="line"><a name="l00959"></a><span class="lineno">  959</span> </div>
+<div class="line"><a name="l00960"></a><span class="lineno">  960</span>   VD-><a class="code" href="classclang_1_1VarDecl.html#a6441aaea13a27571c6bbb258bca8fff4">VarDeclBits</a>.SClass = (<a class="code" href="namespaceclang.html#a56dabc7d0ce7d72b9a35f6f5c3f89370" title="Storage classes.">StorageClass</a>)Record[Idx++];</div>
+<div class="line"><a name="l00961"></a><span class="lineno">  961</span>   VD-><a class="code" href="classclang_1_1VarDecl.html#a6441aaea13a27571c6bbb258bca8fff4">VarDeclBits</a>.TSCSpec = Record[Idx++];</div>
+<div class="line"><a name="l00962"></a><span class="lineno">  962</span>   VD-><a class="code" href="classclang_1_1VarDecl.html#a6441aaea13a27571c6bbb258bca8fff4">VarDeclBits</a>.InitStyle = Record[Idx++];</div>
+<div class="line"><a name="l00963"></a><span class="lineno">  963</span>   VD-><a class="code" href="classclang_1_1VarDecl.html#a6441aaea13a27571c6bbb258bca8fff4">VarDeclBits</a>.ExceptionVar = Record[Idx++];</div>
+<div class="line"><a name="l00964"></a><span class="lineno">  964</span>   VD-><a class="code" href="classclang_1_1VarDecl.html#a6441aaea13a27571c6bbb258bca8fff4">VarDeclBits</a>.NRVOVariable = Record[Idx++];</div>
+<div class="line"><a name="l00965"></a><span class="lineno">  965</span>   VD-><a class="code" href="classclang_1_1VarDecl.html#a6441aaea13a27571c6bbb258bca8fff4">VarDeclBits</a>.CXXForRangeDecl = Record[Idx++];</div>
+<div class="line"><a name="l00966"></a><span class="lineno">  966</span>   VD-><a class="code" href="classclang_1_1VarDecl.html#a6441aaea13a27571c6bbb258bca8fff4">VarDeclBits</a>.ARCPseudoStrong = Record[Idx++];</div>
+<div class="line"><a name="l00967"></a><span class="lineno">  967</span>   VD-><a class="code" href="classclang_1_1VarDecl.html#a6441aaea13a27571c6bbb258bca8fff4">VarDeclBits</a>.IsConstexpr = Record[Idx++];</div>
+<div class="line"><a name="l00968"></a><span class="lineno">  968</span>   VD-><a class="code" href="classclang_1_1VarDecl.html#a6441aaea13a27571c6bbb258bca8fff4">VarDeclBits</a>.IsInitCapture = Record[Idx++];</div>
+<div class="line"><a name="l00969"></a><span class="lineno">  969</span>   VD-><a class="code" href="classclang_1_1VarDecl.html#a6441aaea13a27571c6bbb258bca8fff4">VarDeclBits</a>.PreviousDeclInSameBlockScope = Record[Idx++];</div>
+<div class="line"><a name="l00970"></a><span class="lineno">  970</span>   <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> VarLinkage = <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>(Record[Idx++]);</div>
+<div class="line"><a name="l00971"></a><span class="lineno">  971</span>   VD-><a class="code" href="classclang_1_1Decl.html#aa0eb399c315caf0100ce30e7edf9b4fe">setCachedLinkage</a>(VarLinkage);</div>
+<div class="line"><a name="l00972"></a><span class="lineno">  972</span> </div>
+<div class="line"><a name="l00973"></a><span class="lineno">  973</span>   <span class="comment">// Reconstruct the one piece of the IdentifierNamespace that we need.</span></div>
+<div class="line"><a name="l00974"></a><span class="lineno">  974</span>   <span class="keywordflow">if</span> (VarLinkage != <a class="code" href="namespaceclang.html#a78aadfeaf316ded55fdd2d1a9c8815b6a938d9ceab6cf5d67689c98f6b94500e9" title="No linkage, which means that the entity is unique and can only be referred to from within its scope...">NoLinkage</a> &&</div>
+<div class="line"><a name="l00975"></a><span class="lineno">  975</span>       VD-><a class="code" href="classclang_1_1Decl.html#aa390f755d0a0a1fc7fc557af886e4c93">getLexicalDeclContext</a>()-><a class="code" href="classclang_1_1DeclContext.html#a05b966b6459e1d11c317f8abe3e2d66f">isFunctionOrMethod</a>())</div>
+<div class="line"><a name="l00976"></a><span class="lineno">  976</span>     VD-><a class="code" href="classclang_1_1Decl.html#a33200461fc6b782d8c90e179570cba24" title="Changes the namespace of this declaration to reflect that it's a function-local extern declaration...">setLocalExternDecl</a>();</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>   <span class="comment">// Only true variables (not parameters or implicit parameters) can be merged.</span></div>
+<div class="line"><a name="l00979"></a><span class="lineno">  979</span>   <span class="keywordflow">if</span> (VD-><a class="code" href="classclang_1_1Decl.html#a6c53e861dae5545e8f6974af04cb2986">getKind</a>() != Decl::ParmVar && VD-><a class="code" href="classclang_1_1Decl.html#a6c53e861dae5545e8f6974af04cb2986">getKind</a>() != Decl::ImplicitParam)</div>
+<div class="line"><a name="l00980"></a><span class="lineno">  980</span>     mergeRedeclarable(VD, Redecl);</div>
+<div class="line"><a name="l00981"></a><span class="lineno">  981</span>   </div>
+<div class="line"><a name="l00982"></a><span class="lineno">  982</span>   <span class="keywordflow">if</span> (uint64_t Val = Record[Idx++]) {</div>
+<div class="line"><a name="l00983"></a><span class="lineno">  983</span>     VD-><a class="code" href="classclang_1_1VarDecl.html#abe4f58c0c2f5fb19c3b025ddd2e7dfcc">setInit</a>(Reader.ReadExpr(F));</div>
+<div class="line"><a name="l00984"></a><span class="lineno">  984</span>     <span class="keywordflow">if</span> (Val > 1) {</div>
+<div class="line"><a name="l00985"></a><span class="lineno">  985</span>       <a class="code" href="structclang_1_1EvaluatedStmt.html" title="Structure used to store a statement, the constant value to which it was evaluated (if any)...">EvaluatedStmt</a> *Eval = VD-><a class="code" href="classclang_1_1VarDecl.html#aca10eab0b989348159eda449a08b69fc">ensureEvaluatedStmt</a>();</div>
+<div class="line"><a name="l00986"></a><span class="lineno">  986</span>       Eval-><a class="code" href="structclang_1_1EvaluatedStmt.html#aa2793cd1d151378b57ea55538bed86fc" title="Whether we already checked whether this statement was an integral constant expression.">CheckedICE</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00987"></a><span class="lineno">  987</span>       Eval-><a class="code" href="structclang_1_1EvaluatedStmt.html#ac8408ba7fc4d0a4d0d870c8bcc437be0" title="Whether this statement is an integral constant expression, or in C++11, whether the statement is a co...">IsICE</a> = Val == 3;</div>
+<div class="line"><a name="l00988"></a><span class="lineno">  988</span>     }</div>
+<div class="line"><a name="l00989"></a><span class="lineno">  989</span>   }</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="keyword">enum</span> VarKind {</div>
+<div class="line"><a name="l00992"></a><span class="lineno">  992</span>     VarNotTemplate = 0, VarTemplate, StaticDataMemberSpecialization</div>
+<div class="line"><a name="l00993"></a><span class="lineno">  993</span>   };</div>
+<div class="line"><a name="l00994"></a><span class="lineno">  994</span>   <span class="keywordflow">switch</span> ((VarKind)Record[Idx++]) {</div>
+<div class="line"><a name="l00995"></a><span class="lineno">  995</span>   <span class="keywordflow">case</span> VarNotTemplate:</div>
+<div class="line"><a name="l00996"></a><span class="lineno">  996</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00997"></a><span class="lineno">  997</span>   <span class="keywordflow">case</span> VarTemplate:</div>
+<div class="line"><a name="l00998"></a><span class="lineno">  998</span>     VD-><a class="code" href="classclang_1_1VarDecl.html#ac84cdefa3a9ff09763e91dac0fce5f91">setDescribedVarTemplate</a>(ReadDeclAs<VarTemplateDecl>(Record, Idx));</div>
+<div class="line"><a name="l00999"></a><span class="lineno">  999</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>   <span class="keywordflow">case</span> StaticDataMemberSpecialization: { <span class="comment">// HasMemberSpecializationInfo.</span></div>
+<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>     <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *Tmpl = ReadDeclAs<VarDecl>(Record, Idx);</div>
+<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>     <a class="code" href="namespaceclang.html#ae689bf8e3dcc54751a81974a4a12c3d2" title="Describes the kind of template specialization that a particular template specialization declaration r...">TemplateSpecializationKind</a> TSK = (<a class="code" href="namespaceclang.html#ae689bf8e3dcc54751a81974a4a12c3d2" title="Describes the kind of template specialization that a particular template specialization declaration r...">TemplateSpecializationKind</a>)Record[Idx++];</div>
+<div class="line"><a name="l01003"></a><span class="lineno"> 1003</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> POI = ReadSourceLocation(Record, Idx);</div>
+<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>     Reader.getContext().setInstantiatedFromStaticDataMember(VD, Tmpl, TSK,POI);</div>
+<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>   }</div>
+<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>   }</div>
+<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span> </div>
+<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>   <span class="keywordflow">return</span> Redecl;</div>
+<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span> }</div>
+<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span> </div>
+<div class="line"><a name="l01012"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a7e10f3926e31d158f62c7f1cf8577b6a"> 1012</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a7e10f3926e31d158f62c7f1cf8577b6a">ASTDeclReader::VisitImplicitParamDecl</a>(<a class="code" href="classclang_1_1ImplicitParamDecl.html">ImplicitParamDecl</a> *PD) {</div>
+<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>   VisitVarDecl(PD);</div>
+<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span> }</div>
+<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span> </div>
+<div class="line"><a name="l01016"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#ae97c8a47e431ef82dc4418f43ff92e84"> 1016</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#ae97c8a47e431ef82dc4418f43ff92e84">ASTDeclReader::VisitParmVarDecl</a>(<a class="code" href="classclang_1_1ParmVarDecl.html" title="ParmVarDecl - Represents a parameter to a function.">ParmVarDecl</a> *PD) {</div>
+<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>   VisitVarDecl(PD);</div>
+<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>   <span class="keywordtype">unsigned</span> isObjCMethodParam = Record[Idx++];</div>
+<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>   <span class="keywordtype">unsigned</span> scopeDepth = Record[Idx++];</div>
+<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>   <span class="keywordtype">unsigned</span> scopeIndex = Record[Idx++];</div>
+<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>   <span class="keywordtype">unsigned</span> declQualifier = Record[Idx++];</div>
+<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>   <span class="keywordflow">if</span> (isObjCMethodParam) {</div>
+<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>     assert(scopeDepth == 0);</div>
+<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>     PD-><a class="code" href="classclang_1_1ParmVarDecl.html#a59de292e37a819105d4bf7ba6c02e42e">setObjCMethodScopeInfo</a>(scopeIndex);</div>
+<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>     PD-><a class="code" href="classclang_1_1VarDecl.html#a23153d2c08ecfd3615f78e40c8c2c10a">ParmVarDeclBits</a>.ScopeDepthOrObjCQuals = declQualifier;</div>
+<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>     PD-><a class="code" href="classclang_1_1ParmVarDecl.html#a4cc8300afc1f80e4a56cae8d5b30eb6c">setScopeInfo</a>(scopeDepth, scopeIndex);</div>
+<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>   }</div>
+<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>   PD-><a class="code" href="classclang_1_1VarDecl.html#a23153d2c08ecfd3615f78e40c8c2c10a">ParmVarDeclBits</a>.IsKNRPromoted = Record[Idx++];</div>
+<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>   PD-><a class="code" href="classclang_1_1VarDecl.html#a23153d2c08ecfd3615f78e40c8c2c10a">ParmVarDeclBits</a>.HasInheritedDefaultArg = Record[Idx++];</div>
+<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>   <span class="keywordflow">if</span> (Record[Idx++]) <span class="comment">// hasUninstantiatedDefaultArg.</span></div>
+<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>     PD-><a class="code" href="classclang_1_1ParmVarDecl.html#ae54909b39411a0dba1bb5797cf81ae7f">setUninstantiatedDefaultArg</a>(Reader.ReadExpr(F));</div>
+<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span> </div>
+<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>   <span class="comment">// FIXME: If this is a redeclaration of a function from another module, handle</span></div>
+<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>   <span class="comment">// inheritance of default arguments.</span></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> </div>
+<div class="line"><a name="l01038"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a7049b01bf677e8af3abcf4a1ed0fd2ad"> 1038</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a7049b01bf677e8af3abcf4a1ed0fd2ad">ASTDeclReader::VisitFileScopeAsmDecl</a>(<a class="code" href="classclang_1_1FileScopeAsmDecl.html">FileScopeAsmDecl</a> *AD) {</div>
+<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>   VisitDecl(AD);</div>
+<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>   AD-><a class="code" href="classclang_1_1FileScopeAsmDecl.html#a43d88747f757aff45ccd7940bc970173">setAsmString</a>(cast<StringLiteral>(Reader.ReadExpr(F)));</div>
+<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>   AD-><a class="code" href="classclang_1_1FileScopeAsmDecl.html#a018c825dda10cdf86c04f8a3aa090785">setRParenLoc</a>(ReadSourceLocation(Record, Idx));</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> </div>
+<div class="line"><a name="l01044"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a436c09ee63036d34f5e444b4b1e1cb2a"> 1044</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a436c09ee63036d34f5e444b4b1e1cb2a">ASTDeclReader::VisitBlockDecl</a>(<a class="code" href="classclang_1_1BlockDecl.html">BlockDecl</a> *BD) {</div>
+<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>   VisitDecl(BD);</div>
+<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>   BD-><a class="code" href="classclang_1_1BlockDecl.html#ae8112a8b22aef90ee5d986c4a5a1223c">setBody</a>(cast_or_null<CompoundStmt>(Reader.ReadStmt(F)));</div>
+<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>   BD-><a class="code" href="classclang_1_1BlockDecl.html#a598bef8c59a25804883380b0c7cb46c4">setSignatureAsWritten</a>(GetTypeSourceInfo(Record, Idx));</div>
+<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>   <span class="keywordtype">unsigned</span> NumParams = Record[Idx++];</div>
+<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<ParmVarDecl *, 16></a> Params;</div>
+<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>   Params.reserve(NumParams);</div>
+<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0; I != NumParams; ++I)</div>
+<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>     Params.push_back(ReadDeclAs<ParmVarDecl>(Record, Idx));</div>
+<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>   BD-><a class="code" href="classclang_1_1BlockDecl.html#a23cd1e50cd8fe9c04ec04114de85cc2a">setParams</a>(Params);</div>
+<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span> </div>
+<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>   BD-><a class="code" href="classclang_1_1BlockDecl.html#aa6ecd0f2eb7fc7f05109e41fe5335cb0">setIsVariadic</a>(Record[Idx++]);</div>
+<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>   BD-><a class="code" href="classclang_1_1BlockDecl.html#aae9d704a24e12ba2cc4090b8cd5c1777">setBlockMissingReturnType</a>(Record[Idx++]);</div>
+<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>   BD-><a class="code" href="classclang_1_1BlockDecl.html#a9ec24dc05aa1194d085a7f2256cd2303">setIsConversionFromLambda</a>(Record[Idx++]);</div>
+<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span> </div>
+<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>   <span class="keywordtype">bool</span> capturesCXXThis = Record[Idx++];</div>
+<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>   <span class="keywordtype">unsigned</span> numCaptures = Record[Idx++];</div>
+<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<BlockDecl::Capture, 16></a> captures;</div>
+<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>   captures.reserve(numCaptures);</div>
+<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i != numCaptures; ++i) {</div>
+<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>     <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *<a class="code" href="namespaceclang_1_1ast__matchers.html#a7e0add38d4eff7a20684fcba24be8887" title="Matches declarations.">decl</a> = ReadDeclAs<VarDecl>(Record, Idx);</div>
+<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>     <span class="keywordtype">unsigned</span> flags = Record[Idx++];</div>
+<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>     <span class="keywordtype">bool</span> byRef = (flags & 1);</div>
+<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>     <span class="keywordtype">bool</span> nested = (flags & 2);</div>
+<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>     <a class="code" href="classclang_1_1Expr.html">Expr</a> *copyExpr = ((flags & 4) ? Reader.ReadExpr(F) : 0);</div>
+<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span> </div>
+<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>     captures.push_back(<a class="code" href="classclang_1_1BlockDecl_1_1Capture.html">BlockDecl::Capture</a>(decl, byRef, nested, copyExpr));</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>   BD-><a class="code" href="classclang_1_1BlockDecl.html#a4644088d7aa918df1dd347565503e744">setCaptures</a>(Reader.getContext(), captures.begin(),</div>
+<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>                   captures.end(), capturesCXXThis);</div>
+<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span> }</div>
+<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span> </div>
+<div class="line"><a name="l01076"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a8cc5c99989fe789ac2b7c31e331d9a31"> 1076</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a8cc5c99989fe789ac2b7c31e331d9a31">ASTDeclReader::VisitCapturedDecl</a>(<a class="code" href="classclang_1_1CapturedDecl.html" title="This represents the body of a CapturedStmt, and serves as its DeclContext.">CapturedDecl</a> *CD) {</div>
+<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>   VisitDecl(CD);</div>
+<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>   <span class="comment">// Body is set by VisitCapturedStmt.</span></div>
+<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i < CD->NumParams; ++i)</div>
+<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>     CD-><a class="code" href="classclang_1_1CapturedDecl.html#a8ac765ef485dd575f5b21058c288fb5f">setParam</a>(i, ReadDeclAs<ImplicitParamDecl>(Record, Idx));</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"><a class="code" href="classclang_1_1ASTDeclReader.html#a687a203c5a81edbe77edbdcd92809337"> 1083</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a687a203c5a81edbe77edbdcd92809337">ASTDeclReader::VisitLinkageSpecDecl</a>(<a class="code" href="classclang_1_1LinkageSpecDecl.html" title="Represents a linkage specification.">LinkageSpecDecl</a> *D) {</div>
+<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>   VisitDecl(D);</div>
+<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>   D-><a class="code" href="classclang_1_1LinkageSpecDecl.html#ac2ea97b68a8cde6cc1089394d9543fd0" title="Set the language specified by this linkage specification.">setLanguage</a>((<a class="code" href="classclang_1_1LinkageSpecDecl.html#ab7afabff5b7512bc49ec98774f7360f8" title="Represents the language in a linkage specification.">LinkageSpecDecl::LanguageIDs</a>)Record[Idx++]);</div>
+<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>   D-><a class="code" href="classclang_1_1LinkageSpecDecl.html#a078da4f0145078eddf616cd0729674f4">setExternLoc</a>(ReadSourceLocation(Record, Idx));</div>
+<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>   D-><a class="code" href="classclang_1_1LinkageSpecDecl.html#a43d430303686e87808192757e19ffdf7">setRBraceLoc</a>(ReadSourceLocation(Record, Idx));</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> </div>
+<div class="line"><a name="l01090"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a1399baff0fe48c13d56c678703418d46"> 1090</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a1399baff0fe48c13d56c678703418d46">ASTDeclReader::VisitLabelDecl</a>(<a class="code" href="classclang_1_1LabelDecl.html">LabelDecl</a> *D) {</div>
+<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>   VisitNamedDecl(D);</div>
+<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>   D-><a class="code" href="classclang_1_1LabelDecl.html#a5508c11bb007c2b936564252b731cdd2">setLocStart</a>(ReadSourceLocation(Record, Idx));</div>
+<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span> }</div>
+<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span> </div>
+<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span> </div>
+<div class="line"><a name="l01096"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a08f2d6ac4f3f0fed02e5b4dbb240b892"> 1096</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a08f2d6ac4f3f0fed02e5b4dbb240b892">ASTDeclReader::VisitNamespaceDecl</a>(<a class="code" href="classclang_1_1NamespaceDecl.html" title="NamespaceDecl - Represent a C++ namespace.">NamespaceDecl</a> *D) {</div>
+<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>   RedeclarableResult Redecl = VisitRedeclarable(D);</div>
+<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>   VisitNamedDecl(D);</div>
+<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>   D-><a class="code" href="classclang_1_1NamespaceDecl.html#abb7b875151ce4cb6c11b018a7375e3d9" title="Set whether this is an inline namespace declaration.">setInline</a>(Record[Idx++]);</div>
+<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>   D->LocStart = ReadSourceLocation(Record, Idx);</div>
+<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>   D->RBraceLoc = ReadSourceLocation(Record, Idx);</div>
+<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>   <span class="comment">// FIXME: At the point of this call, D->getCanonicalDecl() returns 0.</span></div>
+<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>   mergeRedeclarable(D, Redecl);</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> (Redecl.getFirstID() == ThisDeclID) {</div>
+<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>     <span class="comment">// Each module has its own anonymous namespace, which is disjoint from</span></div>
+<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>     <span class="comment">// any other module's anonymous namespaces, so don't attach the anonymous</span></div>
+<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>     <span class="comment">// namespace at all.</span></div>
+<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>     <a class="code" href="classclang_1_1NamespaceDecl.html" title="NamespaceDecl - Represent a C++ namespace.">NamespaceDecl</a> *Anon = ReadDeclAs<NamespaceDecl>(Record, Idx);</div>
+<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>     <span class="keywordflow">if</span> (F.Kind != <a class="code" href="namespaceclang_1_1serialization.html#ac4e913a3b4b4721b8995cb7dd6d9bb1ea22e2f1dba8920d73cd2979ca1e17a097" title="File is a module proper.">MK_Module</a>)</div>
+<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>       D-><a class="code" href="classclang_1_1NamespaceDecl.html#a54c922e400a559975e9302fc8f7e477a">setAnonymousNamespace</a>(Anon);</div>
+<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>     <span class="comment">// Link this namespace back to the first declaration, which has already</span></div>
+<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>     <span class="comment">// been deserialized.</span></div>
+<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>     D->AnonOrFirstNamespaceAndInline.setPointer(D-><a class="code" href="classclang_1_1Redeclarable.html#aa7a1024597136eeb5417f0a4551d98f3" title="Return the first declaration of this declaration or itself if this is the only declaration.">getFirstDecl</a>());</div>
+<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>   }</div>
+<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span> }</div>
+<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span> </div>
+<div class="line"><a name="l01119"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a40533f7eb8f395d9a1e58bbd35aa4173"> 1119</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a40533f7eb8f395d9a1e58bbd35aa4173">ASTDeclReader::VisitNamespaceAliasDecl</a>(<a class="code" href="classclang_1_1NamespaceAliasDecl.html" title="Represents a C++ namespace alias.">NamespaceAliasDecl</a> *D) {</div>
+<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>   VisitNamedDecl(D);</div>
+<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>   D->NamespaceLoc = ReadSourceLocation(Record, Idx);</div>
+<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>   D->IdentLoc = ReadSourceLocation(Record, Idx);</div>
+<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>   D->QualifierLoc = Reader.ReadNestedNameSpecifierLoc(F, Record, Idx);</div>
+<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>   D->Namespace = ReadDeclAs<NamedDecl>(Record, Idx);</div>
+<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span> }</div>
+<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span> </div>
+<div class="line"><a name="l01127"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#ae4390d69622757b2095a3f2759e8d0cf"> 1127</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#ae4390d69622757b2095a3f2759e8d0cf">ASTDeclReader::VisitUsingDecl</a>(<a class="code" href="classclang_1_1UsingDecl.html" title="Represents a C++ using-declaration.">UsingDecl</a> *D) {</div>
+<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>   VisitNamedDecl(D);</div>
+<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>   D-><a class="code" href="classclang_1_1UsingDecl.html#a71ed03dd80e3d7cce5841dda8053af6d" title="Set the source location of the 'using' keyword.">setUsingLoc</a>(ReadSourceLocation(Record, Idx));</div>
+<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>   D->QualifierLoc = Reader.ReadNestedNameSpecifierLoc(F, Record, Idx);</div>
+<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>   ReadDeclarationNameLoc(D->DNLoc, D-><a class="code" href="classclang_1_1NamedDecl.html#a1e3e90455be89bb5c7c23640cbbd7153">getDeclName</a>(), Record, Idx);</div>
+<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>   D->FirstUsingShadow.setPointer(ReadDeclAs<UsingShadowDecl>(Record, Idx));</div>
+<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>   D-><a class="code" href="classclang_1_1UsingDecl.html#a0705a0bacaabdfa6f4b05eef49267489" title="Sets whether the using declaration has 'typename'.">setTypename</a>(Record[Idx++]);</div>
+<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1NamedDecl.html">NamedDecl</a> *Pattern = ReadDeclAs<NamedDecl>(Record, Idx))</div>
+<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>     Reader.getContext().setInstantiatedFromUsingDecl(D, Pattern);</div>
+<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span> }</div>
+<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span> </div>
+<div class="line"><a name="l01138"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a20b87453cebfc49b3c91c82ca95b5bb8"> 1138</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a20b87453cebfc49b3c91c82ca95b5bb8">ASTDeclReader::VisitUsingShadowDecl</a>(<a class="code" href="classclang_1_1UsingShadowDecl.html" title="Represents a shadow declaration introduced into a scope by a (resolved) using declaration.">UsingShadowDecl</a> *D) {</div>
+<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>   RedeclarableResult Redecl = VisitRedeclarable(D);</div>
+<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>   VisitNamedDecl(D);</div>
+<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>   D-><a class="code" href="classclang_1_1UsingShadowDecl.html#a80aeea2bc1bc40a74eaff04a4c4a10d3" title="Sets the underlying declaration which has been brought into the local scope.">setTargetDecl</a>(ReadDeclAs<NamedDecl>(Record, Idx));</div>
+<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>   D->UsingOrNextShadow = ReadDeclAs<NamedDecl>(Record, Idx);</div>
+<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>   <a class="code" href="classclang_1_1UsingShadowDecl.html" title="Represents a shadow declaration introduced into a scope by a (resolved) using declaration.">UsingShadowDecl</a> *Pattern = ReadDeclAs<UsingShadowDecl>(Record, Idx);</div>
+<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>   <span class="keywordflow">if</span> (Pattern)</div>
+<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>     Reader.getContext().setInstantiatedFromUsingShadowDecl(D, Pattern);</div>
+<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>   mergeRedeclarable(D, Redecl);</div>
+<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span> }</div>
+<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span> </div>
+<div class="line"><a name="l01149"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a15f976f73ae749f1841857e11031aa26"> 1149</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a15f976f73ae749f1841857e11031aa26">ASTDeclReader::VisitUsingDirectiveDecl</a>(<a class="code" href="classclang_1_1UsingDirectiveDecl.html" title="Represents C++ using-directive.">UsingDirectiveDecl</a> *D) {</div>
+<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>   VisitNamedDecl(D);</div>
+<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>   D->UsingLoc = ReadSourceLocation(Record, Idx);</div>
+<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>   D->NamespaceLoc = ReadSourceLocation(Record, Idx);</div>
+<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>   D->QualifierLoc = Reader.ReadNestedNameSpecifierLoc(F, Record, Idx);</div>
+<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>   D->NominatedNamespace = ReadDeclAs<NamedDecl>(Record, Idx);</div>
+<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>   D->CommonAncestor = ReadDeclAs<DeclContext>(Record, Idx);</div>
+<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span> }</div>
+<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span> </div>
+<div class="line"><a name="l01158"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a7f3e1d6c437e45eb8ae08bf23c19642e"> 1158</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a7f3e1d6c437e45eb8ae08bf23c19642e">ASTDeclReader::VisitUnresolvedUsingValueDecl</a>(<a class="code" href="classclang_1_1UnresolvedUsingValueDecl.html" title="Represents a dependent using declaration which was not marked with typename.">UnresolvedUsingValueDecl</a> *D) {</div>
+<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>   VisitValueDecl(D);</div>
+<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>   D-><a class="code" href="classclang_1_1UnresolvedUsingValueDecl.html#abb10c1ae1aff1ff3737bf28688f062a9" title="Set the source location of the 'using' keyword.">setUsingLoc</a>(ReadSourceLocation(Record, Idx));</div>
+<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>   D->QualifierLoc = Reader.ReadNestedNameSpecifierLoc(F, Record, Idx);</div>
+<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>   ReadDeclarationNameLoc(D->DNLoc, D-><a class="code" href="classclang_1_1NamedDecl.html#a1e3e90455be89bb5c7c23640cbbd7153">getDeclName</a>(), Record, Idx);</div>
+<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span> }</div>
+<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span> </div>
+<div class="line"><a name="l01165"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a54d06dc67ae0ca596b22461030e8be3b"> 1165</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a54d06dc67ae0ca596b22461030e8be3b">ASTDeclReader::VisitUnresolvedUsingTypenameDecl</a>(</div>
+<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>                                                <a class="code" href="classclang_1_1UnresolvedUsingTypenameDecl.html" title="Represents a dependent using declaration which was marked with typename.">UnresolvedUsingTypenameDecl</a> *D) {</div>
+<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>   VisitTypeDecl(D);</div>
+<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>   D->TypenameLocation = ReadSourceLocation(Record, Idx);</div>
+<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>   D->QualifierLoc = Reader.ReadNestedNameSpecifierLoc(F, Record, Idx);</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> <span class="keywordtype">void</span> ASTDeclReader::ReadCXXDefinitionData(</div>
+<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>                                    <span class="keyword">struct</span> CXXRecordDecl::DefinitionData &Data,</div>
+<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>                                    <span class="keyword">const</span> RecordData &Record, <span class="keywordtype">unsigned</span> &Idx) {</div>
+<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>   <span class="comment">// Note: the caller has deserialized the IsLambda bit already.</span></div>
+<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>   Data.UserDeclaredConstructor = Record[Idx++];</div>
+<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>   Data.UserDeclaredSpecialMembers = Record[Idx++];</div>
+<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>   Data.Aggregate = Record[Idx++];</div>
+<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>   Data.PlainOldData = Record[Idx++];</div>
+<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>   Data.Empty = Record[Idx++];</div>
+<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>   Data.Polymorphic = Record[Idx++];</div>
+<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>   Data.Abstract = Record[Idx++];</div>
+<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>   Data.IsStandardLayout = Record[Idx++];</div>
+<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>   Data.HasNoNonEmptyBases = Record[Idx++];</div>
+<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>   Data.HasPrivateFields = Record[Idx++];</div>
+<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>   Data.HasProtectedFields = Record[Idx++];</div>
+<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>   Data.HasPublicFields = Record[Idx++];</div>
+<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>   Data.HasMutableFields = Record[Idx++];</div>
+<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>   Data.HasOnlyCMembers = Record[Idx++];</div>
+<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>   Data.HasInClassInitializer = Record[Idx++];</div>
+<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>   Data.HasUninitializedReferenceMember = Record[Idx++];</div>
+<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>   Data.NeedOverloadResolutionForMoveConstructor = Record[Idx++];</div>
+<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>   Data.NeedOverloadResolutionForMoveAssignment = Record[Idx++];</div>
+<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>   Data.NeedOverloadResolutionForDestructor = Record[Idx++];</div>
+<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>   Data.DefaultedMoveConstructorIsDeleted = Record[Idx++];</div>
+<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>   Data.DefaultedMoveAssignmentIsDeleted = Record[Idx++];</div>
+<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>   Data.DefaultedDestructorIsDeleted = Record[Idx++];</div>
+<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>   Data.HasTrivialSpecialMembers = Record[Idx++];</div>
+<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>   Data.HasIrrelevantDestructor = Record[Idx++];</div>
+<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>   Data.HasConstexprNonCopyMoveConstructor = Record[Idx++];</div>
+<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>   Data.DefaultedDefaultConstructorIsConstexpr = Record[Idx++];</div>
+<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>   Data.HasConstexprDefaultConstructor = Record[Idx++];</div>
+<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>   Data.HasNonLiteralTypeFieldsOrBases = Record[Idx++];</div>
+<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>   Data.ComputedVisibleConversions = Record[Idx++];</div>
+<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>   Data.UserProvidedDefaultConstructor = Record[Idx++];</div>
+<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>   Data.DeclaredSpecialMembers = Record[Idx++];</div>
+<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>   Data.ImplicitCopyConstructorHasConstParam = Record[Idx++];</div>
+<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>   Data.ImplicitCopyAssignmentHasConstParam = Record[Idx++];</div>
+<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>   Data.HasDeclaredCopyConstructorWithConstParam = Record[Idx++];</div>
+<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>   Data.HasDeclaredCopyAssignmentWithConstParam = Record[Idx++];</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>   Data.NumBases = Record[Idx++];</div>
+<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>   <span class="keywordflow">if</span> (Data.NumBases)</div>
+<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>     Data.Bases = Reader.readCXXBaseSpecifiers(F, Record, Idx);</div>
+<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>   Data.NumVBases = Record[Idx++];</div>
+<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>   <span class="keywordflow">if</span> (Data.NumVBases)</div>
+<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>     Data.VBases = Reader.readCXXBaseSpecifiers(F, Record, Idx);</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>   Reader.ReadUnresolvedSet(F, Data.Conversions, Record, Idx);</div>
+<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>   Reader.ReadUnresolvedSet(F, Data.VisibleConversions, Record, Idx);</div>
+<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>   assert(Data.Definition && <span class="stringliteral">"Data.Definition should be already set!"</span>);</div>
+<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>   Data.FirstFriend = ReadDeclID(Record, Idx);</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">if</span> (Data.IsLambda) {</div>
+<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>     <span class="keyword">typedef</span> <a class="code" href="classclang_1_1LambdaExpr_1_1Capture.html" title="Describes the capture of a variable or of this, or of a C++1y init-capture.">LambdaExpr::Capture</a> Capture;</div>
+<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>     CXXRecordDecl::LambdaDefinitionData &Lambda</div>
+<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>       = <span class="keyword">static_cast<</span>CXXRecordDecl::LambdaDefinitionData &<span class="keyword">></span>(Data);</div>
+<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>     Lambda.Dependent = Record[Idx++];</div>
+<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>     Lambda.IsGenericLambda = Record[Idx++];</div>
+<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>     Lambda.CaptureDefault = Record[Idx++];</div>
+<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>     Lambda.NumCaptures = Record[Idx++];</div>
+<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>     Lambda.NumExplicitCaptures = Record[Idx++];</div>
+<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>     Lambda.ManglingNumber = Record[Idx++];</div>
+<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>     Lambda.ContextDecl = ReadDecl(Record, Idx);</div>
+<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>     Lambda.Captures </div>
+<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>       = (Capture*)Reader.Context.Allocate(<span class="keyword">sizeof</span>(Capture)*Lambda.NumCaptures);</div>
+<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>     Capture *ToCapture = Lambda.Captures;</div>
+<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>     Lambda.MethodTyInfo = GetTypeSourceInfo(Record, Idx);</div>
+<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = Lambda.NumCaptures; I != N; ++I) {</div>
+<div class="line"><a name="l01240"></a><span class="lineno"> 1240</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 = ReadSourceLocation(Record, Idx);</div>
+<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>       <span class="keywordtype">bool</span> IsImplicit = Record[Idx++];</div>
+<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>       <a class="code" href="namespaceclang.html#a4302d73c34f84f339015be4a88d5645e" title="The different capture forms in a lambda introducer.">LambdaCaptureKind</a> <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a> = <span class="keyword">static_cast<</span><a class="code" href="namespaceclang.html#a4302d73c34f84f339015be4a88d5645e" title="The different capture forms in a lambda introducer.">LambdaCaptureKind</a><span class="keyword">></span>(Record[Idx++]);</div>
+<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>       <span class="keywordflow">switch</span> (Kind) {</div>
+<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>       <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a4302d73c34f84f339015be4a88d5645eabdac4c12289c1ba809f9cad0947ee3f3" title="Capturing the this pointer.">LCK_This</a>:</div>
+<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>         *ToCapture++ = Capture(Loc, IsImplicit, Kind, 0, <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="l01246"></a><span class="lineno"> 1246</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>       <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a4302d73c34f84f339015be4a88d5645ea03614b97bf84fe92eeac712bf3c7a8c3" title="Capturing by copy (a.k.a., by value)">LCK_ByCopy</a>:</div>
+<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>       <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a4302d73c34f84f339015be4a88d5645ea041ff48e466d5940c068be89fe439e23" title="Capturing by reference.">LCK_ByRef</a>:</div>
+<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>         <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *Var = ReadDeclAs<VarDecl>(Record, Idx);</div>
+<div class="line"><a name="l01250"></a><span class="lineno"> 1250</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> EllipsisLoc = ReadSourceLocation(Record, Idx);</div>
+<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>         *ToCapture++ = Capture(Loc, IsImplicit, Kind, Var, EllipsisLoc);</div>
+<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01253"></a><span class="lineno"> 1253</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> </div>
+<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span> ASTDeclReader::RedeclarableResult</div>
+<div class="line"><a name="l01259"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a9171e6a5336d3be0d3852971a011d71e"> 1259</a></span> <a class="code" href="classclang_1_1ASTDeclReader.html#a9171e6a5336d3be0d3852971a011d71e">ASTDeclReader::VisitCXXRecordDeclImpl</a>(<a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *D) {</div>
+<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>   RedeclarableResult Redecl = VisitRecordDeclImpl(D);</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>   <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> &C = Reader.getContext();</div>
+<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>   <span class="keywordtype">bool</span> WasDefinition = Record[Idx++];</div>
+<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>   <span class="keywordflow">if</span> (WasDefinition) {</div>
+<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>     <span class="comment">// Determine whether this is a lambda closure type, so that we can</span></div>
+<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>     <span class="comment">// allocate the appropriate DefinitionData structure.</span></div>
+<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>     <span class="keywordtype">bool</span> IsLambda = Record[Idx++];</div>
+<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>     <span class="keywordflow">if</span> (IsLambda)</div>
+<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>       D->DefinitionData = <span class="keyword">new</span> (C) CXXRecordDecl::LambdaDefinitionData(D, 0,</div>
+<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>                                                                       <span class="keyword">false</span>,</div>
+<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>                                                                       <span class="keyword">false</span>, <a class="code" href="namespaceclang.html#ac25c19be513bebdca2ed5f8ea0599ff3a8249dec2223359130b30d15c3930097c">LCD_None</a>);</div>
+<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>     <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>       D->DefinitionData = <span class="keyword">new</span> (C) <span class="keyword">struct</span> CXXRecordDecl::DefinitionData(D);</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>     ReadCXXDefinitionData(*D->DefinitionData, Record, Idx);</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="comment">// Propagate the DefinitionData pointer to the canonical declaration, so</span></div>
+<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>     <span class="comment">// that all other deserialized declarations will see it.</span></div>
+<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>     <a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *Canon = D-><a class="code" href="classclang_1_1CXXRecordDecl.html#a38f531b4822da3071fe56cc210978afd" title="Retrieves the "canonical" declaration of the given declaration.">getCanonicalDecl</a>();</div>
+<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>     <span class="keywordflow">if</span> (Canon == D) {</div>
+<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>       <span class="comment">// Nothing to do.</span></div>
+<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!Canon->DefinitionData) {</div>
+<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>       Canon->DefinitionData = D->DefinitionData;</div>
+<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span> </div>
+<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>       <span class="comment">// Note that we have deserialized a definition. Any declarations</span></div>
+<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>       <span class="comment">// deserialized before this one will be be given the DefinitionData</span></div>
+<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>       <span class="comment">// pointer at the end.</span></div>
+<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>       Reader.PendingDefinitions.insert(D);</div>
+<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>       <span class="comment">// We have already deserialized a definition of this record. This</span></div>
+<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>       <span class="comment">// definition is no longer really a definition. Note that the pre-existing</span></div>
+<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>       <span class="comment">// definition is the *real* definition.</span></div>
+<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>       <span class="comment">// FIXME: Check DefinitionData for consistency with prior definition.</span></div>
+<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>       Reader.MergedDeclContexts.insert(</div>
+<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>           std::make_pair(D, D-><a class="code" href="classclang_1_1CXXRecordDecl.html#a38f531b4822da3071fe56cc210978afd" title="Retrieves the "canonical" declaration of the given declaration.">getCanonicalDecl</a>()->DefinitionData->Definition));</div>
+<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>       D->IsCompleteDefinition = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>       D->DefinitionData = D-><a class="code" href="classclang_1_1CXXRecordDecl.html#a38f531b4822da3071fe56cc210978afd" title="Retrieves the "canonical" declaration of the given declaration.">getCanonicalDecl</a>()->DefinitionData;</div>
+<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>     }</div>
+<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>     <span class="comment">// Propagate DefinitionData pointer from the canonical declaration.</span></div>
+<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>     D->DefinitionData = D-><a class="code" href="classclang_1_1CXXRecordDecl.html#a38f531b4822da3071fe56cc210978afd" title="Retrieves the "canonical" declaration of the given declaration.">getCanonicalDecl</a>()->DefinitionData;</div>
+<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>   }</div>
+<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span> </div>
+<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>   <span class="keyword">enum</span> CXXRecKind {</div>
+<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>     CXXRecNotTemplate = 0, CXXRecTemplate, CXXRecMemberSpecialization</div>
+<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>   };</div>
+<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>   <span class="keywordflow">switch</span> ((CXXRecKind)Record[Idx++]) {</div>
+<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>   <span class="keywordflow">case</span> CXXRecNotTemplate:</div>
+<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>   <span class="keywordflow">case</span> CXXRecTemplate:</div>
+<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>     D->TemplateOrInstantiation = ReadDeclAs<ClassTemplateDecl>(Record, Idx);</div>
+<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>   <span class="keywordflow">case</span> CXXRecMemberSpecialization: {</div>
+<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>     <a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *RD = ReadDeclAs<CXXRecordDecl>(Record, Idx);</div>
+<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>     <a class="code" href="namespaceclang.html#ae689bf8e3dcc54751a81974a4a12c3d2" title="Describes the kind of template specialization that a particular template specialization declaration r...">TemplateSpecializationKind</a> TSK = (<a class="code" href="namespaceclang.html#ae689bf8e3dcc54751a81974a4a12c3d2" title="Describes the kind of template specialization that a particular template specialization declaration r...">TemplateSpecializationKind</a>)Record[Idx++];</div>
+<div class="line"><a name="l01316"></a><span class="lineno"> 1316</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> POI = ReadSourceLocation(Record, Idx);</div>
+<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>     <a class="code" href="classclang_1_1MemberSpecializationInfo.html" title="Provides information a specialization of a member of a class template, which may be a member function...">MemberSpecializationInfo</a> *MSI = <span class="keyword">new</span> (C) <a class="code" href="classclang_1_1MemberSpecializationInfo.html" title="Provides information a specialization of a member of a class template, which may be a member function...">MemberSpecializationInfo</a>(RD, TSK);</div>
+<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>     MSI-><a class="code" href="classclang_1_1MemberSpecializationInfo.html#ac7a0b5ffbb14524e20aab5c82adfff92" title="Set the first point of instantiation.">setPointOfInstantiation</a>(POI);</div>
+<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>     D->TemplateOrInstantiation = MSI;</div>
+<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>   }</div>
+<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>   }</div>
+<div class="line"><a name="l01323"></a><span class="lineno"> 1323</span> </div>
+<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>   <span class="comment">// Lazily load the key function to avoid deserializing every method so we can</span></div>
+<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>   <span class="comment">// compute it.</span></div>
+<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>   <span class="keywordflow">if</span> (WasDefinition) {</div>
+<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>     <a class="code" href="namespaceclang_1_1serialization.html#af3f9c681595246da4bb499bd210e7f36" title="An ID number that refers to a declaration in an AST file.">DeclID</a> KeyFn = ReadDeclID(Record, Idx);</div>
+<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>     <span class="keywordflow">if</span> (KeyFn && D->IsCompleteDefinition)</div>
+<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>       C.KeyFunctions[D] = KeyFn;</div>
+<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>   }</div>
+<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span> </div>
+<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>   <span class="keywordflow">return</span> Redecl;</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"><a class="code" href="classclang_1_1ASTDeclReader.html#a9a5b392a27fc5aaca3409d706a7056e1"> 1335</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a9a5b392a27fc5aaca3409d706a7056e1">ASTDeclReader::VisitCXXMethodDecl</a>(<a class="code" href="classclang_1_1CXXMethodDecl.html" title="Represents a static or instance method of a struct/union/class.">CXXMethodDecl</a> *D) {</div>
+<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>   VisitFunctionDecl(D);</div>
+<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>   <span class="keywordtype">unsigned</span> NumOverridenMethods = Record[Idx++];</div>
+<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>   <span class="keywordflow">while</span> (NumOverridenMethods--) {</div>
+<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>     <span class="comment">// Avoid invariant checking of CXXMethodDecl::addOverriddenMethod,</span></div>
+<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>     <span class="comment">// MD may be initializing.</span></div>
+<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1CXXMethodDecl.html" title="Represents a static or instance method of a struct/union/class.">CXXMethodDecl</a> *MD = ReadDeclAs<CXXMethodDecl>(Record, Idx))</div>
+<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>       Reader.getContext().addOverriddenMethod(D, MD);</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> }</div>
+<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span> </div>
+<div class="line"><a name="l01346"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a7b1ff3341ffbf7c77efd869a68583f64"> 1346</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a7b1ff3341ffbf7c77efd869a68583f64">ASTDeclReader::VisitCXXConstructorDecl</a>(<a class="code" href="classclang_1_1CXXConstructorDecl.html" title="Represents a C++ constructor within a class.">CXXConstructorDecl</a> *D) {</div>
+<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>   VisitCXXMethodDecl(D);</div>
+<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>   </div>
+<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>   D->IsExplicitSpecified = Record[Idx++];</div>
+<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>   llvm::tie(D->CtorInitializers, D->NumCtorInitializers)</div>
+<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>       = Reader.ReadCXXCtorInitializers(F, Record, Idx);</div>
+<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span> }</div>
+<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span> </div>
+<div class="line"><a name="l01354"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#afaa635053e9272ae5e2b3235c1c5087f"> 1354</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#afaa635053e9272ae5e2b3235c1c5087f">ASTDeclReader::VisitCXXDestructorDecl</a>(<a class="code" href="classclang_1_1CXXDestructorDecl.html" title="Represents a C++ destructor within a class.">CXXDestructorDecl</a> *D) {</div>
+<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>   VisitCXXMethodDecl(D);</div>
+<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span> </div>
+<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>   D->OperatorDelete = ReadDeclAs<FunctionDecl>(Record, Idx);</div>
+<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span> }</div>
+<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span> </div>
+<div class="line"><a name="l01360"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#afd627e8e0b258279ac80cd760c3797a5"> 1360</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#afd627e8e0b258279ac80cd760c3797a5">ASTDeclReader::VisitCXXConversionDecl</a>(<a class="code" href="classclang_1_1CXXConversionDecl.html" title="Represents a C++ conversion function within a class.">CXXConversionDecl</a> *D) {</div>
+<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>   VisitCXXMethodDecl(D);</div>
+<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>   D->IsExplicitSpecified = Record[Idx++];</div>
+<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span> }</div>
+<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span> </div>
+<div class="line"><a name="l01365"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a05a334eec948d2ad6797032c62bd259b"> 1365</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a05a334eec948d2ad6797032c62bd259b">ASTDeclReader::VisitImportDecl</a>(<a class="code" href="classclang_1_1ImportDecl.html" title="Describes a module import declaration, which makes the contents of the named module visible in the cu...">ImportDecl</a> *D) {</div>
+<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>   VisitDecl(D);</div>
+<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>   D->ImportedAndComplete.setPointer(readModule(Record, Idx));</div>
+<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>   D->ImportedAndComplete.setInt(Record[Idx++]);</div>
+<div class="line"><a name="l01369"></a><span class="lineno"> 1369</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> *StoredLocs = <span class="keyword">reinterpret_cast<</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> *<span class="keyword">></span>(D + 1);</div>
+<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = Record.back(); I != N; ++I)</div>
+<div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>     StoredLocs[I] = ReadSourceLocation(Record, Idx);</div>
+<div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>   ++Idx; <span class="comment">// The number of stored source locations.</span></div>
+<div class="line"><a name="l01373"></a><span class="lineno"> 1373</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"><a class="code" href="classclang_1_1ASTDeclReader.html#a95e850823139b988b7587c4d08e5341b"> 1375</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a95e850823139b988b7587c4d08e5341b">ASTDeclReader::VisitAccessSpecDecl</a>(<a class="code" href="classclang_1_1AccessSpecDecl.html" title="Represents an access specifier followed by colon ':'.">AccessSpecDecl</a> *D) {</div>
+<div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>   VisitDecl(D);</div>
+<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>   D-><a class="code" href="classclang_1_1AccessSpecDecl.html#ad3c0a6a277463edaab7a60ef3672d7b5" title="Sets the location of the colon.">setColonLoc</a>(ReadSourceLocation(Record, Idx));</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> </div>
+<div class="line"><a name="l01380"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a67ba14687af7e2ec2d5fee12dcf8d1f7"> 1380</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a67ba14687af7e2ec2d5fee12dcf8d1f7">ASTDeclReader::VisitFriendDecl</a>(<a class="code" href="classclang_1_1FriendDecl.html">FriendDecl</a> *D) {</div>
+<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>   VisitDecl(D);</div>
+<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>   <span class="keywordflow">if</span> (Record[Idx++]) <span class="comment">// hasFriendDecl</span></div>
+<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>     D->Friend = ReadDeclAs<NamedDecl>(Record, Idx);</div>
+<div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>   <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>     D->Friend = GetTypeSourceInfo(Record, Idx);</div>
+<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i != D->NumTPLists; ++i)</div>
+<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>     D->getTPLists()[i] = Reader.ReadTemplateParameterList(F, Record, Idx);</div>
+<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>   D->NextFriend = ReadDeclID(Record, Idx);</div>
+<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>   D->UnsupportedFriend = (Record[Idx++] != 0);</div>
+<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>   D->FriendLoc = ReadSourceLocation(Record, Idx);</div>
+<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span> }</div>
+<div class="line"><a name="l01392"></a><span class="lineno"> 1392</span> </div>
+<div class="line"><a name="l01393"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a569a3a432aaea3387d8f7c3ed9a4875f"> 1393</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a569a3a432aaea3387d8f7c3ed9a4875f">ASTDeclReader::VisitFriendTemplateDecl</a>(<a class="code" href="classclang_1_1FriendTemplateDecl.html" title="Declaration of a friend template.">FriendTemplateDecl</a> *D) {</div>
+<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>   VisitDecl(D);</div>
+<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>   <span class="keywordtype">unsigned</span> NumParams = Record[Idx++];</div>
+<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>   D->NumParams = NumParams;</div>
+<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>   D->Params = <span class="keyword">new</span> <a class="code" href="classclang_1_1TemplateParameterList.html" title="Stores a list of template parameters for a TemplateDecl and its derived classes.">TemplateParameterList</a>*[NumParams];</div>
+<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i != NumParams; ++i)</div>
+<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>     D->Params[i] = Reader.ReadTemplateParameterList(F, Record, Idx);</div>
+<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>   <span class="keywordflow">if</span> (Record[Idx++]) <span class="comment">// HasFriendDecl</span></div>
+<div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>     D->Friend = ReadDeclAs<NamedDecl>(Record, Idx);</div>
+<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>   <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>     D->Friend = GetTypeSourceInfo(Record, Idx);</div>
+<div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>   D->FriendLoc = ReadSourceLocation(Record, Idx);</div>
+<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span> }</div>
+<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span> </div>
+<div class="line"><a name="l01407"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#afc4779a5acfe61a39d514f0ba91ecffe"> 1407</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#afc4779a5acfe61a39d514f0ba91ecffe">ASTDeclReader::VisitTemplateDecl</a>(<a class="code" href="classclang_1_1TemplateDecl.html" title="The base class of all kinds of template declarations (e.g., class, function, etc.).">TemplateDecl</a> *D) {</div>
+<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>   VisitNamedDecl(D);</div>
+<div class="line"><a name="l01409"></a><span class="lineno"> 1409</span> </div>
+<div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>   <a class="code" href="classclang_1_1NamedDecl.html">NamedDecl</a> *TemplatedDecl = ReadDeclAs<NamedDecl>(Record, Idx);</div>
+<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>   <a class="code" href="classclang_1_1TemplateParameterList.html" title="Stores a list of template parameters for a TemplateDecl and its derived classes.">TemplateParameterList</a>* TemplateParams</div>
+<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>       = Reader.ReadTemplateParameterList(F, Record, Idx); </div>
+<div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>   D-><a class="code" href="classclang_1_1TemplateDecl.html#ad3f39a27caa2b8fb7e754af22f79e1f0" title="Initialize the underlying templated declaration and template parameters.">init</a>(TemplatedDecl, TemplateParams);</div>
+<div class="line"><a name="l01414"></a><span class="lineno"> 1414</span> </div>
+<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>   <span class="comment">// FIXME: If this is a redeclaration of a template from another module, handle</span></div>
+<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>   <span class="comment">// inheritance of default template arguments.</span></div>
+<div class="line"><a name="l01417"></a><span class="lineno"> 1417</span> }</div>
+<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span> </div>
+<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span> ASTDeclReader::RedeclarableResult </div>
+<div class="line"><a name="l01420"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#ac35099749ec6265aa05aaf6e13450c26"> 1420</a></span> <a class="code" href="classclang_1_1ASTDeclReader.html#ac35099749ec6265aa05aaf6e13450c26">ASTDeclReader::VisitRedeclarableTemplateDecl</a>(<a class="code" href="classclang_1_1RedeclarableTemplateDecl.html" title="Declaration of a redeclarable template.">RedeclarableTemplateDecl</a> *D) {</div>
+<div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>   RedeclarableResult Redecl = VisitRedeclarable(D);</div>
+<div class="line"><a name="l01422"></a><span class="lineno"> 1422</span> </div>
+<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>   <span class="comment">// Make sure we've allocated the Common pointer first. We do this before</span></div>
+<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>   <span class="comment">// VisitTemplateDecl so that getCommonPtr() can be used during initialization.</span></div>
+<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>   <a class="code" href="classclang_1_1RedeclarableTemplateDecl.html" title="Declaration of a redeclarable template.">RedeclarableTemplateDecl</a> *CanonD = D-><a class="code" href="classclang_1_1RedeclarableTemplateDecl.html#a87ef6e55328d715e751d65803e340483" title="Retrieves the canonical declaration of this template.">getCanonicalDecl</a>();</div>
+<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>   <span class="keywordflow">if</span> (!CanonD-><a class="code" href="classclang_1_1RedeclarableTemplateDecl.html#a984a17054c00ab13fa2b742948cb5623" title="Pointer to the common data shared by all declarations of this template.">Common</a>) {</div>
+<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>     CanonD-><a class="code" href="classclang_1_1RedeclarableTemplateDecl.html#a984a17054c00ab13fa2b742948cb5623" title="Pointer to the common data shared by all declarations of this template.">Common</a> = CanonD-><a class="code" href="classclang_1_1RedeclarableTemplateDecl.html#a419ecaa4b96838ea345abe594d3590da">newCommon</a>(Reader.getContext());</div>
+<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>     Reader.PendingDefinitions.insert(CanonD);</div>
+<div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>   }</div>
+<div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>   D-><a class="code" href="classclang_1_1RedeclarableTemplateDecl.html#a984a17054c00ab13fa2b742948cb5623" title="Pointer to the common data shared by all declarations of this template.">Common</a> = CanonD-><a class="code" href="classclang_1_1RedeclarableTemplateDecl.html#a984a17054c00ab13fa2b742948cb5623" title="Pointer to the common data shared by all declarations of this template.">Common</a>;</div>
+<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span> </div>
+<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>   <span class="comment">// If this is the first declaration of the template, fill in the information</span></div>
+<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>   <span class="comment">// for the 'common' pointer.</span></div>
+<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>   <span class="keywordflow">if</span> (ThisDeclID == Redecl.getFirstID()) {</div>
+<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1RedeclarableTemplateDecl.html" title="Declaration of a redeclarable template.">RedeclarableTemplateDecl</a> *RTD</div>
+<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>           = ReadDeclAs<RedeclarableTemplateDecl>(Record, Idx)) {</div>
+<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>       assert(RTD->getKind() == D-><a class="code" href="classclang_1_1Decl.html#a6c53e861dae5545e8f6974af04cb2986">getKind</a>() &&</div>
+<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>              <span class="stringliteral">"InstantiatedFromMemberTemplate kind mismatch"</span>);</div>
+<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>       D-><a class="code" href="classclang_1_1RedeclarableTemplateDecl.html#ae47be96f1cc01d743acf362f1b52409f">setInstantiatedFromMemberTemplate</a>(RTD);</div>
+<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>       <span class="keywordflow">if</span> (Record[Idx++])</div>
+<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>         D-><a class="code" href="classclang_1_1RedeclarableTemplateDecl.html#acd8ff3626c6a3a3a3899a3e50f05c875" title="Note that this member template is a specialization.">setMemberSpecialization</a>();</div>
+<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>     }</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>   VisitTemplateDecl(D);</div>
+<div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>   D-><a class="code" href="classclang_1_1Decl.html#a9e38ae17197f1ebf6cdbb58260133710">IdentifierNamespace</a> = Record[Idx++];</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>   mergeRedeclarable(D, Redecl);</div>
+<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span> </div>
+<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>   <span class="comment">// If we merged the template with a prior declaration chain, merge the common</span></div>
+<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>   <span class="comment">// pointer.</span></div>
+<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>   <span class="comment">// FIXME: Actually merge here, don't just overwrite.</span></div>
+<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>   D-><a class="code" href="classclang_1_1RedeclarableTemplateDecl.html#a984a17054c00ab13fa2b742948cb5623" title="Pointer to the common data shared by all declarations of this template.">Common</a> = D-><a class="code" href="classclang_1_1RedeclarableTemplateDecl.html#a87ef6e55328d715e751d65803e340483" title="Retrieves the canonical declaration of this template.">getCanonicalDecl</a>()-><a class="code" href="classclang_1_1RedeclarableTemplateDecl.html#a984a17054c00ab13fa2b742948cb5623" title="Pointer to the common data shared by all declarations of this template.">Common</a>;</div>
+<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span> </div>
+<div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>   <span class="keywordflow">return</span> Redecl;</div>
+<div class="line"><a name="l01456"></a><span class="lineno"> 1456</span> }</div>
+<div class="line"><a name="l01457"></a><span class="lineno"> 1457</span> </div>
+<div class="line"><a name="l01458"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#af5dc4b219a571308a70c4d0c16e00025"> 1458</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#af5dc4b219a571308a70c4d0c16e00025">ASTDeclReader::VisitClassTemplateDecl</a>(<a class="code" href="classclang_1_1ClassTemplateDecl.html" title="Declaration of a class template.">ClassTemplateDecl</a> *D) {</div>
+<div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>   RedeclarableResult Redecl = VisitRedeclarableTemplateDecl(D);</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="keywordflow">if</span> (ThisDeclID == Redecl.getFirstID()) {</div>
+<div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>     <span class="comment">// This ClassTemplateDecl owns a CommonPtr; read it to keep track of all of</span></div>
+<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>     <span class="comment">// the specializations.</span></div>
+<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>     <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<serialization::DeclID, 2></a> SpecIDs;</div>
+<div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>     SpecIDs.push_back(0);</div>
+<div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>     </div>
+<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>     <span class="comment">// Specializations.</span></div>
+<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>     <span class="keywordtype">unsigned</span> Size = Record[Idx++];</div>
+<div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>     SpecIDs[0] += Size;</div>
+<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0; I != Size; ++I)</div>
+<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>       SpecIDs.push_back(ReadDeclID(Record, Idx));</div>
+<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span> </div>
+<div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>     <span class="comment">// Partial specializations.</span></div>
+<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>     Size = Record[Idx++];</div>
+<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>     SpecIDs[0] += Size;</div>
+<div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0; I != Size; ++I)</div>
+<div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>       SpecIDs.push_back(ReadDeclID(Record, Idx));</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>     <a class="code" href="structclang_1_1ClassTemplateDecl_1_1Common.html" title="Data that is common to all of the declarations of a given class template.">ClassTemplateDecl::Common</a> *CommonPtr = D-><a class="code" href="classclang_1_1ClassTemplateDecl.html#a79a8d4751689b6d87b08883449c8bb1b">getCommonPtr</a>();</div>
+<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>     <span class="keywordflow">if</span> (SpecIDs[0]) {</div>
+<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>       <span class="keyword">typedef</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_1serialization.html#af3f9c681595246da4bb499bd210e7f36" title="An ID number that refers to a declaration in an AST file.">DeclID</a>;</div>
+<div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>       </div>
+<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>       <span class="comment">// FIXME: Append specializations!</span></div>
+<div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>       CommonPtr-><a class="code" href="structclang_1_1ClassTemplateDecl_1_1Common.html#af827313520fa5b4ae335867e48d7c9eb" title="If non-null, points to an array of specializations (including partial specializations) known only by ...">LazySpecializations</a></div>
+<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>         = <span class="keyword">new</span> (Reader.getContext()) DeclID [SpecIDs.size()];</div>
+<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>       memcpy(CommonPtr-><a class="code" href="structclang_1_1ClassTemplateDecl_1_1Common.html#af827313520fa5b4ae335867e48d7c9eb" title="If non-null, points to an array of specializations (including partial specializations) known only by ...">LazySpecializations</a>, SpecIDs.data(), </div>
+<div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>              SpecIDs.size() * <span class="keyword">sizeof</span>(<a class="code" href="namespaceclang_1_1serialization.html#af3f9c681595246da4bb499bd210e7f36" title="An ID number that refers to a declaration in an AST file.">DeclID</a>));</div>
+<div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>     }</div>
+<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>     </div>
+<div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>     CommonPtr-><a class="code" href="structclang_1_1ClassTemplateDecl_1_1Common.html#a33c5ac3b477008c8348d20c78be365e9" title="The injected-class-name type for this class template.">InjectedClassNameType</a> = Reader.readType(F, Record, Idx);</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> }</div>
+<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span> <span class="comment"></span></div>
+<div class="line"><a name="l01494"></a><span class="lineno"> 1494</span> <span class="comment">/// TODO: Unify with ClassTemplateDecl version?</span></div>
+<div class="line"><a name="l01495"></a><span class="lineno"> 1495</span> <span class="comment">///       May require unifying ClassTemplateDecl and</span></div>
+<div class="line"><a name="l01496"></a><span class="lineno"> 1496</span> <span class="comment">///        VarTemplateDecl beyond TemplateDecl...</span></div>
+<div class="line"><a name="l01497"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#aeb06afbb878b5645f8dcec4b4cfd68f7"> 1497</a></span> <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#aeb06afbb878b5645f8dcec4b4cfd68f7">ASTDeclReader::VisitVarTemplateDecl</a>(<a class="code" href="classclang_1_1VarTemplateDecl.html" title="Declaration of a variable template.">VarTemplateDecl</a> *D) {</div>
+<div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>   RedeclarableResult Redecl = VisitRedeclarableTemplateDecl(D);</div>
+<div class="line"><a name="l01499"></a><span class="lineno"> 1499</span> </div>
+<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>   <span class="keywordflow">if</span> (ThisDeclID == Redecl.getFirstID()) {</div>
+<div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>     <span class="comment">// This VarTemplateDecl owns a CommonPtr; read it to keep track of all of</span></div>
+<div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>     <span class="comment">// the specializations.</span></div>
+<div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>     <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<serialization::DeclID, 2></a> SpecIDs;</div>
+<div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>     SpecIDs.push_back(0);</div>
+<div class="line"><a name="l01505"></a><span class="lineno"> 1505</span> </div>
+<div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>     <span class="comment">// Specializations.</span></div>
+<div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>     <span class="keywordtype">unsigned</span> Size = Record[Idx++];</div>
+<div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>     SpecIDs[0] += Size;</div>
+<div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0; I != Size; ++I)</div>
+<div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>       SpecIDs.push_back(ReadDeclID(Record, Idx));</div>
+<div class="line"><a name="l01511"></a><span class="lineno"> 1511</span> </div>
+<div class="line"><a name="l01512"></a><span class="lineno"> 1512</span>     <span class="comment">// Partial specializations.</span></div>
+<div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>     Size = Record[Idx++];</div>
+<div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>     SpecIDs[0] += Size;</div>
+<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0; I != Size; ++I)</div>
+<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>       SpecIDs.push_back(ReadDeclID(Record, Idx));</div>
+<div class="line"><a name="l01517"></a><span class="lineno"> 1517</span> </div>
+<div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>     <a class="code" href="structclang_1_1VarTemplateDecl_1_1Common.html" title="Data that is common to all of the declarations of a given variable template.">VarTemplateDecl::Common</a> *CommonPtr = D-><a class="code" href="classclang_1_1VarTemplateDecl.html#aecfd6aebcf85c1e585a6f784caad1b21">getCommonPtr</a>();</div>
+<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>     <span class="keywordflow">if</span> (SpecIDs[0]) {</div>
+<div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>       <span class="keyword">typedef</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_1serialization.html#af3f9c681595246da4bb499bd210e7f36" title="An ID number that refers to a declaration in an AST file.">DeclID</a>;</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>       <span class="comment">// FIXME: Append specializations!</span></div>
+<div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>       CommonPtr-><a class="code" href="structclang_1_1VarTemplateDecl_1_1Common.html#a967b7f4717ef1456a782a32de9bb8ec5" title="If non-null, points to an array of specializations (including partial specializations) known ownly by...">LazySpecializations</a> =</div>
+<div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>           <span class="keyword">new</span> (Reader.getContext()) DeclID[SpecIDs.size()];</div>
+<div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>       memcpy(CommonPtr-><a class="code" href="structclang_1_1VarTemplateDecl_1_1Common.html#a967b7f4717ef1456a782a32de9bb8ec5" title="If non-null, points to an array of specializations (including partial specializations) known ownly by...">LazySpecializations</a>, SpecIDs.data(),</div>
+<div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>              SpecIDs.size() * <span class="keyword">sizeof</span>(<a class="code" href="namespaceclang_1_1serialization.html#af3f9c681595246da4bb499bd210e7f36" title="An ID number that refers to a declaration in an AST file.">DeclID</a>));</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>   }</div>
+<div class="line"><a name="l01529"></a><span class="lineno"> 1529</span> }</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> ASTDeclReader::RedeclarableResult</div>
+<div class="line"><a name="l01532"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a3dcb3d4e8f895aa36233dbdfdf03d6b4"> 1532</a></span> <a class="code" href="classclang_1_1ASTDeclReader.html#a3dcb3d4e8f895aa36233dbdfdf03d6b4">ASTDeclReader::VisitClassTemplateSpecializationDeclImpl</a>(</div>
+<div class="line"><a name="l01533"></a><span class="lineno"> 1533</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="l01534"></a><span class="lineno"> 1534</span>   RedeclarableResult Redecl = VisitCXXRecordDeclImpl(D);</div>
+<div class="line"><a name="l01535"></a><span class="lineno"> 1535</span>   </div>
+<div class="line"><a name="l01536"></a><span class="lineno"> 1536</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> &C = Reader.getContext();</div>
+<div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Decl.html">Decl</a> *InstD = ReadDecl(Record, Idx)) {</div>
+<div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1ClassTemplateDecl.html" title="Declaration of a class template.">ClassTemplateDecl</a> *CTD = dyn_cast<ClassTemplateDecl>(InstD)) {</div>
+<div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>       D->SpecializedTemplate = CTD;</div>
+<div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>       <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<TemplateArgument, 8></a> TemplArgs;</div>
+<div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>       Reader.ReadTemplateArgumentList(TemplArgs, F, Record, Idx);</div>
+<div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>       <a class="code" href="classclang_1_1TemplateArgumentList.html" title="A template argument list.">TemplateArgumentList</a> *ArgList</div>
+<div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>         = <a class="code" href="classclang_1_1TemplateArgumentList.html#af838a4814e4d2bf5814fe89d4b19836a" title="Create a new template argument list that copies the given set of template arguments.">TemplateArgumentList::CreateCopy</a>(C, TemplArgs.data(), </div>
+<div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>                                            TemplArgs.size());</div>
+<div class="line"><a name="l01546"></a><span class="lineno"> 1546</span>       ClassTemplateSpecializationDecl::SpecializedPartialSpecialization *PS</div>
+<div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>           = <span class="keyword">new</span> (C) <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>::</div>
+<div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>                                              SpecializedPartialSpecialization();</div>
+<div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>       PS->PartialSpecialization</div>
+<div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>           = cast<ClassTemplatePartialSpecializationDecl>(InstD);</div>
+<div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>       PS->TemplateArgs = ArgList;</div>
+<div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>       D->SpecializedTemplate = PS;</div>
+<div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>     }</div>
+<div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>   }</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>   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<TemplateArgument, 8></a> TemplArgs;</div>
+<div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>   Reader.ReadTemplateArgumentList(TemplArgs, F, Record, Idx);</div>
+<div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>   D->TemplateArgs = <a class="code" href="classclang_1_1TemplateArgumentList.html#af838a4814e4d2bf5814fe89d4b19836a" title="Create a new template argument list that copies the given set of template arguments.">TemplateArgumentList::CreateCopy</a>(C, TemplArgs.data(), </div>
+<div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>                                                      TemplArgs.size());</div>
+<div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>   D->PointOfInstantiation = ReadSourceLocation(Record, Idx);</div>
+<div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>   D->SpecializationKind = (<a class="code" href="namespaceclang.html#ae689bf8e3dcc54751a81974a4a12c3d2" title="Describes the kind of template specialization that a particular template specialization declaration r...">TemplateSpecializationKind</a>)Record[Idx++];</div>
+<div class="line"><a name="l01562"></a><span class="lineno"> 1562</span> </div>
+<div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>   <span class="keywordtype">bool</span> writtenAsCanonicalDecl = Record[Idx++];</div>
+<div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>   <span class="keywordflow">if</span> (writtenAsCanonicalDecl) {</div>
+<div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>     <a class="code" href="classclang_1_1ClassTemplateDecl.html" title="Declaration of a class template.">ClassTemplateDecl</a> *CanonPattern = ReadDeclAs<ClassTemplateDecl>(Record,Idx);</div>
+<div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>     <span class="keywordflow">if</span> (D-><a class="code" href="classclang_1_1Decl.html#a2b931baf609b7f7de1e61841a7b0d876" title="Whether this particular Decl is a canonical one.">isCanonicalDecl</a>()) { <span class="comment">// It's kept in the folding set.</span></div>
+<div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>       <span class="comment">// Set this as, or find, the canonical declaration for this specialization</span></div>
+<div class="line"><a name="l01568"></a><span class="lineno"> 1568</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> *CanonSpec;</div>
+<div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>       <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1ClassTemplatePartialSpecializationDecl.html">ClassTemplatePartialSpecializationDecl</a> *Partial =</div>
+<div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>               dyn_cast<ClassTemplatePartialSpecializationDecl>(D)) {</div>
+<div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>         CanonSpec = CanonPattern-><a class="code" href="classclang_1_1ClassTemplateDecl.html#a79a8d4751689b6d87b08883449c8bb1b">getCommonPtr</a>()-><a class="code" href="structclang_1_1ClassTemplateDecl_1_1Common.html#a165b9927b53470e5232e3e74c1545eb6" title="The class template partial specializations for this class template.">PartialSpecializations</a></div>
+<div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>             .GetOrInsertNode(Partial);</div>
+<div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>       } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>         CanonSpec =</div>
+<div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>             CanonPattern-><a class="code" href="classclang_1_1ClassTemplateDecl.html#a79a8d4751689b6d87b08883449c8bb1b">getCommonPtr</a>()-><a class="code" href="structclang_1_1ClassTemplateDecl_1_1Common.html#a2b2baba0018dd3060355b5c47c474bea" title="The class template specializations for this class template, including explicit specializations and in...">Specializations</a>.GetOrInsertNode(D);</div>
+<div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>       }</div>
+<div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>       <span class="comment">// If there was already a canonical specialization, merge into it.</span></div>
+<div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>       <span class="keywordflow">if</span> (CanonSpec != D) {</div>
+<div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>         mergeRedeclarable<TagDecl>(D, CanonSpec, Redecl);</div>
+<div class="line"><a name="l01580"></a><span class="lineno"> 1580</span> </div>
+<div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>         <span class="comment">// This declaration might be a definition. Merge with any existing</span></div>
+<div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>         <span class="comment">// definition.</span></div>
+<div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>         <span class="keywordflow">if</span> (D->DefinitionData) {</div>
+<div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>           <span class="keywordflow">if</span> (!CanonSpec->DefinitionData) {</div>
+<div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>             CanonSpec->DefinitionData = D->DefinitionData;</div>
+<div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>           } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>             <span class="comment">// FIXME: Check DefinitionData for consistency with prior definition</span></div>
+<div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>             Reader.PendingDefinitions.erase(D);</div>
+<div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>             Reader.MergedDeclContexts.insert(</div>
+<div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>                 std::make_pair(D, CanonSpec->DefinitionData->Definition));</div>
+<div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>             D->IsCompleteDefinition = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>             D->DefinitionData = CanonSpec->DefinitionData;</div>
+<div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>           }</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>       }</div>
+<div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>     }</div>
+<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>   }</div>
+<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span> </div>
+<div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>   <span class="comment">// Explicit info.</span></div>
+<div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1TypeSourceInfo.html" title="A container of type source information.">TypeSourceInfo</a> *TyInfo = GetTypeSourceInfo(Record, Idx)) {</div>
+<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>     ClassTemplateSpecializationDecl::ExplicitSpecializationInfo *ExplicitInfo</div>
+<div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>         = <span class="keyword">new</span> (C) ClassTemplateSpecializationDecl::ExplicitSpecializationInfo;</div>
+<div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>     ExplicitInfo->TypeAsWritten = TyInfo;</div>
+<div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>     ExplicitInfo->ExternLoc = ReadSourceLocation(Record, Idx);</div>
+<div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>     ExplicitInfo->TemplateKeywordLoc = ReadSourceLocation(Record, Idx);</div>
+<div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>     D->ExplicitInfo = ExplicitInfo;</div>
+<div class="line"><a name="l01607"></a><span class="lineno"> 1607</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="keywordflow">return</span> Redecl;</div>
+<div class="line"><a name="l01610"></a><span class="lineno"> 1610</span> }</div>
+<div class="line"><a name="l01611"></a><span class="lineno"> 1611</span> </div>
+<div class="line"><a name="l01612"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a59a7b525f945c8237e531ffc94f10d34"> 1612</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a59a7b525f945c8237e531ffc94f10d34">ASTDeclReader::VisitClassTemplatePartialSpecializationDecl</a>(</div>
+<div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>                                     <a class="code" href="classclang_1_1ClassTemplatePartialSpecializationDecl.html">ClassTemplatePartialSpecializationDecl</a> *D) {</div>
+<div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>   RedeclarableResult Redecl = VisitClassTemplateSpecializationDeclImpl(D);</div>
+<div class="line"><a name="l01615"></a><span class="lineno"> 1615</span> </div>
+<div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>   D->TemplateParams = Reader.ReadTemplateParameterList(F, Record, Idx);</div>
+<div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>   D->ArgsAsWritten = Reader.ReadASTTemplateArgumentListInfo(F, Record, Idx);</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="comment">// These are read/set from/to the first declaration.</span></div>
+<div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>   <span class="keywordflow">if</span> (ThisDeclID == Redecl.getFirstID()) {</div>
+<div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>     D->InstantiatedFromMember.setPointer(</div>
+<div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>       ReadDeclAs<ClassTemplatePartialSpecializationDecl>(Record, Idx));</div>
+<div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>     D->InstantiatedFromMember.setInt(Record[Idx++]);</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> }</div>
+<div class="line"><a name="l01626"></a><span class="lineno"> 1626</span> </div>
+<div class="line"><a name="l01627"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a0972fe66b5108763599d5a6469ae0c3b"> 1627</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a0972fe66b5108763599d5a6469ae0c3b">ASTDeclReader::VisitClassScopeFunctionSpecializationDecl</a>(</div>
+<div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>                                     <a class="code" href="classclang_1_1ClassScopeFunctionSpecializationDecl.html" title="Declaration of a function specialization at template class scope.">ClassScopeFunctionSpecializationDecl</a> *D) {</div>
+<div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>   VisitDecl(D);</div>
+<div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>   D->Specialization = ReadDeclAs<CXXMethodDecl>(Record, Idx);</div>
+<div class="line"><a name="l01631"></a><span class="lineno"> 1631</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"><a class="code" href="classclang_1_1ASTDeclReader.html#adc653d556d0ea4d0069442773a992ce4"> 1633</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#adc653d556d0ea4d0069442773a992ce4">ASTDeclReader::VisitFunctionTemplateDecl</a>(<a class="code" href="classclang_1_1FunctionTemplateDecl.html" title="Declaration of a template function.">FunctionTemplateDecl</a> *D) {</div>
+<div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>   RedeclarableResult Redecl = VisitRedeclarableTemplateDecl(D);</div>
+<div class="line"><a name="l01635"></a><span class="lineno"> 1635</span> </div>
+<div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>   <span class="keywordflow">if</span> (ThisDeclID == Redecl.getFirstID()) {</div>
+<div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>     <span class="comment">// This FunctionTemplateDecl owns a CommonPtr; read it.</span></div>
+<div class="line"><a name="l01638"></a><span class="lineno"> 1638</span> </div>
+<div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>     <span class="comment">// Read the function specialization declaration IDs. The specializations</span></div>
+<div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>     <span class="comment">// themselves will be loaded if they're needed.</span></div>
+<div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>     <span class="keywordflow">if</span> (<span class="keywordtype">unsigned</span> NumSpecs = Record[Idx++]) {</div>
+<div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>       <span class="comment">// FIXME: Append specializations!</span></div>
+<div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>       <a class="code" href="structclang_1_1FunctionTemplateDecl_1_1Common.html" title="Data that is common to all of the declarations of a given function template.">FunctionTemplateDecl::Common</a> *CommonPtr = D-><a class="code" href="classclang_1_1FunctionTemplateDecl.html#ab946ddea8bee9da118ddb8df73e82e8e">getCommonPtr</a>();</div>
+<div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>       CommonPtr-><a class="code" href="structclang_1_1FunctionTemplateDecl_1_1Common.html#a8bca23b82072b32eb82f9eaae1e84c96" title="If non-null, points to an array of specializations known only by their external declaration IDs...">LazySpecializations</a> = <span class="keyword">new</span> (Reader.getContext())</div>
+<div class="line"><a name="l01645"></a><span class="lineno"> 1645</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>[NumSpecs + 1];</div>
+<div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>       CommonPtr-><a class="code" href="structclang_1_1FunctionTemplateDecl_1_1Common.html#a8bca23b82072b32eb82f9eaae1e84c96" title="If non-null, points to an array of specializations known only by their external declaration IDs...">LazySpecializations</a>[0] = NumSpecs;</div>
+<div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>       <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0; I != NumSpecs; ++I)</div>
+<div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>         CommonPtr-><a class="code" href="structclang_1_1FunctionTemplateDecl_1_1Common.html#a8bca23b82072b32eb82f9eaae1e84c96" title="If non-null, points to an array of specializations known only by their external declaration IDs...">LazySpecializations</a>[I + 1] = ReadDeclID(Record, Idx);</div>
+<div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>     }</div>
+<div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>   }</div>
+<div class="line"><a name="l01651"></a><span class="lineno"> 1651</span> }</div>
+<div class="line"><a name="l01652"></a><span class="lineno"> 1652</span> <span class="comment"></span></div>
+<div class="line"><a name="l01653"></a><span class="lineno"> 1653</span> <span class="comment">/// TODO: Unify with ClassTemplateSpecializationDecl version?</span></div>
+<div class="line"><a name="l01654"></a><span class="lineno"> 1654</span> <span class="comment">///       May require unifying ClassTemplate(Partial)SpecializationDecl and</span></div>
+<div class="line"><a name="l01655"></a><span class="lineno"> 1655</span> <span class="comment">///        VarTemplate(Partial)SpecializationDecl with a new data</span></div>
+<div class="line"><a name="l01656"></a><span class="lineno"> 1656</span> <span class="comment">///        structure Template(Partial)SpecializationDecl, and</span></div>
+<div class="line"><a name="l01657"></a><span class="lineno"> 1657</span> <span class="comment">///        using Template(Partial)SpecializationDecl as input type.</span></div>
+<div class="line"><a name="l01658"></a><span class="lineno"> 1658</span> <span class="comment"></span>ASTDeclReader::RedeclarableResult</div>
+<div class="line"><a name="l01659"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#abcf1dfb5c30dd28c9b9313e4aa6814f5"> 1659</a></span> <a class="code" href="classclang_1_1ASTDeclReader.html#abcf1dfb5c30dd28c9b9313e4aa6814f5">ASTDeclReader::VisitVarTemplateSpecializationDeclImpl</a>(</div>
+<div class="line"><a name="l01660"></a><span class="lineno"> 1660</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="l01661"></a><span class="lineno"> 1661</span>   RedeclarableResult Redecl = VisitVarDeclImpl(D);</div>
+<div class="line"><a name="l01662"></a><span class="lineno"> 1662</span> </div>
+<div class="line"><a name="l01663"></a><span class="lineno"> 1663</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> &C = Reader.getContext();</div>
+<div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Decl.html">Decl</a> *InstD = ReadDecl(Record, Idx)) {</div>
+<div class="line"><a name="l01665"></a><span class="lineno"> 1665</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1VarTemplateDecl.html" title="Declaration of a variable template.">VarTemplateDecl</a> *VTD = dyn_cast<VarTemplateDecl>(InstD)) {</div>
+<div class="line"><a name="l01666"></a><span class="lineno"> 1666</span>       D->SpecializedTemplate = VTD;</div>
+<div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>       <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<TemplateArgument, 8></a> TemplArgs;</div>
+<div class="line"><a name="l01669"></a><span class="lineno"> 1669</span>       Reader.ReadTemplateArgumentList(TemplArgs, F, Record, Idx);</div>
+<div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>       <a class="code" href="classclang_1_1TemplateArgumentList.html" title="A template argument list.">TemplateArgumentList</a> *ArgList = <a class="code" href="classclang_1_1TemplateArgumentList.html#af838a4814e4d2bf5814fe89d4b19836a" title="Create a new template argument list that copies the given set of template arguments.">TemplateArgumentList::CreateCopy</a>(</div>
+<div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>           C, TemplArgs.data(), TemplArgs.size());</div>
+<div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>       VarTemplateSpecializationDecl::SpecializedPartialSpecialization *PS =</div>
+<div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>           <span class="keyword">new</span> (C)</div>
+<div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>           VarTemplateSpecializationDecl::SpecializedPartialSpecialization();</div>
+<div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>       PS->PartialSpecialization =</div>
+<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>           cast<VarTemplatePartialSpecializationDecl>(InstD);</div>
+<div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>       PS->TemplateArgs = ArgList;</div>
+<div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>       D->SpecializedTemplate = PS;</div>
+<div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>     }</div>
+<div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>   }</div>
+<div class="line"><a name="l01681"></a><span class="lineno"> 1681</span> </div>
+<div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>   <span class="comment">// Explicit info.</span></div>
+<div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1TypeSourceInfo.html" title="A container of type source information.">TypeSourceInfo</a> *TyInfo = GetTypeSourceInfo(Record, Idx)) {</div>
+<div class="line"><a name="l01684"></a><span class="lineno"> 1684</span>     VarTemplateSpecializationDecl::ExplicitSpecializationInfo *ExplicitInfo =</div>
+<div class="line"><a name="l01685"></a><span class="lineno"> 1685</span>         <span class="keyword">new</span> (C) VarTemplateSpecializationDecl::ExplicitSpecializationInfo;</div>
+<div class="line"><a name="l01686"></a><span class="lineno"> 1686</span>     ExplicitInfo->TypeAsWritten = TyInfo;</div>
+<div class="line"><a name="l01687"></a><span class="lineno"> 1687</span>     ExplicitInfo->ExternLoc = ReadSourceLocation(Record, Idx);</div>
+<div class="line"><a name="l01688"></a><span class="lineno"> 1688</span>     ExplicitInfo->TemplateKeywordLoc = ReadSourceLocation(Record, Idx);</div>
+<div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>     D->ExplicitInfo = ExplicitInfo;</div>
+<div class="line"><a name="l01690"></a><span class="lineno"> 1690</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>   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<TemplateArgument, 8></a> TemplArgs;</div>
+<div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>   Reader.ReadTemplateArgumentList(TemplArgs, F, Record, Idx);</div>
+<div class="line"><a name="l01694"></a><span class="lineno"> 1694</span>   D->TemplateArgs =</div>
+<div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>       <a class="code" href="classclang_1_1TemplateArgumentList.html#af838a4814e4d2bf5814fe89d4b19836a" title="Create a new template argument list that copies the given set of template arguments.">TemplateArgumentList::CreateCopy</a>(C, TemplArgs.data(), TemplArgs.size());</div>
+<div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>   D->PointOfInstantiation = ReadSourceLocation(Record, Idx);</div>
+<div class="line"><a name="l01697"></a><span class="lineno"> 1697</span>   D->SpecializationKind = (<a class="code" href="namespaceclang.html#ae689bf8e3dcc54751a81974a4a12c3d2" title="Describes the kind of template specialization that a particular template specialization declaration r...">TemplateSpecializationKind</a>)Record[Idx++];</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>   <span class="keywordtype">bool</span> writtenAsCanonicalDecl = Record[Idx++];</div>
+<div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>   <span class="keywordflow">if</span> (writtenAsCanonicalDecl) {</div>
+<div class="line"><a name="l01701"></a><span class="lineno"> 1701</span>     <a class="code" href="classclang_1_1VarTemplateDecl.html" title="Declaration of a variable template.">VarTemplateDecl</a> *CanonPattern = ReadDeclAs<VarTemplateDecl>(Record, Idx);</div>
+<div class="line"><a name="l01702"></a><span class="lineno"> 1702</span>     <span class="keywordflow">if</span> (D-><a class="code" href="classclang_1_1Decl.html#a2b931baf609b7f7de1e61841a7b0d876" title="Whether this particular Decl is a canonical one.">isCanonicalDecl</a>()) { <span class="comment">// It's kept in the folding set.</span></div>
+<div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>       <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1VarTemplatePartialSpecializationDecl.html">VarTemplatePartialSpecializationDecl</a> *Partial =</div>
+<div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>               dyn_cast<VarTemplatePartialSpecializationDecl>(D)) {</div>
+<div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>         CanonPattern-><a class="code" href="classclang_1_1VarTemplateDecl.html#aecfd6aebcf85c1e585a6f784caad1b21">getCommonPtr</a>()-><a class="code" href="structclang_1_1VarTemplateDecl_1_1Common.html#a3009f1504ff2f2484078e3b5211a78eb" title="The variable template partial specializations for this variable template.">PartialSpecializations</a></div>
+<div class="line"><a name="l01706"></a><span class="lineno"> 1706</span>             .GetOrInsertNode(Partial);</div>
+<div class="line"><a name="l01707"></a><span class="lineno"> 1707</span>       } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>         CanonPattern-><a class="code" href="classclang_1_1VarTemplateDecl.html#aecfd6aebcf85c1e585a6f784caad1b21">getCommonPtr</a>()-><a class="code" href="structclang_1_1VarTemplateDecl_1_1Common.html#ab8bde7301d16fbe34e406eaa15cc517f" title="The variable template specializations for this variable template, including explicit specializations ...">Specializations</a>.GetOrInsertNode(D);</div>
+<div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>       }</div>
+<div class="line"><a name="l01710"></a><span class="lineno"> 1710</span>     }</div>
+<div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>   }</div>
+<div class="line"><a name="l01712"></a><span class="lineno"> 1712</span> </div>
+<div class="line"><a name="l01713"></a><span class="lineno"> 1713</span>   <span class="keywordflow">return</span> Redecl;</div>
+<div class="line"><a name="l01714"></a><span class="lineno"> 1714</span> }</div>
+<div class="line"><a name="l01715"></a><span class="lineno"> 1715</span> <span class="comment"></span></div>
+<div class="line"><a name="l01716"></a><span class="lineno"> 1716</span> <span class="comment">/// TODO: Unify with ClassTemplatePartialSpecializationDecl version?</span></div>
+<div class="line"><a name="l01717"></a><span class="lineno"> 1717</span> <span class="comment">///       May require unifying ClassTemplate(Partial)SpecializationDecl and</span></div>
+<div class="line"><a name="l01718"></a><span class="lineno"> 1718</span> <span class="comment">///        VarTemplate(Partial)SpecializationDecl with a new data</span></div>
+<div class="line"><a name="l01719"></a><span class="lineno"> 1719</span> <span class="comment">///        structure Template(Partial)SpecializationDecl, and</span></div>
+<div class="line"><a name="l01720"></a><span class="lineno"> 1720</span> <span class="comment">///        using Template(Partial)SpecializationDecl as input type.</span></div>
+<div class="line"><a name="l01721"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#ae6f68c3eb5ef92beddcdf76ba5c8cb38"> 1721</a></span> <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#ae6f68c3eb5ef92beddcdf76ba5c8cb38">ASTDeclReader::VisitVarTemplatePartialSpecializationDecl</a>(</div>
+<div class="line"><a name="l01722"></a><span class="lineno"> 1722</span>     <a class="code" href="classclang_1_1VarTemplatePartialSpecializationDecl.html">VarTemplatePartialSpecializationDecl</a> *D) {</div>
+<div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>   RedeclarableResult Redecl = VisitVarTemplateSpecializationDeclImpl(D);</div>
+<div class="line"><a name="l01724"></a><span class="lineno"> 1724</span> </div>
+<div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>   D->TemplateParams = Reader.ReadTemplateParameterList(F, Record, Idx);</div>
+<div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>   D->ArgsAsWritten = Reader.ReadASTTemplateArgumentListInfo(F, Record, Idx);</div>
+<div class="line"><a name="l01727"></a><span class="lineno"> 1727</span> </div>
+<div class="line"><a name="l01728"></a><span class="lineno"> 1728</span>   <span class="comment">// These are read/set from/to the first declaration.</span></div>
+<div class="line"><a name="l01729"></a><span class="lineno"> 1729</span>   <span class="keywordflow">if</span> (ThisDeclID == Redecl.getFirstID()) {</div>
+<div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>     D->InstantiatedFromMember.setPointer(</div>
+<div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>         ReadDeclAs<VarTemplatePartialSpecializationDecl>(Record, Idx));</div>
+<div class="line"><a name="l01732"></a><span class="lineno"> 1732</span>     D->InstantiatedFromMember.setInt(Record[Idx++]);</div>
+<div class="line"><a name="l01733"></a><span class="lineno"> 1733</span>   }</div>
+<div class="line"><a name="l01734"></a><span class="lineno"> 1734</span> }</div>
+<div class="line"><a name="l01735"></a><span class="lineno"> 1735</span> </div>
+<div class="line"><a name="l01736"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a1263c1575622350c4d4a15be92fca0d9"> 1736</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a1263c1575622350c4d4a15be92fca0d9">ASTDeclReader::VisitTemplateTypeParmDecl</a>(<a class="code" href="classclang_1_1TemplateTypeParmDecl.html" title="Declaration of a template type parameter.">TemplateTypeParmDecl</a> *D) {</div>
+<div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>   VisitTypeDecl(D);</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>   D-><a class="code" href="classclang_1_1TemplateTypeParmDecl.html#af770838507f906043996ac4706876b11" title="Set whether this template type parameter was declared with the 'typename' or 'class' keyword...">setDeclaredWithTypename</a>(Record[Idx++]);</div>
+<div class="line"><a name="l01740"></a><span class="lineno"> 1740</span> </div>
+<div class="line"><a name="l01741"></a><span class="lineno"> 1741</span>   <span class="keywordtype">bool</span> Inherited = Record[Idx++];</div>
+<div class="line"><a name="l01742"></a><span class="lineno"> 1742</span>   <a class="code" href="classclang_1_1TypeSourceInfo.html" title="A container of type source information.">TypeSourceInfo</a> *DefArg = GetTypeSourceInfo(Record, Idx);</div>
+<div class="line"><a name="l01743"></a><span class="lineno"> 1743</span>   D-><a class="code" href="classclang_1_1TemplateTypeParmDecl.html#a7d572cbaa8390af5c8fe228329c2a4b7" title="Set the default argument for this template parameter, and whether that default argument was inherited...">setDefaultArgument</a>(DefArg, Inherited);</div>
+<div class="line"><a name="l01744"></a><span class="lineno"> 1744</span> }</div>
+<div class="line"><a name="l01745"></a><span class="lineno"> 1745</span> </div>
+<div class="line"><a name="l01746"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a8ce3bf24a4b848f2e78d1f10abf531be"> 1746</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a8ce3bf24a4b848f2e78d1f10abf531be">ASTDeclReader::VisitNonTypeTemplateParmDecl</a>(<a class="code" href="classclang_1_1NonTypeTemplateParmDecl.html">NonTypeTemplateParmDecl</a> *D) {</div>
+<div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>   VisitDeclaratorDecl(D);</div>
+<div class="line"><a name="l01748"></a><span class="lineno"> 1748</span>   <span class="comment">// TemplateParmPosition.</span></div>
+<div class="line"><a name="l01749"></a><span class="lineno"> 1749</span>   D-><a class="code" href="classclang_1_1TemplateParmPosition.html#aa680f5851471c1ad815c58bb3c92985c">setDepth</a>(Record[Idx++]);</div>
+<div class="line"><a name="l01750"></a><span class="lineno"> 1750</span>   D-><a class="code" href="classclang_1_1TemplateParmPosition.html#a8bdd5aab046adbdd88aeb3271af54c55">setPosition</a>(Record[Idx++]);</div>
+<div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>   <span class="keywordflow">if</span> (D-><a class="code" href="classclang_1_1NonTypeTemplateParmDecl.html#a19100307179cc336989b8a4972ea32eb" title="Whether this parameter is a non-type template parameter pack that has a known list of different types...">isExpandedParameterPack</a>()) {</div>
+<div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>     <span class="keywordtype">void</span> **Data = <span class="keyword">reinterpret_cast<</span><span class="keywordtype">void</span> **<span class="keyword">></span>(D + 1);</div>
+<div class="line"><a name="l01753"></a><span class="lineno"> 1753</span>     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = D-><a class="code" href="classclang_1_1NonTypeTemplateParmDecl.html#acb7891082449b2dc9e34bd90ceceb9f6" title="Retrieves the number of expansion types in an expanded parameter pack.">getNumExpansionTypes</a>(); I != N; ++I) {</div>
+<div class="line"><a name="l01754"></a><span class="lineno"> 1754</span>       Data[2*I] = Reader.readType(F, Record, Idx).getAsOpaquePtr();</div>
+<div class="line"><a name="l01755"></a><span class="lineno"> 1755</span>       Data[2*I + 1] = GetTypeSourceInfo(Record, Idx);</div>
+<div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>     }</div>
+<div class="line"><a name="l01757"></a><span class="lineno"> 1757</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01758"></a><span class="lineno"> 1758</span>     <span class="comment">// Rest of NonTypeTemplateParmDecl.</span></div>
+<div class="line"><a name="l01759"></a><span class="lineno"> 1759</span>     D->ParameterPack = Record[Idx++];</div>
+<div class="line"><a name="l01760"></a><span class="lineno"> 1760</span>     <span class="keywordflow">if</span> (Record[Idx++]) {</div>
+<div class="line"><a name="l01761"></a><span class="lineno"> 1761</span>       <a class="code" href="classclang_1_1Expr.html">Expr</a> *DefArg = Reader.ReadExpr(F);</div>
+<div class="line"><a name="l01762"></a><span class="lineno"> 1762</span>       <span class="keywordtype">bool</span> Inherited = Record[Idx++];</div>
+<div class="line"><a name="l01763"></a><span class="lineno"> 1763</span>       D-><a class="code" href="classclang_1_1NonTypeTemplateParmDecl.html#a39c05a97beeae1cbd6910cd78867ed7e" title="Set the default argument for this template parameter, and whether that default argument was inherited...">setDefaultArgument</a>(DefArg, Inherited);</div>
+<div class="line"><a name="l01764"></a><span class="lineno"> 1764</span>    }</div>
+<div class="line"><a name="l01765"></a><span class="lineno"> 1765</span>   }</div>
+<div class="line"><a name="l01766"></a><span class="lineno"> 1766</span> }</div>
+<div class="line"><a name="l01767"></a><span class="lineno"> 1767</span> </div>
+<div class="line"><a name="l01768"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#abd413a8798a5c6c0797523f7b4351f86"> 1768</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#abd413a8798a5c6c0797523f7b4351f86">ASTDeclReader::VisitTemplateTemplateParmDecl</a>(<a class="code" href="classclang_1_1TemplateTemplateParmDecl.html">TemplateTemplateParmDecl</a> *D) {</div>
+<div class="line"><a name="l01769"></a><span class="lineno"> 1769</span>   VisitTemplateDecl(D);</div>
+<div class="line"><a name="l01770"></a><span class="lineno"> 1770</span>   <span class="comment">// TemplateParmPosition.</span></div>
+<div class="line"><a name="l01771"></a><span class="lineno"> 1771</span>   D-><a class="code" href="classclang_1_1TemplateParmPosition.html#aa680f5851471c1ad815c58bb3c92985c">setDepth</a>(Record[Idx++]);</div>
+<div class="line"><a name="l01772"></a><span class="lineno"> 1772</span>   D-><a class="code" href="classclang_1_1TemplateParmPosition.html#a8bdd5aab046adbdd88aeb3271af54c55">setPosition</a>(Record[Idx++]);</div>
+<div class="line"><a name="l01773"></a><span class="lineno"> 1773</span>   <span class="keywordflow">if</span> (D-><a class="code" href="classclang_1_1TemplateTemplateParmDecl.html#a27efb50e10d0c0e1325c01b4d2cd3941" title="Whether this parameter is a template template parameter pack that has a known list of different templ...">isExpandedParameterPack</a>()) {</div>
+<div class="line"><a name="l01774"></a><span class="lineno"> 1774</span>     <span class="keywordtype">void</span> **Data = <span class="keyword">reinterpret_cast<</span><span class="keywordtype">void</span> **<span class="keyword">></span>(D + 1);</div>
+<div class="line"><a name="l01775"></a><span class="lineno"> 1775</span>     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = D-><a class="code" href="classclang_1_1TemplateTemplateParmDecl.html#a3b02955f81683df8423824a42b036be7" title="Retrieves the number of expansion template parameters in an expanded parameter pack.">getNumExpansionTemplateParameters</a>();</div>
+<div class="line"><a name="l01776"></a><span class="lineno"> 1776</span>          I != N; ++I)</div>
+<div class="line"><a name="l01777"></a><span class="lineno"> 1777</span>       Data[I] = Reader.ReadTemplateParameterList(F, Record, Idx);</div>
+<div class="line"><a name="l01778"></a><span class="lineno"> 1778</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01779"></a><span class="lineno"> 1779</span>     <span class="comment">// Rest of TemplateTemplateParmDecl.</span></div>
+<div class="line"><a name="l01780"></a><span class="lineno"> 1780</span>     <a class="code" href="classclang_1_1TemplateArgumentLoc.html">TemplateArgumentLoc</a> Arg = Reader.ReadTemplateArgumentLoc(F, Record, Idx);</div>
+<div class="line"><a name="l01781"></a><span class="lineno"> 1781</span>     <span class="keywordtype">bool</span> IsInherited = Record[Idx++];</div>
+<div class="line"><a name="l01782"></a><span class="lineno"> 1782</span>     D-><a class="code" href="classclang_1_1TemplateTemplateParmDecl.html#acee0538813e82dfbda387782bf96c788" title="Set the default argument for this template parameter, and whether that default argument was inherited...">setDefaultArgument</a>(Arg, IsInherited);</div>
+<div class="line"><a name="l01783"></a><span class="lineno"> 1783</span>     D->ParameterPack = Record[Idx++];</div>
+<div class="line"><a name="l01784"></a><span class="lineno"> 1784</span>   }</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"><a class="code" href="classclang_1_1ASTDeclReader.html#a346e87c0733e04228869a3df7413f38a"> 1787</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a346e87c0733e04228869a3df7413f38a">ASTDeclReader::VisitTypeAliasTemplateDecl</a>(<a class="code" href="classclang_1_1TypeAliasTemplateDecl.html" title="Declaration of an alias template.">TypeAliasTemplateDecl</a> *D) {</div>
+<div class="line"><a name="l01788"></a><span class="lineno"> 1788</span>   VisitRedeclarableTemplateDecl(D);</div>
+<div class="line"><a name="l01789"></a><span class="lineno"> 1789</span> }</div>
+<div class="line"><a name="l01790"></a><span class="lineno"> 1790</span> </div>
+<div class="line"><a name="l01791"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a4accb1ff13ee14b73082f1554632eb1c"> 1791</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a4accb1ff13ee14b73082f1554632eb1c">ASTDeclReader::VisitStaticAssertDecl</a>(<a class="code" href="classclang_1_1StaticAssertDecl.html" title="Represents a C++11 static_assert declaration.">StaticAssertDecl</a> *D) {</div>
+<div class="line"><a name="l01792"></a><span class="lineno"> 1792</span>   VisitDecl(D);</div>
+<div class="line"><a name="l01793"></a><span class="lineno"> 1793</span>   D->AssertExprAndFailed.setPointer(Reader.ReadExpr(F));</div>
+<div class="line"><a name="l01794"></a><span class="lineno"> 1794</span>   D->AssertExprAndFailed.setInt(Record[Idx++]);</div>
+<div class="line"><a name="l01795"></a><span class="lineno"> 1795</span>   D->Message = cast<StringLiteral>(Reader.ReadExpr(F));</div>
+<div class="line"><a name="l01796"></a><span class="lineno"> 1796</span>   D->RParenLoc = ReadSourceLocation(Record, Idx);</div>
+<div class="line"><a name="l01797"></a><span class="lineno"> 1797</span> }</div>
+<div class="line"><a name="l01798"></a><span class="lineno"> 1798</span> </div>
+<div class="line"><a name="l01799"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a4d6b28addee00eb3b9ffce195929ba8d"> 1799</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a4d6b28addee00eb3b9ffce195929ba8d">ASTDeclReader::VisitEmptyDecl</a>(<a class="code" href="classclang_1_1EmptyDecl.html" title="Represents an empty-declaration.">EmptyDecl</a> *D) {</div>
+<div class="line"><a name="l01800"></a><span class="lineno"> 1800</span>   VisitDecl(D);</div>
+<div class="line"><a name="l01801"></a><span class="lineno"> 1801</span> }</div>
+<div class="line"><a name="l01802"></a><span class="lineno"> 1802</span> </div>
+<div class="line"><a name="l01803"></a><span class="lineno"> 1803</span> std::pair<uint64_t, uint64_t></div>
+<div class="line"><a name="l01804"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#af0528186c0c599a3623a5ebdeadf0606"> 1804</a></span> <a class="code" href="classclang_1_1ASTDeclReader.html#af0528186c0c599a3623a5ebdeadf0606">ASTDeclReader::VisitDeclContext</a>(<a class="code" href="classclang_1_1DeclContext.html">DeclContext</a> *DC) {</div>
+<div class="line"><a name="l01805"></a><span class="lineno"> 1805</span>   uint64_t LexicalOffset = Record[Idx++];</div>
+<div class="line"><a name="l01806"></a><span class="lineno"> 1806</span>   uint64_t VisibleOffset = Record[Idx++];</div>
+<div class="line"><a name="l01807"></a><span class="lineno"> 1807</span>   <span class="keywordflow">return</span> std::make_pair(LexicalOffset, VisibleOffset);</div>
+<div class="line"><a name="l01808"></a><span class="lineno"> 1808</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="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l01811"></a><span class="lineno"> 1811</span> ASTDeclReader::RedeclarableResult </div>
+<div class="line"><a name="l01812"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a2f8fe07cad353b89c642dd1a1a85a968"> 1812</a></span> <a class="code" href="classclang_1_1ASTDeclReader.html#a9772cfe4314d19eb684159357a0345bd">ASTDeclReader::VisitRedeclarable</a>(<a class="code" href="classclang_1_1Redeclarable.html" title="Provides common interface for the Decls that can be redeclared.">Redeclarable<T></a> *D) {</div>
+<div class="line"><a name="l01813"></a><span class="lineno"> 1813</span>   <a class="code" href="namespaceclang_1_1serialization.html#af3f9c681595246da4bb499bd210e7f36" title="An ID number that refers to a declaration in an AST file.">DeclID</a> FirstDeclID = ReadDeclID(Record, Idx);</div>
+<div class="line"><a name="l01814"></a><span class="lineno"> 1814</span>   </div>
+<div class="line"><a name="l01815"></a><span class="lineno"> 1815</span>   <span class="comment">// 0 indicates that this declaration was the only declaration of its entity,</span></div>
+<div class="line"><a name="l01816"></a><span class="lineno"> 1816</span>   <span class="comment">// and is used for space optimization.</span></div>
+<div class="line"><a name="l01817"></a><span class="lineno"> 1817</span>   <span class="keywordflow">if</span> (FirstDeclID == 0)</div>
+<div class="line"><a name="l01818"></a><span class="lineno"> 1818</span>     FirstDeclID = ThisDeclID;</div>
+<div class="line"><a name="l01819"></a><span class="lineno"> 1819</span>   </div>
+<div class="line"><a name="l01820"></a><span class="lineno"> 1820</span>   T *FirstDecl = cast_or_null<T>(Reader.GetDecl(FirstDeclID));</div>
+<div class="line"><a name="l01821"></a><span class="lineno"> 1821</span>   <span class="keywordflow">if</span> (FirstDecl != D) {</div>
+<div class="line"><a name="l01822"></a><span class="lineno"> 1822</span>     <span class="comment">// We delay loading of the redeclaration chain to avoid deeply nested calls.</span></div>
+<div class="line"><a name="l01823"></a><span class="lineno"> 1823</span>     <span class="comment">// We temporarily set the first (canonical) declaration as the previous one</span></div>
+<div class="line"><a name="l01824"></a><span class="lineno"> 1824</span>     <span class="comment">// which is the one that matters and mark the real previous DeclID to be</span></div>
+<div class="line"><a name="l01825"></a><span class="lineno"> 1825</span>     <span class="comment">// loaded & attached later on.</span></div>
+<div class="line"><a name="l01826"></a><span class="lineno"> 1826</span>     D-><a class="code" href="classclang_1_1Redeclarable.html#a9f7538cb4941acf1eab0fb0f45f9e22f" title="Points to the next redeclaration in the chain.">RedeclLink</a> = <a class="code" href="classclang_1_1Redeclarable.html#af98337927287e433681b66d6eca72b81">Redeclarable<T>::PreviousDeclLink</a>(FirstDecl);</div>
+<div class="line"><a name="l01827"></a><span class="lineno"> 1827</span>   }    </div>
+<div class="line"><a name="l01828"></a><span class="lineno"> 1828</span>   </div>
+<div class="line"><a name="l01829"></a><span class="lineno"> 1829</span>   <span class="comment">// Note that this declaration has been deserialized.</span></div>
+<div class="line"><a name="l01830"></a><span class="lineno"> 1830</span>   Reader.RedeclsDeserialized.insert(static_cast<T *>(D));</div>
+<div class="line"><a name="l01831"></a><span class="lineno"> 1831</span>                              </div>
+<div class="line"><a name="l01832"></a><span class="lineno"> 1832</span>   <span class="comment">// The result structure takes care to note that we need to load the </span></div>
+<div class="line"><a name="l01833"></a><span class="lineno"> 1833</span>   <span class="comment">// other declaration chains for this ID.</span></div>
+<div class="line"><a name="l01834"></a><span class="lineno"> 1834</span>   <span class="keywordflow">return</span> RedeclarableResult(Reader, FirstDeclID,</div>
+<div class="line"><a name="l01835"></a><span class="lineno"> 1835</span>                             static_cast<T *>(D)-><a class="code" href="DeclBase_8cpp.html#a37d13911f1772d0ed90b6b2e89cf3c60">getKind</a>());</div>
+<div class="line"><a name="l01836"></a><span class="lineno"> 1836</span> }</div>
+<div class="line"><a name="l01837"></a><span class="lineno"> 1837</span> <span class="comment"></span></div>
+<div class="line"><a name="l01838"></a><span class="lineno"> 1838</span> <span class="comment">/// \brief Attempts to merge the given declaration (D) with another declaration</span></div>
+<div class="line"><a name="l01839"></a><span class="lineno"> 1839</span> <span class="comment">/// of the same entity.</span></div>
+<div class="line"><a name="l01840"></a><span class="lineno"> 1840</span> <span class="comment"></span><span class="keyword">template</span><<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l01841"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a53ebd1eecae7fd643f3201fa024d1f72"> 1841</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a53ebd1eecae7fd643f3201fa024d1f72" title="Attempts to merge the given declaration (D) with another declaration of the same entity.">ASTDeclReader::mergeRedeclarable</a>(<a class="code" href="classclang_1_1Redeclarable.html" title="Provides common interface for the Decls that can be redeclared.">Redeclarable<T></a> *D,</div>
+<div class="line"><a name="l01842"></a><span class="lineno"> 1842</span>                                       RedeclarableResult &Redecl) {</div>
+<div class="line"><a name="l01843"></a><span class="lineno"> 1843</span>   <span class="comment">// If modules are not available, there is no reason to perform this merge.</span></div>
+<div class="line"><a name="l01844"></a><span class="lineno"> 1844</span>   <span class="keywordflow">if</span> (!Reader.getContext().getLangOpts().Modules)</div>
+<div class="line"><a name="l01845"></a><span class="lineno"> 1845</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01846"></a><span class="lineno"> 1846</span> </div>
+<div class="line"><a name="l01847"></a><span class="lineno"> 1847</span>   <span class="keywordflow">if</span> (FindExistingResult ExistingRes = findExisting(static_cast<T*>(D)))</div>
+<div class="line"><a name="l01848"></a><span class="lineno"> 1848</span>     <span class="keywordflow">if</span> (T *Existing = ExistingRes)</div>
+<div class="line"><a name="l01849"></a><span class="lineno"> 1849</span>       mergeRedeclarable(D, Existing, Redecl);</div>
+<div class="line"><a name="l01850"></a><span class="lineno"> 1850</span> }</div>
+<div class="line"><a name="l01851"></a><span class="lineno"> 1851</span> <span class="comment"></span></div>
+<div class="line"><a name="l01852"></a><span class="lineno"> 1852</span> <span class="comment">/// \brief Attempts to merge the given declaration (D) with another declaration</span></div>
+<div class="line"><a name="l01853"></a><span class="lineno"> 1853</span> <span class="comment">/// of the same entity.</span></div>
+<div class="line"><a name="l01854"></a><span class="lineno"> 1854</span> <span class="comment"></span><span class="keyword">template</span><<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l01855"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#adb1b6aabaf7cdf821fcbaf137a48810e"> 1855</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a53ebd1eecae7fd643f3201fa024d1f72" title="Attempts to merge the given declaration (D) with another declaration of the same entity.">ASTDeclReader::mergeRedeclarable</a>(<a class="code" href="classclang_1_1Redeclarable.html" title="Provides common interface for the Decls that can be redeclared.">Redeclarable<T></a> *D, T *Existing,</div>
+<div class="line"><a name="l01856"></a><span class="lineno"> 1856</span>                                       RedeclarableResult &Redecl) {</div>
+<div class="line"><a name="l01857"></a><span class="lineno"> 1857</span>   T *ExistingCanon = Existing->getCanonicalDecl();</div>
+<div class="line"><a name="l01858"></a><span class="lineno"> 1858</span>   T *DCanon = <span class="keyword">static_cast<</span>T*<span class="keyword">></span>(D)->getCanonicalDecl();</div>
+<div class="line"><a name="l01859"></a><span class="lineno"> 1859</span>   <span class="keywordflow">if</span> (ExistingCanon != DCanon) {</div>
+<div class="line"><a name="l01860"></a><span class="lineno"> 1860</span>     <span class="comment">// Have our redeclaration link point back at the canonical declaration</span></div>
+<div class="line"><a name="l01861"></a><span class="lineno"> 1861</span>     <span class="comment">// of the existing declaration, so that this declaration has the </span></div>
+<div class="line"><a name="l01862"></a><span class="lineno"> 1862</span>     <span class="comment">// appropriate canonical declaration.</span></div>
+<div class="line"><a name="l01863"></a><span class="lineno"> 1863</span>     D-><a class="code" href="classclang_1_1Redeclarable.html#a9f7538cb4941acf1eab0fb0f45f9e22f" title="Points to the next redeclaration in the chain.">RedeclLink</a> = <a class="code" href="classclang_1_1Redeclarable.html#af98337927287e433681b66d6eca72b81">Redeclarable<T>::PreviousDeclLink</a>(ExistingCanon);</div>
+<div class="line"><a name="l01864"></a><span class="lineno"> 1864</span> </div>
+<div class="line"><a name="l01865"></a><span class="lineno"> 1865</span>     <span class="comment">// When we merge a namespace, update its pointer to the first namespace.</span></div>
+<div class="line"><a name="l01866"></a><span class="lineno"> 1866</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1NamespaceDecl.html" title="NamespaceDecl - Represent a C++ namespace.">NamespaceDecl</a> *Namespace</div>
+<div class="line"><a name="l01867"></a><span class="lineno"> 1867</span>           = dyn_cast<NamespaceDecl>(static_cast<T*>(D))) {</div>
+<div class="line"><a name="l01868"></a><span class="lineno"> 1868</span>       Namespace->AnonOrFirstNamespaceAndInline.setPointer(</div>
+<div class="line"><a name="l01869"></a><span class="lineno"> 1869</span>         static_cast<NamespaceDecl *>(static_cast<void*>(ExistingCanon)));</div>
+<div class="line"><a name="l01870"></a><span class="lineno"> 1870</span>     }</div>
+<div class="line"><a name="l01871"></a><span class="lineno"> 1871</span> </div>
+<div class="line"><a name="l01872"></a><span class="lineno"> 1872</span>     <span class="comment">// Don't introduce DCanon into the set of pending declaration chains.</span></div>
+<div class="line"><a name="l01873"></a><span class="lineno"> 1873</span>     Redecl.suppress();</div>
+<div class="line"><a name="l01874"></a><span class="lineno"> 1874</span> </div>
+<div class="line"><a name="l01875"></a><span class="lineno"> 1875</span>     <span class="comment">// Introduce ExistingCanon into the set of pending declaration chains,</span></div>
+<div class="line"><a name="l01876"></a><span class="lineno"> 1876</span>     <span class="comment">// if in fact it came from a module file.</span></div>
+<div class="line"><a name="l01877"></a><span class="lineno"> 1877</span>     <span class="keywordflow">if</span> (ExistingCanon->isFromASTFile()) {</div>
+<div class="line"><a name="l01878"></a><span class="lineno"> 1878</span>       <a class="code" href="namespaceclang_1_1serialization.html#a55ccff09ed644b98b2b7c5915b601c14">GlobalDeclID</a> ExistingCanonID = ExistingCanon->getGlobalID();</div>
+<div class="line"><a name="l01879"></a><span class="lineno"> 1879</span>       assert(ExistingCanonID && <span class="stringliteral">"Unrecorded canonical declaration ID?"</span>);</div>
+<div class="line"><a name="l01880"></a><span class="lineno"> 1880</span>       <span class="keywordflow">if</span> (Reader.PendingDeclChainsKnown.insert(ExistingCanonID))</div>
+<div class="line"><a name="l01881"></a><span class="lineno"> 1881</span>         Reader.PendingDeclChains.push_back(ExistingCanonID);</div>
+<div class="line"><a name="l01882"></a><span class="lineno"> 1882</span>     }</div>
+<div class="line"><a name="l01883"></a><span class="lineno"> 1883</span> </div>
+<div class="line"><a name="l01884"></a><span class="lineno"> 1884</span>     <span class="comment">// If this declaration was the canonical declaration, make a note of</span></div>
+<div class="line"><a name="l01885"></a><span class="lineno"> 1885</span>     <span class="comment">// that. We accept the linear algorithm here because the number of</span></div>
+<div class="line"><a name="l01886"></a><span class="lineno"> 1886</span>     <span class="comment">// unique canonical declarations of an entity should always be tiny.</span></div>
+<div class="line"><a name="l01887"></a><span class="lineno"> 1887</span>     <span class="keywordflow">if</span> (DCanon == static_cast<T*>(D)) {</div>
+<div class="line"><a name="l01888"></a><span class="lineno"> 1888</span>       <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<DeclID></a> &Merged = Reader.MergedDecls[ExistingCanon];</div>
+<div class="line"><a name="l01889"></a><span class="lineno"> 1889</span>       <span class="keywordflow">if</span> (std::find(Merged.begin(), Merged.end(), Redecl.getFirstID())</div>
+<div class="line"><a name="l01890"></a><span class="lineno"> 1890</span>             == Merged.end())</div>
+<div class="line"><a name="l01891"></a><span class="lineno"> 1891</span>         Merged.push_back(Redecl.getFirstID());</div>
+<div class="line"><a name="l01892"></a><span class="lineno"> 1892</span> </div>
+<div class="line"><a name="l01893"></a><span class="lineno"> 1893</span>       <span class="comment">// If ExistingCanon did not come from a module file, introduce the</span></div>
+<div class="line"><a name="l01894"></a><span class="lineno"> 1894</span>       <span class="comment">// first declaration that *does* come from a module file to the</span></div>
+<div class="line"><a name="l01895"></a><span class="lineno"> 1895</span>       <span class="comment">// set of pending declaration chains, so that we merge this</span></div>
+<div class="line"><a name="l01896"></a><span class="lineno"> 1896</span>       <span class="comment">// declaration.</span></div>
+<div class="line"><a name="l01897"></a><span class="lineno"> 1897</span>       <span class="keywordflow">if</span> (!ExistingCanon->isFromASTFile() &&</div>
+<div class="line"><a name="l01898"></a><span class="lineno"> 1898</span>           Reader.PendingDeclChainsKnown.insert(Redecl.getFirstID()))</div>
+<div class="line"><a name="l01899"></a><span class="lineno"> 1899</span>         Reader.PendingDeclChains.push_back(Merged[0]);</div>
+<div class="line"><a name="l01900"></a><span class="lineno"> 1900</span>     }</div>
+<div class="line"><a name="l01901"></a><span class="lineno"> 1901</span>   }</div>
+<div class="line"><a name="l01902"></a><span class="lineno"> 1902</span> }</div>
+<div class="line"><a name="l01903"></a><span class="lineno"> 1903</span> <span class="comment"></span></div>
+<div class="line"><a name="l01904"></a><span class="lineno"> 1904</span> <span class="comment">/// \brief Attempts to merge the given declaration (D) with another declaration</span></div>
+<div class="line"><a name="l01905"></a><span class="lineno"> 1905</span> <span class="comment">/// of the same entity, for the case where the entity is not actually</span></div>
+<div class="line"><a name="l01906"></a><span class="lineno"> 1906</span> <span class="comment">/// redeclarable. This happens, for instance, when merging the fields of</span></div>
+<div class="line"><a name="l01907"></a><span class="lineno"> 1907</span> <span class="comment">/// identical class definitions from two different modules.</span></div>
+<div class="line"><a name="l01908"></a><span class="lineno"> 1908</span> <span class="comment"></span><span class="keyword">template</span><<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l01909"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a75f2c59438799a9c409ec917acc1f0e7"> 1909</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a75f2c59438799a9c409ec917acc1f0e7" title="Attempts to merge the given declaration (D) with another declaration of the same entity, for the case where the entity is not actually redeclarable. This happens, for instance, when merging the fields of identical class definitions from two different modules.">ASTDeclReader::mergeMergeable</a>(<a class="code" href="classclang_1_1Mergeable.html" title="Provides common interface for the Decls that cannot be redeclared, but can be merged if the same decl...">Mergeable<T></a> *D) {</div>
+<div class="line"><a name="l01910"></a><span class="lineno"> 1910</span>   <span class="comment">// If modules are not available, there is no reason to perform this merge.</span></div>
+<div class="line"><a name="l01911"></a><span class="lineno"> 1911</span>   <span class="keywordflow">if</span> (!Reader.getContext().getLangOpts().Modules)</div>
+<div class="line"><a name="l01912"></a><span class="lineno"> 1912</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01913"></a><span class="lineno"> 1913</span> </div>
+<div class="line"><a name="l01914"></a><span class="lineno"> 1914</span>   <span class="comment">// ODR-based merging is only performed in C++. In C, identically-named things</span></div>
+<div class="line"><a name="l01915"></a><span class="lineno"> 1915</span>   <span class="comment">// in different translation units are not redeclarations (but may still have</span></div>
+<div class="line"><a name="l01916"></a><span class="lineno"> 1916</span>   <span class="comment">// compatible types).</span></div>
+<div class="line"><a name="l01917"></a><span class="lineno"> 1917</span>   <span class="keywordflow">if</span> (!Reader.getContext().getLangOpts().CPlusPlus)</div>
+<div class="line"><a name="l01918"></a><span class="lineno"> 1918</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01919"></a><span class="lineno"> 1919</span> </div>
+<div class="line"><a name="l01920"></a><span class="lineno"> 1920</span>   <span class="keywordflow">if</span> (FindExistingResult ExistingRes = findExisting(static_cast<T*>(D)))</div>
+<div class="line"><a name="l01921"></a><span class="lineno"> 1921</span>     <span class="keywordflow">if</span> (T *Existing = ExistingRes)</div>
+<div class="line"><a name="l01922"></a><span class="lineno"> 1922</span>       Reader.Context.setPrimaryMergedDecl(static_cast<T*>(D),</div>
+<div class="line"><a name="l01923"></a><span class="lineno"> 1923</span>                                           Existing->getCanonicalDecl());</div>
+<div class="line"><a name="l01924"></a><span class="lineno"> 1924</span> }</div>
+<div class="line"><a name="l01925"></a><span class="lineno"> 1925</span> </div>
+<div class="line"><a name="l01926"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#ab4360cab9c7d1f0277a49bdcf1cf38bf"> 1926</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#ab4360cab9c7d1f0277a49bdcf1cf38bf">ASTDeclReader::VisitOMPThreadPrivateDecl</a>(<a class="code" href="classclang_1_1OMPThreadPrivateDecl.html" title="This represents '#pragma omp threadprivate ...' directive. For example, in the following, both 'a' and 'A::b' are threadprivate:">OMPThreadPrivateDecl</a> *D) {</div>
+<div class="line"><a name="l01927"></a><span class="lineno"> 1927</span>   VisitDecl(D);</div>
+<div class="line"><a name="l01928"></a><span class="lineno"> 1928</span>   <span class="keywordtype">unsigned</span> NumVars = D-><a class="code" href="classclang_1_1OMPThreadPrivateDecl.html#a310ffe7ada260467d1c826f0ca1f31e2">varlist_size</a>();</div>
+<div class="line"><a name="l01929"></a><span class="lineno"> 1929</span>   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<Expr *, 16></a> Vars;</div>
+<div class="line"><a name="l01930"></a><span class="lineno"> 1930</span>   Vars.reserve(NumVars);</div>
+<div class="line"><a name="l01931"></a><span class="lineno"> 1931</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i != NumVars; ++i) {</div>
+<div class="line"><a name="l01932"></a><span class="lineno"> 1932</span>     Vars.push_back(Reader.ReadExpr(F));</div>
+<div class="line"><a name="l01933"></a><span class="lineno"> 1933</span>   }</div>
+<div class="line"><a name="l01934"></a><span class="lineno"> 1934</span>   D->setVars(Vars);</div>
+<div class="line"><a name="l01935"></a><span class="lineno"> 1935</span> }</div>
+<div class="line"><a name="l01936"></a><span class="lineno"> 1936</span> </div>
+<div class="line"><a name="l01937"></a><span class="lineno"> 1937</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l01938"></a><span class="lineno"> 1938</span> <span class="comment">// Attribute Reading</span></div>
+<div class="line"><a name="l01939"></a><span class="lineno"> 1939</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l01940"></a><span class="lineno"> 1940</span> <span class="comment"></span></div>
+<div class="line"><a name="l01941"></a><span class="lineno"> 1941</span> <span class="comment">/// \brief Reads attributes from the current stream position.</span></div>
+<div class="line"><a name="l01942"></a><span class="lineno"><a class="code" href="classclang_1_1ASTReader.html#afeec2b3b42ef35441f86fe09752b3410"> 1942</a></span> <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTReader.html#afeec2b3b42ef35441f86fe09752b3410" title="Reads attributes from the current stream position.">ASTReader::ReadAttributes</a>(<a class="code" href="classclang_1_1serialization_1_1ModuleFile.html" title="Information about a module that has been loaded by the ASTReader.">ModuleFile</a> &F, <a class="code" href="classllvm_1_1SmallVector.html">AttrVec</a> &Attrs,</div>
+<div class="line"><a name="l01943"></a><span class="lineno"> 1943</span>                                <span class="keyword">const</span> <a class="code" href="classllvm_1_1SmallVector.html">RecordData</a> &Record, <span class="keywordtype">unsigned</span> &Idx) {</div>
+<div class="line"><a name="l01944"></a><span class="lineno"> 1944</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = Record[Idx++]; i != e; ++i) {</div>
+<div class="line"><a name="l01945"></a><span class="lineno"> 1945</span>     <a class="code" href="classclang_1_1Attr.html" title="Attr - This represents one attribute.">Attr</a> *New = 0;</div>
+<div class="line"><a name="l01946"></a><span class="lineno"> 1946</span>     <a class="code" href="namespaceclang_1_1attr.html#ac160b7b7240633e6932ebb177d0f03ef">attr::Kind</a> <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a> = (<a class="code" href="namespaceclang_1_1attr.html#ac160b7b7240633e6932ebb177d0f03ef">attr::Kind</a>)Record[Idx++];</div>
+<div class="line"><a name="l01947"></a><span class="lineno"> 1947</span>     <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> Range = ReadSourceRange(F, Record, Idx);</div>
+<div class="line"><a name="l01948"></a><span class="lineno"> 1948</span> </div>
+<div class="line"><a name="l01949"></a><span class="lineno"> 1949</span> <span class="preprocessor">#include "<a class="code" href="AttrPCHRead_8inc.html">clang/Serialization/AttrPCHRead.inc</a>"</span></div>
+<div class="line"><a name="l01950"></a><span class="lineno"> 1950</span> </div>
+<div class="line"><a name="l01951"></a><span class="lineno"> 1951</span>     assert(New && <span class="stringliteral">"Unable to decode attribute?"</span>);</div>
+<div class="line"><a name="l01952"></a><span class="lineno"> 1952</span>     Attrs.push_back(New);</div>
+<div class="line"><a name="l01953"></a><span class="lineno"> 1953</span>   }</div>
+<div class="line"><a name="l01954"></a><span class="lineno"> 1954</span> }</div>
+<div class="line"><a name="l01955"></a><span class="lineno"> 1955</span> </div>
+<div class="line"><a name="l01956"></a><span class="lineno"> 1956</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l01957"></a><span class="lineno"> 1957</span> <span class="comment">// ASTReader Implementation</span></div>
+<div class="line"><a name="l01958"></a><span class="lineno"> 1958</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l01959"></a><span class="lineno"> 1959</span> <span class="comment"></span></div>
+<div class="line"><a name="l01960"></a><span class="lineno"> 1960</span> <span class="comment">/// \brief Note that we have loaded the declaration with the given</span></div>
+<div class="line"><a name="l01961"></a><span class="lineno"> 1961</span> <span class="comment">/// Index.</span></div>
+<div class="line"><a name="l01962"></a><span class="lineno"> 1962</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01963"></a><span class="lineno"> 1963</span> <span class="comment">/// This routine notes that this declaration has already been loaded,</span></div>
+<div class="line"><a name="l01964"></a><span class="lineno"> 1964</span> <span class="comment">/// so that future GetDecl calls will return this declaration rather</span></div>
+<div class="line"><a name="l01965"></a><span class="lineno"> 1965</span> <span class="comment">/// than trying to load a new declaration.</span></div>
+<div class="line"><a name="l01966"></a><span class="lineno"> 1966</span> <span class="comment"></span><span class="keyword">inline</span> <span class="keywordtype">void</span> ASTReader::LoadedDecl(<span class="keywordtype">unsigned</span> Index, <a class="code" href="classclang_1_1Decl.html">Decl</a> *D) {</div>
+<div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>   assert(!DeclsLoaded[Index] && <span class="stringliteral">"Decl loaded twice?"</span>);</div>
+<div class="line"><a name="l01968"></a><span class="lineno"> 1968</span>   DeclsLoaded[Index] = D;</div>
+<div class="line"><a name="l01969"></a><span class="lineno"> 1969</span> }</div>
+<div class="line"><a name="l01970"></a><span class="lineno"> 1970</span> </div>
+<div class="line"><a name="l01971"></a><span class="lineno"> 1971</span> <span class="comment"></span></div>
+<div class="line"><a name="l01972"></a><span class="lineno"> 1972</span> <span class="comment">/// \brief Determine whether the consumer will be interested in seeing</span></div>
+<div class="line"><a name="l01973"></a><span class="lineno"> 1973</span> <span class="comment">/// this declaration (via HandleTopLevelDecl).</span></div>
+<div class="line"><a name="l01974"></a><span class="lineno"> 1974</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01975"></a><span class="lineno"> 1975</span> <span class="comment">/// This routine should return true for anything that might affect</span></div>
+<div class="line"><a name="l01976"></a><span class="lineno"> 1976</span> <span class="comment">/// code generation, e.g., inline function definitions, Objective-C</span></div>
+<div class="line"><a name="l01977"></a><span class="lineno"> 1977</span> <span class="comment">/// declarations with metadata, etc.</span></div>
+<div class="line"><a name="l01978"></a><span class="lineno"><a class="code" href="ASTReaderDecl_8cpp.html#adbae827070d930dfd66fd0727edad349"> 1978</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="ASTReaderDecl_8cpp.html#adbae827070d930dfd66fd0727edad349" title="Determine whether the consumer will be interested in seeing this declaration (via HandleTopLevelDecl)...">isConsumerInterestedIn</a>(<a class="code" href="classclang_1_1Decl.html">Decl</a> *D, <span class="keywordtype">bool</span> HasBody) {</div>
+<div class="line"><a name="l01979"></a><span class="lineno"> 1979</span>   <span class="comment">// An ObjCMethodDecl is never considered as "interesting" because its</span></div>
+<div class="line"><a name="l01980"></a><span class="lineno"> 1980</span>   <span class="comment">// implementation container always is.</span></div>
+<div class="line"><a name="l01981"></a><span class="lineno"> 1981</span> </div>
+<div class="line"><a name="l01982"></a><span class="lineno"> 1982</span>   <span class="keywordflow">if</span> (isa<FileScopeAsmDecl>(D) || </div>
+<div class="line"><a name="l01983"></a><span class="lineno"> 1983</span>       isa<ObjCProtocolDecl>(D) || </div>
+<div class="line"><a name="l01984"></a><span class="lineno"> 1984</span>       isa<ObjCImplDecl>(D))</div>
+<div class="line"><a name="l01985"></a><span class="lineno"> 1985</span>     <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01986"></a><span class="lineno"> 1986</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *Var = dyn_cast<VarDecl>(D))</div>
+<div class="line"><a name="l01987"></a><span class="lineno"> 1987</span>     <span class="keywordflow">return</span> Var->isFileVarDecl() &&</div>
+<div class="line"><a name="l01988"></a><span class="lineno"> 1988</span>            Var->isThisDeclarationADefinition() == <a class="code" href="classclang_1_1VarDecl.html#ac06c359e18b401f50b6b71d050d4a48ca96c76be505f3bd495cc969bc4651a3eb" title="This declaration is definitely a definition.">VarDecl::Definition</a>;</div>
+<div class="line"><a name="l01989"></a><span class="lineno"> 1989</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1FunctionDecl.html">FunctionDecl</a> *Func = dyn_cast<FunctionDecl>(D))</div>
+<div class="line"><a name="l01990"></a><span class="lineno"> 1990</span>     <span class="keywordflow">return</span> Func->doesThisDeclarationHaveABody() || HasBody;</div>
+<div class="line"><a name="l01991"></a><span class="lineno"> 1991</span>   </div>
+<div class="line"><a name="l01992"></a><span class="lineno"> 1992</span>   <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01993"></a><span class="lineno"> 1993</span> }</div>
+<div class="line"><a name="l01994"></a><span class="lineno"> 1994</span> <span class="comment"></span></div>
+<div class="line"><a name="l01995"></a><span class="lineno"> 1995</span> <span class="comment">/// \brief Get the correct cursor and offset for loading a declaration.</span></div>
+<div class="line"><a name="l01996"></a><span class="lineno"> 1996</span> <span class="comment"></span>ASTReader::RecordLocation</div>
+<div class="line"><a name="l01997"></a><span class="lineno"> 1997</span> ASTReader::DeclCursorForID(<a class="code" href="namespaceclang_1_1serialization.html#af3f9c681595246da4bb499bd210e7f36" title="An ID number that refers to a declaration in an AST file.">DeclID</a> <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>, <span class="keywordtype">unsigned</span> &RawLocation) {</div>
+<div class="line"><a name="l01998"></a><span class="lineno"> 1998</span>   <span class="comment">// See if there's an override.</span></div>
+<div class="line"><a name="l01999"></a><span class="lineno"> 1999</span>   DeclReplacementMap::iterator It = ReplacedDecls.find(ID);</div>
+<div class="line"><a name="l02000"></a><span class="lineno"> 2000</span>   <span class="keywordflow">if</span> (It != ReplacedDecls.end()) {</div>
+<div class="line"><a name="l02001"></a><span class="lineno"> 2001</span>     RawLocation = It->second.RawLoc;</div>
+<div class="line"><a name="l02002"></a><span class="lineno"> 2002</span>     <span class="keywordflow">return</span> RecordLocation(It->second.Mod, It->second.Offset);</div>
+<div class="line"><a name="l02003"></a><span class="lineno"> 2003</span>   }</div>
+<div class="line"><a name="l02004"></a><span class="lineno"> 2004</span> </div>
+<div class="line"><a name="l02005"></a><span class="lineno"> 2005</span>   GlobalDeclMapType::iterator I = GlobalDeclMap.find(ID);</div>
+<div class="line"><a name="l02006"></a><span class="lineno"> 2006</span>   assert(I != GlobalDeclMap.end() && <span class="stringliteral">"Corrupted global declaration map"</span>);</div>
+<div class="line"><a name="l02007"></a><span class="lineno"> 2007</span>   <a class="code" href="classclang_1_1serialization_1_1ModuleFile.html" title="Information about a module that has been loaded by the ASTReader.">ModuleFile</a> *M = I->second;</div>
+<div class="line"><a name="l02008"></a><span class="lineno"> 2008</span>   <span class="keyword">const</span> <a class="code" href="structclang_1_1serialization_1_1DeclOffset.html" title="Source range/offset of a preprocessed entity.">DeclOffset</a> &</div>
+<div class="line"><a name="l02009"></a><span class="lineno"> 2009</span>     DOffs =  M->DeclOffsets[ID - M->BaseDeclID - <a class="code" href="group__ASTAST.html#ga6d344ffeb5a7cec8c1fd486fbc97db52" title="The number of declaration IDs that are predefined.">NUM_PREDEF_DECL_IDS</a>];</div>
+<div class="line"><a name="l02010"></a><span class="lineno"> 2010</span>   RawLocation = DOffs.<a class="code" href="structclang_1_1serialization_1_1DeclOffset.html#ade2d6d0bfcbfc0e316a5c955b12d8849" title="Raw source location.">Loc</a>;</div>
+<div class="line"><a name="l02011"></a><span class="lineno"> 2011</span>   <span class="keywordflow">return</span> RecordLocation(M, DOffs.<a class="code" href="structclang_1_1serialization_1_1DeclOffset.html#aa4b17f31228a8b7a4c2915b1519c6ef8" title="Offset in the AST file.">BitOffset</a>);</div>
+<div class="line"><a name="l02012"></a><span class="lineno"> 2012</span> }</div>
+<div class="line"><a name="l02013"></a><span class="lineno"> 2013</span> </div>
+<div class="line"><a name="l02014"></a><span class="lineno"> 2014</span> ASTReader::RecordLocation ASTReader::getLocalBitOffset(uint64_t GlobalOffset) {</div>
+<div class="line"><a name="l02015"></a><span class="lineno"> 2015</span>   <a class="code" href="classclang_1_1ContinuousRangeMap.html#a429d826b069d184264dc7e46fc6e7d2b">ContinuousRangeMap<uint64_t, ModuleFile*, 4>::iterator</a> I</div>
+<div class="line"><a name="l02016"></a><span class="lineno"> 2016</span>     = GlobalBitOffsetsMap.find(GlobalOffset);</div>
+<div class="line"><a name="l02017"></a><span class="lineno"> 2017</span> </div>
+<div class="line"><a name="l02018"></a><span class="lineno"> 2018</span>   assert(I != GlobalBitOffsetsMap.<a class="code" href="classclang_1_1ContinuousRangeMap.html#ab41da90d6c752df09de12361c3d2b978">end</a>() && <span class="stringliteral">"Corrupted global bit offsets map"</span>);</div>
+<div class="line"><a name="l02019"></a><span class="lineno"> 2019</span>   <span class="keywordflow">return</span> RecordLocation(I->second, GlobalOffset - I->second->GlobalBitOffset);</div>
+<div class="line"><a name="l02020"></a><span class="lineno"> 2020</span> }</div>
+<div class="line"><a name="l02021"></a><span class="lineno"> 2021</span> </div>
+<div class="line"><a name="l02022"></a><span class="lineno"> 2022</span> uint64_t ASTReader::getGlobalBitOffset(<a class="code" href="classclang_1_1serialization_1_1ModuleFile.html" title="Information about a module that has been loaded by the ASTReader.">ModuleFile</a> &M, uint32_t LocalOffset) {</div>
+<div class="line"><a name="l02023"></a><span class="lineno"> 2023</span>   <span class="keywordflow">return</span> LocalOffset + M.<a class="code" href="classclang_1_1serialization_1_1ModuleFile.html#aa0b03dd7f127ce40bbcd76e8d19e395c" title="The global bit offset (or base) of this module.">GlobalBitOffset</a>;</div>
+<div class="line"><a name="l02024"></a><span class="lineno"> 2024</span> }</div>
+<div class="line"><a name="l02025"></a><span class="lineno"> 2025</span> </div>
+<div class="line"><a name="l02026"></a><span class="lineno"> 2026</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="ASTReaderDecl_8cpp.html#a7ce3ea5270423413e2a77b14fef27334" title="Determine whether two template parameter lists are similar enough that they may be used in declaratio...">isSameTemplateParameterList</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1TemplateParameterList.html" title="Stores a list of template parameters for a TemplateDecl and its derived classes.">TemplateParameterList</a> *<a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>,</div>
+<div class="line"><a name="l02027"></a><span class="lineno"> 2027</span>                                         <span class="keyword">const</span> <a class="code" href="classclang_1_1TemplateParameterList.html" title="Stores a list of template parameters for a TemplateDecl and its derived classes.">TemplateParameterList</a> *Y);</div>
+<div class="line"><a name="l02028"></a><span class="lineno"> 2028</span> <span class="comment"></span></div>
+<div class="line"><a name="l02029"></a><span class="lineno"> 2029</span> <span class="comment">/// \brief Determine whether two template parameters are similar enough</span></div>
+<div class="line"><a name="l02030"></a><span class="lineno"> 2030</span> <span class="comment">/// that they may be used in declarations of the same template.</span></div>
+<div class="line"><a name="l02031"></a><span class="lineno"><a class="code" href="ASTReaderDecl_8cpp.html#a8b924ce0e6c3a040fc7cc6f248c2b962"> 2031</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="ASTReaderDecl_8cpp.html#a8b924ce0e6c3a040fc7cc6f248c2b962" title="Determine whether two template parameters are similar enough that they may be used in declarations of...">isSameTemplateParameter</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1NamedDecl.html">NamedDecl</a> *<a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>,</div>
+<div class="line"><a name="l02032"></a><span class="lineno"> 2032</span>                                     <span class="keyword">const</span> <a class="code" href="classclang_1_1NamedDecl.html">NamedDecl</a> *Y) {</div>
+<div class="line"><a name="l02033"></a><span class="lineno"> 2033</span>   <span class="keywordflow">if</span> (X-><a class="code" href="classclang_1_1Decl.html#a6c53e861dae5545e8f6974af04cb2986">getKind</a>() != Y-><a class="code" href="classclang_1_1Decl.html#a6c53e861dae5545e8f6974af04cb2986">getKind</a>())</div>
+<div class="line"><a name="l02034"></a><span class="lineno"> 2034</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l02035"></a><span class="lineno"> 2035</span> </div>
+<div class="line"><a name="l02036"></a><span class="lineno"> 2036</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1TemplateTypeParmDecl.html" title="Declaration of a template type parameter.">TemplateTypeParmDecl</a> *TX = dyn_cast<TemplateTypeParmDecl>(X)) {</div>
+<div class="line"><a name="l02037"></a><span class="lineno"> 2037</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1TemplateTypeParmDecl.html" title="Declaration of a template type parameter.">TemplateTypeParmDecl</a> *TY = cast<TemplateTypeParmDecl>(Y);</div>
+<div class="line"><a name="l02038"></a><span class="lineno"> 2038</span>     <span class="keywordflow">return</span> TX-><a class="code" href="classclang_1_1TemplateTypeParmDecl.html#a2a5b569d6c8704d021aaec70408b7791" title="Returns whether this is a parameter pack.">isParameterPack</a>() == TY-><a class="code" href="classclang_1_1TemplateTypeParmDecl.html#a2a5b569d6c8704d021aaec70408b7791" title="Returns whether this is a parameter pack.">isParameterPack</a>();</div>
+<div class="line"><a name="l02039"></a><span class="lineno"> 2039</span>   }</div>
+<div class="line"><a name="l02040"></a><span class="lineno"> 2040</span> </div>
+<div class="line"><a name="l02041"></a><span class="lineno"> 2041</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1NonTypeTemplateParmDecl.html">NonTypeTemplateParmDecl</a> *TX = dyn_cast<NonTypeTemplateParmDecl>(X)) {</div>
+<div class="line"><a name="l02042"></a><span class="lineno"> 2042</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1NonTypeTemplateParmDecl.html">NonTypeTemplateParmDecl</a> *TY = cast<NonTypeTemplateParmDecl>(Y);</div>
+<div class="line"><a name="l02043"></a><span class="lineno"> 2043</span>     <span class="keywordflow">return</span> TX-><a class="code" href="classclang_1_1NonTypeTemplateParmDecl.html#a73a765e51d0b9437ab9269ea70169480" title="Whether this parameter is a non-type template parameter pack.">isParameterPack</a>() == TY-><a class="code" href="classclang_1_1NonTypeTemplateParmDecl.html#a73a765e51d0b9437ab9269ea70169480" title="Whether this parameter is a non-type template parameter pack.">isParameterPack</a>() &&</div>
+<div class="line"><a name="l02044"></a><span class="lineno"> 2044</span>            TX->getASTContext().hasSameType(TX->getType(), TY-><a class="code" href="classclang_1_1ValueDecl.html#aefa6d3327144aee23d2935f41d993484">getType</a>());</div>
+<div class="line"><a name="l02045"></a><span class="lineno"> 2045</span>   }</div>
+<div class="line"><a name="l02046"></a><span class="lineno"> 2046</span> </div>
+<div class="line"><a name="l02047"></a><span class="lineno"> 2047</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1TemplateTemplateParmDecl.html">TemplateTemplateParmDecl</a> *TX = cast<TemplateTemplateParmDecl>(<a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>);</div>
+<div class="line"><a name="l02048"></a><span class="lineno"> 2048</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1TemplateTemplateParmDecl.html">TemplateTemplateParmDecl</a> *TY = cast<TemplateTemplateParmDecl>(Y);</div>
+<div class="line"><a name="l02049"></a><span class="lineno"> 2049</span>   <span class="keywordflow">return</span> TX-><a class="code" href="classclang_1_1TemplateTemplateParmDecl.html#a182fa906c72ee4824bda5f56842201f5" title="Whether this template template parameter is a template parameter pack.">isParameterPack</a>() == TY->isParameterPack() &&</div>
+<div class="line"><a name="l02050"></a><span class="lineno"> 2050</span>          <a class="code" href="ASTReaderDecl_8cpp.html#a7ce3ea5270423413e2a77b14fef27334" title="Determine whether two template parameter lists are similar enough that they may be used in declaratio...">isSameTemplateParameterList</a>(TX-><a class="code" href="classclang_1_1TemplateDecl.html#a39946376f9b9d554c6565bf441a115a4" title="Get the list of template parameters.">getTemplateParameters</a>(),</div>
+<div class="line"><a name="l02051"></a><span class="lineno"> 2051</span>                                      TY->getTemplateParameters());</div>
+<div class="line"><a name="l02052"></a><span class="lineno"> 2052</span> }</div>
+<div class="line"><a name="l02053"></a><span class="lineno"> 2053</span> <span class="comment"></span></div>
+<div class="line"><a name="l02054"></a><span class="lineno"> 2054</span> <span class="comment">/// \brief Determine whether two template parameter lists are similar enough</span></div>
+<div class="line"><a name="l02055"></a><span class="lineno"> 2055</span> <span class="comment">/// that they may be used in declarations of the same template.</span></div>
+<div class="line"><a name="l02056"></a><span class="lineno"><a class="code" href="ASTReaderDecl_8cpp.html#a7ce3ea5270423413e2a77b14fef27334"> 2056</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="ASTReaderDecl_8cpp.html#a7ce3ea5270423413e2a77b14fef27334" title="Determine whether two template parameter lists are similar enough that they may be used in declaratio...">isSameTemplateParameterList</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1TemplateParameterList.html" title="Stores a list of template parameters for a TemplateDecl and its derived classes.">TemplateParameterList</a> *<a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>,</div>
+<div class="line"><a name="l02057"></a><span class="lineno"> 2057</span>                                         <span class="keyword">const</span> <a class="code" href="classclang_1_1TemplateParameterList.html" title="Stores a list of template parameters for a TemplateDecl and its derived classes.">TemplateParameterList</a> *Y) {</div>
+<div class="line"><a name="l02058"></a><span class="lineno"> 2058</span>   <span class="keywordflow">if</span> (X-><a class="code" href="classclang_1_1TemplateParameterList.html#a2ce2ffffbaa44a8bf317655f1ff5d845">size</a>() != Y-><a class="code" href="classclang_1_1TemplateParameterList.html#a2ce2ffffbaa44a8bf317655f1ff5d845">size</a>())</div>
+<div class="line"><a name="l02059"></a><span class="lineno"> 2059</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l02060"></a><span class="lineno"> 2060</span> </div>
+<div class="line"><a name="l02061"></a><span class="lineno"> 2061</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = X-><a class="code" href="classclang_1_1TemplateParameterList.html#a2ce2ffffbaa44a8bf317655f1ff5d845">size</a>(); I != N; ++I)</div>
+<div class="line"><a name="l02062"></a><span class="lineno"> 2062</span>     <span class="keywordflow">if</span> (!<a class="code" href="ASTReaderDecl_8cpp.html#a8b924ce0e6c3a040fc7cc6f248c2b962" title="Determine whether two template parameters are similar enough that they may be used in declarations of...">isSameTemplateParameter</a>(X-><a class="code" href="classclang_1_1TemplateParameterList.html#ac087742e8b1da896b9e7f4d80b749ec4">getParam</a>(I), Y-><a class="code" href="classclang_1_1TemplateParameterList.html#ac087742e8b1da896b9e7f4d80b749ec4">getParam</a>(I)))</div>
+<div class="line"><a name="l02063"></a><span class="lineno"> 2063</span>       <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l02064"></a><span class="lineno"> 2064</span> </div>
+<div class="line"><a name="l02065"></a><span class="lineno"> 2065</span>   <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l02066"></a><span class="lineno"> 2066</span> }</div>
+<div class="line"><a name="l02067"></a><span class="lineno"> 2067</span> <span class="comment"></span></div>
+<div class="line"><a name="l02068"></a><span class="lineno"> 2068</span> <span class="comment">/// \brief Determine whether the two declarations refer to the same entity.</span></div>
+<div class="line"><a name="l02069"></a><span class="lineno"><a class="code" href="ASTReaderDecl_8cpp.html#a661dde4d6ab53541d2b82fd2c5e76f63"> 2069</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="ASTReaderDecl_8cpp.html#a661dde4d6ab53541d2b82fd2c5e76f63" title="Determine whether the two declarations refer to the same entity.">isSameEntity</a>(<a class="code" href="classclang_1_1NamedDecl.html">NamedDecl</a> *<a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>, <a class="code" href="classclang_1_1NamedDecl.html">NamedDecl</a> *Y) {</div>
+<div class="line"><a name="l02070"></a><span class="lineno"> 2070</span>   assert(X-><a class="code" href="classclang_1_1NamedDecl.html#a1e3e90455be89bb5c7c23640cbbd7153">getDeclName</a>() == Y-><a class="code" href="classclang_1_1NamedDecl.html#a1e3e90455be89bb5c7c23640cbbd7153">getDeclName</a>() && <span class="stringliteral">"Declaration name mismatch!"</span>);</div>
+<div class="line"><a name="l02071"></a><span class="lineno"> 2071</span>   </div>
+<div class="line"><a name="l02072"></a><span class="lineno"> 2072</span>   <span class="keywordflow">if</span> (X == Y)</div>
+<div class="line"><a name="l02073"></a><span class="lineno"> 2073</span>     <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l02074"></a><span class="lineno"> 2074</span>   </div>
+<div class="line"><a name="l02075"></a><span class="lineno"> 2075</span>   <span class="comment">// Must be in the same context.</span></div>
+<div class="line"><a name="l02076"></a><span class="lineno"> 2076</span>   <span class="keywordflow">if</span> (!X-><a class="code" href="classclang_1_1Decl.html#af67e1a1d24dcc51093b95dbcf68d4288">getDeclContext</a>()-><a class="code" href="classclang_1_1DeclContext.html#a61743ae6acff989a26641900282e6305">getRedeclContext</a>()-><a class="code" href="classclang_1_1DeclContext.html#ab26c189165e15c46df7e4c734da0b0b8" title="Determine whether this declaration context is equivalent to the declaration context DC...">Equals</a>(</div>
+<div class="line"><a name="l02077"></a><span class="lineno"> 2077</span>          Y-><a class="code" href="classclang_1_1Decl.html#af67e1a1d24dcc51093b95dbcf68d4288">getDeclContext</a>()-><a class="code" href="classclang_1_1DeclContext.html#a61743ae6acff989a26641900282e6305">getRedeclContext</a>()))</div>
+<div class="line"><a name="l02078"></a><span class="lineno"> 2078</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l02079"></a><span class="lineno"> 2079</span> </div>
+<div class="line"><a name="l02080"></a><span class="lineno"> 2080</span>   <span class="comment">// Two typedefs refer to the same entity if they have the same underlying</span></div>
+<div class="line"><a name="l02081"></a><span class="lineno"> 2081</span>   <span class="comment">// type.</span></div>
+<div class="line"><a name="l02082"></a><span class="lineno"> 2082</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1TypedefNameDecl.html" title="Base class for declarations which introduce a typedef-name.">TypedefNameDecl</a> *TypedefX = dyn_cast<TypedefNameDecl>(X))</div>
+<div class="line"><a name="l02083"></a><span class="lineno"> 2083</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1TypedefNameDecl.html" title="Base class for declarations which introduce a typedef-name.">TypedefNameDecl</a> *TypedefY = dyn_cast<TypedefNameDecl>(Y))</div>
+<div class="line"><a name="l02084"></a><span class="lineno"> 2084</span>       <span class="keywordflow">return</span> X-><a class="code" href="classclang_1_1Decl.html#a213239e747fb0b3a0cacd86267339af2">getASTContext</a>().<a class="code" href="classclang_1_1ASTContext.html#a889b9d309fdc236f1eab037484f10f8a" title="Determine whether the given types T1 and T2 are equivalent.">hasSameType</a>(TypedefX->getUnderlyingType(),</div>
+<div class="line"><a name="l02085"></a><span class="lineno"> 2085</span>                                             TypedefY->getUnderlyingType());</div>
+<div class="line"><a name="l02086"></a><span class="lineno"> 2086</span>   </div>
+<div class="line"><a name="l02087"></a><span class="lineno"> 2087</span>   <span class="comment">// Must have the same kind.</span></div>
+<div class="line"><a name="l02088"></a><span class="lineno"> 2088</span>   <span class="keywordflow">if</span> (X-><a class="code" href="classclang_1_1Decl.html#a6c53e861dae5545e8f6974af04cb2986">getKind</a>() != Y-><a class="code" href="classclang_1_1Decl.html#a6c53e861dae5545e8f6974af04cb2986">getKind</a>())</div>
+<div class="line"><a name="l02089"></a><span class="lineno"> 2089</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l02090"></a><span class="lineno"> 2090</span>     </div>
+<div class="line"><a name="l02091"></a><span class="lineno"> 2091</span>   <span class="comment">// Objective-C classes and protocols with the same name always match.</span></div>
+<div class="line"><a name="l02092"></a><span class="lineno"> 2092</span>   <span class="keywordflow">if</span> (isa<ObjCInterfaceDecl>(X) || isa<ObjCProtocolDecl>(<a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>))</div>
+<div class="line"><a name="l02093"></a><span class="lineno"> 2093</span>     <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l02094"></a><span class="lineno"> 2094</span> </div>
+<div class="line"><a name="l02095"></a><span class="lineno"> 2095</span>   <span class="keywordflow">if</span> (isa<ClassTemplateSpecializationDecl>(X)) {</div>
+<div class="line"><a name="l02096"></a><span class="lineno"> 2096</span>     <span class="comment">// No need to handle these here: we merge them when adding them to the</span></div>
+<div class="line"><a name="l02097"></a><span class="lineno"> 2097</span>     <span class="comment">// template.</span></div>
+<div class="line"><a name="l02098"></a><span class="lineno"> 2098</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l02099"></a><span class="lineno"> 2099</span>   }</div>
+<div class="line"><a name="l02100"></a><span class="lineno"> 2100</span> </div>
+<div class="line"><a name="l02101"></a><span class="lineno"> 2101</span>   <span class="comment">// Compatible tags match.</span></div>
+<div class="line"><a name="l02102"></a><span class="lineno"> 2102</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1TagDecl.html" title="TagDecl - Represents the declaration of a struct/union/class/enum.">TagDecl</a> *TagX = dyn_cast<TagDecl>(X)) {</div>
+<div class="line"><a name="l02103"></a><span class="lineno"> 2103</span>     <a class="code" href="classclang_1_1TagDecl.html" title="TagDecl - Represents the declaration of a struct/union/class/enum.">TagDecl</a> *TagY = cast<TagDecl>(Y);</div>
+<div class="line"><a name="l02104"></a><span class="lineno"> 2104</span>     <span class="keywordflow">return</span> (TagX->getTagKind() == TagY-><a class="code" href="classclang_1_1TagDecl.html#a085b44700ac5a2dfce438c48a4378aae">getTagKind</a>()) ||</div>
+<div class="line"><a name="l02105"></a><span class="lineno"> 2105</span>       ((TagX->getTagKind() == <a class="code" href="namespaceclang.html#a9237bdb3cf715b9bff8bcb3172635548ac341a3cfc4dae72e09e2348561fffc12" title="The "struct" keyword.">TTK_Struct</a> || TagX->getTagKind() == <a class="code" href="namespaceclang.html#a9237bdb3cf715b9bff8bcb3172635548a0b3e619f5623e9e4395e10893c265d84" title="The "class" keyword.">TTK_Class</a> ||</div>
+<div class="line"><a name="l02106"></a><span class="lineno"> 2106</span>         TagX->getTagKind() == <a class="code" href="namespaceclang.html#a9237bdb3cf715b9bff8bcb3172635548ae64df2e260305d75869b902aa85fa52d" title="The "__interface" keyword.">TTK_Interface</a>) &&</div>
+<div class="line"><a name="l02107"></a><span class="lineno"> 2107</span>        (TagY-><a class="code" href="classclang_1_1TagDecl.html#a085b44700ac5a2dfce438c48a4378aae">getTagKind</a>() == <a class="code" href="namespaceclang.html#a9237bdb3cf715b9bff8bcb3172635548ac341a3cfc4dae72e09e2348561fffc12" title="The "struct" keyword.">TTK_Struct</a> || TagY-><a class="code" href="classclang_1_1TagDecl.html#a085b44700ac5a2dfce438c48a4378aae">getTagKind</a>() == <a class="code" href="namespaceclang.html#a9237bdb3cf715b9bff8bcb3172635548a0b3e619f5623e9e4395e10893c265d84" title="The "class" keyword.">TTK_Class</a> ||</div>
+<div class="line"><a name="l02108"></a><span class="lineno"> 2108</span>         TagY-><a class="code" href="classclang_1_1TagDecl.html#a085b44700ac5a2dfce438c48a4378aae">getTagKind</a>() == <a class="code" href="namespaceclang.html#a9237bdb3cf715b9bff8bcb3172635548ae64df2e260305d75869b902aa85fa52d" title="The "__interface" keyword.">TTK_Interface</a>));</div>
+<div class="line"><a name="l02109"></a><span class="lineno"> 2109</span>   }</div>
+<div class="line"><a name="l02110"></a><span class="lineno"> 2110</span> </div>
+<div class="line"><a name="l02111"></a><span class="lineno"> 2111</span>   <span class="comment">// Functions with the same type and linkage match.</span></div>
+<div class="line"><a name="l02112"></a><span class="lineno"> 2112</span>   <span class="comment">// FIXME: This needs to cope with function template specializations,</span></div>
+<div class="line"><a name="l02113"></a><span class="lineno"> 2113</span>   <span class="comment">// merging of prototyped/non-prototyped functions, etc.</span></div>
+<div class="line"><a name="l02114"></a><span class="lineno"> 2114</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1FunctionDecl.html">FunctionDecl</a> *FuncX = dyn_cast<FunctionDecl>(X)) {</div>
+<div class="line"><a name="l02115"></a><span class="lineno"> 2115</span>     <a class="code" href="classclang_1_1FunctionDecl.html">FunctionDecl</a> *FuncY = cast<FunctionDecl>(Y);</div>
+<div class="line"><a name="l02116"></a><span class="lineno"> 2116</span>     <span class="keywordflow">return</span> (FuncX->getLinkageInternal() == FuncY-><a class="code" href="classclang_1_1NamedDecl.html#a5c9cb39bb263ecef82444264832283dd" title="Determine what kind of linkage this entity has. This is not the linkage as defined by the standard or...">getLinkageInternal</a>()) &&</div>
+<div class="line"><a name="l02117"></a><span class="lineno"> 2117</span>       FuncX-><a class="code" href="classclang_1_1Decl.html#a213239e747fb0b3a0cacd86267339af2">getASTContext</a>().<a class="code" href="classclang_1_1ASTContext.html#a889b9d309fdc236f1eab037484f10f8a" title="Determine whether the given types T1 and T2 are equivalent.">hasSameType</a>(FuncX->getType(), FuncY-><a class="code" href="classclang_1_1ValueDecl.html#aefa6d3327144aee23d2935f41d993484">getType</a>());</div>
+<div class="line"><a name="l02118"></a><span class="lineno"> 2118</span>   }</div>
+<div class="line"><a name="l02119"></a><span class="lineno"> 2119</span> </div>
+<div class="line"><a name="l02120"></a><span class="lineno"> 2120</span>   <span class="comment">// Variables with the same type and linkage match.</span></div>
+<div class="line"><a name="l02121"></a><span class="lineno"> 2121</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *VarX = dyn_cast<VarDecl>(X)) {</div>
+<div class="line"><a name="l02122"></a><span class="lineno"> 2122</span>     <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *VarY = cast<VarDecl>(Y);</div>
+<div class="line"><a name="l02123"></a><span class="lineno"> 2123</span>     <span class="keywordflow">return</span> (VarX->getLinkageInternal() == VarY-><a class="code" href="classclang_1_1NamedDecl.html#a5c9cb39bb263ecef82444264832283dd" title="Determine what kind of linkage this entity has. This is not the linkage as defined by the standard or...">getLinkageInternal</a>()) &&</div>
+<div class="line"><a name="l02124"></a><span class="lineno"> 2124</span>       VarX-><a class="code" href="classclang_1_1Decl.html#a213239e747fb0b3a0cacd86267339af2">getASTContext</a>().<a class="code" href="classclang_1_1ASTContext.html#a889b9d309fdc236f1eab037484f10f8a" title="Determine whether the given types T1 and T2 are equivalent.">hasSameType</a>(VarX->getType(), VarY-><a class="code" href="classclang_1_1ValueDecl.html#aefa6d3327144aee23d2935f41d993484">getType</a>());</div>
+<div class="line"><a name="l02125"></a><span class="lineno"> 2125</span>   }</div>
+<div class="line"><a name="l02126"></a><span class="lineno"> 2126</span> </div>
+<div class="line"><a name="l02127"></a><span class="lineno"> 2127</span>   <span class="comment">// Namespaces with the same name and inlinedness match.</span></div>
+<div class="line"><a name="l02128"></a><span class="lineno"> 2128</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1NamespaceDecl.html" title="NamespaceDecl - Represent a C++ namespace.">NamespaceDecl</a> *NamespaceX = dyn_cast<NamespaceDecl>(X)) {</div>
+<div class="line"><a name="l02129"></a><span class="lineno"> 2129</span>     <a class="code" href="classclang_1_1NamespaceDecl.html" title="NamespaceDecl - Represent a C++ namespace.">NamespaceDecl</a> *NamespaceY = cast<NamespaceDecl>(Y);</div>
+<div class="line"><a name="l02130"></a><span class="lineno"> 2130</span>     <span class="keywordflow">return</span> NamespaceX-><a class="code" href="classclang_1_1NamespaceDecl.html#a4732f23e12ca33cf444c37bb19838c0f" title="Returns true if this is an inline namespace declaration.">isInline</a>() == NamespaceY-><a class="code" href="classclang_1_1NamespaceDecl.html#a4732f23e12ca33cf444c37bb19838c0f" title="Returns true if this is an inline namespace declaration.">isInline</a>();</div>
+<div class="line"><a name="l02131"></a><span class="lineno"> 2131</span>   }</div>
+<div class="line"><a name="l02132"></a><span class="lineno"> 2132</span> </div>
+<div class="line"><a name="l02133"></a><span class="lineno"> 2133</span>   <span class="comment">// Identical template names and kinds match if their template parameter lists</span></div>
+<div class="line"><a name="l02134"></a><span class="lineno"> 2134</span>   <span class="comment">// and patterns match.</span></div>
+<div class="line"><a name="l02135"></a><span class="lineno"> 2135</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1TemplateDecl.html" title="The base class of all kinds of template declarations (e.g., class, function, etc.).">TemplateDecl</a> *TemplateX = dyn_cast<TemplateDecl>(X)) {</div>
+<div class="line"><a name="l02136"></a><span class="lineno"> 2136</span>     <a class="code" href="classclang_1_1TemplateDecl.html" title="The base class of all kinds of template declarations (e.g., class, function, etc.).">TemplateDecl</a> *TemplateY = cast<TemplateDecl>(Y);</div>
+<div class="line"><a name="l02137"></a><span class="lineno"> 2137</span>     <span class="keywordflow">return</span> <a class="code" href="ASTReaderDecl_8cpp.html#a661dde4d6ab53541d2b82fd2c5e76f63" title="Determine whether the two declarations refer to the same entity.">isSameEntity</a>(TemplateX->getTemplatedDecl(),</div>
+<div class="line"><a name="l02138"></a><span class="lineno"> 2138</span>                         TemplateY-><a class="code" href="classclang_1_1TemplateDecl.html#a05244cfd07971aac7e98c2c6656ae866" title="Get the underlying, templated declaration.">getTemplatedDecl</a>()) &&</div>
+<div class="line"><a name="l02139"></a><span class="lineno"> 2139</span>            <a class="code" href="ASTReaderDecl_8cpp.html#a7ce3ea5270423413e2a77b14fef27334" title="Determine whether two template parameter lists are similar enough that they may be used in declaratio...">isSameTemplateParameterList</a>(TemplateX->getTemplateParameters(),</div>
+<div class="line"><a name="l02140"></a><span class="lineno"> 2140</span>                                        TemplateY-><a class="code" href="classclang_1_1TemplateDecl.html#a39946376f9b9d554c6565bf441a115a4" title="Get the list of template parameters.">getTemplateParameters</a>());</div>
+<div class="line"><a name="l02141"></a><span class="lineno"> 2141</span>   }</div>
+<div class="line"><a name="l02142"></a><span class="lineno"> 2142</span> </div>
+<div class="line"><a name="l02143"></a><span class="lineno"> 2143</span>   <span class="comment">// Fields with the same name and the same type match.</span></div>
+<div class="line"><a name="l02144"></a><span class="lineno"> 2144</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1FieldDecl.html">FieldDecl</a> *FDX = dyn_cast<FieldDecl>(X)) {</div>
+<div class="line"><a name="l02145"></a><span class="lineno"> 2145</span>     <a class="code" href="classclang_1_1FieldDecl.html">FieldDecl</a> *FDY = cast<FieldDecl>(Y);</div>
+<div class="line"><a name="l02146"></a><span class="lineno"> 2146</span>     <span class="comment">// FIXME: Diagnose if the types don't match. More generally, diagnose if we</span></div>
+<div class="line"><a name="l02147"></a><span class="lineno"> 2147</span>     <span class="comment">// get a declaration in a class definition that isn't in the canonical class</span></div>
+<div class="line"><a name="l02148"></a><span class="lineno"> 2148</span>     <span class="comment">// definition.</span></div>
+<div class="line"><a name="l02149"></a><span class="lineno"> 2149</span>     <span class="comment">// FIXME: Also check the bitwidth is odr-equivalent, if any.</span></div>
+<div class="line"><a name="l02150"></a><span class="lineno"> 2150</span>     <span class="keywordflow">return</span> X-><a class="code" href="classclang_1_1Decl.html#a213239e747fb0b3a0cacd86267339af2">getASTContext</a>().<a class="code" href="classclang_1_1ASTContext.html#a889b9d309fdc236f1eab037484f10f8a" title="Determine whether the given types T1 and T2 are equivalent.">hasSameType</a>(FDX->getType(), FDY-><a class="code" href="classclang_1_1ValueDecl.html#aefa6d3327144aee23d2935f41d993484">getType</a>());</div>
+<div class="line"><a name="l02151"></a><span class="lineno"> 2151</span>   }</div>
+<div class="line"><a name="l02152"></a><span class="lineno"> 2152</span> </div>
+<div class="line"><a name="l02153"></a><span class="lineno"> 2153</span>   <span class="comment">// Enumerators with the same name match.</span></div>
+<div class="line"><a name="l02154"></a><span class="lineno"> 2154</span>   <span class="keywordflow">if</span> (isa<EnumConstantDecl>(X))</div>
+<div class="line"><a name="l02155"></a><span class="lineno"> 2155</span>     <span class="comment">// FIXME: Also check the value is odr-equivalent.</span></div>
+<div class="line"><a name="l02156"></a><span class="lineno"> 2156</span>     <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l02157"></a><span class="lineno"> 2157</span> </div>
+<div class="line"><a name="l02158"></a><span class="lineno"> 2158</span>   <span class="comment">// Using shadow declarations with the same target match.</span></div>
+<div class="line"><a name="l02159"></a><span class="lineno"> 2159</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1UsingShadowDecl.html" title="Represents a shadow declaration introduced into a scope by a (resolved) using declaration.">UsingShadowDecl</a> *USX = dyn_cast<UsingShadowDecl>(X)) {</div>
+<div class="line"><a name="l02160"></a><span class="lineno"> 2160</span>     <a class="code" href="classclang_1_1UsingShadowDecl.html" title="Represents a shadow declaration introduced into a scope by a (resolved) using declaration.">UsingShadowDecl</a> *USY = cast<UsingShadowDecl>(Y);</div>
+<div class="line"><a name="l02161"></a><span class="lineno"> 2161</span>     <span class="keywordflow">return</span> USX-><a class="code" href="classclang_1_1UsingShadowDecl.html#ae03685abd18d914a33e823fa982819a9" title="Gets the underlying declaration which has been brought into the local scope.">getTargetDecl</a>() == USY-><a class="code" href="classclang_1_1UsingShadowDecl.html#ae03685abd18d914a33e823fa982819a9" title="Gets the underlying declaration which has been brought into the local scope.">getTargetDecl</a>();</div>
+<div class="line"><a name="l02162"></a><span class="lineno"> 2162</span>   }</div>
+<div class="line"><a name="l02163"></a><span class="lineno"> 2163</span> </div>
+<div class="line"><a name="l02164"></a><span class="lineno"> 2164</span>   <span class="comment">// FIXME: Many other cases to implement.</span></div>
+<div class="line"><a name="l02165"></a><span class="lineno"> 2165</span>   <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l02166"></a><span class="lineno"> 2166</span> }</div>
+<div class="line"><a name="l02167"></a><span class="lineno"> 2167</span> <span class="comment"></span></div>
+<div class="line"><a name="l02168"></a><span class="lineno"> 2168</span> <span class="comment">/// Find the context in which we should search for previous declarations when</span></div>
+<div class="line"><a name="l02169"></a><span class="lineno"> 2169</span> <span class="comment">/// looking for declarations to merge.</span></div>
+<div class="line"><a name="l02170"></a><span class="lineno"><a class="code" href="ASTReaderDecl_8cpp.html#a07711e140e1910054ac8a2619edd932a"> 2170</a></span> <span class="comment"></span><span class="keyword">static</span> <a class="code" href="classclang_1_1DeclContext.html">DeclContext</a> *<a class="code" href="ASTReaderDecl_8cpp.html#a07711e140e1910054ac8a2619edd932a">getPrimaryContextForMerging</a>(<a class="code" href="classclang_1_1DeclContext.html">DeclContext</a> *DC) {</div>
+<div class="line"><a name="l02171"></a><span class="lineno"> 2171</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1NamespaceDecl.html" title="NamespaceDecl - Represent a C++ namespace.">NamespaceDecl</a> *ND = dyn_cast<NamespaceDecl>(DC))</div>
+<div class="line"><a name="l02172"></a><span class="lineno"> 2172</span>     <span class="keywordflow">return</span> ND->getOriginalNamespace();</div>
+<div class="line"><a name="l02173"></a><span class="lineno"> 2173</span> </div>
+<div class="line"><a name="l02174"></a><span class="lineno"> 2174</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *RD = dyn_cast<CXXRecordDecl>(DC))</div>
+<div class="line"><a name="l02175"></a><span class="lineno"> 2175</span>     <span class="keywordflow">return</span> RD->getDefinition();</div>
+<div class="line"><a name="l02176"></a><span class="lineno"> 2176</span> </div>
+<div class="line"><a name="l02177"></a><span class="lineno"> 2177</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1EnumDecl.html">EnumDecl</a> *ED = dyn_cast<EnumDecl>(DC))</div>
+<div class="line"><a name="l02178"></a><span class="lineno"> 2178</span>     <span class="keywordflow">return</span> ED->getASTContext().getLangOpts().CPlusPlus? ED->getDefinition() : 0;</div>
+<div class="line"><a name="l02179"></a><span class="lineno"> 2179</span> </div>
+<div class="line"><a name="l02180"></a><span class="lineno"> 2180</span>   <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l02181"></a><span class="lineno"> 2181</span> }</div>
+<div class="line"><a name="l02182"></a><span class="lineno"> 2182</span> </div>
+<div class="line"><a name="l02183"></a><span class="lineno"> 2183</span> ASTDeclReader::FindExistingResult::~FindExistingResult() {</div>
+<div class="line"><a name="l02184"></a><span class="lineno"> 2184</span>   <span class="keywordflow">if</span> (!AddResult || Existing)</div>
+<div class="line"><a name="l02185"></a><span class="lineno"> 2185</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l02186"></a><span class="lineno"> 2186</span> </div>
+<div class="line"><a name="l02187"></a><span class="lineno"> 2187</span>   <a class="code" href="classclang_1_1DeclContext.html">DeclContext</a> *DC = New->getDeclContext()-><a class="code" href="classclang_1_1DeclContext.html#a61743ae6acff989a26641900282e6305">getRedeclContext</a>();</div>
+<div class="line"><a name="l02188"></a><span class="lineno"> 2188</span>   <span class="keywordflow">if</span> (DC-><a class="code" href="classclang_1_1DeclContext.html#add710d53ebeab05385a08e978862c149">isTranslationUnit</a>() && Reader.SemaObj) {</div>
+<div class="line"><a name="l02189"></a><span class="lineno"> 2189</span>     Reader.SemaObj->IdResolver.tryAddTopLevelDecl(New, New->getDeclName());</div>
+<div class="line"><a name="l02190"></a><span class="lineno"> 2190</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1DeclContext.html">DeclContext</a> *MergeDC = <a class="code" href="ASTReaderDecl_8cpp.html#a07711e140e1910054ac8a2619edd932a">getPrimaryContextForMerging</a>(DC)) {</div>
+<div class="line"><a name="l02191"></a><span class="lineno"> 2191</span>     <span class="comment">// Add the declaration to its redeclaration context so later merging</span></div>
+<div class="line"><a name="l02192"></a><span class="lineno"> 2192</span>     <span class="comment">// lookups will find it.</span></div>
+<div class="line"><a name="l02193"></a><span class="lineno"> 2193</span>     MergeDC->makeDeclVisibleInContextImpl(New, <span class="comment">/*Internal*/</span><span class="keyword">true</span>);</div>
+<div class="line"><a name="l02194"></a><span class="lineno"> 2194</span>   }</div>
+<div class="line"><a name="l02195"></a><span class="lineno"> 2195</span> }</div>
+<div class="line"><a name="l02196"></a><span class="lineno"> 2196</span> </div>
+<div class="line"><a name="l02197"></a><span class="lineno"> 2197</span> ASTDeclReader::FindExistingResult ASTDeclReader::findExisting(<a class="code" href="classclang_1_1NamedDecl.html">NamedDecl</a> *D) {</div>
+<div class="line"><a name="l02198"></a><span class="lineno"> 2198</span>   <a class="code" href="classclang_1_1DeclarationName.html">DeclarationName</a> Name = D-><a class="code" href="classclang_1_1NamedDecl.html#a1e3e90455be89bb5c7c23640cbbd7153">getDeclName</a>();</div>
+<div class="line"><a name="l02199"></a><span class="lineno"> 2199</span>   <span class="keywordflow">if</span> (!Name) {</div>
+<div class="line"><a name="l02200"></a><span class="lineno"> 2200</span>     <span class="comment">// Don't bother trying to find unnamed declarations.</span></div>
+<div class="line"><a name="l02201"></a><span class="lineno"> 2201</span>     FindExistingResult Result(Reader, D, <span class="comment">/*Existing=*/</span>0);</div>
+<div class="line"><a name="l02202"></a><span class="lineno"> 2202</span>     Result.suppress();</div>
+<div class="line"><a name="l02203"></a><span class="lineno"> 2203</span>     <span class="keywordflow">return</span> Result;</div>
+<div class="line"><a name="l02204"></a><span class="lineno"> 2204</span>   }</div>
+<div class="line"><a name="l02205"></a><span class="lineno"> 2205</span> </div>
+<div class="line"><a name="l02206"></a><span class="lineno"> 2206</span>   <span class="comment">// FIXME: Bail out for non-canonical declarations. We will have performed any</span></div>
+<div class="line"><a name="l02207"></a><span class="lineno"> 2207</span>   <span class="comment">// necessary merging already.</span></div>
+<div class="line"><a name="l02208"></a><span class="lineno"> 2208</span> </div>
+<div class="line"><a name="l02209"></a><span class="lineno"> 2209</span>   <a class="code" href="classclang_1_1DeclContext.html">DeclContext</a> *DC = D-><a class="code" href="classclang_1_1Decl.html#af67e1a1d24dcc51093b95dbcf68d4288">getDeclContext</a>()-><a class="code" href="classclang_1_1DeclContext.html#a61743ae6acff989a26641900282e6305">getRedeclContext</a>();</div>
+<div class="line"><a name="l02210"></a><span class="lineno"> 2210</span>   <span class="keywordflow">if</span> (DC-><a class="code" href="classclang_1_1DeclContext.html#add710d53ebeab05385a08e978862c149">isTranslationUnit</a>() && Reader.SemaObj) {</div>
+<div class="line"><a name="l02211"></a><span class="lineno"> 2211</span>     <a class="code" href="classclang_1_1IdentifierResolver.html">IdentifierResolver</a> &IdResolver = Reader.SemaObj->IdResolver;</div>
+<div class="line"><a name="l02212"></a><span class="lineno"> 2212</span> </div>
+<div class="line"><a name="l02213"></a><span class="lineno"> 2213</span>     <span class="comment">// Temporarily consider the identifier to be up-to-date. We don't want to</span></div>
+<div class="line"><a name="l02214"></a><span class="lineno"> 2214</span>     <span class="comment">// cause additional lookups here.</span></div>
+<div class="line"><a name="l02215"></a><span class="lineno"> 2215</span>     <span class="keyword">class </span>UpToDateIdentifierRAII {</div>
+<div class="line"><a name="l02216"></a><span class="lineno"> 2216</span>       <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *II;</div>
+<div class="line"><a name="l02217"></a><span class="lineno"> 2217</span>       <span class="keywordtype">bool</span> WasOutToDate;</div>
+<div class="line"><a name="l02218"></a><span class="lineno"> 2218</span> </div>
+<div class="line"><a name="l02219"></a><span class="lineno"> 2219</span>     <span class="keyword">public</span>:</div>
+<div class="line"><a name="l02220"></a><span class="lineno"> 2220</span>       <span class="keyword">explicit</span> UpToDateIdentifierRAII(<a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *II)</div>
+<div class="line"><a name="l02221"></a><span class="lineno"> 2221</span>         : II(II), WasOutToDate(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>)</div>
+<div class="line"><a name="l02222"></a><span class="lineno"> 2222</span>       {</div>
+<div class="line"><a name="l02223"></a><span class="lineno"> 2223</span>         <span class="keywordflow">if</span> (II) {</div>
+<div class="line"><a name="l02224"></a><span class="lineno"> 2224</span>           WasOutToDate = II-><a class="code" href="classclang_1_1IdentifierInfo.html#a3163e8b0a84559ac33732cd46ad082ef" title="Determine whether the information for this identifier is out of date with respect to the external sou...">isOutOfDate</a>();</div>
+<div class="line"><a name="l02225"></a><span class="lineno"> 2225</span>           <span class="keywordflow">if</span> (WasOutToDate)</div>
+<div class="line"><a name="l02226"></a><span class="lineno"> 2226</span>             II-><a class="code" href="classclang_1_1IdentifierInfo.html#aa33a4b38642064f5702153c1b96fd4d9" title="Set whether the information for this identifier is out of date with respect to the external source...">setOutOfDate</a>(<span class="keyword">false</span>);</div>
+<div class="line"><a name="l02227"></a><span class="lineno"> 2227</span>         }</div>
+<div class="line"><a name="l02228"></a><span class="lineno"> 2228</span>       }</div>
+<div class="line"><a name="l02229"></a><span class="lineno"> 2229</span> </div>
+<div class="line"><a name="l02230"></a><span class="lineno"> 2230</span>       ~UpToDateIdentifierRAII() {</div>
+<div class="line"><a name="l02231"></a><span class="lineno"> 2231</span>         <span class="keywordflow">if</span> (WasOutToDate)</div>
+<div class="line"><a name="l02232"></a><span class="lineno"> 2232</span>           II-><a class="code" href="classclang_1_1IdentifierInfo.html#aa33a4b38642064f5702153c1b96fd4d9" title="Set whether the information for this identifier is out of date with respect to the external source...">setOutOfDate</a>(<span class="keyword">true</span>);</div>
+<div class="line"><a name="l02233"></a><span class="lineno"> 2233</span>       }</div>
+<div class="line"><a name="l02234"></a><span class="lineno"> 2234</span>     } UpToDate(Name.<a class="code" href="classclang_1_1DeclarationName.html#a1ac2d6e470af6bb6313c390760a1e155">getAsIdentifierInfo</a>());</div>
+<div class="line"><a name="l02235"></a><span class="lineno"> 2235</span> </div>
+<div class="line"><a name="l02236"></a><span class="lineno"> 2236</span>     <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1IdentifierResolver_1_1iterator.html">IdentifierResolver::iterator</a> I = IdResolver.<a class="code" href="classclang_1_1IdentifierResolver.html#a042e6ea4d9290189c4770027f7e51fac" title="begin - Returns an iterator for decls with the name 'Name'.">begin</a>(Name), </div>
+<div class="line"><a name="l02237"></a><span class="lineno"> 2237</span>                                    IEnd = IdResolver.<a class="code" href="classclang_1_1IdentifierResolver.html#ad2ccda3b50a6367d469f7408aa90d314" title="end - Returns an iterator that has 'finished'.">end</a>();</div>
+<div class="line"><a name="l02238"></a><span class="lineno"> 2238</span>          I != IEnd; ++I) {</div>
+<div class="line"><a name="l02239"></a><span class="lineno"> 2239</span>       <span class="keywordflow">if</span> (<a class="code" href="ASTReaderDecl_8cpp.html#a661dde4d6ab53541d2b82fd2c5e76f63" title="Determine whether the two declarations refer to the same entity.">isSameEntity</a>(*I, D))</div>
+<div class="line"><a name="l02240"></a><span class="lineno"> 2240</span>         <span class="keywordflow">return</span> FindExistingResult(Reader, D, *I);</div>
+<div class="line"><a name="l02241"></a><span class="lineno"> 2241</span>     }</div>
+<div class="line"><a name="l02242"></a><span class="lineno"> 2242</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1DeclContext.html">DeclContext</a> *MergeDC = <a class="code" href="ASTReaderDecl_8cpp.html#a07711e140e1910054ac8a2619edd932a">getPrimaryContextForMerging</a>(DC)) {</div>
+<div class="line"><a name="l02243"></a><span class="lineno"> 2243</span>     <a class="code" href="classclang_1_1DeclContext.html#ac25dc34eabe6c4e035c76dd3329e8530">DeclContext::lookup_result</a> R = MergeDC->noload_lookup(Name);</div>
+<div class="line"><a name="l02244"></a><span class="lineno"> 2244</span>     <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1NamedDecl.html">DeclContext::lookup_iterator</a> I = R.<a class="code" href="classclang_1_1ContinuousRangeMap.html#aa30ffcf77e63a0506b422dc23d7a68e7">begin</a>(), E = R.end(); I != E; ++I) {</div>
+<div class="line"><a name="l02245"></a><span class="lineno"> 2245</span>       <span class="keywordflow">if</span> (<a class="code" href="ASTReaderDecl_8cpp.html#a661dde4d6ab53541d2b82fd2c5e76f63" title="Determine whether the two declarations refer to the same entity.">isSameEntity</a>(*I, D))</div>
+<div class="line"><a name="l02246"></a><span class="lineno"> 2246</span>         <span class="keywordflow">return</span> FindExistingResult(Reader, D, *I);</div>
+<div class="line"><a name="l02247"></a><span class="lineno"> 2247</span>     }</div>
+<div class="line"><a name="l02248"></a><span class="lineno"> 2248</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l02249"></a><span class="lineno"> 2249</span>     <span class="comment">// Not in a mergeable context.</span></div>
+<div class="line"><a name="l02250"></a><span class="lineno"> 2250</span>     <span class="keywordflow">return</span> FindExistingResult(Reader);</div>
+<div class="line"><a name="l02251"></a><span class="lineno"> 2251</span>   }</div>
+<div class="line"><a name="l02252"></a><span class="lineno"> 2252</span> </div>
+<div class="line"><a name="l02253"></a><span class="lineno"> 2253</span>   <span class="comment">// If this declaration is from a merged context, make a note that we need to</span></div>
+<div class="line"><a name="l02254"></a><span class="lineno"> 2254</span>   <span class="comment">// check that the canonical definition of that context contains the decl.</span></div>
+<div class="line"><a name="l02255"></a><span class="lineno"> 2255</span>   <span class="keywordflow">if</span> (Reader.MergedDeclContexts.count(D-><a class="code" href="classclang_1_1Decl.html#aa390f755d0a0a1fc7fc557af886e4c93">getLexicalDeclContext</a>()))</div>
+<div class="line"><a name="l02256"></a><span class="lineno"> 2256</span>     Reader.PendingOdrMergeChecks.push_back(D);</div>
+<div class="line"><a name="l02257"></a><span class="lineno"> 2257</span> </div>
+<div class="line"><a name="l02258"></a><span class="lineno"> 2258</span>   <span class="keywordflow">return</span> FindExistingResult(Reader, D, <span class="comment">/*Existing=*/</span>0);</div>
+<div class="line"><a name="l02259"></a><span class="lineno"> 2259</span> }</div>
+<div class="line"><a name="l02260"></a><span class="lineno"> 2260</span> </div>
+<div class="line"><a name="l02261"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a1f8ef7b008952862daaf6ed002066d05"> 2261</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a1f8ef7b008952862daaf6ed002066d05">ASTDeclReader::attachPreviousDecl</a>(<a class="code" href="classclang_1_1Decl.html">Decl</a> *D, <a class="code" href="classclang_1_1Decl.html">Decl</a> *previous) {</div>
+<div class="line"><a name="l02262"></a><span class="lineno"> 2262</span>   assert(D && previous);</div>
+<div class="line"><a name="l02263"></a><span class="lineno"> 2263</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1TagDecl.html" title="TagDecl - Represents the declaration of a struct/union/class/enum.">TagDecl</a> *TD = dyn_cast<TagDecl>(D)) {</div>
+<div class="line"><a name="l02264"></a><span class="lineno"> 2264</span>     TD->RedeclLink.setNext(cast<TagDecl>(previous));</div>
+<div class="line"><a name="l02265"></a><span class="lineno"> 2265</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1FunctionDecl.html">FunctionDecl</a> *FD = dyn_cast<FunctionDecl>(D)) {</div>
+<div class="line"><a name="l02266"></a><span class="lineno"> 2266</span>     FD->RedeclLink.setNext(cast<FunctionDecl>(previous));</div>
+<div class="line"><a name="l02267"></a><span class="lineno"> 2267</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *VD = dyn_cast<VarDecl>(D)) {</div>
+<div class="line"><a name="l02268"></a><span class="lineno"> 2268</span>     VD->RedeclLink.setNext(cast<VarDecl>(previous));</div>
+<div class="line"><a name="l02269"></a><span class="lineno"> 2269</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1TypedefNameDecl.html" title="Base class for declarations which introduce a typedef-name.">TypedefNameDecl</a> *TD = dyn_cast<TypedefNameDecl>(D)) {</div>
+<div class="line"><a name="l02270"></a><span class="lineno"> 2270</span>     TD->RedeclLink.setNext(cast<TypedefNameDecl>(previous));</div>
+<div class="line"><a name="l02271"></a><span class="lineno"> 2271</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1UsingShadowDecl.html" title="Represents a shadow declaration introduced into a scope by a (resolved) using declaration.">UsingShadowDecl</a> *USD = dyn_cast<UsingShadowDecl>(D)) {</div>
+<div class="line"><a name="l02272"></a><span class="lineno"> 2272</span>     USD->RedeclLink.setNext(cast<UsingShadowDecl>(previous));</div>
+<div class="line"><a name="l02273"></a><span class="lineno"> 2273</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *ID = dyn_cast<ObjCInterfaceDecl>(D)) {</div>
+<div class="line"><a name="l02274"></a><span class="lineno"> 2274</span>     ID->RedeclLink.setNext(cast<ObjCInterfaceDecl>(previous));</div>
+<div class="line"><a name="l02275"></a><span class="lineno"> 2275</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1ObjCProtocolDecl.html" title="Represents an Objective-C protocol declaration.">ObjCProtocolDecl</a> *PD = dyn_cast<ObjCProtocolDecl>(D)) {</div>
+<div class="line"><a name="l02276"></a><span class="lineno"> 2276</span>     PD->RedeclLink.setNext(cast<ObjCProtocolDecl>(previous));</div>
+<div class="line"><a name="l02277"></a><span class="lineno"> 2277</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1NamespaceDecl.html" title="NamespaceDecl - Represent a C++ namespace.">NamespaceDecl</a> *ND = dyn_cast<NamespaceDecl>(D)) {</div>
+<div class="line"><a name="l02278"></a><span class="lineno"> 2278</span>     ND->RedeclLink.setNext(cast<NamespaceDecl>(previous));</div>
+<div class="line"><a name="l02279"></a><span class="lineno"> 2279</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l02280"></a><span class="lineno"> 2280</span>     <a class="code" href="classclang_1_1RedeclarableTemplateDecl.html" title="Declaration of a redeclarable template.">RedeclarableTemplateDecl</a> *TD = cast<RedeclarableTemplateDecl>(D);</div>
+<div class="line"><a name="l02281"></a><span class="lineno"> 2281</span>     TD-><a class="code" href="classclang_1_1Redeclarable.html#a9f7538cb4941acf1eab0fb0f45f9e22f" title="Points to the next redeclaration in the chain.">RedeclLink</a>.setNext(cast<RedeclarableTemplateDecl>(previous));</div>
+<div class="line"><a name="l02282"></a><span class="lineno"> 2282</span>   }</div>
+<div class="line"><a name="l02283"></a><span class="lineno"> 2283</span> </div>
+<div class="line"><a name="l02284"></a><span class="lineno"> 2284</span>   <span class="comment">// If the declaration was visible in one module, a redeclaration of it in</span></div>
+<div class="line"><a name="l02285"></a><span class="lineno"> 2285</span>   <span class="comment">// another module remains visible even if it wouldn't be visible by itself.</span></div>
+<div class="line"><a name="l02286"></a><span class="lineno"> 2286</span>   <span class="comment">//</span></div>
+<div class="line"><a name="l02287"></a><span class="lineno"> 2287</span>   <span class="comment">// FIXME: In this case, the declaration should only be visible if a module</span></div>
+<div class="line"><a name="l02288"></a><span class="lineno"> 2288</span>   <span class="comment">//        that makes it visible has been imported.</span></div>
+<div class="line"><a name="l02289"></a><span class="lineno"> 2289</span>   D-><a class="code" href="classclang_1_1Decl.html#a9e38ae17197f1ebf6cdbb58260133710">IdentifierNamespace</a> |=</div>
+<div class="line"><a name="l02290"></a><span class="lineno"> 2290</span>       previous-><a class="code" href="classclang_1_1Decl.html#a9e38ae17197f1ebf6cdbb58260133710">IdentifierNamespace</a> &</div>
+<div class="line"><a name="l02291"></a><span class="lineno"> 2291</span>       (<a class="code" href="classclang_1_1Decl.html#a9e38ae17197f1ebf6cdbb58260133710a404c48f346be24fe30ae9bb910177a34">Decl::IDNS_Ordinary</a> | <a class="code" href="classclang_1_1Decl.html#a9e38ae17197f1ebf6cdbb58260133710af56b326acd2688e908a81d22fdbf5f47">Decl::IDNS_Tag</a> | <a class="code" href="classclang_1_1Decl.html#a9e38ae17197f1ebf6cdbb58260133710a6cb28bd82a63a8a39fd86a3dbba7494e">Decl::IDNS_Type</a>);</div>
+<div class="line"><a name="l02292"></a><span class="lineno"> 2292</span> }</div>
+<div class="line"><a name="l02293"></a><span class="lineno"> 2293</span> </div>
+<div class="line"><a name="l02294"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a48713fd544aae522cd2c0ab0fb780cf8"> 2294</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a48713fd544aae522cd2c0ab0fb780cf8">ASTDeclReader::attachLatestDecl</a>(<a class="code" href="classclang_1_1Decl.html">Decl</a> *D, <a class="code" href="classclang_1_1Decl.html">Decl</a> *Latest) {</div>
+<div class="line"><a name="l02295"></a><span class="lineno"> 2295</span>   assert(D && Latest);</div>
+<div class="line"><a name="l02296"></a><span class="lineno"> 2296</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1TagDecl.html" title="TagDecl - Represents the declaration of a struct/union/class/enum.">TagDecl</a> *TD = dyn_cast<TagDecl>(D)) {</div>
+<div class="line"><a name="l02297"></a><span class="lineno"> 2297</span>     TD->RedeclLink</div>
+<div class="line"><a name="l02298"></a><span class="lineno"> 2298</span>       = <a class="code" href="classclang_1_1Redeclarable.html#ae61967049b1f3c3f074aca04d6d35cd2">Redeclarable<TagDecl>::LatestDeclLink</a>(cast<TagDecl>(Latest));</div>
+<div class="line"><a name="l02299"></a><span class="lineno"> 2299</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1FunctionDecl.html">FunctionDecl</a> *FD = dyn_cast<FunctionDecl>(D)) {</div>
+<div class="line"><a name="l02300"></a><span class="lineno"> 2300</span>     FD->RedeclLink</div>
+<div class="line"><a name="l02301"></a><span class="lineno"> 2301</span>       = <a class="code" href="classclang_1_1Redeclarable.html#ae61967049b1f3c3f074aca04d6d35cd2">Redeclarable<FunctionDecl>::LatestDeclLink</a>(cast<FunctionDecl>(Latest));</div>
+<div class="line"><a name="l02302"></a><span class="lineno"> 2302</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *VD = dyn_cast<VarDecl>(D)) {</div>
+<div class="line"><a name="l02303"></a><span class="lineno"> 2303</span>     VD->RedeclLink</div>
+<div class="line"><a name="l02304"></a><span class="lineno"> 2304</span>       = <a class="code" href="classclang_1_1Redeclarable.html#ae61967049b1f3c3f074aca04d6d35cd2">Redeclarable<VarDecl>::LatestDeclLink</a>(cast<VarDecl>(Latest));</div>
+<div class="line"><a name="l02305"></a><span class="lineno"> 2305</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1TypedefNameDecl.html" title="Base class for declarations which introduce a typedef-name.">TypedefNameDecl</a> *TD = dyn_cast<TypedefNameDecl>(D)) {</div>
+<div class="line"><a name="l02306"></a><span class="lineno"> 2306</span>     TD->RedeclLink</div>
+<div class="line"><a name="l02307"></a><span class="lineno"> 2307</span>       = <a class="code" href="classclang_1_1Redeclarable.html#ae61967049b1f3c3f074aca04d6d35cd2">Redeclarable<TypedefNameDecl>::LatestDeclLink</a>(</div>
+<div class="line"><a name="l02308"></a><span class="lineno"> 2308</span>                                                 cast<TypedefNameDecl>(Latest));</div>
+<div class="line"><a name="l02309"></a><span class="lineno"> 2309</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1UsingShadowDecl.html" title="Represents a shadow declaration introduced into a scope by a (resolved) using declaration.">UsingShadowDecl</a> *USD = dyn_cast<UsingShadowDecl>(D)) {</div>
+<div class="line"><a name="l02310"></a><span class="lineno"> 2310</span>     USD->RedeclLink</div>
+<div class="line"><a name="l02311"></a><span class="lineno"> 2311</span>       = <a class="code" href="classclang_1_1Redeclarable.html#ae61967049b1f3c3f074aca04d6d35cd2">Redeclarable<UsingShadowDecl>::LatestDeclLink</a>(</div>
+<div class="line"><a name="l02312"></a><span class="lineno"> 2312</span>                                              cast<UsingShadowDecl>(Latest));</div>
+<div class="line"><a name="l02313"></a><span class="lineno"> 2313</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *ID = dyn_cast<ObjCInterfaceDecl>(D)) {</div>
+<div class="line"><a name="l02314"></a><span class="lineno"> 2314</span>     ID->RedeclLink</div>
+<div class="line"><a name="l02315"></a><span class="lineno"> 2315</span>       = <a class="code" href="classclang_1_1Redeclarable.html#ae61967049b1f3c3f074aca04d6d35cd2">Redeclarable<ObjCInterfaceDecl>::LatestDeclLink</a>(</div>
+<div class="line"><a name="l02316"></a><span class="lineno"> 2316</span>                                               cast<ObjCInterfaceDecl>(Latest));</div>
+<div class="line"><a name="l02317"></a><span class="lineno"> 2317</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1ObjCProtocolDecl.html" title="Represents an Objective-C protocol declaration.">ObjCProtocolDecl</a> *PD = dyn_cast<ObjCProtocolDecl>(D)) {</div>
+<div class="line"><a name="l02318"></a><span class="lineno"> 2318</span>     PD->RedeclLink</div>
+<div class="line"><a name="l02319"></a><span class="lineno"> 2319</span>       = <a class="code" href="classclang_1_1Redeclarable.html#ae61967049b1f3c3f074aca04d6d35cd2">Redeclarable<ObjCProtocolDecl>::LatestDeclLink</a>(</div>
+<div class="line"><a name="l02320"></a><span class="lineno"> 2320</span>                                                 cast<ObjCProtocolDecl>(Latest));</div>
+<div class="line"><a name="l02321"></a><span class="lineno"> 2321</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1NamespaceDecl.html" title="NamespaceDecl - Represent a C++ namespace.">NamespaceDecl</a> *ND = dyn_cast<NamespaceDecl>(D)) {</div>
+<div class="line"><a name="l02322"></a><span class="lineno"> 2322</span>     ND->RedeclLink</div>
+<div class="line"><a name="l02323"></a><span class="lineno"> 2323</span>       = <a class="code" href="classclang_1_1Redeclarable.html#ae61967049b1f3c3f074aca04d6d35cd2">Redeclarable<NamespaceDecl>::LatestDeclLink</a>(</div>
+<div class="line"><a name="l02324"></a><span class="lineno"> 2324</span>                                                    cast<NamespaceDecl>(Latest));</div>
+<div class="line"><a name="l02325"></a><span class="lineno"> 2325</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l02326"></a><span class="lineno"> 2326</span>     <a class="code" href="classclang_1_1RedeclarableTemplateDecl.html" title="Declaration of a redeclarable template.">RedeclarableTemplateDecl</a> *TD = cast<RedeclarableTemplateDecl>(D);</div>
+<div class="line"><a name="l02327"></a><span class="lineno"> 2327</span>     TD-><a class="code" href="classclang_1_1Redeclarable.html#a9f7538cb4941acf1eab0fb0f45f9e22f" title="Points to the next redeclaration in the chain.">RedeclLink</a></div>
+<div class="line"><a name="l02328"></a><span class="lineno"> 2328</span>       = <a class="code" href="classclang_1_1Redeclarable.html#ae61967049b1f3c3f074aca04d6d35cd2">Redeclarable<RedeclarableTemplateDecl>::LatestDeclLink</a>(</div>
+<div class="line"><a name="l02329"></a><span class="lineno"> 2329</span>                                         cast<RedeclarableTemplateDecl>(Latest));</div>
+<div class="line"><a name="l02330"></a><span class="lineno"> 2330</span>   }</div>
+<div class="line"><a name="l02331"></a><span class="lineno"> 2331</span> }</div>
+<div class="line"><a name="l02332"></a><span class="lineno"> 2332</span> </div>
+<div class="line"><a name="l02333"></a><span class="lineno"> 2333</span> ASTReader::MergedDeclsMap::iterator</div>
+<div class="line"><a name="l02334"></a><span class="lineno"> 2334</span> ASTReader::combineStoredMergedDecls(<a class="code" href="classclang_1_1Decl.html">Decl</a> *Canon, <a class="code" href="namespaceclang_1_1serialization.html#a55ccff09ed644b98b2b7c5915b601c14">GlobalDeclID</a> CanonID) {</div>
+<div class="line"><a name="l02335"></a><span class="lineno"> 2335</span>   <span class="comment">// If we don't have any stored merged declarations, just look in the</span></div>
+<div class="line"><a name="l02336"></a><span class="lineno"> 2336</span>   <span class="comment">// merged declarations set.</span></div>
+<div class="line"><a name="l02337"></a><span class="lineno"> 2337</span>   StoredMergedDeclsMap::iterator StoredPos = StoredMergedDecls.find(CanonID);</div>
+<div class="line"><a name="l02338"></a><span class="lineno"> 2338</span>   <span class="keywordflow">if</span> (StoredPos == StoredMergedDecls.end())</div>
+<div class="line"><a name="l02339"></a><span class="lineno"> 2339</span>     <span class="keywordflow">return</span> MergedDecls.find(Canon);</div>
+<div class="line"><a name="l02340"></a><span class="lineno"> 2340</span> </div>
+<div class="line"><a name="l02341"></a><span class="lineno"> 2341</span>   <span class="comment">// Append the stored merged declarations to the merged declarations set.</span></div>
+<div class="line"><a name="l02342"></a><span class="lineno"> 2342</span>   MergedDeclsMap::iterator Pos = MergedDecls.find(Canon);</div>
+<div class="line"><a name="l02343"></a><span class="lineno"> 2343</span>   <span class="keywordflow">if</span> (Pos == MergedDecls.end())</div>
+<div class="line"><a name="l02344"></a><span class="lineno"> 2344</span>     Pos = MergedDecls.insert(std::make_pair(Canon, </div>
+<div class="line"><a name="l02345"></a><span class="lineno"> 2345</span>                                             <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<DeclID, 2></a>())).first;</div>
+<div class="line"><a name="l02346"></a><span class="lineno"> 2346</span>   Pos->second.append(StoredPos->second.begin(), StoredPos->second.end());</div>
+<div class="line"><a name="l02347"></a><span class="lineno"> 2347</span>   StoredMergedDecls.erase(StoredPos);</div>
+<div class="line"><a name="l02348"></a><span class="lineno"> 2348</span>   </div>
+<div class="line"><a name="l02349"></a><span class="lineno"> 2349</span>   <span class="comment">// Sort and uniquify the set of merged declarations.</span></div>
+<div class="line"><a name="l02350"></a><span class="lineno"> 2350</span>   llvm::array_pod_sort(Pos->second.begin(), Pos->second.end());</div>
+<div class="line"><a name="l02351"></a><span class="lineno"> 2351</span>   Pos->second.erase(std::unique(Pos->second.begin(), Pos->second.end()),</div>
+<div class="line"><a name="l02352"></a><span class="lineno"> 2352</span>                     Pos->second.end());</div>
+<div class="line"><a name="l02353"></a><span class="lineno"> 2353</span>   <span class="keywordflow">return</span> Pos;</div>
+<div class="line"><a name="l02354"></a><span class="lineno"> 2354</span> }</div>
+<div class="line"><a name="l02355"></a><span class="lineno"> 2355</span> <span class="comment"></span></div>
+<div class="line"><a name="l02356"></a><span class="lineno"> 2356</span> <span class="comment">/// \brief Read the declaration at the given offset from the AST file.</span></div>
+<div class="line"><a name="l02357"></a><span class="lineno"> 2357</span> <span class="comment"></span><a class="code" href="classclang_1_1Decl.html">Decl</a> *ASTReader::ReadDeclRecord(<a class="code" href="namespaceclang_1_1serialization.html#af3f9c681595246da4bb499bd210e7f36" title="An ID number that refers to a declaration in an AST file.">DeclID</a> ID) {</div>
+<div class="line"><a name="l02358"></a><span class="lineno"> 2358</span>   <span class="keywordtype">unsigned</span> Index = ID - <a class="code" href="group__ASTAST.html#ga6d344ffeb5a7cec8c1fd486fbc97db52" title="The number of declaration IDs that are predefined.">NUM_PREDEF_DECL_IDS</a>;</div>
+<div class="line"><a name="l02359"></a><span class="lineno"> 2359</span>   <span class="keywordtype">unsigned</span> RawLocation = 0;</div>
+<div class="line"><a name="l02360"></a><span class="lineno"> 2360</span>   RecordLocation Loc = DeclCursorForID(ID, RawLocation);</div>
+<div class="line"><a name="l02361"></a><span class="lineno"> 2361</span>   llvm::BitstreamCursor &DeclsCursor = Loc.F->DeclsCursor;</div>
+<div class="line"><a name="l02362"></a><span class="lineno"> 2362</span>   <span class="comment">// Keep track of where we are in the stream, then jump back there</span></div>
+<div class="line"><a name="l02363"></a><span class="lineno"> 2363</span>   <span class="comment">// after reading this declaration.</span></div>
+<div class="line"><a name="l02364"></a><span class="lineno"> 2364</span>   <a class="code" href="structclang_1_1SavedStreamPosition.html" title="Helper class that saves the current stream position and then restores it when destroyed.">SavedStreamPosition</a> SavedPosition(DeclsCursor);</div>
+<div class="line"><a name="l02365"></a><span class="lineno"> 2365</span> </div>
+<div class="line"><a name="l02366"></a><span class="lineno"> 2366</span>   ReadingKindTracker ReadingKind(Read_Decl, *<span class="keyword">this</span>);</div>
+<div class="line"><a name="l02367"></a><span class="lineno"> 2367</span> </div>
+<div class="line"><a name="l02368"></a><span class="lineno"> 2368</span>   <span class="comment">// Note that we are loading a declaration record.</span></div>
+<div class="line"><a name="l02369"></a><span class="lineno"> 2369</span>   Deserializing ADecl(<span class="keyword">this</span>);</div>
+<div class="line"><a name="l02370"></a><span class="lineno"> 2370</span> </div>
+<div class="line"><a name="l02371"></a><span class="lineno"> 2371</span>   DeclsCursor.JumpToBit(Loc.Offset);</div>
+<div class="line"><a name="l02372"></a><span class="lineno"> 2372</span>   RecordData Record;</div>
+<div class="line"><a name="l02373"></a><span class="lineno"> 2373</span>   <span class="keywordtype">unsigned</span> Code = DeclsCursor.ReadCode();</div>
+<div class="line"><a name="l02374"></a><span class="lineno"> 2374</span>   <span class="keywordtype">unsigned</span> Idx = 0;</div>
+<div class="line"><a name="l02375"></a><span class="lineno"> 2375</span>   <a class="code" href="classclang_1_1ASTDeclReader.html">ASTDeclReader</a> Reader(*<span class="keyword">this</span>, *Loc.F, ID, RawLocation, Record,Idx);</div>
+<div class="line"><a name="l02376"></a><span class="lineno"> 2376</span> </div>
+<div class="line"><a name="l02377"></a><span class="lineno"> 2377</span>   <a class="code" href="classclang_1_1Decl.html">Decl</a> *D = 0;</div>
+<div class="line"><a name="l02378"></a><span class="lineno"> 2378</span>   <span class="keywordflow">switch</span> ((<a class="code" href="group__ASTAST.html#ga8ee85854f8c999f4dad34a2afccdc1cd" title="Record codes for each kind of declaration.">DeclCode</a>)DeclsCursor.readRecord(Code, Record)) {</div>
+<div class="line"><a name="l02379"></a><span class="lineno"> 2379</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda7495f341b29a95f3276043a6624af2c4" title="A record that stores the set of declarations that are lexically stored within a given DeclContext...">DECL_CONTEXT_LEXICAL</a>:</div>
+<div class="line"><a name="l02380"></a><span class="lineno"> 2380</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdafcf73a1ed9070059c5895e18ce3af9aa" title="A record that stores the set of declarations that are visible from a given DeclContext.">DECL_CONTEXT_VISIBLE</a>:</div>
+<div class="line"><a name="l02381"></a><span class="lineno"> 2381</span>     llvm_unreachable(<span class="stringliteral">"Record cannot be de-serialized with ReadDeclRecord"</span>);</div>
+<div class="line"><a name="l02382"></a><span class="lineno"> 2382</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda422905d00e014ff3366cc40b89711606" title="A TypedefDecl record.">DECL_TYPEDEF</a>:</div>
+<div class="line"><a name="l02383"></a><span class="lineno"> 2383</span>     D = <a class="code" href="classclang_1_1TypedefDecl.html#aeda69a058bfe02ad6f2d8a2ecce1e821">TypedefDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02384"></a><span class="lineno"> 2384</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02385"></a><span class="lineno"> 2385</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda491fc5b243c10526b48beaebbb106b63" title="A TypeAliasDecl record.">DECL_TYPEALIAS</a>:</div>
+<div class="line"><a name="l02386"></a><span class="lineno"> 2386</span>     D = <a class="code" href="classclang_1_1TypeAliasDecl.html#a96070d8ca7809835ce88fd1f09bf2246">TypeAliasDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02387"></a><span class="lineno"> 2387</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02388"></a><span class="lineno"> 2388</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdacd7c98403463dcf489152e6fa9d3d945" title="An EnumDecl record.">DECL_ENUM</a>:</div>
+<div class="line"><a name="l02389"></a><span class="lineno"> 2389</span>     D = <a class="code" href="classclang_1_1EnumDecl.html#a71a09ceee293865f632edf954dee8704">EnumDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02390"></a><span class="lineno"> 2390</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02391"></a><span class="lineno"> 2391</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda7482e398f9d4b3572edf31ceef7321b6" title="A RecordDecl record.">DECL_RECORD</a>:</div>
+<div class="line"><a name="l02392"></a><span class="lineno"> 2392</span>     D = <a class="code" href="classclang_1_1RecordDecl.html#a3c8cda3d311e34d81a620f25951b8be1">RecordDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02393"></a><span class="lineno"> 2393</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02394"></a><span class="lineno"> 2394</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda403e04c8a8e8fb93b42c47b0a4a281ec" title="An EnumConstantDecl record.">DECL_ENUM_CONSTANT</a>:</div>
+<div class="line"><a name="l02395"></a><span class="lineno"> 2395</span>     D = <a class="code" href="classclang_1_1EnumConstantDecl.html#ab05b36acf0ba393144f66b7ad8b19fc2">EnumConstantDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02396"></a><span class="lineno"> 2396</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02397"></a><span class="lineno"> 2397</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda734329bcfd9120f9b3b236afe244cdb6" title="A FunctionDecl record.">DECL_FUNCTION</a>:</div>
+<div class="line"><a name="l02398"></a><span class="lineno"> 2398</span>     D = <a class="code" href="classclang_1_1FunctionDecl.html#abce604ef3b941643b26508c325be3945">FunctionDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02399"></a><span class="lineno"> 2399</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02400"></a><span class="lineno"> 2400</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda66c711e5b8b3fa167fb631ea808ce51c" title="A LinkageSpecDecl record.">DECL_LINKAGE_SPEC</a>:</div>
+<div class="line"><a name="l02401"></a><span class="lineno"> 2401</span>     D = <a class="code" href="classclang_1_1LinkageSpecDecl.html#a7591725e219274c48cf9f3419a064087">LinkageSpecDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02402"></a><span class="lineno"> 2402</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02403"></a><span class="lineno"> 2403</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdaa8eb97f69b5e224015e1cf57d667f701" title="A LabelDecl record.">DECL_LABEL</a>:</div>
+<div class="line"><a name="l02404"></a><span class="lineno"> 2404</span>     D = <a class="code" href="classclang_1_1LabelDecl.html#acf23f52dcbae16e6db8a8e878daadf1d">LabelDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02405"></a><span class="lineno"> 2405</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02406"></a><span class="lineno"> 2406</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda6b89a684e9175c5c25cad4fe81de4d8f" title="A NamespaceDecl record.">DECL_NAMESPACE</a>:</div>
+<div class="line"><a name="l02407"></a><span class="lineno"> 2407</span>     D = <a class="code" href="classclang_1_1NamespaceDecl.html#a3b8b230052dcfddc14612d96e7668dae">NamespaceDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02408"></a><span class="lineno"> 2408</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02409"></a><span class="lineno"> 2409</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda45b71c0438956cbee9a413a8a5834663" title="A NamespaceAliasDecl record.">DECL_NAMESPACE_ALIAS</a>:</div>
+<div class="line"><a name="l02410"></a><span class="lineno"> 2410</span>     D = <a class="code" href="classclang_1_1NamespaceAliasDecl.html#a623071e64d13d7f20111587f5c4bd250">NamespaceAliasDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02411"></a><span class="lineno"> 2411</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02412"></a><span class="lineno"> 2412</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdaa1ed3dc4b7b54f7af8cd702301edf975" title="A UsingDecl record.">DECL_USING</a>:</div>
+<div class="line"><a name="l02413"></a><span class="lineno"> 2413</span>     D = <a class="code" href="classclang_1_1UsingDecl.html#aee95b485e6d965d5ef8979ec1c51b370">UsingDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02414"></a><span class="lineno"> 2414</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02415"></a><span class="lineno"> 2415</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdade80aee8eacf0a4a0329c6113cceb62d" title="A UsingShadowDecl record.">DECL_USING_SHADOW</a>:</div>
+<div class="line"><a name="l02416"></a><span class="lineno"> 2416</span>     D = <a class="code" href="classclang_1_1UsingShadowDecl.html#aba7221ea70a0a801b316fcdb7b927c8d">UsingShadowDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02417"></a><span class="lineno"> 2417</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02418"></a><span class="lineno"> 2418</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda7352d48af4c2d5673e6df36791b3f1e5" title="A UsingDirecitveDecl record.">DECL_USING_DIRECTIVE</a>:</div>
+<div class="line"><a name="l02419"></a><span class="lineno"> 2419</span>     D = <a class="code" href="classclang_1_1UsingDirectiveDecl.html#a7263022d407ef9a2d4fbc58e2f3468e3">UsingDirectiveDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02420"></a><span class="lineno"> 2420</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02421"></a><span class="lineno"> 2421</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda86471ab6a2686044ba40e26d7cbd1cfb" title="An UnresolvedUsingValueDecl record.">DECL_UNRESOLVED_USING_VALUE</a>:</div>
+<div class="line"><a name="l02422"></a><span class="lineno"> 2422</span>     D = <a class="code" href="classclang_1_1UnresolvedUsingValueDecl.html#aa40cadec61b42ae23027c809469513f6">UnresolvedUsingValueDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02423"></a><span class="lineno"> 2423</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02424"></a><span class="lineno"> 2424</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda50096bcaaf14487b945a50e062068065" title="An UnresolvedUsingTypenameDecl record.">DECL_UNRESOLVED_USING_TYPENAME</a>:</div>
+<div class="line"><a name="l02425"></a><span class="lineno"> 2425</span>     D = <a class="code" href="classclang_1_1UnresolvedUsingTypenameDecl.html#a42732dabf854bf5f39cecbd2b117a4cc">UnresolvedUsingTypenameDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02426"></a><span class="lineno"> 2426</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02427"></a><span class="lineno"> 2427</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda0be36518ee3508d58f57e79cd4f3d422" title="A CXXRecordDecl record.">DECL_CXX_RECORD</a>:</div>
+<div class="line"><a name="l02428"></a><span class="lineno"> 2428</span>     D = <a class="code" href="classclang_1_1CXXRecordDecl.html#a4554e2a2ad30319017d48bf3c0e09f0b">CXXRecordDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02429"></a><span class="lineno"> 2429</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02430"></a><span class="lineno"> 2430</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdac5ac3305af665d429e087d64d552ab2b" title="A CXXMethodDecl record.">DECL_CXX_METHOD</a>:</div>
+<div class="line"><a name="l02431"></a><span class="lineno"> 2431</span>     D = <a class="code" href="classclang_1_1CXXMethodDecl.html#a2cdf03e23a50fa928671685a6bde554c">CXXMethodDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02432"></a><span class="lineno"> 2432</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02433"></a><span class="lineno"> 2433</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda5e014c2f3e11b717c7d823a0056a112d" title="A CXXConstructorDecl record.">DECL_CXX_CONSTRUCTOR</a>:</div>
+<div class="line"><a name="l02434"></a><span class="lineno"> 2434</span>     D = <a class="code" href="classclang_1_1CXXConstructorDecl.html#addcd8c6c80e006c8f017d9af005467c6">CXXConstructorDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02435"></a><span class="lineno"> 2435</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02436"></a><span class="lineno"> 2436</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdad7b9da85abdab5479d659b52d73d8470" title="A CXXDestructorDecl record.">DECL_CXX_DESTRUCTOR</a>:</div>
+<div class="line"><a name="l02437"></a><span class="lineno"> 2437</span>     D = <a class="code" href="classclang_1_1CXXDestructorDecl.html#adeb4428f7e2e0c94264129ddf789cabc">CXXDestructorDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02438"></a><span class="lineno"> 2438</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02439"></a><span class="lineno"> 2439</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda5f8545610ce81e63b47fed439ea6d4f9" title="A CXXConversionDecl record.">DECL_CXX_CONVERSION</a>:</div>
+<div class="line"><a name="l02440"></a><span class="lineno"> 2440</span>     D = <a class="code" href="classclang_1_1CXXConversionDecl.html#adef5397c41ebccbc1c0bfba16c4358ab">CXXConversionDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02441"></a><span class="lineno"> 2441</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02442"></a><span class="lineno"> 2442</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda3990274a16f9fb97491db7fb9e01c670" title="An AccessSpecDecl record.">DECL_ACCESS_SPEC</a>:</div>
+<div class="line"><a name="l02443"></a><span class="lineno"> 2443</span>     D = <a class="code" href="classclang_1_1AccessSpecDecl.html#a67801ce6d65fbe1e949d470c65487e3c">AccessSpecDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02444"></a><span class="lineno"> 2444</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02445"></a><span class="lineno"> 2445</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdac27c78d9d3b5ddfbe725823297959c7b" title="A FriendDecl record.">DECL_FRIEND</a>:</div>
+<div class="line"><a name="l02446"></a><span class="lineno"> 2446</span>     D = <a class="code" href="classclang_1_1FriendDecl.html#acfef29069360c2b5d9c2310218190ec0">FriendDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID, Record[Idx++]);</div>
+<div class="line"><a name="l02447"></a><span class="lineno"> 2447</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02448"></a><span class="lineno"> 2448</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdabcd82d8fac55480ad52e08aee7ccc9b9" title="A FriendTemplateDecl record.">DECL_FRIEND_TEMPLATE</a>:</div>
+<div class="line"><a name="l02449"></a><span class="lineno"> 2449</span>     D = <a class="code" href="classclang_1_1FriendTemplateDecl.html#aa64646bc5afdd07002cb54b01b073233">FriendTemplateDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02450"></a><span class="lineno"> 2450</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02451"></a><span class="lineno"> 2451</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdaddf901f5899e3d84bb0c46bdd2d5e0b6" title="A ClassTemplateDecl record.">DECL_CLASS_TEMPLATE</a>:</div>
+<div class="line"><a name="l02452"></a><span class="lineno"> 2452</span>     D = <a class="code" href="classclang_1_1ClassTemplateDecl.html#a55ed7e9547ab37ca1a2edb2eb95aebc4" title="Create an empty class template node.">ClassTemplateDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02453"></a><span class="lineno"> 2453</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02454"></a><span class="lineno"> 2454</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda50c0ee0699a40d0812832aab60f54fb8" title="A ClassTemplateSpecializationDecl record.">DECL_CLASS_TEMPLATE_SPECIALIZATION</a>:</div>
+<div class="line"><a name="l02455"></a><span class="lineno"> 2455</span>     D = <a class="code" href="classclang_1_1ClassTemplateSpecializationDecl.html#a271fe7b35317638cfa07ece318c20ed6">ClassTemplateSpecializationDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02456"></a><span class="lineno"> 2456</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02457"></a><span class="lineno"> 2457</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdaf82863a157f36e650fa3980583ff0a92" title="A ClassTemplatePartialSpecializationDecl record.">DECL_CLASS_TEMPLATE_PARTIAL_SPECIALIZATION</a>:</div>
+<div class="line"><a name="l02458"></a><span class="lineno"> 2458</span>     D = <a class="code" href="classclang_1_1ClassTemplatePartialSpecializationDecl.html#ae7fbfdee13277739cb10a5555ca3d81b">ClassTemplatePartialSpecializationDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02459"></a><span class="lineno"> 2459</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02460"></a><span class="lineno"> 2460</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdaf028c95ad16e759cf48a2acbd4948786" title="A VarTemplateDecl record.">DECL_VAR_TEMPLATE</a>:</div>
+<div class="line"><a name="l02461"></a><span class="lineno"> 2461</span>     D = <a class="code" href="classclang_1_1VarTemplateDecl.html#aeeba6879a6a569148dd0a614b8798581" title="Create an empty variable template node.">VarTemplateDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02462"></a><span class="lineno"> 2462</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02463"></a><span class="lineno"> 2463</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdaa5b1a183a61933cb343d1b9a5646bdea" title="A VarTemplateSpecializationDecl record.">DECL_VAR_TEMPLATE_SPECIALIZATION</a>:</div>
+<div class="line"><a name="l02464"></a><span class="lineno"> 2464</span>     D = <a class="code" href="classclang_1_1VarTemplateSpecializationDecl.html#af5b09cce835bc8952a9f372072a5911d">VarTemplateSpecializationDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02465"></a><span class="lineno"> 2465</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02466"></a><span class="lineno"> 2466</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda102c06473f86dfa837395febaf1d30da" title="A VarTemplatePartialSpecializationDecl record.">DECL_VAR_TEMPLATE_PARTIAL_SPECIALIZATION</a>:</div>
+<div class="line"><a name="l02467"></a><span class="lineno"> 2467</span>     D = <a class="code" href="classclang_1_1VarTemplatePartialSpecializationDecl.html#aa2245407b18bd08f8efaf7f348f360a4">VarTemplatePartialSpecializationDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02468"></a><span class="lineno"> 2468</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02469"></a><span class="lineno"> 2469</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda7fc5394d3fdf01a12bef3fe8f1150b0d" title="A ClassScopeFunctionSpecializationDecl record a class scope function specialization. (Microsoft extension).">DECL_CLASS_SCOPE_FUNCTION_SPECIALIZATION</a>:</div>
+<div class="line"><a name="l02470"></a><span class="lineno"> 2470</span>     D = <a class="code" href="classclang_1_1ClassScopeFunctionSpecializationDecl.html#abdc06543f70b1cf563510a5da413a097">ClassScopeFunctionSpecializationDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02471"></a><span class="lineno"> 2471</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02472"></a><span class="lineno"> 2472</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda4fa76ad6349893ed73ae76a98443b938" title="A FunctionTemplateDecl record.">DECL_FUNCTION_TEMPLATE</a>:</div>
+<div class="line"><a name="l02473"></a><span class="lineno"> 2473</span>     D = <a class="code" href="classclang_1_1FunctionTemplateDecl.html#a269ee53636f099b61566e1280ed9b909" title="Create an empty function template node.">FunctionTemplateDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02474"></a><span class="lineno"> 2474</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02475"></a><span class="lineno"> 2475</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdaa4cf8077e30fcd491a0f13bfe0f14c78" title="A TemplateTypeParmDecl record.">DECL_TEMPLATE_TYPE_PARM</a>:</div>
+<div class="line"><a name="l02476"></a><span class="lineno"> 2476</span>     D = <a class="code" href="classclang_1_1TemplateTypeParmDecl.html#a8f4a217051294d2b8951bbd880f7f05e">TemplateTypeParmDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02477"></a><span class="lineno"> 2477</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02478"></a><span class="lineno"> 2478</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda6bad0d6d72827a5f9190ff7809c4ed32" title="A NonTypeTemplateParmDecl record.">DECL_NON_TYPE_TEMPLATE_PARM</a>:</div>
+<div class="line"><a name="l02479"></a><span class="lineno"> 2479</span>     D = <a class="code" href="classclang_1_1NonTypeTemplateParmDecl.html#ac71742db87d7d6100e000b0dc5d9665f">NonTypeTemplateParmDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02480"></a><span class="lineno"> 2480</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02481"></a><span class="lineno"> 2481</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdabd86eb9aadb4a00eef20646f83eee97b" title="A NonTypeTemplateParmDecl record that stores an expanded non-type template parameter pack...">DECL_EXPANDED_NON_TYPE_TEMPLATE_PARM_PACK</a>:</div>
+<div class="line"><a name="l02482"></a><span class="lineno"> 2482</span>     D = <a class="code" href="classclang_1_1NonTypeTemplateParmDecl.html#ac71742db87d7d6100e000b0dc5d9665f">NonTypeTemplateParmDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID, Record[Idx++]);</div>
+<div class="line"><a name="l02483"></a><span class="lineno"> 2483</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02484"></a><span class="lineno"> 2484</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda29c1244e56ca7a593e4ac12af0d1b68c" title="A TemplateTemplateParmDecl record.">DECL_TEMPLATE_TEMPLATE_PARM</a>:</div>
+<div class="line"><a name="l02485"></a><span class="lineno"> 2485</span>     D = <a class="code" href="classclang_1_1TemplateTemplateParmDecl.html#a3623003fb96a8e93fac3ae72e7fb60b9">TemplateTemplateParmDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02486"></a><span class="lineno"> 2486</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02487"></a><span class="lineno"> 2487</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda42c929aaeb5962b22a0a5b4b5cc417f4" title="A TemplateTemplateParmDecl record that stores an expanded template template parameter pack...">DECL_EXPANDED_TEMPLATE_TEMPLATE_PARM_PACK</a>:</div>
+<div class="line"><a name="l02488"></a><span class="lineno"> 2488</span>     D = <a class="code" href="classclang_1_1TemplateTemplateParmDecl.html#a3623003fb96a8e93fac3ae72e7fb60b9">TemplateTemplateParmDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID,</div>
+<div class="line"><a name="l02489"></a><span class="lineno"> 2489</span>                                                      Record[Idx++]);</div>
+<div class="line"><a name="l02490"></a><span class="lineno"> 2490</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02491"></a><span class="lineno"> 2491</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda8aacb015b4b12c7653862fb1101e9c6e" title="A TypeAliasTemplateDecl record.">DECL_TYPE_ALIAS_TEMPLATE</a>:</div>
+<div class="line"><a name="l02492"></a><span class="lineno"> 2492</span>     D = <a class="code" href="classclang_1_1TypeAliasTemplateDecl.html#a34e1e5dee240b65543d44debdbc57bbd" title="Create an empty alias template node.">TypeAliasTemplateDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02493"></a><span class="lineno"> 2493</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02494"></a><span class="lineno"> 2494</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda25d91d05124c41f0df560b04150fcd99" title="A StaticAssertDecl record.">DECL_STATIC_ASSERT</a>:</div>
+<div class="line"><a name="l02495"></a><span class="lineno"> 2495</span>     D = <a class="code" href="classclang_1_1StaticAssertDecl.html#ae609d56d513fb15057f4f8e452eead54">StaticAssertDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02496"></a><span class="lineno"> 2496</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02497"></a><span class="lineno"> 2497</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdad671fb3a1248ff419a78b03de2627ff2" title="A ObjCMethodDecl record.">DECL_OBJC_METHOD</a>:</div>
+<div class="line"><a name="l02498"></a><span class="lineno"> 2498</span>     D = <a class="code" href="classclang_1_1ObjCMethodDecl.html#afd5393fba1f63f164dc742a3c02f2b43">ObjCMethodDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02499"></a><span class="lineno"> 2499</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02500"></a><span class="lineno"> 2500</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdaef76e58559ff67edde439d11659799a1" title="A ObjCInterfaceDecl record.">DECL_OBJC_INTERFACE</a>:</div>
+<div class="line"><a name="l02501"></a><span class="lineno"> 2501</span>     D = <a class="code" href="classclang_1_1ObjCInterfaceDecl.html#abbeff64a8458585bc518b20ef87cdeff">ObjCInterfaceDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02502"></a><span class="lineno"> 2502</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02503"></a><span class="lineno"> 2503</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdae7b40f478012ac8c54e85b15e3f554a0" title="A ObjCIvarDecl record.">DECL_OBJC_IVAR</a>:</div>
+<div class="line"><a name="l02504"></a><span class="lineno"> 2504</span>     D = <a class="code" href="classclang_1_1ObjCIvarDecl.html#acbf3982e2ec4210ed1c9af06114cac4e">ObjCIvarDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02505"></a><span class="lineno"> 2505</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02506"></a><span class="lineno"> 2506</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdaa2d8a7ed3305a60642923457f00342a4" title="A ObjCProtocolDecl record.">DECL_OBJC_PROTOCOL</a>:</div>
+<div class="line"><a name="l02507"></a><span class="lineno"> 2507</span>     D = <a class="code" href="classclang_1_1ObjCProtocolDecl.html#a9e9ee9e93033c3b4b7fb5ff5d6795f2b">ObjCProtocolDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02508"></a><span class="lineno"> 2508</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02509"></a><span class="lineno"> 2509</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdac0374c2338d0b6d7f6b89e53f5cb7e99" title="A ObjCAtDefsFieldDecl record.">DECL_OBJC_AT_DEFS_FIELD</a>:</div>
+<div class="line"><a name="l02510"></a><span class="lineno"> 2510</span>     D = <a class="code" href="classclang_1_1ObjCAtDefsFieldDecl.html#aa689ffdaea4db772267136cdfe589597">ObjCAtDefsFieldDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02511"></a><span class="lineno"> 2511</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02512"></a><span class="lineno"> 2512</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda9d2bade248d45ed77a08e8e67d672f5c" title="A ObjCCategoryDecl record.">DECL_OBJC_CATEGORY</a>:</div>
+<div class="line"><a name="l02513"></a><span class="lineno"> 2513</span>     D = <a class="code" href="classclang_1_1ObjCCategoryDecl.html#a1810712ccce2a735345493c0d3c1756a">ObjCCategoryDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02514"></a><span class="lineno"> 2514</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02515"></a><span class="lineno"> 2515</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda3aa3dbb4e9ac94effc9e5387c29cb90d" title="A ObjCCategoryImplDecl record.">DECL_OBJC_CATEGORY_IMPL</a>:</div>
+<div class="line"><a name="l02516"></a><span class="lineno"> 2516</span>     D = <a class="code" href="classclang_1_1ObjCCategoryImplDecl.html#a0ff70c6bf23e2ddd8c398b98fe5842a8">ObjCCategoryImplDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02517"></a><span class="lineno"> 2517</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02518"></a><span class="lineno"> 2518</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdaa78f787c020e807d2d898c6ed5b0aec7" title="A ObjCImplementationDecl record.">DECL_OBJC_IMPLEMENTATION</a>:</div>
+<div class="line"><a name="l02519"></a><span class="lineno"> 2519</span>     D = <a class="code" href="classclang_1_1ObjCImplementationDecl.html#ab70444f7a24a9bef16d1c8386137e2dd">ObjCImplementationDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02520"></a><span class="lineno"> 2520</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02521"></a><span class="lineno"> 2521</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdab5f2312d906173ef82ae105eb0e37b28" title="A ObjCCompatibleAliasDecl record.">DECL_OBJC_COMPATIBLE_ALIAS</a>:</div>
+<div class="line"><a name="l02522"></a><span class="lineno"> 2522</span>     D = <a class="code" href="classclang_1_1ObjCCompatibleAliasDecl.html#ad356f35e7c23d974bd7e50c1675538c4">ObjCCompatibleAliasDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02523"></a><span class="lineno"> 2523</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02524"></a><span class="lineno"> 2524</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdaea4b9b30a65f8ddf318618ba75badd03" title="A ObjCPropertyDecl record.">DECL_OBJC_PROPERTY</a>:</div>
+<div class="line"><a name="l02525"></a><span class="lineno"> 2525</span>     D = <a class="code" href="classclang_1_1ObjCPropertyDecl.html#a72ff55fdb4d2d99f5c71c7e66c42b29b">ObjCPropertyDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02526"></a><span class="lineno"> 2526</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02527"></a><span class="lineno"> 2527</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdafd181d330770c596655a55cd71b3d3b1" title="A ObjCPropertyImplDecl record.">DECL_OBJC_PROPERTY_IMPL</a>:</div>
+<div class="line"><a name="l02528"></a><span class="lineno"> 2528</span>     D = <a class="code" href="classclang_1_1ObjCPropertyImplDecl.html#a9e775d0003471e660b913b796ca71094">ObjCPropertyImplDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02529"></a><span class="lineno"> 2529</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02530"></a><span class="lineno"> 2530</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda6120228ff3e758994f18127141c92776" title="A FieldDecl record.">DECL_FIELD</a>:</div>
+<div class="line"><a name="l02531"></a><span class="lineno"> 2531</span>     D = <a class="code" href="classclang_1_1FieldDecl.html#a9949354587c0b176f757318cb3ffb933">FieldDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02532"></a><span class="lineno"> 2532</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02533"></a><span class="lineno"> 2533</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda264c6686da8818d66c46468494c53a38" title="A IndirectFieldDecl record.">DECL_INDIRECTFIELD</a>:</div>
+<div class="line"><a name="l02534"></a><span class="lineno"> 2534</span>     D = <a class="code" href="classclang_1_1IndirectFieldDecl.html#abde1d210b738f543e416c7ab016e1cdd">IndirectFieldDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02535"></a><span class="lineno"> 2535</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02536"></a><span class="lineno"> 2536</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda9e384c28f844c88209addf1f19313b93" title="A VarDecl record.">DECL_VAR</a>:</div>
+<div class="line"><a name="l02537"></a><span class="lineno"> 2537</span>     D = <a class="code" href="classclang_1_1VarDecl.html#a4d91a2a3b74506cfdfc7f287b8281c13">VarDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02538"></a><span class="lineno"> 2538</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02539"></a><span class="lineno"> 2539</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdac13bfc8bb173049dae77fd26f64ef2e7" title="An ImplicitParamDecl record.">DECL_IMPLICIT_PARAM</a>:</div>
+<div class="line"><a name="l02540"></a><span class="lineno"> 2540</span>     D = <a class="code" href="classclang_1_1ImplicitParamDecl.html#a2ae2043429d25db57fce2b25a569b4df">ImplicitParamDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02541"></a><span class="lineno"> 2541</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02542"></a><span class="lineno"> 2542</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda41b4f032561d1c9e5ce9cab230a10873" title="A ParmVarDecl record.">DECL_PARM_VAR</a>:</div>
+<div class="line"><a name="l02543"></a><span class="lineno"> 2543</span>     D = <a class="code" href="classclang_1_1ParmVarDecl.html#a955c86fbb020d8077093b6653dc059a0">ParmVarDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02544"></a><span class="lineno"> 2544</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02545"></a><span class="lineno"> 2545</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda59169ddb05fdadf4f01d076ad022c230" title="A FileScopeAsmDecl record.">DECL_FILE_SCOPE_ASM</a>:</div>
+<div class="line"><a name="l02546"></a><span class="lineno"> 2546</span>     D = <a class="code" href="classclang_1_1FileScopeAsmDecl.html#ad534b6063c9fb6ce94756eb1043a710e">FileScopeAsmDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02547"></a><span class="lineno"> 2547</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02548"></a><span class="lineno"> 2548</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda7fe348c25ed39f51854ad19638ad47f6" title="A BlockDecl record.">DECL_BLOCK</a>:</div>
+<div class="line"><a name="l02549"></a><span class="lineno"> 2549</span>     D = <a class="code" href="classclang_1_1BlockDecl.html#a7cea9a3eed56ebe7c666914f9f017020">BlockDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02550"></a><span class="lineno"> 2550</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02551"></a><span class="lineno"> 2551</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda12a623153683addf39e3f7ab76436e7f" title="A MSPropertyDecl record.">DECL_MS_PROPERTY</a>:</div>
+<div class="line"><a name="l02552"></a><span class="lineno"> 2552</span>     D = <a class="code" href="classclang_1_1MSPropertyDecl.html#ac67165d2134f757614a11c1d50906b78">MSPropertyDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02553"></a><span class="lineno"> 2553</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02554"></a><span class="lineno"> 2554</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda084cea238d9e0a5c310a62c199af9001" title="A CapturedDecl record.">DECL_CAPTURED</a>:</div>
+<div class="line"><a name="l02555"></a><span class="lineno"> 2555</span>     D = <a class="code" href="classclang_1_1CapturedDecl.html#a319e1ad050f9e36ab41f686bde1a84d5">CapturedDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID, Record[Idx++]);</div>
+<div class="line"><a name="l02556"></a><span class="lineno"> 2556</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02557"></a><span class="lineno"> 2557</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda08f7f5d6d4c5d5f058ffa092bf90c1b4" title="A record containing CXXBaseSpecifiers.">DECL_CXX_BASE_SPECIFIERS</a>:</div>
+<div class="line"><a name="l02558"></a><span class="lineno"> 2558</span>     Error(<span class="stringliteral">"attempt to read a C++ base-specifier record as a declaration"</span>);</div>
+<div class="line"><a name="l02559"></a><span class="lineno"> 2559</span>     <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l02560"></a><span class="lineno"> 2560</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda30c7333204d4e379c6015a3b2e1b1b3d" title="An ImportDecl recording a module import.">DECL_IMPORT</a>:</div>
+<div class="line"><a name="l02561"></a><span class="lineno"> 2561</span>     <span class="comment">// Note: last entry of the ImportDecl record is the number of stored source </span></div>
+<div class="line"><a name="l02562"></a><span class="lineno"> 2562</span>     <span class="comment">// locations.</span></div>
+<div class="line"><a name="l02563"></a><span class="lineno"> 2563</span>     D = <a class="code" href="classclang_1_1ImportDecl.html#a54121cfad37d8444d30cd77692e59288" title="Create a new, deserialized module import declaration.">ImportDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID, Record.back());</div>
+<div class="line"><a name="l02564"></a><span class="lineno"> 2564</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02565"></a><span class="lineno"> 2565</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdad46fdf16abd1ee76cdd43d29a28f8e41" title="An OMPThreadPrivateDecl record.">DECL_OMP_THREADPRIVATE</a>:</div>
+<div class="line"><a name="l02566"></a><span class="lineno"> 2566</span>     D = <a class="code" href="classclang_1_1OMPThreadPrivateDecl.html#affc41c4d7ede8ef10ea0c5f299a51e0f">OMPThreadPrivateDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID, Record[Idx++]);</div>
+<div class="line"><a name="l02567"></a><span class="lineno"> 2567</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02568"></a><span class="lineno"> 2568</span>   <span class="keywordflow">case</span> <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda06ef62e07ff9ede63c5e139f6c0ae011" title="An EmptyDecl record.">DECL_EMPTY</a>:</div>
+<div class="line"><a name="l02569"></a><span class="lineno"> 2569</span>     D = <a class="code" href="classclang_1_1EmptyDecl.html#a71c64638ff072fde6e611ec558b360bc">EmptyDecl::CreateDeserialized</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, ID);</div>
+<div class="line"><a name="l02570"></a><span class="lineno"> 2570</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02571"></a><span class="lineno"> 2571</span>   }</div>
+<div class="line"><a name="l02572"></a><span class="lineno"> 2572</span> </div>
+<div class="line"><a name="l02573"></a><span class="lineno"> 2573</span>   assert(D && <span class="stringliteral">"Unknown declaration reading AST file"</span>);</div>
+<div class="line"><a name="l02574"></a><span class="lineno"> 2574</span>   LoadedDecl(Index, D);</div>
+<div class="line"><a name="l02575"></a><span class="lineno"> 2575</span>   <span class="comment">// Set the DeclContext before doing any deserialization, to make sure internal</span></div>
+<div class="line"><a name="l02576"></a><span class="lineno"> 2576</span>   <span class="comment">// calls to Decl::getASTContext() by Decl's methods will find the</span></div>
+<div class="line"><a name="l02577"></a><span class="lineno"> 2577</span>   <span class="comment">// TranslationUnitDecl without crashing.</span></div>
+<div class="line"><a name="l02578"></a><span class="lineno"> 2578</span>   D-><a class="code" href="classclang_1_1Decl.html#ada1b39fcda7fc270cf6e73da6a5d7e51">setDeclContext</a>(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>.<a class="code" href="classclang_1_1ASTContext.html#abd909fb01ef10cfd0244832a67b1dd64">getTranslationUnitDecl</a>());</div>
+<div class="line"><a name="l02579"></a><span class="lineno"> 2579</span>   Reader.Visit(D);</div>
+<div class="line"><a name="l02580"></a><span class="lineno"> 2580</span> </div>
+<div class="line"><a name="l02581"></a><span class="lineno"> 2581</span>   <span class="comment">// If this declaration is also a declaration context, get the</span></div>
+<div class="line"><a name="l02582"></a><span class="lineno"> 2582</span>   <span class="comment">// offsets for its tables of lexical and visible declarations.</span></div>
+<div class="line"><a name="l02583"></a><span class="lineno"> 2583</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1DeclContext.html">DeclContext</a> *DC = dyn_cast<DeclContext>(D)) {</div>
+<div class="line"><a name="l02584"></a><span class="lineno"> 2584</span>     <span class="comment">// FIXME: This should really be</span></div>
+<div class="line"><a name="l02585"></a><span class="lineno"> 2585</span>     <span class="comment">//     DeclContext *LookupDC = DC->getPrimaryContext();</span></div>
+<div class="line"><a name="l02586"></a><span class="lineno"> 2586</span>     <span class="comment">// but that can walk the redeclaration chain, which might not work yet.</span></div>
+<div class="line"><a name="l02587"></a><span class="lineno"> 2587</span>     <a class="code" href="classclang_1_1DeclContext.html">DeclContext</a> *LookupDC = DC;</div>
+<div class="line"><a name="l02588"></a><span class="lineno"> 2588</span>     <span class="keywordflow">if</span> (isa<NamespaceDecl>(DC))</div>
+<div class="line"><a name="l02589"></a><span class="lineno"> 2589</span>       LookupDC = DC-><a class="code" href="classclang_1_1DeclContext.html#ac3368ad7389098f8fed5c5d346b77445">getPrimaryContext</a>();</div>
+<div class="line"><a name="l02590"></a><span class="lineno"> 2590</span>     std::pair<uint64_t, uint64_t> Offsets = Reader.VisitDeclContext(DC);</div>
+<div class="line"><a name="l02591"></a><span class="lineno"> 2591</span>     <span class="keywordflow">if</span> (Offsets.first || Offsets.second) {</div>
+<div class="line"><a name="l02592"></a><span class="lineno"> 2592</span>       <span class="keywordflow">if</span> (Offsets.first != 0)</div>
+<div class="line"><a name="l02593"></a><span class="lineno"> 2593</span>         DC-><a class="code" href="classclang_1_1DeclContext.html#a1c49f11a61c8a3597f68a0a3bf4fe4fa" title="State whether this DeclContext has external storage for declarations lexically in this context...">setHasExternalLexicalStorage</a>(<span class="keyword">true</span>);</div>
+<div class="line"><a name="l02594"></a><span class="lineno"> 2594</span>       <span class="keywordflow">if</span> (Offsets.second != 0)</div>
+<div class="line"><a name="l02595"></a><span class="lineno"> 2595</span>         LookupDC-><a class="code" href="classclang_1_1DeclContext.html#a40e076b186c48345ff6710c4e6af27fd" title="State whether this DeclContext has external storage for declarations visible in this context...">setHasExternalVisibleStorage</a>(<span class="keyword">true</span>);</div>
+<div class="line"><a name="l02596"></a><span class="lineno"> 2596</span>       <span class="keywordflow">if</span> (ReadDeclContextStorage(*Loc.F, DeclsCursor, Offsets, </div>
+<div class="line"><a name="l02597"></a><span class="lineno"> 2597</span>                                  Loc.F->DeclContextInfos[DC]))</div>
+<div class="line"><a name="l02598"></a><span class="lineno"> 2598</span>         <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l02599"></a><span class="lineno"> 2599</span>     }</div>
+<div class="line"><a name="l02600"></a><span class="lineno"> 2600</span> </div>
+<div class="line"><a name="l02601"></a><span class="lineno"> 2601</span>     <span class="comment">// Now add the pending visible updates for this decl context, if it has any.</span></div>
+<div class="line"><a name="l02602"></a><span class="lineno"> 2602</span>     DeclContextVisibleUpdatesPending::iterator I =</div>
+<div class="line"><a name="l02603"></a><span class="lineno"> 2603</span>         PendingVisibleUpdates.<a class="code" href="classclang_1_1ContinuousRangeMap.html#a06262ebf6496cd8a76111461eeb977f9">find</a>(ID);</div>
+<div class="line"><a name="l02604"></a><span class="lineno"> 2604</span>     <span class="keywordflow">if</span> (I != PendingVisibleUpdates.end()) {</div>
+<div class="line"><a name="l02605"></a><span class="lineno"> 2605</span>       <span class="comment">// There are updates. This means the context has external visible</span></div>
+<div class="line"><a name="l02606"></a><span class="lineno"> 2606</span>       <span class="comment">// storage, even if the original stored version didn't.</span></div>
+<div class="line"><a name="l02607"></a><span class="lineno"> 2607</span>       LookupDC-><a class="code" href="classclang_1_1DeclContext.html#a40e076b186c48345ff6710c4e6af27fd" title="State whether this DeclContext has external storage for declarations visible in this context...">setHasExternalVisibleStorage</a>(<span class="keyword">true</span>);</div>
+<div class="line"><a name="l02608"></a><span class="lineno"> 2608</span>       DeclContextVisibleUpdates &U = I->second;</div>
+<div class="line"><a name="l02609"></a><span class="lineno"> 2609</span>       <span class="keywordflow">for</span> (DeclContextVisibleUpdates::iterator UI = U.begin(), UE = U.end();</div>
+<div class="line"><a name="l02610"></a><span class="lineno"> 2610</span>            UI != UE; ++UI) {</div>
+<div class="line"><a name="l02611"></a><span class="lineno"> 2611</span>         <a class="code" href="structclang_1_1serialization_1_1DeclContextInfo.html" title="Information about the contents of a DeclContext.">DeclContextInfo</a> &Info = UI->second->DeclContextInfos[DC];</div>
+<div class="line"><a name="l02612"></a><span class="lineno"> 2612</span>         <span class="keyword">delete</span> Info.<a class="code" href="structclang_1_1serialization_1_1DeclContextInfo.html#a3dfe1cddd1056baefe2a417fc362b939">NameLookupTableData</a>;</div>
+<div class="line"><a name="l02613"></a><span class="lineno"> 2613</span>         Info.<a class="code" href="structclang_1_1serialization_1_1DeclContextInfo.html#a3dfe1cddd1056baefe2a417fc362b939">NameLookupTableData</a> = UI->first;</div>
+<div class="line"><a name="l02614"></a><span class="lineno"> 2614</span>       }</div>
+<div class="line"><a name="l02615"></a><span class="lineno"> 2615</span>       PendingVisibleUpdates.erase(I);</div>
+<div class="line"><a name="l02616"></a><span class="lineno"> 2616</span>     }</div>
+<div class="line"><a name="l02617"></a><span class="lineno"> 2617</span>   }</div>
+<div class="line"><a name="l02618"></a><span class="lineno"> 2618</span>   assert(Idx == Record.size());</div>
+<div class="line"><a name="l02619"></a><span class="lineno"> 2619</span> </div>
+<div class="line"><a name="l02620"></a><span class="lineno"> 2620</span>   <span class="comment">// Load any relevant update records.</span></div>
+<div class="line"><a name="l02621"></a><span class="lineno"> 2621</span>   loadDeclUpdateRecords(ID, D);</div>
+<div class="line"><a name="l02622"></a><span class="lineno"> 2622</span> </div>
+<div class="line"><a name="l02623"></a><span class="lineno"> 2623</span>   <span class="comment">// Load the categories after recursive loading is finished.</span></div>
+<div class="line"><a name="l02624"></a><span class="lineno"> 2624</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *Class = dyn_cast<ObjCInterfaceDecl>(D))</div>
+<div class="line"><a name="l02625"></a><span class="lineno"> 2625</span>     <span class="keywordflow">if</span> (Class->isThisDeclarationADefinition())</div>
+<div class="line"><a name="l02626"></a><span class="lineno"> 2626</span>       loadObjCCategories(ID, Class);</div>
+<div class="line"><a name="l02627"></a><span class="lineno"> 2627</span>   </div>
+<div class="line"><a name="l02628"></a><span class="lineno"> 2628</span>   <span class="comment">// If we have deserialized a declaration that has a definition the</span></div>
+<div class="line"><a name="l02629"></a><span class="lineno"> 2629</span>   <span class="comment">// AST consumer might need to know about, queue it.</span></div>
+<div class="line"><a name="l02630"></a><span class="lineno"> 2630</span>   <span class="comment">// We don't pass it to the consumer immediately because we may be in recursive</span></div>
+<div class="line"><a name="l02631"></a><span class="lineno"> 2631</span>   <span class="comment">// loading, and some declarations may still be initializing.</span></div>
+<div class="line"><a name="l02632"></a><span class="lineno"> 2632</span>   <span class="keywordflow">if</span> (<a class="code" href="ASTReaderDecl_8cpp.html#adbae827070d930dfd66fd0727edad349" title="Determine whether the consumer will be interested in seeing this declaration (via HandleTopLevelDecl)...">isConsumerInterestedIn</a>(D, Reader.hasPendingBody()))</div>
+<div class="line"><a name="l02633"></a><span class="lineno"> 2633</span>     InterestingDecls.push_back(D);</div>
+<div class="line"><a name="l02634"></a><span class="lineno"> 2634</span> </div>
+<div class="line"><a name="l02635"></a><span class="lineno"> 2635</span>   <span class="keywordflow">return</span> D;</div>
+<div class="line"><a name="l02636"></a><span class="lineno"> 2636</span> }</div>
+<div class="line"><a name="l02637"></a><span class="lineno"> 2637</span> </div>
+<div class="line"><a name="l02638"></a><span class="lineno"> 2638</span> <span class="keywordtype">void</span> ASTReader::loadDeclUpdateRecords(<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> ID, <a class="code" href="classclang_1_1Decl.html">Decl</a> *D) {</div>
+<div class="line"><a name="l02639"></a><span class="lineno"> 2639</span>   <span class="comment">// The declaration may have been modified by files later in the chain.</span></div>
+<div class="line"><a name="l02640"></a><span class="lineno"> 2640</span>   <span class="comment">// If this is the case, read the record containing the updates from each file</span></div>
+<div class="line"><a name="l02641"></a><span class="lineno"> 2641</span>   <span class="comment">// and pass it to ASTDeclReader to make the modifications.</span></div>
+<div class="line"><a name="l02642"></a><span class="lineno"> 2642</span>   DeclUpdateOffsetsMap::iterator UpdI = DeclUpdateOffsets.find(ID);</div>
+<div class="line"><a name="l02643"></a><span class="lineno"> 2643</span>   <span class="keywordflow">if</span> (UpdI != DeclUpdateOffsets.end()) {</div>
+<div class="line"><a name="l02644"></a><span class="lineno"> 2644</span>     FileOffsetsTy &UpdateOffsets = UpdI->second;</div>
+<div class="line"><a name="l02645"></a><span class="lineno"> 2645</span>     <span class="keywordflow">for</span> (FileOffsetsTy::iterator</div>
+<div class="line"><a name="l02646"></a><span class="lineno"> 2646</span>          I = UpdateOffsets.begin(), E = UpdateOffsets.end(); I != E; ++I) {</div>
+<div class="line"><a name="l02647"></a><span class="lineno"> 2647</span>       <a class="code" href="classclang_1_1serialization_1_1ModuleFile.html" title="Information about a module that has been loaded by the ASTReader.">ModuleFile</a> *F = I->first;</div>
+<div class="line"><a name="l02648"></a><span class="lineno"> 2648</span>       uint64_t <a class="code" href="namespaceclang_1_1io.html#ae0bbdf4a2b076935546931e52d48d29b">Offset</a> = I->second;</div>
+<div class="line"><a name="l02649"></a><span class="lineno"> 2649</span>       llvm::BitstreamCursor &Cursor = F-><a class="code" href="classclang_1_1serialization_1_1ModuleFile.html#a4bdcf720e00ca61c4431a32faa9a1a73">DeclsCursor</a>;</div>
+<div class="line"><a name="l02650"></a><span class="lineno"> 2650</span>       <a class="code" href="structclang_1_1SavedStreamPosition.html" title="Helper class that saves the current stream position and then restores it when destroyed.">SavedStreamPosition</a> SavedPosition(Cursor);</div>
+<div class="line"><a name="l02651"></a><span class="lineno"> 2651</span>       Cursor.JumpToBit(Offset);</div>
+<div class="line"><a name="l02652"></a><span class="lineno"> 2652</span>       RecordData Record;</div>
+<div class="line"><a name="l02653"></a><span class="lineno"> 2653</span>       <span class="keywordtype">unsigned</span> Code = Cursor.ReadCode();</div>
+<div class="line"><a name="l02654"></a><span class="lineno"> 2654</span>       <span class="keywordtype">unsigned</span> RecCode = Cursor.readRecord(Code, Record);</div>
+<div class="line"><a name="l02655"></a><span class="lineno"> 2655</span>       (void)RecCode;</div>
+<div class="line"><a name="l02656"></a><span class="lineno"> 2656</span>       assert(RecCode == <a class="code" href="namespaceclang_1_1serialization.html#acfdb121ee2c34694a68fc7a000dccf61a54fc4d5570f86ff7bab7b617d20e8439" title="Record of updates for a declaration that was modified after being deserialized.">DECL_UPDATES</a> && <span class="stringliteral">"Expected DECL_UPDATES record!"</span>);</div>
+<div class="line"><a name="l02657"></a><span class="lineno"> 2657</span>       </div>
+<div class="line"><a name="l02658"></a><span class="lineno"> 2658</span>       <span class="keywordtype">unsigned</span> Idx = 0;</div>
+<div class="line"><a name="l02659"></a><span class="lineno"> 2659</span>       <a class="code" href="classclang_1_1ASTDeclReader.html">ASTDeclReader</a> Reader(*<span class="keyword">this</span>, *F, ID, 0, Record, Idx);</div>
+<div class="line"><a name="l02660"></a><span class="lineno"> 2660</span>       Reader.UpdateDecl(D, *F, Record);</div>
+<div class="line"><a name="l02661"></a><span class="lineno"> 2661</span>     }</div>
+<div class="line"><a name="l02662"></a><span class="lineno"> 2662</span>   }</div>
+<div class="line"><a name="l02663"></a><span class="lineno"> 2663</span> }</div>
+<div class="line"><a name="l02664"></a><span class="lineno"> 2664</span> </div>
+<div class="line"><a name="l02665"></a><span class="lineno"> 2665</span> <span class="keyword">namespace </span>{</div>
+<div class="line"><a name="l02666"></a><span class="lineno"> 2666</span>   <span class="keyword">struct </span>CompareLocalRedeclarationsInfoToID {</div>
+<div class="line"><a name="l02667"></a><span class="lineno"> 2667</span>     <span class="keywordtype">bool</span> operator()(<span class="keyword">const</span> <a class="code" href="structclang_1_1serialization_1_1LocalRedeclarationsInfo.html" title="Describes the redeclarations of a declaration.">LocalRedeclarationsInfo</a> &<a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>, <a class="code" href="namespaceclang_1_1serialization.html#af3f9c681595246da4bb499bd210e7f36" title="An ID number that refers to a declaration in an AST file.">DeclID</a> Y) {</div>
+<div class="line"><a name="l02668"></a><span class="lineno"> 2668</span>       <span class="keywordflow">return</span> X.<a class="code" href="structclang_1_1serialization_1_1LocalRedeclarationsInfo.html#ade3dcbf5d6d3cfe094da606d9ccdc95e">FirstID</a> < Y;</div>
+<div class="line"><a name="l02669"></a><span class="lineno"> 2669</span>     }</div>
+<div class="line"><a name="l02670"></a><span class="lineno"> 2670</span> </div>
+<div class="line"><a name="l02671"></a><span class="lineno"> 2671</span>     <span class="keywordtype">bool</span> operator()(<a class="code" href="namespaceclang_1_1serialization.html#af3f9c681595246da4bb499bd210e7f36" title="An ID number that refers to a declaration in an AST file.">DeclID</a> <a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>, <span class="keyword">const</span> <a class="code" href="structclang_1_1serialization_1_1LocalRedeclarationsInfo.html" title="Describes the redeclarations of a declaration.">LocalRedeclarationsInfo</a> &Y) {</div>
+<div class="line"><a name="l02672"></a><span class="lineno"> 2672</span>       <span class="keywordflow">return</span> X < Y.<a class="code" href="structclang_1_1serialization_1_1LocalRedeclarationsInfo.html#ade3dcbf5d6d3cfe094da606d9ccdc95e">FirstID</a>;</div>
+<div class="line"><a name="l02673"></a><span class="lineno"> 2673</span>     }</div>
+<div class="line"><a name="l02674"></a><span class="lineno"> 2674</span> </div>
+<div class="line"><a name="l02675"></a><span class="lineno"> 2675</span>     <span class="keywordtype">bool</span> operator()(<span class="keyword">const</span> <a class="code" href="structclang_1_1serialization_1_1LocalRedeclarationsInfo.html" title="Describes the redeclarations of a declaration.">LocalRedeclarationsInfo</a> &<a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>, </div>
+<div class="line"><a name="l02676"></a><span class="lineno"> 2676</span>                     <span class="keyword">const</span> <a class="code" href="structclang_1_1serialization_1_1LocalRedeclarationsInfo.html" title="Describes the redeclarations of a declaration.">LocalRedeclarationsInfo</a> &Y) {</div>
+<div class="line"><a name="l02677"></a><span class="lineno"> 2677</span>       <span class="keywordflow">return</span> X.<a class="code" href="structclang_1_1serialization_1_1LocalRedeclarationsInfo.html#ade3dcbf5d6d3cfe094da606d9ccdc95e">FirstID</a> < Y.<a class="code" href="structclang_1_1serialization_1_1LocalRedeclarationsInfo.html#ade3dcbf5d6d3cfe094da606d9ccdc95e">FirstID</a>;</div>
+<div class="line"><a name="l02678"></a><span class="lineno"> 2678</span>     }</div>
+<div class="line"><a name="l02679"></a><span class="lineno"> 2679</span>     <span class="keywordtype">bool</span> operator()(<a class="code" href="namespaceclang_1_1serialization.html#af3f9c681595246da4bb499bd210e7f36" title="An ID number that refers to a declaration in an AST file.">DeclID</a> <a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>, <a class="code" href="namespaceclang_1_1serialization.html#af3f9c681595246da4bb499bd210e7f36" title="An ID number that refers to a declaration in an AST file.">DeclID</a> Y) {</div>
+<div class="line"><a name="l02680"></a><span class="lineno"> 2680</span>       <span class="keywordflow">return</span> X < Y;</div>
+<div class="line"><a name="l02681"></a><span class="lineno"> 2681</span>     }</div>
+<div class="line"><a name="l02682"></a><span class="lineno"> 2682</span>   };</div>
+<div class="line"><a name="l02683"></a><span class="lineno"> 2683</span>   <span class="comment"></span></div>
+<div class="line"><a name="l02684"></a><span class="lineno"> 2684</span> <span class="comment">  /// \brief Module visitor class that finds all of the redeclarations of a </span></div>
+<div class="line"><a name="l02685"></a><span class="lineno"> 2685</span> <span class="comment">  /// </span></div>
+<div class="line"><a name="l02686"></a><span class="lineno"> 2686</span> <span class="comment"></span>  <span class="keyword">class </span>RedeclChainVisitor {</div>
+<div class="line"><a name="l02687"></a><span class="lineno"> 2687</span>     <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="l02688"></a><span class="lineno"> 2688</span>     <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<DeclID></a> &SearchDecls;</div>
+<div class="line"><a name="l02689"></a><span class="lineno"> 2689</span>     llvm::SmallPtrSet<Decl *, 16> &Deserialized;</div>
+<div class="line"><a name="l02690"></a><span class="lineno"> 2690</span>     <a class="code" href="namespaceclang_1_1serialization.html#a55ccff09ed644b98b2b7c5915b601c14">GlobalDeclID</a> CanonID;</div>
+<div class="line"><a name="l02691"></a><span class="lineno"> 2691</span>     <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<Decl *, 4></a> Chain;</div>
+<div class="line"><a name="l02692"></a><span class="lineno"> 2692</span>     </div>
+<div class="line"><a name="l02693"></a><span class="lineno"> 2693</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l02694"></a><span class="lineno"> 2694</span>     RedeclChainVisitor(<a class="code" href="classclang_1_1ASTReader.html" title="Reads an AST files chain containing the contents of a translation unit.">ASTReader</a> &Reader, <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<DeclID></a> &SearchDecls,</div>
+<div class="line"><a name="l02695"></a><span class="lineno"> 2695</span>                        llvm::SmallPtrSet<Decl *, 16> &Deserialized,</div>
+<div class="line"><a name="l02696"></a><span class="lineno"> 2696</span>                        <a class="code" href="namespaceclang_1_1serialization.html#a55ccff09ed644b98b2b7c5915b601c14">GlobalDeclID</a> CanonID)</div>
+<div class="line"><a name="l02697"></a><span class="lineno"> 2697</span>       : Reader(Reader), SearchDecls(SearchDecls), Deserialized(Deserialized),</div>
+<div class="line"><a name="l02698"></a><span class="lineno"> 2698</span>         CanonID(CanonID) { </div>
+<div class="line"><a name="l02699"></a><span class="lineno"> 2699</span>       <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = SearchDecls.size(); I != N; ++I)</div>
+<div class="line"><a name="l02700"></a><span class="lineno"> 2700</span>         addToChain(Reader.<a class="code" href="classclang_1_1ASTReader.html#a24b7bae43c190e4d875a0718faa57f17" title="Resolve a declaration ID into a declaration, potentially building a new declaration.">GetDecl</a>(SearchDecls[I]));</div>
+<div class="line"><a name="l02701"></a><span class="lineno"> 2701</span>     }</div>
+<div class="line"><a name="l02702"></a><span class="lineno"> 2702</span>     </div>
+<div class="line"><a name="l02703"></a><span class="lineno"> 2703</span>     <span class="keyword">static</span> <span class="keywordtype">bool</span> visit(<a class="code" href="classclang_1_1serialization_1_1ModuleFile.html" title="Information about a module that has been loaded by the ASTReader.">ModuleFile</a> &M, <span class="keywordtype">bool</span> Preorder, <span class="keywordtype">void</span> *UserData) {</div>
+<div class="line"><a name="l02704"></a><span class="lineno"> 2704</span>       <span class="keywordflow">if</span> (Preorder)</div>
+<div class="line"><a name="l02705"></a><span class="lineno"> 2705</span>         <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l02706"></a><span class="lineno"> 2706</span>       </div>
+<div class="line"><a name="l02707"></a><span class="lineno"> 2707</span>       <span class="keywordflow">return</span> <span class="keyword">static_cast<</span>RedeclChainVisitor *<span class="keyword">></span>(UserData)->visit(M);</div>
+<div class="line"><a name="l02708"></a><span class="lineno"> 2708</span>     }</div>
+<div class="line"><a name="l02709"></a><span class="lineno"> 2709</span>     </div>
+<div class="line"><a name="l02710"></a><span class="lineno"> 2710</span>     <span class="keywordtype">void</span> addToChain(<a class="code" href="classclang_1_1Decl.html">Decl</a> *D) {</div>
+<div class="line"><a name="l02711"></a><span class="lineno"> 2711</span>       <span class="keywordflow">if</span> (!D)</div>
+<div class="line"><a name="l02712"></a><span class="lineno"> 2712</span>         <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l02713"></a><span class="lineno"> 2713</span>       </div>
+<div class="line"><a name="l02714"></a><span class="lineno"> 2714</span>       <span class="keywordflow">if</span> (Deserialized.erase(D))</div>
+<div class="line"><a name="l02715"></a><span class="lineno"> 2715</span>         Chain.push_back(D);</div>
+<div class="line"><a name="l02716"></a><span class="lineno"> 2716</span>     }</div>
+<div class="line"><a name="l02717"></a><span class="lineno"> 2717</span>     </div>
+<div class="line"><a name="l02718"></a><span class="lineno"> 2718</span>     <span class="keywordtype">void</span> searchForID(<a class="code" href="classclang_1_1serialization_1_1ModuleFile.html" title="Information about a module that has been loaded by the ASTReader.">ModuleFile</a> &M, <a class="code" href="namespaceclang_1_1serialization.html#a55ccff09ed644b98b2b7c5915b601c14">GlobalDeclID</a> GlobalID) {</div>
+<div class="line"><a name="l02719"></a><span class="lineno"> 2719</span>       <span class="comment">// Map global ID of the first declaration down to the local ID</span></div>
+<div class="line"><a name="l02720"></a><span class="lineno"> 2720</span>       <span class="comment">// used in this module file.</span></div>
+<div class="line"><a name="l02721"></a><span class="lineno"> 2721</span>       <a class="code" href="namespaceclang_1_1serialization.html#af3f9c681595246da4bb499bd210e7f36" title="An ID number that refers to a declaration in an AST file.">DeclID</a> ID = Reader.<a class="code" href="classclang_1_1ASTReader.html#ace07652b024ff9ffc769024279077c41" title="Map a global declaration ID into the declaration ID used to refer to this declaration within the give...">mapGlobalIDToModuleFileGlobalID</a>(M, GlobalID);</div>
+<div class="line"><a name="l02722"></a><span class="lineno"> 2722</span>       <span class="keywordflow">if</span> (!ID)</div>
+<div class="line"><a name="l02723"></a><span class="lineno"> 2723</span>         <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l02724"></a><span class="lineno"> 2724</span>       </div>
+<div class="line"><a name="l02725"></a><span class="lineno"> 2725</span>       <span class="comment">// Perform a binary search to find the local redeclarations for this</span></div>
+<div class="line"><a name="l02726"></a><span class="lineno"> 2726</span>       <span class="comment">// declaration (if any).</span></div>
+<div class="line"><a name="l02727"></a><span class="lineno"> 2727</span>       <span class="keyword">const</span> <a class="code" href="structclang_1_1serialization_1_1LocalRedeclarationsInfo.html" title="Describes the redeclarations of a declaration.">LocalRedeclarationsInfo</a> *Result</div>
+<div class="line"><a name="l02728"></a><span class="lineno"> 2728</span>         = std::lower_bound(M.<a class="code" href="classclang_1_1serialization_1_1ModuleFile.html#ad25793103c5b0c1b512f514a9f204282" title="Array of redeclaration chain location information within this module file, sorted by the first declar...">RedeclarationsMap</a>,</div>
+<div class="line"><a name="l02729"></a><span class="lineno"> 2729</span>                            M.<a class="code" href="classclang_1_1serialization_1_1ModuleFile.html#ad25793103c5b0c1b512f514a9f204282" title="Array of redeclaration chain location information within this module file, sorted by the first declar...">RedeclarationsMap</a> + M.<a class="code" href="classclang_1_1serialization_1_1ModuleFile.html#aeec91c090535b8b6775f7eb67cbef44c" title="The number of redeclaration info entries in RedeclarationsMap.">LocalNumRedeclarationsInMap</a>, </div>
+<div class="line"><a name="l02730"></a><span class="lineno"> 2730</span>                            ID, CompareLocalRedeclarationsInfoToID());</div>
+<div class="line"><a name="l02731"></a><span class="lineno"> 2731</span>       <span class="keywordflow">if</span> (Result == M.<a class="code" href="classclang_1_1serialization_1_1ModuleFile.html#ad25793103c5b0c1b512f514a9f204282" title="Array of redeclaration chain location information within this module file, sorted by the first declar...">RedeclarationsMap</a> + M.<a class="code" href="classclang_1_1serialization_1_1ModuleFile.html#aeec91c090535b8b6775f7eb67cbef44c" title="The number of redeclaration info entries in RedeclarationsMap.">LocalNumRedeclarationsInMap</a> ||</div>
+<div class="line"><a name="l02732"></a><span class="lineno"> 2732</span>           Result-><a class="code" href="structclang_1_1serialization_1_1LocalRedeclarationsInfo.html#ade3dcbf5d6d3cfe094da606d9ccdc95e">FirstID</a> != ID) {</div>
+<div class="line"><a name="l02733"></a><span class="lineno"> 2733</span>         <span class="comment">// If we have a previously-canonical singleton declaration that was </span></div>
+<div class="line"><a name="l02734"></a><span class="lineno"> 2734</span>         <span class="comment">// merged into another redeclaration chain, create a trivial chain</span></div>
+<div class="line"><a name="l02735"></a><span class="lineno"> 2735</span>         <span class="comment">// for this single declaration so that it will get wired into the </span></div>
+<div class="line"><a name="l02736"></a><span class="lineno"> 2736</span>         <span class="comment">// complete redeclaration chain.</span></div>
+<div class="line"><a name="l02737"></a><span class="lineno"> 2737</span>         <span class="keywordflow">if</span> (GlobalID != CanonID && </div>
+<div class="line"><a name="l02738"></a><span class="lineno"> 2738</span>             GlobalID - NUM_PREDEF_DECL_IDS >= M.<a class="code" href="classclang_1_1serialization_1_1ModuleFile.html#a0aa5dd6fb74fef27b397abba6016c0e3" title="Base declaration ID for declarations local to this module.">BaseDeclID</a> && </div>
+<div class="line"><a name="l02739"></a><span class="lineno"> 2739</span>             GlobalID - NUM_PREDEF_DECL_IDS < M.<a class="code" href="classclang_1_1serialization_1_1ModuleFile.html#a0aa5dd6fb74fef27b397abba6016c0e3" title="Base declaration ID for declarations local to this module.">BaseDeclID</a> + M.<a class="code" href="classclang_1_1serialization_1_1ModuleFile.html#ad162ef94b3bd68b721226cf90233bfed" title="The number of declarations in this AST file.">LocalNumDecls</a>) {</div>
+<div class="line"><a name="l02740"></a><span class="lineno"> 2740</span>           addToChain(Reader.<a class="code" href="classclang_1_1ASTReader.html#a24b7bae43c190e4d875a0718faa57f17" title="Resolve a declaration ID into a declaration, potentially building a new declaration.">GetDecl</a>(GlobalID));</div>
+<div class="line"><a name="l02741"></a><span class="lineno"> 2741</span>         }</div>
+<div class="line"><a name="l02742"></a><span class="lineno"> 2742</span>         </div>
+<div class="line"><a name="l02743"></a><span class="lineno"> 2743</span>         <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l02744"></a><span class="lineno"> 2744</span>       }</div>
+<div class="line"><a name="l02745"></a><span class="lineno"> 2745</span>       </div>
+<div class="line"><a name="l02746"></a><span class="lineno"> 2746</span>       <span class="comment">// Dig out all of the redeclarations.</span></div>
+<div class="line"><a name="l02747"></a><span class="lineno"> 2747</span>       <span class="keywordtype">unsigned</span> Offset = Result-><a class="code" href="structclang_1_1serialization_1_1LocalRedeclarationsInfo.html#a434a4176f70cb3eebbf54f1e810f7a8e">Offset</a>;</div>
+<div class="line"><a name="l02748"></a><span class="lineno"> 2748</span>       <span class="keywordtype">unsigned</span> N = M.<a class="code" href="classclang_1_1serialization_1_1ModuleFile.html#a1aed84dd1337886db2ad53e1bee7316f" title="The redeclaration chains for declarations local to this module file.">RedeclarationChains</a>[<a class="code" href="namespaceclang_1_1io.html#ae0bbdf4a2b076935546931e52d48d29b">Offset</a>];</div>
+<div class="line"><a name="l02749"></a><span class="lineno"> 2749</span>       M.<a class="code" href="classclang_1_1serialization_1_1ModuleFile.html#a1aed84dd1337886db2ad53e1bee7316f" title="The redeclaration chains for declarations local to this module file.">RedeclarationChains</a>[Offset++] = 0; <span class="comment">// Don't try to deserialize again</span></div>
+<div class="line"><a name="l02750"></a><span class="lineno"> 2750</span>       <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0; I != N; ++I)</div>
+<div class="line"><a name="l02751"></a><span class="lineno"> 2751</span>         addToChain(Reader.<a class="code" href="classclang_1_1ASTReader.html#a88750959ccdb87dde073bacc1c625972" title="Reads a declaration with the given local ID in the given module.">GetLocalDecl</a>(M, M.<a class="code" href="classclang_1_1serialization_1_1ModuleFile.html#a1aed84dd1337886db2ad53e1bee7316f" title="The redeclaration chains for declarations local to this module file.">RedeclarationChains</a>[Offset++]));</div>
+<div class="line"><a name="l02752"></a><span class="lineno"> 2752</span>     }</div>
+<div class="line"><a name="l02753"></a><span class="lineno"> 2753</span>     </div>
+<div class="line"><a name="l02754"></a><span class="lineno"> 2754</span>     <span class="keywordtype">bool</span> visit(<a class="code" href="classclang_1_1serialization_1_1ModuleFile.html" title="Information about a module that has been loaded by the ASTReader.">ModuleFile</a> &M) {</div>
+<div class="line"><a name="l02755"></a><span class="lineno"> 2755</span>       <span class="comment">// Visit each of the declarations.</span></div>
+<div class="line"><a name="l02756"></a><span class="lineno"> 2756</span>       <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = SearchDecls.size(); I != N; ++I)</div>
+<div class="line"><a name="l02757"></a><span class="lineno"> 2757</span>         searchForID(M, SearchDecls[I]);</div>
+<div class="line"><a name="l02758"></a><span class="lineno"> 2758</span>       <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l02759"></a><span class="lineno"> 2759</span>     }</div>
+<div class="line"><a name="l02760"></a><span class="lineno"> 2760</span>     </div>
+<div class="line"><a name="l02761"></a><span class="lineno"> 2761</span>     <a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<Decl *></a> getChain()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l02762"></a><span class="lineno"> 2762</span>       <span class="keywordflow">return</span> Chain;</div>
+<div class="line"><a name="l02763"></a><span class="lineno"> 2763</span>     }</div>
+<div class="line"><a name="l02764"></a><span class="lineno"> 2764</span>   };</div>
+<div class="line"><a name="l02765"></a><span class="lineno"> 2765</span> }</div>
+<div class="line"><a name="l02766"></a><span class="lineno"> 2766</span> </div>
+<div class="line"><a name="l02767"></a><span class="lineno"> 2767</span> <span class="keywordtype">void</span> ASTReader::loadPendingDeclChain(<a class="code" href="namespaceclang_1_1serialization.html#a55ccff09ed644b98b2b7c5915b601c14">serialization::GlobalDeclID</a> ID) {</div>
+<div class="line"><a name="l02768"></a><span class="lineno"> 2768</span>   <a class="code" href="classclang_1_1Decl.html">Decl</a> *D = GetDecl(ID);  </div>
+<div class="line"><a name="l02769"></a><span class="lineno"> 2769</span>   <a class="code" href="classclang_1_1Decl.html">Decl</a> *CanonDecl = D-><a class="code" href="classclang_1_1Decl.html#a8dc8c86b18af77eba9afe42e4f429fdc" title="Retrieves the "canonical" declaration of the given declaration.">getCanonicalDecl</a>();</div>
+<div class="line"><a name="l02770"></a><span class="lineno"> 2770</span>   </div>
+<div class="line"><a name="l02771"></a><span class="lineno"> 2771</span>   <span class="comment">// Determine the set of declaration IDs we'll be searching for.</span></div>
+<div class="line"><a name="l02772"></a><span class="lineno"> 2772</span>   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<DeclID, 1></a> SearchDecls;</div>
+<div class="line"><a name="l02773"></a><span class="lineno"> 2773</span>   <a class="code" href="namespaceclang_1_1serialization.html#a55ccff09ed644b98b2b7c5915b601c14">GlobalDeclID</a> CanonID = 0;</div>
+<div class="line"><a name="l02774"></a><span class="lineno"> 2774</span>   <span class="keywordflow">if</span> (D == CanonDecl) {</div>
+<div class="line"><a name="l02775"></a><span class="lineno"> 2775</span>     SearchDecls.push_back(ID); <span class="comment">// Always first.</span></div>
+<div class="line"><a name="l02776"></a><span class="lineno"> 2776</span>     CanonID = <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="l02777"></a><span class="lineno"> 2777</span>   }</div>
+<div class="line"><a name="l02778"></a><span class="lineno"> 2778</span>   MergedDeclsMap::iterator MergedPos = combineStoredMergedDecls(CanonDecl, ID);</div>
+<div class="line"><a name="l02779"></a><span class="lineno"> 2779</span>   <span class="keywordflow">if</span> (MergedPos != MergedDecls.end())</div>
+<div class="line"><a name="l02780"></a><span class="lineno"> 2780</span>     SearchDecls.append(MergedPos->second.begin(), MergedPos->second.end());</div>
+<div class="line"><a name="l02781"></a><span class="lineno"> 2781</span>   </div>
+<div class="line"><a name="l02782"></a><span class="lineno"> 2782</span>   <span class="comment">// Build up the list of redeclarations.</span></div>
+<div class="line"><a name="l02783"></a><span class="lineno"> 2783</span>   RedeclChainVisitor Visitor(*<span class="keyword">this</span>, SearchDecls, RedeclsDeserialized, CanonID);</div>
+<div class="line"><a name="l02784"></a><span class="lineno"> 2784</span>   ModuleMgr.visitDepthFirst(&RedeclChainVisitor::visit, &Visitor);</div>
+<div class="line"><a name="l02785"></a><span class="lineno"> 2785</span>   </div>
+<div class="line"><a name="l02786"></a><span class="lineno"> 2786</span>   <span class="comment">// Retrieve the chains.</span></div>
+<div class="line"><a name="l02787"></a><span class="lineno"> 2787</span>   <a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<Decl *></a> Chain = Visitor.getChain();</div>
+<div class="line"><a name="l02788"></a><span class="lineno"> 2788</span>   <span class="keywordflow">if</span> (Chain.empty())</div>
+<div class="line"><a name="l02789"></a><span class="lineno"> 2789</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l02790"></a><span class="lineno"> 2790</span>     </div>
+<div class="line"><a name="l02791"></a><span class="lineno"> 2791</span>   <span class="comment">// Hook up the chains.</span></div>
+<div class="line"><a name="l02792"></a><span class="lineno"> 2792</span>   <a class="code" href="classclang_1_1Decl.html">Decl</a> *MostRecent = CanonDecl-><a class="code" href="classclang_1_1Decl.html#abad5457703312ae51461e73497c033d4" title="Retrieve the most recent declaration that declares the same entity as this declaration (which may be ...">getMostRecentDecl</a>();</div>
+<div class="line"><a name="l02793"></a><span class="lineno"> 2793</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = Chain.size(); I != N; ++I) {</div>
+<div class="line"><a name="l02794"></a><span class="lineno"> 2794</span>     <span class="keywordflow">if</span> (Chain[I] == CanonDecl)</div>
+<div class="line"><a name="l02795"></a><span class="lineno"> 2795</span>       <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l02796"></a><span class="lineno"> 2796</span> </div>
+<div class="line"><a name="l02797"></a><span class="lineno"> 2797</span>     <a class="code" href="classclang_1_1ASTDeclReader.html#a1f8ef7b008952862daaf6ed002066d05">ASTDeclReader::attachPreviousDecl</a>(Chain[I], MostRecent);</div>
+<div class="line"><a name="l02798"></a><span class="lineno"> 2798</span>     MostRecent = Chain[I];</div>
+<div class="line"><a name="l02799"></a><span class="lineno"> 2799</span>   }</div>
+<div class="line"><a name="l02800"></a><span class="lineno"> 2800</span>   </div>
+<div class="line"><a name="l02801"></a><span class="lineno"> 2801</span>   <a class="code" href="classclang_1_1ASTDeclReader.html#a48713fd544aae522cd2c0ab0fb780cf8">ASTDeclReader::attachLatestDecl</a>(CanonDecl, MostRecent);  </div>
+<div class="line"><a name="l02802"></a><span class="lineno"> 2802</span> }</div>
+<div class="line"><a name="l02803"></a><span class="lineno"> 2803</span> </div>
+<div class="line"><a name="l02804"></a><span class="lineno"> 2804</span> <span class="keyword">namespace </span>{</div>
+<div class="line"><a name="l02805"></a><span class="lineno"> 2805</span>   <span class="keyword">struct </span>CompareObjCCategoriesInfo {</div>
+<div class="line"><a name="l02806"></a><span class="lineno"> 2806</span>     <span class="keywordtype">bool</span> operator()(<span class="keyword">const</span> <a class="code" href="structclang_1_1serialization_1_1ObjCCategoriesInfo.html" title="Describes the categories of an Objective-C class.">ObjCCategoriesInfo</a> &<a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>, <a class="code" href="namespaceclang_1_1serialization.html#af3f9c681595246da4bb499bd210e7f36" title="An ID number that refers to a declaration in an AST file.">DeclID</a> Y) {</div>
+<div class="line"><a name="l02807"></a><span class="lineno"> 2807</span>       <span class="keywordflow">return</span> X.<a class="code" href="structclang_1_1serialization_1_1ObjCCategoriesInfo.html#afc52cab1e63f316b8de517ea041c4064">DefinitionID</a> < Y;</div>
+<div class="line"><a name="l02808"></a><span class="lineno"> 2808</span>     }</div>
+<div class="line"><a name="l02809"></a><span class="lineno"> 2809</span>     </div>
+<div class="line"><a name="l02810"></a><span class="lineno"> 2810</span>     <span class="keywordtype">bool</span> operator()(<a class="code" href="namespaceclang_1_1serialization.html#af3f9c681595246da4bb499bd210e7f36" title="An ID number that refers to a declaration in an AST file.">DeclID</a> <a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>, <span class="keyword">const</span> <a class="code" href="structclang_1_1serialization_1_1ObjCCategoriesInfo.html" title="Describes the categories of an Objective-C class.">ObjCCategoriesInfo</a> &Y) {</div>
+<div class="line"><a name="l02811"></a><span class="lineno"> 2811</span>       <span class="keywordflow">return</span> X < Y.<a class="code" href="structclang_1_1serialization_1_1ObjCCategoriesInfo.html#afc52cab1e63f316b8de517ea041c4064">DefinitionID</a>;</div>
+<div class="line"><a name="l02812"></a><span class="lineno"> 2812</span>     }</div>
+<div class="line"><a name="l02813"></a><span class="lineno"> 2813</span>     </div>
+<div class="line"><a name="l02814"></a><span class="lineno"> 2814</span>     <span class="keywordtype">bool</span> operator()(<span class="keyword">const</span> <a class="code" href="structclang_1_1serialization_1_1ObjCCategoriesInfo.html" title="Describes the categories of an Objective-C class.">ObjCCategoriesInfo</a> &<a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>, </div>
+<div class="line"><a name="l02815"></a><span class="lineno"> 2815</span>                     <span class="keyword">const</span> <a class="code" href="structclang_1_1serialization_1_1ObjCCategoriesInfo.html" title="Describes the categories of an Objective-C class.">ObjCCategoriesInfo</a> &Y) {</div>
+<div class="line"><a name="l02816"></a><span class="lineno"> 2816</span>       <span class="keywordflow">return</span> X.<a class="code" href="structclang_1_1serialization_1_1ObjCCategoriesInfo.html#afc52cab1e63f316b8de517ea041c4064">DefinitionID</a> < Y.<a class="code" href="structclang_1_1serialization_1_1ObjCCategoriesInfo.html#afc52cab1e63f316b8de517ea041c4064">DefinitionID</a>;</div>
+<div class="line"><a name="l02817"></a><span class="lineno"> 2817</span>     }</div>
+<div class="line"><a name="l02818"></a><span class="lineno"> 2818</span>     <span class="keywordtype">bool</span> operator()(<a class="code" href="namespaceclang_1_1serialization.html#af3f9c681595246da4bb499bd210e7f36" title="An ID number that refers to a declaration in an AST file.">DeclID</a> <a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>, <a class="code" href="namespaceclang_1_1serialization.html#af3f9c681595246da4bb499bd210e7f36" title="An ID number that refers to a declaration in an AST file.">DeclID</a> Y) {</div>
+<div class="line"><a name="l02819"></a><span class="lineno"> 2819</span>       <span class="keywordflow">return</span> X < Y;</div>
+<div class="line"><a name="l02820"></a><span class="lineno"> 2820</span>     }</div>
+<div class="line"><a name="l02821"></a><span class="lineno"> 2821</span>   };</div>
+<div class="line"><a name="l02822"></a><span class="lineno"> 2822</span> <span class="comment"></span></div>
+<div class="line"><a name="l02823"></a><span class="lineno"> 2823</span> <span class="comment">  /// \brief Given an ObjC interface, goes through the modules and links to the</span></div>
+<div class="line"><a name="l02824"></a><span class="lineno"> 2824</span> <span class="comment">  /// interface all the categories for it.</span></div>
+<div class="line"><a name="l02825"></a><span class="lineno"> 2825</span> <span class="comment"></span>  <span class="keyword">class </span>ObjCCategoriesVisitor {</div>
+<div class="line"><a name="l02826"></a><span class="lineno"> 2826</span>     <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="l02827"></a><span class="lineno"> 2827</span>     <a class="code" href="namespaceclang_1_1serialization.html#a55ccff09ed644b98b2b7c5915b601c14">serialization::GlobalDeclID</a> InterfaceID;</div>
+<div class="line"><a name="l02828"></a><span class="lineno"> 2828</span>     <a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *Interface;</div>
+<div class="line"><a name="l02829"></a><span class="lineno"> 2829</span>     llvm::SmallPtrSet<ObjCCategoryDecl *, 16> &Deserialized;</div>
+<div class="line"><a name="l02830"></a><span class="lineno"> 2830</span>     <span class="keywordtype">unsigned</span> PreviousGeneration;</div>
+<div class="line"><a name="l02831"></a><span class="lineno"> 2831</span>     <a class="code" href="classclang_1_1ObjCCategoryDecl.html">ObjCCategoryDecl</a> *Tail;</div>
+<div class="line"><a name="l02832"></a><span class="lineno"> 2832</span>     llvm::DenseMap<DeclarationName, ObjCCategoryDecl *> NameCategoryMap;</div>
+<div class="line"><a name="l02833"></a><span class="lineno"> 2833</span>     </div>
+<div class="line"><a name="l02834"></a><span class="lineno"> 2834</span>     <span class="keywordtype">void</span> add(<a class="code" href="classclang_1_1ObjCCategoryDecl.html">ObjCCategoryDecl</a> *Cat) {</div>
+<div class="line"><a name="l02835"></a><span class="lineno"> 2835</span>       <span class="comment">// Only process each category once.</span></div>
+<div class="line"><a name="l02836"></a><span class="lineno"> 2836</span>       <span class="keywordflow">if</span> (!Deserialized.erase(Cat))</div>
+<div class="line"><a name="l02837"></a><span class="lineno"> 2837</span>         <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l02838"></a><span class="lineno"> 2838</span>       </div>
+<div class="line"><a name="l02839"></a><span class="lineno"> 2839</span>       <span class="comment">// Check for duplicate categories.</span></div>
+<div class="line"><a name="l02840"></a><span class="lineno"> 2840</span>       <span class="keywordflow">if</span> (Cat-><a class="code" href="classclang_1_1NamedDecl.html#a1e3e90455be89bb5c7c23640cbbd7153">getDeclName</a>()) {</div>
+<div class="line"><a name="l02841"></a><span class="lineno"> 2841</span>         <a class="code" href="classclang_1_1ObjCCategoryDecl.html">ObjCCategoryDecl</a> *&Existing = NameCategoryMap[Cat-><a class="code" href="classclang_1_1NamedDecl.html#a1e3e90455be89bb5c7c23640cbbd7153">getDeclName</a>()];</div>
+<div class="line"><a name="l02842"></a><span class="lineno"> 2842</span>         <span class="keywordflow">if</span> (Existing && </div>
+<div class="line"><a name="l02843"></a><span class="lineno"> 2843</span>             Reader.<a class="code" href="classclang_1_1ASTReader.html#a9689081df4d5bcec28627c41f7815968" title="Retrieve the module file that owns the given declaration, or NULL if the declaration is not from a mo...">getOwningModuleFile</a>(Existing) </div>
+<div class="line"><a name="l02844"></a><span class="lineno"> 2844</span>                                           != Reader.<a class="code" href="classclang_1_1ASTReader.html#a9689081df4d5bcec28627c41f7815968" title="Retrieve the module file that owns the given declaration, or NULL if the declaration is not from a mo...">getOwningModuleFile</a>(Cat)) {</div>
+<div class="line"><a name="l02845"></a><span class="lineno"> 2845</span>           <span class="comment">// FIXME: We should not warn for duplicates in diamond:</span></div>
+<div class="line"><a name="l02846"></a><span class="lineno"> 2846</span>           <span class="comment">//</span></div>
+<div class="line"><a name="l02847"></a><span class="lineno"> 2847</span>           <span class="comment">//   MT     //</span></div>
+<div class="line"><a name="l02848"></a><span class="lineno"> 2848</span>           <span class="comment">//  /  \    //</span></div>
+<div class="line"><a name="l02849"></a><span class="lineno"> 2849</span>           <span class="comment">// ML  MR   //</span></div>
+<div class="line"><a name="l02850"></a><span class="lineno"> 2850</span>           <span class="comment">//  \  /    //</span></div>
+<div class="line"><a name="l02851"></a><span class="lineno"> 2851</span>           <span class="comment">//   MB     //</span></div>
+<div class="line"><a name="l02852"></a><span class="lineno"> 2852</span>           <span class="comment">//</span></div>
+<div class="line"><a name="l02853"></a><span class="lineno"> 2853</span>           <span class="comment">// If there are duplicates in ML/MR, there will be warning when </span></div>
+<div class="line"><a name="l02854"></a><span class="lineno"> 2854</span>           <span class="comment">// creating MB *and* when importing MB. We should not warn when </span></div>
+<div class="line"><a name="l02855"></a><span class="lineno"> 2855</span>           <span class="comment">// importing.</span></div>
+<div class="line"><a name="l02856"></a><span class="lineno"> 2856</span>           Reader.<a class="code" href="classclang_1_1ASTReader.html#ae21ebf3e850d45150b29881dc7e5aee9" title="Report a diagnostic.">Diag</a>(Cat-><a class="code" href="classclang_1_1Decl.html#a2348196ac4e0b1d5ebb1859c31b99eac">getLocation</a>(), diag::warn_dup_category_def)</div>
+<div class="line"><a name="l02857"></a><span class="lineno"> 2857</span>             << Interface->getDeclName() << Cat-><a class="code" href="classclang_1_1NamedDecl.html#a1e3e90455be89bb5c7c23640cbbd7153">getDeclName</a>();</div>
+<div class="line"><a name="l02858"></a><span class="lineno"> 2858</span>           Reader.<a class="code" href="classclang_1_1ASTReader.html#ae21ebf3e850d45150b29881dc7e5aee9" title="Report a diagnostic.">Diag</a>(Existing-><a class="code" href="classclang_1_1Decl.html#a2348196ac4e0b1d5ebb1859c31b99eac">getLocation</a>(), diag::note_previous_definition);</div>
+<div class="line"><a name="l02859"></a><span class="lineno"> 2859</span>         } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!Existing) {</div>
+<div class="line"><a name="l02860"></a><span class="lineno"> 2860</span>           <span class="comment">// Record this category.</span></div>
+<div class="line"><a name="l02861"></a><span class="lineno"> 2861</span>           Existing = Cat;</div>
+<div class="line"><a name="l02862"></a><span class="lineno"> 2862</span>         }</div>
+<div class="line"><a name="l02863"></a><span class="lineno"> 2863</span>       }</div>
+<div class="line"><a name="l02864"></a><span class="lineno"> 2864</span>       </div>
+<div class="line"><a name="l02865"></a><span class="lineno"> 2865</span>       <span class="comment">// Add this category to the end of the chain.</span></div>
+<div class="line"><a name="l02866"></a><span class="lineno"> 2866</span>       <span class="keywordflow">if</span> (Tail)</div>
+<div class="line"><a name="l02867"></a><span class="lineno"> 2867</span>         <a class="code" href="classclang_1_1ASTDeclReader.html#a84cb2de639caa9d311c7cc06db2bc96f">ASTDeclReader::setNextObjCCategory</a>(Tail, Cat);</div>
+<div class="line"><a name="l02868"></a><span class="lineno"> 2868</span>       <span class="keywordflow">else</span></div>
+<div class="line"><a name="l02869"></a><span class="lineno"> 2869</span>         Interface->setCategoryListRaw(Cat);</div>
+<div class="line"><a name="l02870"></a><span class="lineno"> 2870</span>       Tail = Cat;</div>
+<div class="line"><a name="l02871"></a><span class="lineno"> 2871</span>     }</div>
+<div class="line"><a name="l02872"></a><span class="lineno"> 2872</span>     </div>
+<div class="line"><a name="l02873"></a><span class="lineno"> 2873</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l02874"></a><span class="lineno"> 2874</span>     ObjCCategoriesVisitor(<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="l02875"></a><span class="lineno"> 2875</span>                           <a class="code" href="namespaceclang_1_1serialization.html#a55ccff09ed644b98b2b7c5915b601c14">serialization::GlobalDeclID</a> InterfaceID,</div>
+<div class="line"><a name="l02876"></a><span class="lineno"> 2876</span>                           <a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *Interface,</div>
+<div class="line"><a name="l02877"></a><span class="lineno"> 2877</span>                         llvm::SmallPtrSet<ObjCCategoryDecl *, 16> &Deserialized,</div>
+<div class="line"><a name="l02878"></a><span class="lineno"> 2878</span>                           <span class="keywordtype">unsigned</span> PreviousGeneration)</div>
+<div class="line"><a name="l02879"></a><span class="lineno"> 2879</span>       : Reader(Reader), InterfaceID(InterfaceID), Interface(Interface),</div>
+<div class="line"><a name="l02880"></a><span class="lineno"> 2880</span>         Deserialized(Deserialized), PreviousGeneration(PreviousGeneration),</div>
+<div class="line"><a name="l02881"></a><span class="lineno"> 2881</span>         Tail(0) </div>
+<div class="line"><a name="l02882"></a><span class="lineno"> 2882</span>     {</div>
+<div class="line"><a name="l02883"></a><span class="lineno"> 2883</span>       <span class="comment">// Populate the name -> category map with the set of known categories.</span></div>
+<div class="line"><a name="l02884"></a><span class="lineno"> 2884</span>       <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1ObjCInterfaceDecl_1_1filtered__category__iterator.html" title="Iterator that walks over the list of categories, filtering out those that do not meet specific criter...">ObjCInterfaceDecl::known_categories_iterator</a></div>
+<div class="line"><a name="l02885"></a><span class="lineno"> 2885</span>              Cat = Interface-><a class="code" href="classclang_1_1ObjCInterfaceDecl.html#a36fc0feabb243927d8140fb5ff6f8600" title="Retrieve an iterator to the beginning of the known-categories list.">known_categories_begin</a>(),</div>
+<div class="line"><a name="l02886"></a><span class="lineno"> 2886</span>              CatEnd = Interface-><a class="code" href="classclang_1_1ObjCInterfaceDecl.html#a001b33c8d83209b1290f993b0ffcf077" title="Retrieve an iterator to the end of the known-categories list.">known_categories_end</a>();</div>
+<div class="line"><a name="l02887"></a><span class="lineno"> 2887</span>            Cat != CatEnd; ++Cat) {</div>
+<div class="line"><a name="l02888"></a><span class="lineno"> 2888</span>         <span class="keywordflow">if</span> (Cat-><a class="code" href="classclang_1_1NamedDecl.html#a1e3e90455be89bb5c7c23640cbbd7153">getDeclName</a>())</div>
+<div class="line"><a name="l02889"></a><span class="lineno"> 2889</span>           NameCategoryMap[Cat-><a class="code" href="classclang_1_1NamedDecl.html#a1e3e90455be89bb5c7c23640cbbd7153">getDeclName</a>()] = *Cat;</div>
+<div class="line"><a name="l02890"></a><span class="lineno"> 2890</span>         </div>
+<div class="line"><a name="l02891"></a><span class="lineno"> 2891</span>         <span class="comment">// Keep track of the tail of the category list.</span></div>
+<div class="line"><a name="l02892"></a><span class="lineno"> 2892</span>         Tail = *Cat;</div>
+<div class="line"><a name="l02893"></a><span class="lineno"> 2893</span>       }</div>
+<div class="line"><a name="l02894"></a><span class="lineno"> 2894</span>     }</div>
+<div class="line"><a name="l02895"></a><span class="lineno"> 2895</span> </div>
+<div class="line"><a name="l02896"></a><span class="lineno"> 2896</span>     <span class="keyword">static</span> <span class="keywordtype">bool</span> visit(<a class="code" href="classclang_1_1serialization_1_1ModuleFile.html" title="Information about a module that has been loaded by the ASTReader.">ModuleFile</a> &M, <span class="keywordtype">void</span> *UserData) {</div>
+<div class="line"><a name="l02897"></a><span class="lineno"> 2897</span>       <span class="keywordflow">return</span> <span class="keyword">static_cast<</span>ObjCCategoriesVisitor *<span class="keyword">></span>(UserData)->visit(M);</div>
+<div class="line"><a name="l02898"></a><span class="lineno"> 2898</span>     }</div>
+<div class="line"><a name="l02899"></a><span class="lineno"> 2899</span> </div>
+<div class="line"><a name="l02900"></a><span class="lineno"> 2900</span>     <span class="keywordtype">bool</span> visit(<a class="code" href="classclang_1_1serialization_1_1ModuleFile.html" title="Information about a module that has been loaded by the ASTReader.">ModuleFile</a> &M) {</div>
+<div class="line"><a name="l02901"></a><span class="lineno"> 2901</span>       <span class="comment">// If we've loaded all of the category information we care about from</span></div>
+<div class="line"><a name="l02902"></a><span class="lineno"> 2902</span>       <span class="comment">// this module file, we're done.</span></div>
+<div class="line"><a name="l02903"></a><span class="lineno"> 2903</span>       <span class="keywordflow">if</span> (M.<a class="code" href="classclang_1_1serialization_1_1ModuleFile.html#ad7c8f7bed99c36ef2c306571bffaf84d" title="The generation of which this module file is a part.">Generation</a> <= PreviousGeneration)</div>
+<div class="line"><a name="l02904"></a><span class="lineno"> 2904</span>         <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l02905"></a><span class="lineno"> 2905</span>       </div>
+<div class="line"><a name="l02906"></a><span class="lineno"> 2906</span>       <span class="comment">// Map global ID of the definition down to the local ID used in this </span></div>
+<div class="line"><a name="l02907"></a><span class="lineno"> 2907</span>       <span class="comment">// module file. If there is no such mapping, we'll find nothing here</span></div>
+<div class="line"><a name="l02908"></a><span class="lineno"> 2908</span>       <span class="comment">// (or in any module it imports).</span></div>
+<div class="line"><a name="l02909"></a><span class="lineno"> 2909</span>       <a class="code" href="namespaceclang_1_1serialization.html#af3f9c681595246da4bb499bd210e7f36" title="An ID number that refers to a declaration in an AST file.">DeclID</a> LocalID = Reader.<a class="code" href="classclang_1_1ASTReader.html#ace07652b024ff9ffc769024279077c41" title="Map a global declaration ID into the declaration ID used to refer to this declaration within the give...">mapGlobalIDToModuleFileGlobalID</a>(M, InterfaceID);</div>
+<div class="line"><a name="l02910"></a><span class="lineno"> 2910</span>       <span class="keywordflow">if</span> (!LocalID)</div>
+<div class="line"><a name="l02911"></a><span class="lineno"> 2911</span>         <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l02912"></a><span class="lineno"> 2912</span> </div>
+<div class="line"><a name="l02913"></a><span class="lineno"> 2913</span>       <span class="comment">// Perform a binary search to find the local redeclarations for this</span></div>
+<div class="line"><a name="l02914"></a><span class="lineno"> 2914</span>       <span class="comment">// declaration (if any).</span></div>
+<div class="line"><a name="l02915"></a><span class="lineno"> 2915</span>       <span class="keyword">const</span> <a class="code" href="structclang_1_1serialization_1_1ObjCCategoriesInfo.html" title="Describes the categories of an Objective-C class.">ObjCCategoriesInfo</a> *Result</div>
+<div class="line"><a name="l02916"></a><span class="lineno"> 2916</span>         = std::lower_bound(M.<a class="code" href="classclang_1_1serialization_1_1ModuleFile.html#a17d15143ac7f24ef9dd7609aecfd8c09" title="Array of category list location information within this module file, sorted by the definition ID...">ObjCCategoriesMap</a>,</div>
+<div class="line"><a name="l02917"></a><span class="lineno"> 2917</span>                            M.<a class="code" href="classclang_1_1serialization_1_1ModuleFile.html#a17d15143ac7f24ef9dd7609aecfd8c09" title="Array of category list location information within this module file, sorted by the definition ID...">ObjCCategoriesMap</a> + M.<a class="code" href="classclang_1_1serialization_1_1ModuleFile.html#a3bc5560640ad39afea240aa9f00622a5" title="The number of redeclaration info entries in ObjCCategoriesMap.">LocalNumObjCCategoriesInMap</a>, </div>
+<div class="line"><a name="l02918"></a><span class="lineno"> 2918</span>                            LocalID, CompareObjCCategoriesInfo());</div>
+<div class="line"><a name="l02919"></a><span class="lineno"> 2919</span>       <span class="keywordflow">if</span> (Result == M.<a class="code" href="classclang_1_1serialization_1_1ModuleFile.html#a17d15143ac7f24ef9dd7609aecfd8c09" title="Array of category list location information within this module file, sorted by the definition ID...">ObjCCategoriesMap</a> + M.<a class="code" href="classclang_1_1serialization_1_1ModuleFile.html#a3bc5560640ad39afea240aa9f00622a5" title="The number of redeclaration info entries in ObjCCategoriesMap.">LocalNumObjCCategoriesInMap</a> ||</div>
+<div class="line"><a name="l02920"></a><span class="lineno"> 2920</span>           Result-><a class="code" href="structclang_1_1serialization_1_1ObjCCategoriesInfo.html#afc52cab1e63f316b8de517ea041c4064">DefinitionID</a> != LocalID) {</div>
+<div class="line"><a name="l02921"></a><span class="lineno"> 2921</span>         <span class="comment">// We didn't find anything. If the class definition is in this module</span></div>
+<div class="line"><a name="l02922"></a><span class="lineno"> 2922</span>         <span class="comment">// file, then the module files it depends on cannot have any categories,</span></div>
+<div class="line"><a name="l02923"></a><span class="lineno"> 2923</span>         <span class="comment">// so suppress further lookup.</span></div>
+<div class="line"><a name="l02924"></a><span class="lineno"> 2924</span>         <span class="keywordflow">return</span> Reader.<a class="code" href="classclang_1_1ASTReader.html#a6edf4184a379baacbbb359c4b108198c" title="Returns true if global DeclID ID originated from module M.">isDeclIDFromModule</a>(InterfaceID, M);</div>
+<div class="line"><a name="l02925"></a><span class="lineno"> 2925</span>       }</div>
+<div class="line"><a name="l02926"></a><span class="lineno"> 2926</span>       </div>
+<div class="line"><a name="l02927"></a><span class="lineno"> 2927</span>       <span class="comment">// We found something. Dig out all of the categories.</span></div>
+<div class="line"><a name="l02928"></a><span class="lineno"> 2928</span>       <span class="keywordtype">unsigned</span> Offset = Result-><a class="code" href="structclang_1_1serialization_1_1ObjCCategoriesInfo.html#a299e803f4cb31758dc7acbc23ccb87f9">Offset</a>;</div>
+<div class="line"><a name="l02929"></a><span class="lineno"> 2929</span>       <span class="keywordtype">unsigned</span> N = M.<a class="code" href="classclang_1_1serialization_1_1ModuleFile.html#af8d606321dbb5b3755285ee2519246d7" title="The Objective-C category lists for categories known to this module.">ObjCCategories</a>[<a class="code" href="namespaceclang_1_1io.html#ae0bbdf4a2b076935546931e52d48d29b">Offset</a>];</div>
+<div class="line"><a name="l02930"></a><span class="lineno"> 2930</span>       M.<a class="code" href="classclang_1_1serialization_1_1ModuleFile.html#af8d606321dbb5b3755285ee2519246d7" title="The Objective-C category lists for categories known to this module.">ObjCCategories</a>[Offset++] = 0; <span class="comment">// Don't try to deserialize again</span></div>
+<div class="line"><a name="l02931"></a><span class="lineno"> 2931</span>       <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0; I != N; ++I)</div>
+<div class="line"><a name="l02932"></a><span class="lineno"> 2932</span>         add(cast_or_null<ObjCCategoryDecl>(</div>
+<div class="line"><a name="l02933"></a><span class="lineno"> 2933</span>               Reader.<a class="code" href="classclang_1_1ASTReader.html#a88750959ccdb87dde073bacc1c625972" title="Reads a declaration with the given local ID in the given module.">GetLocalDecl</a>(M, M.<a class="code" href="classclang_1_1serialization_1_1ModuleFile.html#af8d606321dbb5b3755285ee2519246d7" title="The Objective-C category lists for categories known to this module.">ObjCCategories</a>[Offset++])));</div>
+<div class="line"><a name="l02934"></a><span class="lineno"> 2934</span>       <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l02935"></a><span class="lineno"> 2935</span>     }</div>
+<div class="line"><a name="l02936"></a><span class="lineno"> 2936</span>   };</div>
+<div class="line"><a name="l02937"></a><span class="lineno"> 2937</span> }</div>
+<div class="line"><a name="l02938"></a><span class="lineno"> 2938</span> </div>
+<div class="line"><a name="l02939"></a><span class="lineno"> 2939</span> <span class="keywordtype">void</span> ASTReader::loadObjCCategories(<a class="code" href="namespaceclang_1_1serialization.html#a55ccff09ed644b98b2b7c5915b601c14">serialization::GlobalDeclID</a> ID,</div>
+<div class="line"><a name="l02940"></a><span class="lineno"> 2940</span>                                    <a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *D,</div>
+<div class="line"><a name="l02941"></a><span class="lineno"> 2941</span>                                    <span class="keywordtype">unsigned</span> PreviousGeneration) {</div>
+<div class="line"><a name="l02942"></a><span class="lineno"> 2942</span>   ObjCCategoriesVisitor Visitor(*<span class="keyword">this</span>, ID, D, CategoriesDeserialized,</div>
+<div class="line"><a name="l02943"></a><span class="lineno"> 2943</span>                                 PreviousGeneration);</div>
+<div class="line"><a name="l02944"></a><span class="lineno"> 2944</span>   ModuleMgr.visit(ObjCCategoriesVisitor::visit, &Visitor);</div>
+<div class="line"><a name="l02945"></a><span class="lineno"> 2945</span> }</div>
+<div class="line"><a name="l02946"></a><span class="lineno"> 2946</span> </div>
+<div class="line"><a name="l02947"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclReader.html#a23b536619cd39994eeb3801cc082b6b3"> 2947</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclReader.html#a23b536619cd39994eeb3801cc082b6b3">ASTDeclReader::UpdateDecl</a>(<a class="code" href="classclang_1_1Decl.html">Decl</a> *D, ModuleFile &ModuleFile,</div>
+<div class="line"><a name="l02948"></a><span class="lineno"> 2948</span>                                <span class="keyword">const</span> <a class="code" href="classllvm_1_1SmallVector.html">RecordData</a> &Record) {</div>
+<div class="line"><a name="l02949"></a><span class="lineno"> 2949</span>   <span class="keywordtype">unsigned</span> Idx = 0;</div>
+<div class="line"><a name="l02950"></a><span class="lineno"> 2950</span>   <span class="keywordflow">while</span> (Idx < Record.size()) {</div>
+<div class="line"><a name="l02951"></a><span class="lineno"> 2951</span>     <span class="keywordflow">switch</span> ((<a class="code" href="namespaceclang_1_1serialization.html#afe71e2f66dbab983320d8a8ae4b7b5b1">DeclUpdateKind</a>)Record[Idx++]) {</div>
+<div class="line"><a name="l02952"></a><span class="lineno"> 2952</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1serialization.html#afe71e2f66dbab983320d8a8ae4b7b5b1a448336bb02fe7431ef836955c4cf9337">UPD_CXX_ADDED_IMPLICIT_MEMBER</a>:</div>
+<div class="line"><a name="l02953"></a><span class="lineno"> 2953</span>       cast<CXXRecordDecl>(D)->addedMember(Reader.<a class="code" href="classclang_1_1ASTReader.html#ae3b01659b1346ab4093042e957d2b680" title="Reads a declaration from the given position in a record in the given module.">ReadDecl</a>(ModuleFile, Record, Idx));</div>
+<div class="line"><a name="l02954"></a><span class="lineno"> 2954</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02955"></a><span class="lineno"> 2955</span> </div>
+<div class="line"><a name="l02956"></a><span class="lineno"> 2956</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1serialization.html#afe71e2f66dbab983320d8a8ae4b7b5b1a3f17b8aae9a372f439a6fe3297098331">UPD_CXX_ADDED_TEMPLATE_SPECIALIZATION</a>:</div>
+<div class="line"><a name="l02957"></a><span class="lineno"> 2957</span>       <span class="comment">// It will be added to the template's specializations set when loaded.</span></div>
+<div class="line"><a name="l02958"></a><span class="lineno"> 2958</span>       (void)Reader.<a class="code" href="classclang_1_1ASTReader.html#ae3b01659b1346ab4093042e957d2b680" title="Reads a declaration from the given position in a record in the given module.">ReadDecl</a>(ModuleFile, Record, Idx);</div>
+<div class="line"><a name="l02959"></a><span class="lineno"> 2959</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02960"></a><span class="lineno"> 2960</span> </div>
+<div class="line"><a name="l02961"></a><span class="lineno"> 2961</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1serialization.html#afe71e2f66dbab983320d8a8ae4b7b5b1af04ece0f603e9378d1af463b9ba2c6e0">UPD_CXX_ADDED_ANONYMOUS_NAMESPACE</a>: {</div>
+<div class="line"><a name="l02962"></a><span class="lineno"> 2962</span>       <a class="code" href="classclang_1_1NamespaceDecl.html" title="NamespaceDecl - Represent a C++ namespace.">NamespaceDecl</a> *Anon</div>
+<div class="line"><a name="l02963"></a><span class="lineno"> 2963</span>         = Reader.<a class="code" href="classclang_1_1ASTReader.html#ac479db3e769550478e6a447494bf438c" title="Reads a declaration from the given position in a record in the given module.">ReadDeclAs</a><<a class="code" href="classclang_1_1NamespaceDecl.html" title="NamespaceDecl - Represent a C++ namespace.">NamespaceDecl</a>>(ModuleFile, Record, Idx);</div>
+<div class="line"><a name="l02964"></a><span class="lineno"> 2964</span>       </div>
+<div class="line"><a name="l02965"></a><span class="lineno"> 2965</span>       <span class="comment">// Each module has its own anonymous namespace, which is disjoint from</span></div>
+<div class="line"><a name="l02966"></a><span class="lineno"> 2966</span>       <span class="comment">// any other module's anonymous namespaces, so don't attach the anonymous</span></div>
+<div class="line"><a name="l02967"></a><span class="lineno"> 2967</span>       <span class="comment">// namespace at all.</span></div>
+<div class="line"><a name="l02968"></a><span class="lineno"> 2968</span>       <span class="keywordflow">if</span> (ModuleFile.<a class="code" href="classclang_1_1Decl.html#a4c591bf2c0aa4f4d5f343ec665cbf196" title="Lists the kind of concrete classes of Decl.">Kind</a> != <a class="code" href="namespaceclang_1_1serialization.html#ac4e913a3b4b4721b8995cb7dd6d9bb1ea22e2f1dba8920d73cd2979ca1e17a097" title="File is a module proper.">MK_Module</a>) {</div>
+<div class="line"><a name="l02969"></a><span class="lineno"> 2969</span>         <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1TranslationUnitDecl.html" title="TranslationUnitDecl - The top declaration context.">TranslationUnitDecl</a> *TU = dyn_cast<TranslationUnitDecl>(D))</div>
+<div class="line"><a name="l02970"></a><span class="lineno"> 2970</span>           TU-><a class="code" href="classclang_1_1NamespaceDecl.html#a54c922e400a559975e9302fc8f7e477a">setAnonymousNamespace</a>(Anon);</div>
+<div class="line"><a name="l02971"></a><span class="lineno"> 2971</span>         <span class="keywordflow">else</span></div>
+<div class="line"><a name="l02972"></a><span class="lineno"> 2972</span>           cast<NamespaceDecl>(D)->setAnonymousNamespace(Anon);</div>
+<div class="line"><a name="l02973"></a><span class="lineno"> 2973</span>       }</div>
+<div class="line"><a name="l02974"></a><span class="lineno"> 2974</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02975"></a><span class="lineno"> 2975</span>     }</div>
+<div class="line"><a name="l02976"></a><span class="lineno"> 2976</span> </div>
+<div class="line"><a name="l02977"></a><span class="lineno"> 2977</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1serialization.html#afe71e2f66dbab983320d8a8ae4b7b5b1ad1fd8db5121f2759e935fdb8b7942d1c">UPD_CXX_INSTANTIATED_STATIC_DATA_MEMBER</a>:</div>
+<div class="line"><a name="l02978"></a><span class="lineno"> 2978</span>       cast<VarDecl>(D)->getMemberSpecializationInfo()->setPointOfInstantiation(</div>
+<div class="line"><a name="l02979"></a><span class="lineno"> 2979</span>           Reader.<a class="code" href="classclang_1_1ASTReader.html#a1f8d259edc2543e2cc894e7ff13e80d7" title="Read a source location from raw form.">ReadSourceLocation</a>(ModuleFile, Record, Idx));</div>
+<div class="line"><a name="l02980"></a><span class="lineno"> 2980</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02981"></a><span class="lineno"> 2981</span> </div>
+<div class="line"><a name="l02982"></a><span class="lineno"> 2982</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1serialization.html#afe71e2f66dbab983320d8a8ae4b7b5b1a1dc8deae27ffbb748c5d148319fc62a5">UPD_CXX_DEDUCED_RETURN_TYPE</a>: {</div>
+<div class="line"><a name="l02983"></a><span class="lineno"> 2983</span>       <a class="code" href="classclang_1_1FunctionDecl.html">FunctionDecl</a> *FD = cast<FunctionDecl>(D);</div>
+<div class="line"><a name="l02984"></a><span class="lineno"> 2984</span>       Reader.Context.<a class="code" href="classclang_1_1ASTContext.html#ae313abb0169ff3afef235461848062fd" title="Change the result type of a function type once it is deduced.">adjustDeducedFunctionResultType</a>(</div>
+<div class="line"><a name="l02985"></a><span class="lineno"> 2985</span>           FD, Reader.<a class="code" href="classclang_1_1ASTReader.html#a35c6d4b5d0c5276161bbceed3bab76de" title="Read a type from the current position in the given record, which was read from the given AST file...">readType</a>(ModuleFile, Record, Idx));</div>
+<div class="line"><a name="l02986"></a><span class="lineno"> 2986</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02987"></a><span class="lineno"> 2987</span>     }</div>
+<div class="line"><a name="l02988"></a><span class="lineno"> 2988</span> </div>
+<div class="line"><a name="l02989"></a><span class="lineno"> 2989</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang_1_1serialization.html#afe71e2f66dbab983320d8a8ae4b7b5b1a115041269d508589d6147890afe78369">UPD_DECL_MARKED_USED</a>: {</div>
+<div class="line"><a name="l02990"></a><span class="lineno"> 2990</span>       <span class="comment">// FIXME: This doesn't send the right notifications if there are</span></div>
+<div class="line"><a name="l02991"></a><span class="lineno"> 2991</span>       <span class="comment">// ASTMutationListeners other than an ASTWriter.</span></div>
+<div class="line"><a name="l02992"></a><span class="lineno"> 2992</span>       D->Used = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l02993"></a><span class="lineno"> 2993</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l02994"></a><span class="lineno"> 2994</span>     }</div>
+<div class="line"><a name="l02995"></a><span class="lineno"> 2995</span>     }</div>
+<div class="line"><a name="l02996"></a><span class="lineno"> 2996</span>   }</div>
+<div class="line"><a name="l02997"></a><span class="lineno"> 2997</span> }</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:16 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/ASTReaderDecl_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ASTReaderDecl_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ASTReaderDecl_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ASTReaderDecl_8d_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,631 @@
+<!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: ASTReaderDecl.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">ASTReaderDecl.d</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="ASTReaderDecl_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/ASTReaderDecl.o \</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/Release+Asserts/ASTReaderDecl.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>  ASTReaderDecl.cpp \</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Serialization/ASTReader.h \</div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclObjC.h \</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/Decl.h \</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/APValue.h \</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../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/APFloat.h \</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>  /home/tstellar/llvm/include/llvm/ADT/APInt.h \</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>  /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h \</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>  /home/tstellar/llvm/include/llvm/ADT/SmallVector.h \</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>  /home/tstellar/llvm/include/llvm/Support/AlignOf.h \</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>  /home/tstellar/llvm/include/llvm/Support/Compiler.h \</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>  /home/tstellar/llvm/include/llvm/Config/llvm-config.h \</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>  /home/tstellar/llvm/include/llvm/Support/MathExtras.h \</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>  /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h \</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>  /home/tstellar/llvm/include/llvm/ADT/APSInt.h \</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>  /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h \</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>  /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h \</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>  /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h \</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclBase.h \</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/AttrIterator.h \</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclarationName.h \</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/IdentifierTable.h \</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/OperatorKinds.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.def \</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/TokenKinds.h \</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/TokenKinds.def \</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>  /home/tstellar/llvm/include/llvm/ADT/SmallString.h \</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>  /home/tstellar/llvm/include/llvm/ADT/StringRef.h \</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>  /home/tstellar/llvm/include/llvm/ADT/StringMap.h \</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>  /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h \</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/PartialDiagnostic.h \</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/Diagnostic.h \</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/DiagnosticIDs.h \</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>  /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h \</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/DiagnosticCommonKinds.inc \</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/DiagnosticOptions.h \</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/DiagnosticOptions.def \</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/SourceLocation.h \</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/<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="l00073"></a><span class="lineno">   73</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/TemplateBase.h \</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/FileManager.h \</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/FileSystemOptions.h \</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/SourceManager.h \</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>  /home/tstellar/llvm/include/llvm/ADT/DenseSet.h \</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>  /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h \</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>  /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h \</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>  /home/tstellar/llvm/include/llvm-c/Core.h \</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/Version.h \</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/Version.inc \</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</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="l00084"></a><span class="lineno">   84</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="l00085"></a><span class="lineno">   85</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="l00086"></a><span class="lineno">   86</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="l00087"></a><span class="lineno">   87</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/LangOptions.h \</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/CommentOptions.h \</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/ObjCRuntime.h \</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/VersionTuple.h \</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>  /home/tstellar/llvm/include/llvm/ADT/Triple.h \</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/Sanitizers.def \</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/LangOptions.def \</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/OpenCLExtensions.def \</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/Module.h \</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>  /home/tstellar/llvm/include/llvm/ADT/SetVector.h \</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>  /home/tstellar/llvm/include/llvm/ADT/SmallSet.h \</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>  /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.h \</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>  /home/tstellar/llvm/include/llvm/ADT/StringSet.h \</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</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="l00101"></a><span class="lineno">  101</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="l00102"></a><span class="lineno">  102</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="l00103"></a><span class="lineno">  103</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="l00104"></a><span class="lineno">  104</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/ExternalSemaSource.h \</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/TypoCorrection.h \</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclCXX.h \</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/ASTUnresolvedSet.h \</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/ASTVector.h \</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/UnresolvedSet.h \</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclAccessPair.h \</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/Expr.h \</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/OperationKinds.h \</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/Stmt.h \</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclGroup.h \</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/StmtIterator.h \</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/CapturedStmt.h \</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/StmtNodes.inc \</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/CharInfo.h \</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/TypeTraits.h \</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/Builtins.def \</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/ExprCXX.h \</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/ExpressionTraits.h \</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/Lambda.h \</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/TypeLoc.h \</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/TypeLocNodes.def \</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/DeclSpec.h \</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</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="l00128"></a><span class="lineno">  128</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/TemplateKinds.h \</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/AttributeList.h \</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/Ownership.h \</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/AttrParsedAttrList.inc \</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/Weak.h \</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>  /home/tstellar/llvm/include/llvm/ADT/MapVector.h \</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Serialization/ASTBitCodes.h \</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>  /home/tstellar/llvm/include/llvm/Bitcode/BitCodes.h \</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Serialization/ContinuousRangeMap.h \</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Serialization/Module.h \</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>  /home/tstellar/llvm/include/llvm/Bitcode/BitstreamReader.h \</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>  /home/tstellar/llvm/include/llvm/Support/Endian.h \</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>  /home/tstellar/llvm/include/llvm/Support/Host.h \</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>  /home/tstellar/llvm/include/llvm/Support/StreamableMemoryObject.h \</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>  /home/tstellar/llvm/include/llvm/Support/DataStream.h \</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>  /home/tstellar/llvm/include/llvm/Support/MemoryObject.h \</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Serialization/ModuleManager.h \
+ ASTCommon.h \</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/ASTContext.h \</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/ASTTypeTraits.h \</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/ASTFwd.h \</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/CanonicalType.h \</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/CommentCommandTraits.h \</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/CommentCommandList.inc \</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/PrettyPrinter.h \</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/RawCommentList.h \</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/AddressSpaces.h \</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>  /home/tstellar/llvm/include/llvm/ADT/TinyPtrVector.h \
+ ASTReaderInternals.h \</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/OnDiskHashTable.h \</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/ASTConsumer.h \</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclTemplate.h \</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclVisitor.h \</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclFriend.h \</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclOpenMP.h \</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/IdentifierResolver.h \</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/Sema.h \</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/Attr.h \</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/AttrKinds.h \</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/AttrList.inc \</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>  /home/tstellar/llvm/include/llvm/ADT/StringSwitch.h \</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/Attrs.inc \</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/ExprObjC.h \</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/MangleNumberingContext.h \</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/NSAPI.h \</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/OpenMPKinds.h \</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/OpenMPKinds.def \</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/AnalysisBasedWarnings.h \</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/LocInfoType.h \</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/ObjCMethodList.h \</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/ScopeInfo.h \</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>  /home/tstellar/llvm/include/llvm/MC/MCParser/MCAsmParser.h \</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>  /home/tstellar/llvm/include/llvm/MC/MCParser/AsmLexer.h \</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>  /home/tstellar/llvm/include/llvm/MC/MCParser/MCAsmLexer.h \</div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>  /home/tstellar/llvm/include/llvm/Support/SMLoc.h \</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/SemaDiagnostic.h \</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/DiagnosticSemaKinds.inc \</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>  /home/tstellar/llvm/include/llvm/Support/SaveAndRestore.h \</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Serialization/AttrPCHRead.inc</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/Serialization/../../include/clang/Serialization/ASTReader.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/Serialization/../../include/clang/AST/DeclObjC.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/Serialization/../../include/clang/AST/Decl.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/Serialization/../../include/clang/AST/APValue.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/Serialization/../../include/clang/Basic/LLVM.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/include/llvm/Support/Casting.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/Support/type_traits.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/DataTypes.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/None.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/ADT/APFloat.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/APInt.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/include/llvm/ADT/ArrayRef.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/SmallVector.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/Support/AlignOf.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/Support/Compiler.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/Config/llvm-config.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/MathExtras.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/SwapByteOrder.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/APSInt.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/ADT/PointerIntPair.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/Support/PointerLikeTypeTraits.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/ADT/PointerUnion.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/DeclBase.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/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/Serialization/../../include/clang/AST/DeclarationName.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/Serialization/../../include/clang/Basic/IdentifierTable.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/Serialization/../../include/clang/Basic/OperatorKinds.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/Serialization/../../include/clang/Basic/OperatorKinds.def:</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/Serialization/../../include/clang/Basic/TokenKinds.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/Serialization/../../include/clang/Basic/TokenKinds.def:</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/ADT/SmallString.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/StringRef.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/StringMap.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/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.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/Basic/PartialDiagnostic.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/Basic/Diagnostic.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/Basic/DiagnosticIDs.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/IntrusiveRefCntPtr.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/DiagnosticCommonKinds.inc:</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/DiagnosticOptions.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/Serialization/../../include/clang/Basic/DiagnosticOptions.def:</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/SourceLocation.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/DenseMap.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/DenseMapInfo.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/STLExtras.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/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="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/Specifiers.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/include/llvm/Support/PrettyStackTrace.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/AST/DeclNodes.inc:</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/Serialization/../../include/clang/AST/ExternalASTSource.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/AST/CharUnits.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/Serialization/../../include/clang/AST/Redeclarable.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/AST/Type.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/Serialization/../../include/clang/AST/NestedNameSpecifier.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/FoldingSet.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/tools/clang/lib/Serialization/../../include/clang/AST/TemplateName.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#af8a91eed04532d5da41ef08e7c9c081e" title="The various types of exception specifications that exist in C++11.">ExceptionSpecificationType</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/<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="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/ADT/Optional.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/include/llvm/ADT/Twine.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/include/llvm/Support/ErrorHandling.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/TypeNodes.def:</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/BuiltinTypes.def:</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/Support/raw_ostream.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/FileSystem.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/OwningPtr.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/Support/TimeValue.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/include/llvm/Support/system_error.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/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="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/Serialization/../../include/clang/AST/TemplateBase.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/Serialization/../../include/clang/Basic/FileManager.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/Serialization/../../include/clang/Basic/FileSystemOptions.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/Basic/SourceManager.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/ADT/DenseSet.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/include/llvm/Support/MemoryBuffer.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/CBindingWrapping.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-c/Core.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/Serialization/../../include/clang/Basic/Version.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/Serialization/../../include/clang/Basic/Version.inc:</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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ExternalPreprocessorSource.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/HeaderSearch.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/DirectoryLookup.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleMap.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/Serialization/../../include/clang/Basic/LangOptions.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/Basic/CommentOptions.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/Serialization/../../include/clang/Basic/ObjCRuntime.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/Serialization/../../include/clang/Basic/VersionTuple.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/Triple.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/Serialization/../../include/clang/Basic/Sanitizers.def:</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/Serialization/../../include/clang/Basic/LangOptions.def:</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/Serialization/../../include/clang/Basic/OpenCLExtensions.def:</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/Serialization/../../include/clang/Basic/Module.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/include/llvm/ADT/SetVector.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/include/llvm/ADT/SmallSet.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/include/llvm/ADT/SmallPtrSet.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/include/llvm/ADT/StringSet.h:</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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PreprocessingRecord.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PPCallbacks.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleLoader.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Pragma.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/Sema/ExternalSemaSource.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/Sema/TypoCorrection.h:</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/DeclCXX.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/ASTUnresolvedSet.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/AST/ASTVector.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/UnresolvedSet.h:</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/DeclAccessPair.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/AST/Expr.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/AST/OperationKinds.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/AST/Stmt.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/tools/clang/lib/Serialization/../../include/clang/AST/DeclGroup.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/AST/StmtIterator.h:</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/CapturedStmt.h:</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/AST/StmtNodes.inc:</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/Basic/CharInfo.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/TypeTraits.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/Builtins.def:</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/AST/ExprCXX.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/tools/clang/lib/Serialization/../../include/clang/Basic/ExpressionTraits.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/tools/clang/lib/Serialization/../../include/clang/Basic/Lambda.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/tools/clang/lib/Serialization/../../include/clang/AST/TypeLoc.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/AST/TypeLocNodes.def:</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/tools/clang/lib/Serialization/../../include/clang/Sema/DeclSpec.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/<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="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/Basic/TemplateKinds.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/Sema/AttributeList.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/Sema/Ownership.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/Sema/AttrParsedAttrList.inc:</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/Sema/Weak.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/include/llvm/ADT/MapVector.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/Serialization/ASTBitCodes.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/include/llvm/Bitcode/BitCodes.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/Serialization/ContinuousRangeMap.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/Serialization/Module.h:</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/include/llvm/Bitcode/BitstreamReader.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/include/llvm/Support/Endian.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/include/llvm/Support/Host.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/include/llvm/Support/StreamableMemoryObject.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/include/llvm/Support/DataStream.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/include/llvm/Support/MemoryObject.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/Serialization/ModuleManager.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> ASTCommon.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/AST/ASTContext.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/tools/clang/lib/Serialization/../../include/clang/AST/ASTTypeTraits.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/AST/ASTFwd.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/AST/CanonicalType.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/AST/CommentCommandTraits.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/AST/CommentCommandList.inc:</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/tools/clang/lib/Serialization/../../include/clang/AST/PrettyPrinter.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/AST/RawCommentList.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/AddressSpaces.h:</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/include/llvm/ADT/TinyPtrVector.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> ASTReaderInternals.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/Basic/OnDiskHashTable.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/AST/ASTConsumer.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/tools/clang/lib/Serialization/../../include/clang/AST/DeclTemplate.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/AST/DeclVisitor.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/AST/DeclFriend.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/AST/DeclOpenMP.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/Sema/IdentifierResolver.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/Sema/Sema.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/AST/Attr.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/Basic/AttrKinds.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/Basic/AttrList.inc:</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/include/llvm/ADT/StringSwitch.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/AST/Attrs.inc:</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/AST/ExprObjC.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/AST/MangleNumberingContext.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/AST/NSAPI.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/Basic/OpenMPKinds.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/Basic/OpenMPKinds.def:</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/Sema/AnalysisBasedWarnings.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/Sema/LocInfoType.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/ObjCMethodList.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/ScopeInfo.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/include/llvm/MC/MCParser/MCAsmParser.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/include/llvm/MC/MCParser/AsmLexer.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/include/llvm/MC/MCParser/MCAsmLexer.h:</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/include/llvm/Support/SMLoc.h:</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/Sema/SemaDiagnostic.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/Basic/DiagnosticSemaKinds.inc:</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/include/llvm/Support/SaveAndRestore.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/Serialization/AttrPCHRead.inc:</div>
+<div class="line"><a name="l00551"></a><span class="lineno">  551</span> </div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:16 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/ASTReaderInternals_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ASTReaderInternals_8h_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ASTReaderInternals_8h_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ASTReaderInternals_8h_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,319 @@
+<!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: ASTReaderInternals.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_76f5807b435ffff72c67c480f0b9aa5b.html">Serialization</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">ASTReaderInternals.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="ASTReaderInternals_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">//===--- ASTReaderInternals.h - AST Reader Internals ------------*- 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 provides internal definitions used in the AST reader.</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> <span class="preprocessor">#ifndef LLVM_CLANG_SERIALIZATION_ASTREADER_INTERNALS_H</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> <span class="preprocessor"></span><span class="preprocessor">#define LLVM_CLANG_SERIALIZATION_ASTREADER_INTERNALS_H</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="preprocessor">#include "<a class="code" href="DeclarationName_8h.html">clang/AST/DeclarationName.h</a>"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="preprocessor">#include "<a class="code" href="OnDiskHashTable_8h.html" title="Defines facilities for reading and writing on-disk hash tables.">clang/Basic/OnDiskHashTable.h</a>"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="preprocessor">#include "<a class="code" href="ASTBitCodes_8h.html">clang/Serialization/ASTBitCodes.h</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="preprocessor">#include "llvm/Support/Endian.h"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="preprocessor">#include <sys/stat.h></span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="preprocessor">#include <utility></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">   24</span> </div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="keyword">class </span>ASTReader;</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="keyword">class </span>HeaderSearch;</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="keyword">struct </span>HeaderFileInfo;</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="keyword">class </span>FileEntry;</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>serialization {</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> <span class="keyword">class </span>ModuleFile;</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> <span class="keyword">namespace </span>reader {</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">/// \brief Class that performs name lookup into a DeclContext stored</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span> <span class="comment">/// in an AST file.</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"><a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTDeclContextNameLookupTrait.html">   38</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTDeclContextNameLookupTrait.html" title="Class that performs name lookup into a DeclContext stored in an AST file.">ASTDeclContextNameLookupTrait</a> {</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>   <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="l00040"></a><span class="lineno">   40</span>   <a class="code" href="classclang_1_1serialization_1_1ModuleFile.html" title="Information about a module that has been loaded by the ASTReader.">ModuleFile</a> &F;</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="keyword">public</span>:<span class="comment"></span></div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span> <span class="comment">  /// \brief Pair of begin/end iterators for DeclIDs.</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span> <span class="comment">  /// Note that these declaration IDs are local to the module that contains this</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span> <span class="comment">  /// particular lookup t</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"><a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTDeclContextNameLookupTrait.html#a953154e5496404af64a93ac7d40cffaa">   47</a></span> <span class="comment"></span>  <span class="keyword">typedef</span> llvm::support::ulittle32_t <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTDeclContextNameLookupTrait.html#a953154e5496404af64a93ac7d40cffaa" title="Pair of begin/end iterators for DeclIDs.">LE32DeclID</a>;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"><a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTDeclContextNameLookupTrait.html#a3a09bc5c4af3d4ec0d598e465e7981eb">   48</a></span>   <span class="keyword">typedef</span> std::pair<LE32DeclID *, LE32DeclID *> <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTDeclContextNameLookupTrait.html#a3a09bc5c4af3d4ec0d598e465e7981eb">data_type</a>;</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span> <span class="comment"></span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span> <span class="comment">  /// \brief Special internal key for declaration names.</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span> <span class="comment">  /// The hash table creates keys for comparison; we do not create</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span> <span class="comment">  /// a DeclarationName for the internal key to avoid deserializing types.</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"><a class="code" href="structclang_1_1serialization_1_1reader_1_1ASTDeclContextNameLookupTrait_1_1DeclNameKey.html">   53</a></span> <span class="comment"></span>  <span class="keyword">struct </span><a class="code" href="structclang_1_1serialization_1_1reader_1_1ASTDeclContextNameLookupTrait_1_1DeclNameKey.html" title="Special internal key for declaration names. The hash table creates keys for comparison; we do not cre...">DeclNameKey</a> {</div>
+<div class="line"><a name="l00054"></a><span class="lineno"><a class="code" href="structclang_1_1serialization_1_1reader_1_1ASTDeclContextNameLookupTrait_1_1DeclNameKey.html#a0bf1ec1fc81e5f6e944102646ce964d7">   54</a></span>     <a class="code" href="classclang_1_1DeclarationName.html#a9ab322d434446b43379d39e41af5cbe3" title="NameKind - The kind of name this object contains.">DeclarationName::NameKind</a> <a class="code" href="structclang_1_1serialization_1_1reader_1_1ASTDeclContextNameLookupTrait_1_1DeclNameKey.html#a0bf1ec1fc81e5f6e944102646ce964d7">Kind</a>;</div>
+<div class="line"><a name="l00055"></a><span class="lineno"><a class="code" href="structclang_1_1serialization_1_1reader_1_1ASTDeclContextNameLookupTrait_1_1DeclNameKey.html#a48bef066144184ae79ed2e516bc5b537">   55</a></span>     uint64_t <a class="code" href="structclang_1_1serialization_1_1reader_1_1ASTDeclContextNameLookupTrait_1_1DeclNameKey.html#a48bef066144184ae79ed2e516bc5b537">Data</a>;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"><a class="code" href="structclang_1_1serialization_1_1reader_1_1ASTDeclContextNameLookupTrait_1_1DeclNameKey.html#a24c4cb322bf4e06175b11d0cfdf5cdba">   56</a></span>     <a class="code" href="structclang_1_1serialization_1_1reader_1_1ASTDeclContextNameLookupTrait_1_1DeclNameKey.html#a24c4cb322bf4e06175b11d0cfdf5cdba">DeclNameKey</a>() : <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a>((<a class="code" href="classclang_1_1DeclarationName.html">DeclarationName</a>::NameKind)0), <a class="code" href="structclang_1_1serialization_1_1reader_1_1ASTDeclContextNameLookupTrait_1_1DeclNameKey.html#a48bef066144184ae79ed2e516bc5b537">Data</a>(0) { }</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"><a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTDeclContextNameLookupTrait.html#a9872488987aca36c88039ca540f33fdb">   59</a></span>   <span class="keyword">typedef</span> <a class="code" href="classclang_1_1DeclarationName.html">DeclarationName</a> <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTDeclContextNameLookupTrait.html#a9872488987aca36c88039ca540f33fdb">external_key_type</a>;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"><a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTDeclContextNameLookupTrait.html#a18236af11b4048ae8c0000abddb7afa1">   60</a></span>   <span class="keyword">typedef</span> <a class="code" href="structclang_1_1serialization_1_1reader_1_1ASTDeclContextNameLookupTrait_1_1DeclNameKey.html" title="Special internal key for declaration names. The hash table creates keys for comparison; we do not cre...">DeclNameKey</a> <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTDeclContextNameLookupTrait.html#a18236af11b4048ae8c0000abddb7afa1">internal_key_type</a>;</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span> </div>
+<div class="line"><a name="l00062"></a><span class="lineno"><a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTDeclContextNameLookupTrait.html#af394f652818988561fd5cf287a039d0f">   62</a></span>   <span class="keyword">explicit</span> <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTDeclContextNameLookupTrait.html#af394f652818988561fd5cf287a039d0f">ASTDeclContextNameLookupTrait</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, <a class="code" href="classclang_1_1serialization_1_1ModuleFile.html" title="Information about a module that has been loaded by the ASTReader.">ModuleFile</a> &F)</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>     : Reader(Reader), F(F) { }</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span> </div>
+<div class="line"><a name="l00065"></a><span class="lineno"><a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTDeclContextNameLookupTrait.html#a41bb63e5a3292ccae35df5c689328f2f">   65</a></span>   <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTDeclContextNameLookupTrait.html#a41bb63e5a3292ccae35df5c689328f2f">EqualKey</a>(<span class="keyword">const</span> <a class="code" href="structclang_1_1serialization_1_1reader_1_1ASTDeclContextNameLookupTrait_1_1DeclNameKey.html" title="Special internal key for declaration names. The hash table creates keys for comparison; we do not cre...">internal_key_type</a>& a,</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>                        <span class="keyword">const</span> <a class="code" href="structclang_1_1serialization_1_1reader_1_1ASTDeclContextNameLookupTrait_1_1DeclNameKey.html" title="Special internal key for declaration names. The hash table creates keys for comparison; we do not cre...">internal_key_type</a>& b) {</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>     <span class="keywordflow">return</span> a.<a class="code" href="structclang_1_1serialization_1_1reader_1_1ASTDeclContextNameLookupTrait_1_1DeclNameKey.html#a0bf1ec1fc81e5f6e944102646ce964d7">Kind</a> == b.<a class="code" href="structclang_1_1serialization_1_1reader_1_1ASTDeclContextNameLookupTrait_1_1DeclNameKey.html#a0bf1ec1fc81e5f6e944102646ce964d7">Kind</a> && a.<a class="code" href="structclang_1_1serialization_1_1reader_1_1ASTDeclContextNameLookupTrait_1_1DeclNameKey.html#a48bef066144184ae79ed2e516bc5b537">Data</a> == b.<a class="code" href="structclang_1_1serialization_1_1reader_1_1ASTDeclContextNameLookupTrait_1_1DeclNameKey.html#a48bef066144184ae79ed2e516bc5b537">Data</a>;</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">unsigned</span> <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTDeclContextNameLookupTrait.html#a7f5dcc5517fe36772bdfd29fb0a16edf">ComputeHash</a>(<span class="keyword">const</span> DeclNameKey &Key) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>   <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTDeclContextNameLookupTrait.html#a18236af11b4048ae8c0000abddb7afa1">internal_key_type</a> <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTDeclContextNameLookupTrait.html#af3eb838443cc6b01a122e674bb5e9f59">GetInternalKey</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTDeclContextNameLookupTrait.html#a9872488987aca36c88039ca540f33fdb">external_key_type</a>& Name) <span class="keyword">const</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">static</span> std::pair<unsigned, unsigned></div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>   <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTDeclContextNameLookupTrait.html#a7804b3b11dd5c3ddf88cb912b03f24f7">ReadKeyDataLength</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>*& d);</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>   <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTDeclContextNameLookupTrait.html#a18236af11b4048ae8c0000abddb7afa1">internal_key_type</a> <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTDeclContextNameLookupTrait.html#a6b0b79f5330feb9af1cb370f2c8f1c9a">ReadKey</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* d, <span class="keywordtype">unsigned</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>   <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTDeclContextNameLookupTrait.html#a3a09bc5c4af3d4ec0d598e465e7981eb">data_type</a> <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTDeclContextNameLookupTrait.html#a04c27fb31ff2f37b7cb3c72223ed73c9">ReadData</a>(<a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTDeclContextNameLookupTrait.html#a18236af11b4048ae8c0000abddb7afa1">internal_key_type</a>, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* d,</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>                      <span class="keywordtype">unsigned</span> DataLen);</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> <span class="comment"></span></div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span> <span class="comment">/// \brief Base class for the trait describing the on-disk hash table for the</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span> <span class="comment">/// identifiers in an AST file.</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span> <span class="comment">/// This class is not useful by itself; rather, it provides common</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span> <span class="comment">/// functionality for accessing the on-disk hash table of identifiers</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span> <span class="comment">/// in an AST file. Different subclasses customize that functionality</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span> <span class="comment">/// based on what information they are interested in. Those subclasses</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span> <span class="comment">/// must provide the \c data_type typedef and the ReadData operation,</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span> <span class="comment">/// only.</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno"><a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTIdentifierLookupTraitBase.html">   91</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTIdentifierLookupTraitBase.html" title="Base class for the trait describing the on-disk hash table for the identifiers in an AST file...">ASTIdentifierLookupTraitBase</a> {</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00093"></a><span class="lineno"><a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTIdentifierLookupTraitBase.html#a31c468784976c16173880702064751e7">   93</a></span>   <span class="keyword">typedef</span> StringRef <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTIdentifierLookupTraitBase.html#a31c468784976c16173880702064751e7">external_key_type</a>;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"><a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTIdentifierLookupTraitBase.html#a8358aadfcd4c7e2d740f59b2712b2047">   94</a></span>   <span class="keyword">typedef</span> StringRef <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTIdentifierLookupTraitBase.html#a8358aadfcd4c7e2d740f59b2712b2047">internal_key_type</a>;</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>   </div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span> </div>
+<div class="line"><a name="l00097"></a><span class="lineno"><a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTIdentifierLookupTraitBase.html#a27d9ecf1db01d4138cbe39c2f85ed990">   97</a></span>   <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTIdentifierLookupTraitBase.html#a27d9ecf1db01d4138cbe39c2f85ed990">EqualKey</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTIdentifierLookupTraitBase.html#a8358aadfcd4c7e2d740f59b2712b2047">internal_key_type</a>& a, <span class="keyword">const</span> <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTIdentifierLookupTraitBase.html#a8358aadfcd4c7e2d740f59b2712b2047">internal_key_type</a>& b) {</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>     <span class="keywordflow">return</span> a == b;</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> </div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>   <span class="keyword">static</span> <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTIdentifierLookupTraitBase.html#a6e2b928d79e6d7cfd00df823a5dea91e">ComputeHash</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTIdentifierLookupTraitBase.html#a8358aadfcd4c7e2d740f59b2712b2047">internal_key_type</a>& 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>   <span class="keyword">static</span> std::pair<unsigned, unsigned></div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>   <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTIdentifierLookupTraitBase.html#a3419a8c98f20f4bc42ffe1cce5d69ea6">ReadKeyDataLength</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>*& d);</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="comment">// This hopefully will just get inlined and removed by the optimizer.</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>   <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTIdentifierLookupTraitBase.html#a8358aadfcd4c7e2d740f59b2712b2047">internal_key_type</a>&</div>
+<div class="line"><a name="l00108"></a><span class="lineno"><a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTIdentifierLookupTraitBase.html#a866babe3466222f377acd838c6186704">  108</a></span>   <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTIdentifierLookupTraitBase.html#a866babe3466222f377acd838c6186704">GetInternalKey</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTIdentifierLookupTraitBase.html#a31c468784976c16173880702064751e7">external_key_type</a>& x) { <span class="keywordflow">return</span> x; }</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>   </div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>   <span class="comment">// This hopefully will just get inlined and removed by the optimizer.</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>   <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTIdentifierLookupTraitBase.html#a31c468784976c16173880702064751e7">external_key_type</a>&</div>
+<div class="line"><a name="l00112"></a><span class="lineno"><a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTIdentifierLookupTraitBase.html#a89fc8124f9a55e12b9ef1bee7d7e267c">  112</a></span>   <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTIdentifierLookupTraitBase.html#a89fc8124f9a55e12b9ef1bee7d7e267c">GetExternalKey</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTIdentifierLookupTraitBase.html#a8358aadfcd4c7e2d740f59b2712b2047">internal_key_type</a>& x) { <span class="keywordflow">return</span> x; }</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span> </div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>   <span class="keyword">static</span> <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTIdentifierLookupTraitBase.html#a8358aadfcd4c7e2d740f59b2712b2047">internal_key_type</a> <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTIdentifierLookupTraitBase.html#af7b5c1ff3c8e30b0d369e68933cdf936">ReadKey</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* d, <span class="keywordtype">unsigned</span> n); </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> <span class="comment"></span></div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span> <span class="comment">/// \brief Class that performs lookup for an identifier stored in an AST file.</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno"><a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTIdentifierLookupTrait.html">  118</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTIdentifierLookupTrait.html" title="Class that performs lookup for an identifier stored in an AST file.">ASTIdentifierLookupTrait</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTIdentifierLookupTraitBase.html" title="Base class for the trait describing the on-disk hash table for the identifiers in an AST file...">ASTIdentifierLookupTraitBase</a> {</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>   <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="l00120"></a><span class="lineno">  120</span>   <a class="code" href="classclang_1_1serialization_1_1ModuleFile.html" title="Information about a module that has been loaded by the ASTReader.">ModuleFile</a> &F;</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>   </div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>   <span class="comment">// If we know the IdentifierInfo in advance, it is here and we will</span></div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>   <span class="comment">// not build a new one. Used when deserializing information about an</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>   <span class="comment">// identifier that was constructed before the AST file was read.</span></div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>   <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *KnownII;</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> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00128"></a><span class="lineno"><a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTIdentifierLookupTrait.html#a583a2d8c643cdeaab0402d1504a8a0b4">  128</a></span>   <span class="keyword">typedef</span> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> * <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTIdentifierLookupTrait.html#a583a2d8c643cdeaab0402d1504a8a0b4">data_type</a>;</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_1serialization_1_1reader_1_1ASTIdentifierLookupTrait.html#aa63766d0106e9840f76616d16bf37339">  130</a></span>   <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTIdentifierLookupTrait.html#aa63766d0106e9840f76616d16bf37339">ASTIdentifierLookupTrait</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, <a class="code" href="classclang_1_1serialization_1_1ModuleFile.html" title="Information about a module that has been loaded by the ASTReader.">ModuleFile</a> &F,</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>                            <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *II = 0)</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>     : Reader(Reader), F(F), KnownII(II) { }</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>   <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTIdentifierLookupTrait.html#a583a2d8c643cdeaab0402d1504a8a0b4">data_type</a> <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTIdentifierLookupTrait.html#a8339ad8ef9e76a428c69592c3236ae16">ReadData</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTIdentifierLookupTraitBase.html#a8358aadfcd4c7e2d740f59b2712b2047">internal_key_type</a>& k,</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>                      <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* d,</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>                      <span class="keywordtype">unsigned</span> DataLen);</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>   </div>
+<div class="line"><a name="l00138"></a><span class="lineno"><a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTIdentifierLookupTrait.html#ab22a56f46ae479b26b6c544a932eeef5">  138</a></span>   <a class="code" href="classclang_1_1ASTReader.html" title="Reads an AST files chain containing the contents of a translation unit.">ASTReader</a> &<a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTIdentifierLookupTrait.html#ab22a56f46ae479b26b6c544a932eeef5">getReader</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Reader; }</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>   <span class="comment"></span></div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span> <span class="comment">/// \brief The on-disk hash table used to contain information about</span></div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span> <span class="comment">/// all of the identifiers in the program.</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span> <span class="comment"></span><span class="keyword">typedef</span> <a class="code" href="classclang_1_1OnDiskChainedHashTable.html">OnDiskChainedHashTable<ASTIdentifierLookupTrait></a></div>
+<div class="line"><a name="l00144"></a><span class="lineno"><a class="code" href="namespaceclang_1_1serialization_1_1reader.html#a1cc95661f3f4da9e6d99bb4b26caa0f5">  144</a></span>   <a class="code" href="namespaceclang_1_1serialization_1_1reader.html#a1cc95661f3f4da9e6d99bb4b26caa0f5" title="The on-disk hash table used to contain information about all of the identifiers in the program...">ASTIdentifierLookupTable</a>;</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span> <span class="comment"></span></div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span> <span class="comment">/// \brief Class that performs lookup for a selector's entries in the global</span></div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span> <span class="comment">/// method pool stored in an AST file.</span></div>
+<div class="line"><a name="l00148"></a><span class="lineno"><a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTSelectorLookupTrait.html">  148</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTSelectorLookupTrait.html" title="Class that performs lookup for a selector's entries in the global method pool stored in an AST file...">ASTSelectorLookupTrait</a> {</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>   <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="l00150"></a><span class="lineno">  150</span>   <a class="code" href="classclang_1_1serialization_1_1ModuleFile.html" title="Information about a module that has been loaded by the ASTReader.">ModuleFile</a> &F;</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> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00153"></a><span class="lineno"><a class="code" href="structclang_1_1serialization_1_1reader_1_1ASTSelectorLookupTrait_1_1data__type.html">  153</a></span>   <span class="keyword">struct </span><a class="code" href="structclang_1_1serialization_1_1reader_1_1ASTSelectorLookupTrait_1_1data__type.html">data_type</a> {</div>
+<div class="line"><a name="l00154"></a><span class="lineno"><a class="code" href="structclang_1_1serialization_1_1reader_1_1ASTSelectorLookupTrait_1_1data__type.html#a30333e9314a9f4f2c0e0e87dd8ed3318">  154</a></span>     <a class="code" href="namespaceclang_1_1serialization.html#a79d7521f50e764df679984a7df6bbd9c" title="An ID number that refers to an ObjC selector in an AST file.">SelectorID</a> <a class="code" href="structclang_1_1serialization_1_1reader_1_1ASTSelectorLookupTrait_1_1data__type.html#a30333e9314a9f4f2c0e0e87dd8ed3318">ID</a>;</div>
+<div class="line"><a name="l00155"></a><span class="lineno"><a class="code" href="structclang_1_1serialization_1_1reader_1_1ASTSelectorLookupTrait_1_1data__type.html#a598846d20b3f317e4e8ee0b35e8ab1ad">  155</a></span>     <span class="keywordtype">unsigned</span> <a class="code" href="structclang_1_1serialization_1_1reader_1_1ASTSelectorLookupTrait_1_1data__type.html#a598846d20b3f317e4e8ee0b35e8ab1ad">InstanceBits</a>;</div>
+<div class="line"><a name="l00156"></a><span class="lineno"><a class="code" href="structclang_1_1serialization_1_1reader_1_1ASTSelectorLookupTrait_1_1data__type.html#ad305f67f43b484b92b6eb74821d08b18">  156</a></span>     <span class="keywordtype">unsigned</span> <a class="code" href="structclang_1_1serialization_1_1reader_1_1ASTSelectorLookupTrait_1_1data__type.html#ad305f67f43b484b92b6eb74821d08b18">FactoryBits</a>;</div>
+<div class="line"><a name="l00157"></a><span class="lineno"><a class="code" href="structclang_1_1serialization_1_1reader_1_1ASTSelectorLookupTrait_1_1data__type.html#acebac1956b69cc4ac2bd2131561ab3e3">  157</a></span>     <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<ObjCMethodDecl *, 2></a> <a class="code" href="structclang_1_1serialization_1_1reader_1_1ASTSelectorLookupTrait_1_1data__type.html#acebac1956b69cc4ac2bd2131561ab3e3">Instance</a>;</div>
+<div class="line"><a name="l00158"></a><span class="lineno"><a class="code" href="structclang_1_1serialization_1_1reader_1_1ASTSelectorLookupTrait_1_1data__type.html#a86e5ee914ae3ef6878a0330b9b8053d0">  158</a></span>     <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<ObjCMethodDecl *, 2></a> <a class="code" href="structclang_1_1serialization_1_1reader_1_1ASTSelectorLookupTrait_1_1data__type.html#a86e5ee914ae3ef6878a0330b9b8053d0">Factory</a>;</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>   </div>
+<div class="line"><a name="l00161"></a><span class="lineno"><a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTSelectorLookupTrait.html#a28f8f0757ba178cec125a998ddf888ce">  161</a></span>   <span class="keyword">typedef</span> <a class="code" href="classclang_1_1Selector.html" title="Smart pointer class that efficiently represents Objective-C method names.">Selector</a> <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTSelectorLookupTrait.html#a28f8f0757ba178cec125a998ddf888ce">external_key_type</a>;</div>
+<div class="line"><a name="l00162"></a><span class="lineno"><a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTSelectorLookupTrait.html#a24ec2a3de165adc1055d2c128d802989">  162</a></span>   <span class="keyword">typedef</span> <a class="code" href="classclang_1_1Selector.html" title="Smart pointer class that efficiently represents Objective-C method names.">external_key_type</a> <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTSelectorLookupTrait.html#a24ec2a3de165adc1055d2c128d802989">internal_key_type</a>;</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>   </div>
+<div class="line"><a name="l00164"></a><span class="lineno"><a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTSelectorLookupTrait.html#a0ba6c232a8aac2efdd25429dfe103490">  164</a></span>   <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTSelectorLookupTrait.html#a0ba6c232a8aac2efdd25429dfe103490">ASTSelectorLookupTrait</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, <a class="code" href="classclang_1_1serialization_1_1ModuleFile.html" title="Information about a module that has been loaded by the ASTReader.">ModuleFile</a> &F) </div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>     : Reader(Reader), F(F) { }</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>   </div>
+<div class="line"><a name="l00167"></a><span class="lineno"><a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTSelectorLookupTrait.html#aea7f0f5334ac0e09e11bdaf093f32e7f">  167</a></span>   <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTSelectorLookupTrait.html#aea7f0f5334ac0e09e11bdaf093f32e7f">EqualKey</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Selector.html" title="Smart pointer class that efficiently represents Objective-C method names.">internal_key_type</a>& a,</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>                        <span class="keyword">const</span> <a class="code" href="classclang_1_1Selector.html" title="Smart pointer class that efficiently represents Objective-C method names.">internal_key_type</a>& b) {</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>     <span class="keywordflow">return</span> a == b;</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>   <span class="keyword">static</span> <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTSelectorLookupTrait.html#a535b02cd91e35aff4506e96868307740">ComputeHash</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="l00173"></a><span class="lineno">  173</span>   </div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>   <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTSelectorLookupTrait.html#a24ec2a3de165adc1055d2c128d802989">internal_key_type</a>&</div>
+<div class="line"><a name="l00175"></a><span class="lineno"><a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTSelectorLookupTrait.html#a4d5c00b191c37775aefcfc351be9442c">  175</a></span>   <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTSelectorLookupTrait.html#a4d5c00b191c37775aefcfc351be9442c">GetInternalKey</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Selector.html" title="Smart pointer class that efficiently represents Objective-C method names.">external_key_type</a>& x) { <span class="keywordflow">return</span> x; }</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>   </div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>   <span class="keyword">static</span> std::pair<unsigned, unsigned></div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>   <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTSelectorLookupTrait.html#a1a2673f0d7a3918566eb1adb0ba40f20">ReadKeyDataLength</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>*& d);</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>   <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTSelectorLookupTrait.html#a24ec2a3de165adc1055d2c128d802989">internal_key_type</a> <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTSelectorLookupTrait.html#a008bcda2d0f184b8f1a49a12adf2c5db">ReadKey</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* d, <span class="keywordtype">unsigned</span>);</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>   data_type <a class="code" href="classclang_1_1serialization_1_1reader_1_1ASTSelectorLookupTrait.html#a0d9cec8684497e2d28f1ae222040f507">ReadData</a>(<a class="code" href="classclang_1_1Selector.html" title="Smart pointer class that efficiently represents Objective-C method names.">Selector</a>, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* d, <span class="keywordtype">unsigned</span> DataLen);</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span> };</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>   <span class="comment"></span></div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span> <span class="comment">/// \brief The on-disk hash table used for the global method pool.</span></div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span> <span class="comment"></span><span class="keyword">typedef</span> <a class="code" href="classclang_1_1OnDiskChainedHashTable.html">OnDiskChainedHashTable<ASTSelectorLookupTrait></a></div>
+<div class="line"><a name="l00186"></a><span class="lineno"><a class="code" href="namespaceclang_1_1serialization_1_1reader.html#a7fbdf13a0844bafff2103d6370fd7c09">  186</a></span>   <a class="code" href="namespaceclang_1_1serialization_1_1reader.html#a7fbdf13a0844bafff2103d6370fd7c09" title="The on-disk hash table used for the global method pool.">ASTSelectorLookupTable</a>;</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>   <span class="comment"></span></div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span> <span class="comment">/// \brief Trait class used to search the on-disk hash table containing all of</span></div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span> <span class="comment">/// the header search information.</span></div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span> <span class="comment">/// The on-disk hash table contains a mapping from each header path to </span></div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span> <span class="comment">/// information about that header (how many times it has been included, its</span></div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span> <span class="comment">/// controlling macro, etc.). Note that we actually hash based on the </span></div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span> <span class="comment">/// filename, and support "deep" comparisons of file names based on current</span></div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span> <span class="comment">/// inode numbers, so that the search can cope with non-normalized path names</span></div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span> <span class="comment">/// and symlinks.</span></div>
+<div class="line"><a name="l00197"></a><span class="lineno"><a class="code" href="classclang_1_1serialization_1_1reader_1_1HeaderFileInfoTrait.html">  197</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1serialization_1_1reader_1_1HeaderFileInfoTrait.html" title="Trait class used to search the on-disk hash table containing all of the header search information...">HeaderFileInfoTrait</a> {</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>   <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="l00199"></a><span class="lineno">  199</span>   <a class="code" href="classclang_1_1serialization_1_1ModuleFile.html" title="Information about a module that has been loaded by the ASTReader.">ModuleFile</a> &M;</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>   <a class="code" href="classclang_1_1HeaderSearch.html" title="Encapsulates the information needed to find the file referenced by a #include or #include_next, (sub-)framework lookup, etc.">HeaderSearch</a> *HS;</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>   <span class="keyword">const</span> <span class="keywordtype">char</span> *FrameworkStrings;</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span> </div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00204"></a><span class="lineno"><a class="code" href="classclang_1_1serialization_1_1reader_1_1HeaderFileInfoTrait.html#a7d17724fc4aa42e58b9a66decfacd53c">  204</a></span>   <span class="keyword">typedef</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a> *<a class="code" href="classclang_1_1serialization_1_1reader_1_1HeaderFileInfoTrait.html#a7d17724fc4aa42e58b9a66decfacd53c">external_key_type</a>;</div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span> </div>
+<div class="line"><a name="l00206"></a><span class="lineno"><a class="code" href="structclang_1_1serialization_1_1reader_1_1HeaderFileInfoTrait_1_1internal__key__type.html">  206</a></span>   <span class="keyword">struct </span><a class="code" href="structclang_1_1serialization_1_1reader_1_1HeaderFileInfoTrait_1_1internal__key__type.html">internal_key_type</a> {</div>
+<div class="line"><a name="l00207"></a><span class="lineno"><a class="code" href="structclang_1_1serialization_1_1reader_1_1HeaderFileInfoTrait_1_1internal__key__type.html#ad96647537eb8372e6c5e743888535eac">  207</a></span>     off_t <a class="code" href="structclang_1_1serialization_1_1reader_1_1HeaderFileInfoTrait_1_1internal__key__type.html#ad96647537eb8372e6c5e743888535eac">Size</a>;</div>
+<div class="line"><a name="l00208"></a><span class="lineno"><a class="code" href="structclang_1_1serialization_1_1reader_1_1HeaderFileInfoTrait_1_1internal__key__type.html#aeba079126466a46a84cb9c8c9d722f1f">  208</a></span>     time_t <a class="code" href="structclang_1_1serialization_1_1reader_1_1HeaderFileInfoTrait_1_1internal__key__type.html#aeba079126466a46a84cb9c8c9d722f1f">ModTime</a>;</div>
+<div class="line"><a name="l00209"></a><span class="lineno"><a class="code" href="structclang_1_1serialization_1_1reader_1_1HeaderFileInfoTrait_1_1internal__key__type.html#a11d012611c718070a9c14d541e79b948">  209</a></span>     <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structclang_1_1serialization_1_1reader_1_1HeaderFileInfoTrait_1_1internal__key__type.html#a11d012611c718070a9c14d541e79b948">Filename</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"><a class="code" href="classclang_1_1serialization_1_1reader_1_1HeaderFileInfoTrait.html#a3c8b147aa90093545711aa2fd22de170">  211</a></span>   <span class="keyword">typedef</span> <span class="keyword">const</span> <a class="code" href="structclang_1_1serialization_1_1reader_1_1HeaderFileInfoTrait_1_1internal__key__type.html">internal_key_type</a> &<a class="code" href="classclang_1_1serialization_1_1reader_1_1HeaderFileInfoTrait.html#a3c8b147aa90093545711aa2fd22de170">internal_key_ref</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"><a class="code" href="classclang_1_1serialization_1_1reader_1_1HeaderFileInfoTrait.html#a0f207fb0962a2baccfbbb0d7a171f2ef">  213</a></span>   <span class="keyword">typedef</span> <a class="code" href="structclang_1_1HeaderFileInfo.html" title="The preprocessor keeps track of this information for each file that is #included.">HeaderFileInfo</a> <a class="code" href="classclang_1_1serialization_1_1reader_1_1HeaderFileInfoTrait.html#a0f207fb0962a2baccfbbb0d7a171f2ef">data_type</a>;</div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>   </div>
+<div class="line"><a name="l00215"></a><span class="lineno"><a class="code" href="classclang_1_1serialization_1_1reader_1_1HeaderFileInfoTrait.html#aa7e141256171b316ff8b64efd8e8a55b">  215</a></span>   <a class="code" href="classclang_1_1serialization_1_1reader_1_1HeaderFileInfoTrait.html#aa7e141256171b316ff8b64efd8e8a55b">HeaderFileInfoTrait</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, <a class="code" href="classclang_1_1serialization_1_1ModuleFile.html" title="Information about a module that has been loaded by the ASTReader.">ModuleFile</a> &M, <a class="code" href="classclang_1_1HeaderSearch.html" title="Encapsulates the information needed to find the file referenced by a #include or #include_next, (sub-)framework lookup, etc.">HeaderSearch</a> *HS,</div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span>                       <span class="keyword">const</span> <span class="keywordtype">char</span> *FrameworkStrings)</div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span>   : Reader(Reader), M(M), HS(HS), FrameworkStrings(FrameworkStrings) { }</div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>   </div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>   <span class="keyword">static</span> <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1serialization_1_1reader_1_1HeaderFileInfoTrait.html#a7b606d0b4abdc4c75e997bd178262327">ComputeHash</a>(<a class="code" href="classclang_1_1serialization_1_1reader_1_1HeaderFileInfoTrait.html#a3c8b147aa90093545711aa2fd22de170">internal_key_ref</a> ikey);</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>   <span class="keyword">static</span> internal_key_type <a class="code" href="classclang_1_1serialization_1_1reader_1_1HeaderFileInfoTrait.html#ac14346a49fe410a45d948f208486fe00">GetInternalKey</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a> *FE);</div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span>   <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1serialization_1_1reader_1_1HeaderFileInfoTrait.html#a77ef75d939ec8b18b6af8dd479cf61b2">EqualKey</a>(<a class="code" href="classclang_1_1serialization_1_1reader_1_1HeaderFileInfoTrait.html#a3c8b147aa90093545711aa2fd22de170">internal_key_ref</a> a, <a class="code" href="classclang_1_1serialization_1_1reader_1_1HeaderFileInfoTrait.html#a3c8b147aa90093545711aa2fd22de170">internal_key_ref</a> b);</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">static</span> std::pair<unsigned, unsigned></div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>   <a class="code" href="classclang_1_1serialization_1_1reader_1_1HeaderFileInfoTrait.html#a692af601081ecb1006874e657774383d">ReadKeyDataLength</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>*& d);</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>   <span class="keyword">static</span> internal_key_type <a class="code" href="classclang_1_1serialization_1_1reader_1_1HeaderFileInfoTrait.html#acdc793c9e0644cdb53d5608fa2f50447">ReadKey</a>(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *d, <span class="keywordtype">unsigned</span>);</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>   <a class="code" href="classclang_1_1serialization_1_1reader_1_1HeaderFileInfoTrait.html#a0f207fb0962a2baccfbbb0d7a171f2ef">data_type</a> <a class="code" href="classclang_1_1serialization_1_1reader_1_1HeaderFileInfoTrait.html#a9d6ef25bdfd1deec9621a7b1a9c7d681">ReadData</a>(<a class="code" href="classclang_1_1serialization_1_1reader_1_1HeaderFileInfoTrait.html#a3c8b147aa90093545711aa2fd22de170">internal_key_ref</a>,<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *d, <span class="keywordtype">unsigned</span> DataLen);</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> <span class="comment"></span></div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span> <span class="comment">/// \brief The on-disk hash table used for known header files.</span></div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span> <span class="comment"></span><span class="keyword">typedef</span> <a class="code" href="classclang_1_1OnDiskChainedHashTable.html">OnDiskChainedHashTable<HeaderFileInfoTrait></a></div>
+<div class="line"><a name="l00233"></a><span class="lineno"><a class="code" href="namespaceclang_1_1serialization_1_1reader.html#ade89b336c6c747326d85799f8deeaf3c">  233</a></span>   <a class="code" href="namespaceclang_1_1serialization_1_1reader.html#ade89b336c6c747326d85799f8deeaf3c" title="The on-disk hash table used for known header files.">HeaderFileInfoLookupTable</a>;</div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>   </div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span> } <span class="comment">// end namespace clang::serialization::reader</span></div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span> } <span class="comment">// end namespace clang::serialization</span></div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span> } <span class="comment">// end namespace clang</span></div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span> </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> <span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:16 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