[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/ASTWriterDecl_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ASTWriterDecl_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ASTWriterDecl_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ASTWriterDecl_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,1994 @@
+<!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: ASTWriterDecl.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">ASTWriterDecl.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="ASTWriterDecl_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">//===--- ASTWriterDecl.cpp - Declaration Serialization --------------------===//</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 serialization for Declarations.</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> </div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> <span class="preprocessor">#include "<a class="code" href="ASTWriter_8h.html">clang/Serialization/ASTWriter.h</a>"</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> <span class="preprocessor">#include "<a class="code" href="ASTCommon_8h.html">ASTCommon.h</a>"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</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="l00017"></a><span class="lineno">   17</span> <span class="preprocessor">#include "<a class="code" href="DeclContextInternals_8h.html">clang/AST/DeclContextInternals.h</a>"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</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="l00019"></a><span class="lineno">   19</span> <span class="preprocessor">#include "<a class="code" href="DeclVisitor_8h.html">clang/AST/DeclVisitor.h</a>"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="preprocessor">#include "<a class="code" href="Expr_8h.html">clang/AST/Expr.h</a>"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="preprocessor">#include "<a class="code" href="SourceManager_8h.html" title="Defines the SourceManager interface.">clang/Basic/SourceManager.h</a>"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="preprocessor">#include "<a class="code" href="ASTReader_8h.html">clang/Serialization/ASTReader.h</a>"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="preprocessor">#include "llvm/ADT/Twine.h"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="preprocessor">#include "llvm/Bitcode/BitstreamWriter.h"</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="preprocessor">#include "llvm/Support/ErrorHandling.h"</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="keyword">using namespace </span>clang;</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="keyword">using namespace </span>serialization;</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="comment">// Declaration serialization</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span> </div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span> <span class="keyword">namespace </span>clang {</div>
+<div class="line"><a name="l00034"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html">   34</a></span>   <span class="keyword">class </span><a class="code" href="classclang_1_1ASTDeclWriter.html">ASTDeclWriter</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><ASTDeclWriter, void> {</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>     <a class="code" href="classclang_1_1ASTWriter.html" title="Writes an AST file containing the contents of a translation unit.">ASTWriter</a> &Writer;</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>     <a class="code" href="classclang_1_1ASTContext.html" title="Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...">ASTContext</a> &<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>;</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>     <span class="keyword">typedef</span> <a class="code" href="classllvm_1_1SmallVector.html">ASTWriter::RecordData</a> <a class="code" href="classllvm_1_1SmallVector.html">RecordData</a>;</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>     <a class="code" href="classllvm_1_1SmallVector.html">RecordData</a> &Record;</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span> </div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00042"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#ae5543725c305abc1f04ea2e6785c8723">   42</a></span>     <a class="code" href="group__ASTAST.html#ga8ee85854f8c999f4dad34a2afccdc1cd" title="Record codes for each kind of declaration.">serialization::DeclCode</a> <a class="code" href="classclang_1_1ASTDeclWriter.html#ae5543725c305abc1f04ea2e6785c8723">Code</a>;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#a705731936b32b1b7da179c737a298eeb">   43</a></span>     <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#a705731936b32b1b7da179c737a298eeb">AbbrevToUse</a>;</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span> </div>
+<div class="line"><a name="l00045"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#a120e1f987e996ce579c67f9ac75daa75">   45</a></span>     <a class="code" href="classclang_1_1ASTDeclWriter.html">ASTDeclWriter</a>(<a class="code" href="classclang_1_1ASTWriter.html" title="Writes an AST file containing the contents of a translation unit.">ASTWriter</a> &Writer, <a class="code" href="classclang_1_1ASTContext.html" title="Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...">ASTContext</a> &<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, <a class="code" href="classllvm_1_1SmallVector.html">RecordData</a> &Record)</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>       : Writer(Writer), Context(Context), Record(Record) {</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>     }</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span> </div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>     <span class="keywordtype">void</span> Visit(<a class="code" href="classclang_1_1Decl.html">Decl</a> *D);</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>     <span class="keywordtype">void</span> VisitDecl(<a class="code" href="classclang_1_1Decl.html">Decl</a> *D);</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>     <span class="keywordtype">void</span> VisitTranslationUnitDecl(<a class="code" href="classclang_1_1TranslationUnitDecl.html" title="TranslationUnitDecl - The top declaration context.">TranslationUnitDecl</a> *D);</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>     <span class="keywordtype">void</span> VisitNamedDecl(<a class="code" href="classclang_1_1NamedDecl.html">NamedDecl</a> *D);</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>     <span class="keywordtype">void</span> VisitLabelDecl(<a class="code" href="classclang_1_1LabelDecl.html">LabelDecl</a> *LD);</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</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="l00056"></a><span class="lineno">   56</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="l00057"></a><span class="lineno">   57</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="l00058"></a><span class="lineno">   58</span>     <span class="keywordtype">void</span> VisitTypeDecl(<a class="code" href="classclang_1_1TypeDecl.html">TypeDecl</a> *D);</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</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> *D);</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>     <span class="keywordtype">void</span> VisitTypedefDecl(<a class="code" href="classclang_1_1TypedefDecl.html">TypedefDecl</a> *D);</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>     <span class="keywordtype">void</span> VisitTypeAliasDecl(<a class="code" href="classclang_1_1TypeAliasDecl.html">TypeAliasDecl</a> *D);</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</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="l00063"></a><span class="lineno">   63</span>     <span class="keywordtype">void</span> VisitTagDecl(<a class="code" href="classclang_1_1TagDecl.html" title="TagDecl - Represents the declaration of a struct/union/class/enum.">TagDecl</a> *D);</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>     <span class="keywordtype">void</span> VisitEnumDecl(<a class="code" href="classclang_1_1EnumDecl.html">EnumDecl</a> *D);</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>     <span class="keywordtype">void</span> VisitRecordDecl(<a class="code" href="classclang_1_1RecordDecl.html">RecordDecl</a> *D);</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>     <span class="keywordtype">void</span> VisitCXXRecordDecl(<a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *D);</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>     <span class="keywordtype">void</span> VisitClassTemplateSpecializationDecl(</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</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="l00069"></a><span class="lineno">   69</span>     <span class="keywordtype">void</span> VisitClassTemplatePartialSpecializationDecl(</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>                                      <a class="code" href="classclang_1_1ClassTemplatePartialSpecializationDecl.html">ClassTemplatePartialSpecializationDecl</a> *D);</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>     <span class="keywordtype">void</span> VisitVarTemplateSpecializationDecl(<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="l00072"></a><span class="lineno">   72</span>     <span class="keywordtype">void</span> VisitVarTemplatePartialSpecializationDecl(</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>         <a class="code" href="classclang_1_1VarTemplatePartialSpecializationDecl.html">VarTemplatePartialSpecializationDecl</a> *D);</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>     <span class="keywordtype">void</span> VisitClassScopeFunctionSpecializationDecl(</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</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="l00076"></a><span class="lineno">   76</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="l00077"></a><span class="lineno">   77</span>     <span class="keywordtype">void</span> VisitValueDecl(<a class="code" href="classclang_1_1ValueDecl.html">ValueDecl</a> *D);</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>     <span class="keywordtype">void</span> VisitEnumConstantDecl(<a class="code" href="classclang_1_1EnumConstantDecl.html">EnumConstantDecl</a> *D);</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</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="l00080"></a><span class="lineno">   80</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> *D);</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>     <span class="keywordtype">void</span> VisitFunctionDecl(<a class="code" href="classclang_1_1FunctionDecl.html">FunctionDecl</a> *D);</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</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="l00083"></a><span class="lineno">   83</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="l00084"></a><span class="lineno">   84</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="l00085"></a><span class="lineno">   85</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="l00086"></a><span class="lineno">   86</span>     <span class="keywordtype">void</span> VisitFieldDecl(<a class="code" href="classclang_1_1FieldDecl.html">FieldDecl</a> *D);</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>     <span class="keywordtype">void</span> VisitMSPropertyDecl(<a class="code" href="classclang_1_1MSPropertyDecl.html">MSPropertyDecl</a> *D);</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>     <span class="keywordtype">void</span> VisitIndirectFieldDecl(<a class="code" href="classclang_1_1IndirectFieldDecl.html">IndirectFieldDecl</a> *D);</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>     <span class="keywordtype">void</span> VisitVarDecl(<a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *D);</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>     <span class="keywordtype">void</span> VisitImplicitParamDecl(<a class="code" href="classclang_1_1ImplicitParamDecl.html">ImplicitParamDecl</a> *D);</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</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> *D);</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>     <span class="keywordtype">void</span> VisitNonTypeTemplateParmDecl(<a class="code" href="classclang_1_1NonTypeTemplateParmDecl.html">NonTypeTemplateParmDecl</a> *D);</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</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="l00094"></a><span class="lineno">   94</span>     <span class="keywordtype">void</span> VisitRedeclarableTemplateDecl(<a class="code" href="classclang_1_1RedeclarableTemplateDecl.html" title="Declaration of a redeclarable template.">RedeclarableTemplateDecl</a> *D);</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</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="l00096"></a><span class="lineno">   96</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="l00097"></a><span class="lineno">   97</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="l00098"></a><span class="lineno">   98</span>     <span class="keywordtype">void</span> VisitTemplateTemplateParmDecl(<a class="code" href="classclang_1_1TemplateTemplateParmDecl.html">TemplateTemplateParmDecl</a> *D);</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</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="l00100"></a><span class="lineno">  100</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="l00101"></a><span class="lineno">  101</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="l00102"></a><span class="lineno">  102</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="l00103"></a><span class="lineno">  103</span>     <span class="keywordtype">void</span> VisitFileScopeAsmDecl(<a class="code" href="classclang_1_1FileScopeAsmDecl.html">FileScopeAsmDecl</a> *D);</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</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="l00105"></a><span class="lineno">  105</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="l00106"></a><span class="lineno">  106</span>     <span class="keywordtype">void</span> VisitFriendDecl(<a class="code" href="classclang_1_1FriendDecl.html">FriendDecl</a> *D);</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</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="l00108"></a><span class="lineno">  108</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="l00109"></a><span class="lineno">  109</span>     <span class="keywordtype">void</span> VisitBlockDecl(<a class="code" href="classclang_1_1BlockDecl.html">BlockDecl</a> *D);</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</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> *D);</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</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="l00112"></a><span class="lineno">  112</span> </div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>     <span class="keywordtype">void</span> VisitDeclContext(<a class="code" href="classclang_1_1DeclContext.html">DeclContext</a> *DC, uint64_t LexicalOffset,</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>                           uint64_t VisibleOffset);</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>     <span class="keyword">template</span> <<span class="keyword">typename</span> T> <span class="keywordtype">void</span> 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="l00116"></a><span class="lineno">  116</span> </div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span> </div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>     <span class="comment">// FIXME: Put in the same order is DeclNodes.td?</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>     <span class="keywordtype">void</span> VisitObjCMethodDecl(<a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *D);</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>     <span class="keywordtype">void</span> VisitObjCContainerDecl(<a class="code" href="classclang_1_1ObjCContainerDecl.html">ObjCContainerDecl</a> *D);</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</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="l00122"></a><span class="lineno">  122</span>     <span class="keywordtype">void</span> VisitObjCIvarDecl(<a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *D);</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</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="l00124"></a><span class="lineno">  124</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="l00125"></a><span class="lineno">  125</span>     <span class="keywordtype">void</span> VisitObjCCategoryDecl(<a class="code" href="classclang_1_1ObjCCategoryDecl.html">ObjCCategoryDecl</a> *D);</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>     <span class="keywordtype">void</span> VisitObjCImplDecl(<a class="code" href="classclang_1_1ObjCImplDecl.html">ObjCImplDecl</a> *D);</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>     <span class="keywordtype">void</span> VisitObjCCategoryImplDecl(<a class="code" href="classclang_1_1ObjCCategoryImplDecl.html">ObjCCategoryImplDecl</a> *D);</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>     <span class="keywordtype">void</span> VisitObjCImplementationDecl(<a class="code" href="classclang_1_1ObjCImplementationDecl.html">ObjCImplementationDecl</a> *D);</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>     <span class="keywordtype">void</span> VisitObjCCompatibleAliasDecl(<a class="code" href="classclang_1_1ObjCCompatibleAliasDecl.html">ObjCCompatibleAliasDecl</a> *D);</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</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="l00131"></a><span class="lineno">  131</span>     <span class="keywordtype">void</span> VisitObjCPropertyImplDecl(<a class="code" href="classclang_1_1ObjCPropertyImplDecl.html">ObjCPropertyImplDecl</a> *D);</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</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="l00133"></a><span class="lineno">  133</span>   };</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span> }</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span> </div>
+<div class="line"><a name="l00136"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#a5ad99d60c85de55361d94e7bb041a136">  136</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#a5ad99d60c85de55361d94e7bb041a136">ASTDeclWriter::Visit</a>(<a class="code" href="classclang_1_1Decl.html">Decl</a> *D) {</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>   <a class="code" href="classclang_1_1declvisitor_1_1Base.html#a23af79ab6d02d9ea6033253eb5b60e95">DeclVisitor<ASTDeclWriter>::Visit</a>(D);</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span> </div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>   <span class="comment">// Source locations require array (variable-length) abbreviations.  The</span></div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>   <span class="comment">// abbreviation infrastructure requires that arrays are encoded last, so</span></div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>   <span class="comment">// we handle it here in the case of those classes derived from DeclaratorDecl</span></div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</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="l00143"></a><span class="lineno">  143</span>     Writer.AddTypeSourceInfo(DD->getTypeSourceInfo(), Record);</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</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>   <span class="comment">// Handle FunctionDecl's body here and write it after all other Stmts/Exprs</span></div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>   <span class="comment">// have been written. We want it last because we will not read it back when</span></div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>   <span class="comment">// retrieving it from the AST, we'll just lazily set the offset. </span></div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</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="l00150"></a><span class="lineno">  150</span>     Record.push_back(FD->doesThisDeclarationHaveABody());</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>     <span class="keywordflow">if</span> (FD->doesThisDeclarationHaveABody())</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>       Writer.AddStmt(FD->getBody());</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>   }</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span> }</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span> </div>
+<div class="line"><a name="l00156"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#a740e7d0a22e5db0d2f6ad1de9df79455">  156</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#a740e7d0a22e5db0d2f6ad1de9df79455">ASTDeclWriter::VisitDecl</a>(<a class="code" href="classclang_1_1Decl.html">Decl</a> *D) {</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>   Writer.AddDeclRef(cast_or_null<Decl>(D-><a class="code" href="classclang_1_1Decl.html#af67e1a1d24dcc51093b95dbcf68d4288">getDeclContext</a>()), Record);</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>   Writer.AddDeclRef(cast_or_null<Decl>(D-><a class="code" href="classclang_1_1Decl.html#aa390f755d0a0a1fc7fc557af886e4c93">getLexicalDeclContext</a>()), Record);</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>   Record.push_back(D-><a class="code" href="classclang_1_1Decl.html#a17ec912fd67469eea51741d45eb0c800">isInvalidDecl</a>());</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>   Record.push_back(D-><a class="code" href="classclang_1_1Decl.html#a003fece5918f94442ff29d24f5e8c1cc">hasAttrs</a>());</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>   <span class="keywordflow">if</span> (D-><a class="code" href="classclang_1_1Decl.html#a003fece5918f94442ff29d24f5e8c1cc">hasAttrs</a>())</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>     Writer.WriteAttributes(<a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<const Attr*></a>(D-><a class="code" href="classclang_1_1Decl.html#a59463d45ab90b696a368b58d23eb49aa">getAttrs</a>().begin(),</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>                                                  D-><a class="code" href="classclang_1_1Decl.html#a59463d45ab90b696a368b58d23eb49aa">getAttrs</a>().size()), Record);</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>   Record.push_back(D-><a class="code" href="classclang_1_1Decl.html#ac4fdc680ed3574eb8630eb54d7869125">isImplicit</a>());</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>   Record.push_back(D-><a class="code" href="classclang_1_1Decl.html#ad588cec2ab8cfc2963b9ee5a9a21d304" title="Whether this declaration was used, meaning that a definition is required.">isUsed</a>(<span class="keyword">false</span>));</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>   Record.push_back(D-><a class="code" href="classclang_1_1Decl.html#a3d1b39277883c845c5d51301f302cf03" title="Whether this declaration was referenced.">isReferenced</a>());</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>   Record.push_back(D-><a class="code" href="classclang_1_1Decl.html#a552711754a4c45d49c6e2de83917e39a" title="Whether this declaration is a top-level declaration (function, global variable, etc.) that is lexically inside an objc container definition.">isTopLevelDeclInObjCContainer</a>());</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>   Record.push_back(D-><a class="code" href="classclang_1_1Decl.html#a81e82461f69e9a50e129ef4bfac42987">getAccess</a>());</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>   Record.push_back(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="l00170"></a><span class="lineno">  170</span>   Record.push_back(Writer.inferSubmoduleIDFromLocation(D-><a class="code" href="classclang_1_1Decl.html#a2348196ac4e0b1d5ebb1859c31b99eac">getLocation</a>()));</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span> }</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span> </div>
+<div class="line"><a name="l00173"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#ae543512cf715162b285beeabf0578da8">  173</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#ae543512cf715162b285beeabf0578da8">ASTDeclWriter::VisitTranslationUnitDecl</a>(<a class="code" href="classclang_1_1TranslationUnitDecl.html" title="TranslationUnitDecl - The top declaration context.">TranslationUnitDecl</a> *D) {</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>   llvm_unreachable(<span class="stringliteral">"Translation units aren't directly serialized"</span>);</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span> }</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span> </div>
+<div class="line"><a name="l00177"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#a101cf25b74f3398ff11faa781551e35f">  177</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#a101cf25b74f3398ff11faa781551e35f">ASTDeclWriter::VisitNamedDecl</a>(<a class="code" href="classclang_1_1NamedDecl.html">NamedDecl</a> *D) {</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>   VisitDecl(D);</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>   Writer.AddDeclarationName(D-><a class="code" href="classclang_1_1NamedDecl.html#a1e3e90455be89bb5c7c23640cbbd7153">getDeclName</a>(), Record);</div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span> }</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span> </div>
+<div class="line"><a name="l00182"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#a7daff4b14092368e94f68b652def9ebf">  182</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#a7daff4b14092368e94f68b652def9ebf">ASTDeclWriter::VisitTypeDecl</a>(<a class="code" href="classclang_1_1TypeDecl.html">TypeDecl</a> *D) {</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>   VisitNamedDecl(D);</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>   Writer.AddSourceLocation(D-><a class="code" href="classclang_1_1TypeDecl.html#a23638a196e3c188efabf9821e8e1a88f">getLocStart</a>(), Record);</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>   Writer.AddTypeRef(<a class="code" href="classclang_1_1QualType.html">QualType</a>(D-><a class="code" href="classclang_1_1TypeDecl.html#afc36b0e53d5a3379fb9c1ab39d5c6cbc">getTypeForDecl</a>(), 0), Record);</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> </div>
+<div class="line"><a name="l00188"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#aa19b07874b2d109375548a58fd9b45cf">  188</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#aa19b07874b2d109375548a58fd9b45cf">ASTDeclWriter::VisitTypedefNameDecl</a>(<a class="code" href="classclang_1_1TypedefNameDecl.html" title="Base class for declarations which introduce a typedef-name.">TypedefNameDecl</a> *D) {</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>   VisitRedeclarable(D);</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>   VisitTypeDecl(D);</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>   Writer.AddTypeSourceInfo(D-><a class="code" href="classclang_1_1TypedefNameDecl.html#a0d60e0e9a621d58b890dd8f416afbce3">getTypeSourceInfo</a>(), Record);</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>   Record.push_back(D-><a class="code" href="classclang_1_1TypedefNameDecl.html#a93d1e86677eb9b4311a887fe6131e007">isModed</a>());</div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span>   <span class="keywordflow">if</span> (D-><a class="code" href="classclang_1_1TypedefNameDecl.html#a93d1e86677eb9b4311a887fe6131e007">isModed</a>())</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>     Writer.AddTypeRef(D-><a class="code" href="classclang_1_1TypedefNameDecl.html#a5fccedff6d3854db365a540145029158">getUnderlyingType</a>(), Record);</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> </div>
+<div class="line"><a name="l00197"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#a987e91f0f3cb8b7bf4a1894543e7e010">  197</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#a987e91f0f3cb8b7bf4a1894543e7e010">ASTDeclWriter::VisitTypedefDecl</a>(<a class="code" href="classclang_1_1TypedefDecl.html">TypedefDecl</a> *D) {</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>   VisitTypedefNameDecl(D);</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>   <span class="keywordflow">if</span> (!D-><a class="code" href="classclang_1_1Decl.html#a003fece5918f94442ff29d24f5e8c1cc">hasAttrs</a>() &&</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>       !D-><a class="code" href="classclang_1_1Decl.html#ac4fdc680ed3574eb8630eb54d7869125">isImplicit</a>() &&</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>       !D-><a class="code" href="classclang_1_1Decl.html#ad588cec2ab8cfc2963b9ee5a9a21d304" title="Whether this declaration was used, meaning that a definition is required.">isUsed</a>(<span class="keyword">false</span>) &&</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>       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>() == D-><a class="code" href="classclang_1_1Redeclarable.html#a9ea014cf6b0106a824cb7a1eb0b29252" title="Returns the most recent (re)declaration of this declaration.">getMostRecentDecl</a>() &&</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>       !D-><a class="code" href="classclang_1_1Decl.html#a17ec912fd67469eea51741d45eb0c800">isInvalidDecl</a>() &&</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>       !D-><a class="code" href="classclang_1_1Decl.html#a3d1b39277883c845c5d51301f302cf03" title="Whether this declaration was referenced.">isReferenced</a>() &&</div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>       !D-><a class="code" href="classclang_1_1Decl.html#a552711754a4c45d49c6e2de83917e39a" title="Whether this declaration is a top-level declaration (function, global variable, etc.) that is lexically inside an objc container definition.">isTopLevelDeclInObjCContainer</a>() &&</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>       D-><a class="code" href="classclang_1_1Decl.html#a81e82461f69e9a50e129ef4bfac42987">getAccess</a>() == <a class="code" href="namespaceclang.html#afc8aabd1f46cf32e805cd0d970ef988fa24d2c10b569678923a7bff78b68cb02b">AS_none</a> &&</div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</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="l00208"></a><span class="lineno">  208</span>       D-><a class="code" href="classclang_1_1NamedDecl.html#a1e3e90455be89bb5c7c23640cbbd7153">getDeclName</a>().<a class="code" href="classclang_1_1DeclarationName.html#a3e722af81dd4b5670e834b20f47ba94b" title="getNameKind - Determine what kind of name this is.">getNameKind</a>() == <a class="code" href="classclang_1_1DeclarationName.html#a9ab322d434446b43379d39e41af5cbe3a244f43949d88869f4d8782e758f5bac8">DeclarationName::Identifier</a>)</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>     AbbrevToUse = Writer.getDeclTypedefAbbrev();</div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span> </div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda422905d00e014ff3366cc40b89711606" title="A TypedefDecl record.">serialization::DECL_TYPEDEF</a>;</div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span> }</div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span> </div>
+<div class="line"><a name="l00214"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#afa3699f7f89656f4a4cabe0bc0aed133">  214</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#afa3699f7f89656f4a4cabe0bc0aed133">ASTDeclWriter::VisitTypeAliasDecl</a>(<a class="code" href="classclang_1_1TypeAliasDecl.html">TypeAliasDecl</a> *D) {</div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span>   VisitTypedefNameDecl(D);</div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda491fc5b243c10526b48beaebbb106b63" title="A TypeAliasDecl record.">serialization::DECL_TYPEALIAS</a>;</div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span> }</div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span> </div>
+<div class="line"><a name="l00219"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#af94379a164630a496fbdbfd3e86afd2b">  219</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#af94379a164630a496fbdbfd3e86afd2b">ASTDeclWriter::VisitTagDecl</a>(<a class="code" href="classclang_1_1TagDecl.html" title="TagDecl - Represents the declaration of a struct/union/class/enum.">TagDecl</a> *D) {</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>   VisitRedeclarable(D);</div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span>   VisitTypeDecl(D);</div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span>   Record.push_back(D-><a class="code" href="classclang_1_1Decl.html#a1172fe32c48af6bf358c3ae0e81a9257">getIdentifierNamespace</a>());</div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span>   Record.push_back((<span class="keywordtype">unsigned</span>)D-><a class="code" href="classclang_1_1TagDecl.html#a085b44700ac5a2dfce438c48a4378aae">getTagKind</a>()); <span class="comment">// FIXME: stable encoding</span></div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>   Record.push_back(D-><a class="code" href="classclang_1_1TagDecl.html#a05518a8ffe57a8add6b7777796c12362">isCompleteDefinition</a>());</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>   Record.push_back(D-><a class="code" href="classclang_1_1TagDecl.html#a23a9723d403a5dafbe84403fbc9808c1">isEmbeddedInDeclarator</a>());</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>   Record.push_back(D-><a class="code" href="classclang_1_1TagDecl.html#a8f117733ae6538382f3722664162b6c2">isFreeStanding</a>());</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>   Record.push_back(D-><a class="code" href="classclang_1_1TagDecl.html#a34ebc88f6fadf5612f8eb4aff1666d5b" title="Return true if this complete decl is required to be complete for some existing use.">isCompleteDefinitionRequired</a>());</div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span>   Writer.AddSourceLocation(D-><a class="code" href="classclang_1_1TagDecl.html#a517b2bf06f523420f3af336fb8c97f76">getRBraceLoc</a>(), Record);</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span>   Record.push_back(D->hasExtInfo());</div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span>   <span class="keywordflow">if</span> (D->hasExtInfo())</div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span>     Writer.AddQualifierInfo(*D->getExtInfo(), Record);</div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span>   <span class="keywordflow">else</span> <span class="keywordflow">if</span> (D-><a class="code" href="classclang_1_1TagDecl.html#a44430350afaaa0759136910aca1e4f6a">hasDeclaratorForAnonDecl</a>())</div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span>     Writer.AddDeclRef(D-><a class="code" href="classclang_1_1TagDecl.html#a79a9526f4ce89bf121305c140618b301">getDeclaratorForAnonDecl</a>(), Record);</div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>   <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span>     Writer.AddDeclRef(D-><a class="code" href="classclang_1_1TagDecl.html#a52132644e689627f869ec01064fe69b6">getTypedefNameForAnonDecl</a>(), Record);</div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span> }</div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span> </div>
+<div class="line"><a name="l00238"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#ae0dfadd186dab081c0807878fe7ea5b7">  238</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#ae0dfadd186dab081c0807878fe7ea5b7">ASTDeclWriter::VisitEnumDecl</a>(<a class="code" href="classclang_1_1EnumDecl.html">EnumDecl</a> *D) {</div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span>   VisitTagDecl(D);</div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span>   Writer.AddTypeSourceInfo(D-><a class="code" href="classclang_1_1EnumDecl.html#a1b43f7c8f5e9a6309aa63c86875924aa" title="Return the type source info for the underlying integer type, if no type source info exists...">getIntegerTypeSourceInfo</a>(), Record);</div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span>   <span class="keywordflow">if</span> (!D-><a class="code" href="classclang_1_1EnumDecl.html#a1b43f7c8f5e9a6309aa63c86875924aa" title="Return the type source info for the underlying integer type, if no type source info exists...">getIntegerTypeSourceInfo</a>())</div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span>     Writer.AddTypeRef(D-><a class="code" href="classclang_1_1EnumDecl.html#a09e5024add120a01ec710f0189c24616">getIntegerType</a>(), Record);</div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span>   Writer.AddTypeRef(D-><a class="code" href="classclang_1_1EnumDecl.html#ac592484ddb87133cef96f9fcb134a69a">getPromotionType</a>(), Record);</div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span>   Record.push_back(D-><a class="code" href="classclang_1_1EnumDecl.html#a97d78e49a3b47daacc3efc6363024bed" title="Returns the width in bits required to store all the non-negative enumerators of this enum...">getNumPositiveBits</a>());</div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span>   Record.push_back(D-><a class="code" href="classclang_1_1EnumDecl.html#a03141c66011449d3836cf850f378d066" title="Returns the width in bits required to store all the negative enumerators of this enum. These widths include the rightmost leading 1; that is:">getNumNegativeBits</a>());</div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span>   Record.push_back(D-><a class="code" href="classclang_1_1EnumDecl.html#a6598a51fbbfacf65603b72957662a6ae" title="Returns true if this is a C++11 scoped enumeration.">isScoped</a>());</div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span>   Record.push_back(D-><a class="code" href="classclang_1_1EnumDecl.html#ab834aae2f5ed838b6268f6ab433b7a13" title="Returns true if this is a C++11 scoped enumeration.">isScopedUsingClassTag</a>());</div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span>   Record.push_back(D-><a class="code" href="classclang_1_1EnumDecl.html#a0af07c1f3c99e599d4be203599a0b820" title="Returns true if this is an Objective-C, C++11, or Microsoft-style enumeration with a fixed underlying...">isFixed</a>());</div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span>   <span class="keywordflow">if</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> *MemberInfo = D-><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>()) {</div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span>     Writer.AddDeclRef(MemberInfo->getInstantiatedFrom(), Record);</div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span>     Record.push_back(MemberInfo->getTemplateSpecializationKind());</div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span>     Writer.AddSourceLocation(MemberInfo->getPointOfInstantiation(), Record);</div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span>     Writer.AddDeclRef(0, Record);</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> </div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span>   <span class="keywordflow">if</span> (!D-><a class="code" href="classclang_1_1Decl.html#a003fece5918f94442ff29d24f5e8c1cc">hasAttrs</a>() &&</div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span>       !D-><a class="code" href="classclang_1_1Decl.html#ac4fdc680ed3574eb8630eb54d7869125">isImplicit</a>() &&</div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span>       !D-><a class="code" href="classclang_1_1Decl.html#ad588cec2ab8cfc2963b9ee5a9a21d304" title="Whether this declaration was used, meaning that a definition is required.">isUsed</a>(<span class="keyword">false</span>) &&</div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span>       !D->hasExtInfo() &&</div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span>       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>() == D-><a class="code" href="classclang_1_1EnumDecl.html#a0be85e6054cdae61eac0730e07316eb6">getMostRecentDecl</a>() &&</div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span>       !D-><a class="code" href="classclang_1_1Decl.html#a17ec912fd67469eea51741d45eb0c800">isInvalidDecl</a>() &&</div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span>       !D-><a class="code" href="classclang_1_1Decl.html#a3d1b39277883c845c5d51301f302cf03" title="Whether this declaration was referenced.">isReferenced</a>() &&</div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span>       !D-><a class="code" href="classclang_1_1Decl.html#a552711754a4c45d49c6e2de83917e39a" title="Whether this declaration is a top-level declaration (function, global variable, etc.) that is lexically inside an objc container definition.">isTopLevelDeclInObjCContainer</a>() &&</div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span>       D-><a class="code" href="classclang_1_1Decl.html#a81e82461f69e9a50e129ef4bfac42987">getAccess</a>() == <a class="code" href="namespaceclang.html#afc8aabd1f46cf32e805cd0d970ef988fa24d2c10b569678923a7bff78b68cb02b">AS_none</a> &&</div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</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="l00267"></a><span class="lineno">  267</span>       !<a class="code" href="classclang_1_1CXXRecordDecl.html#aca7b0d6bbcc2e85ae07e6173364bba90">CXXRecordDecl::classofKind</a>(D-><a class="code" href="classclang_1_1Decl.html#a6c53e861dae5545e8f6974af04cb2986">getKind</a>()) &&</div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span>       !D-><a class="code" href="classclang_1_1EnumDecl.html#a1b43f7c8f5e9a6309aa63c86875924aa" title="Return the type source info for the underlying integer type, if no type source info exists...">getIntegerTypeSourceInfo</a>() &&</div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span>       !D-><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>() &&</div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span>       D-><a class="code" href="classclang_1_1NamedDecl.html#a1e3e90455be89bb5c7c23640cbbd7153">getDeclName</a>().<a class="code" href="classclang_1_1DeclarationName.html#a3e722af81dd4b5670e834b20f47ba94b" title="getNameKind - Determine what kind of name this is.">getNameKind</a>() == <a class="code" href="classclang_1_1DeclarationName.html#a9ab322d434446b43379d39e41af5cbe3a244f43949d88869f4d8782e758f5bac8">DeclarationName::Identifier</a>)</div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span>     AbbrevToUse = Writer.getDeclEnumAbbrev();</div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span> </div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdacd7c98403463dcf489152e6fa9d3d945" title="An EnumDecl record.">serialization::DECL_ENUM</a>;</div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span> }</div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span> </div>
+<div class="line"><a name="l00276"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#a9122311dde3789f198f39e3629476f7f">  276</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#a9122311dde3789f198f39e3629476f7f">ASTDeclWriter::VisitRecordDecl</a>(<a class="code" href="classclang_1_1RecordDecl.html">RecordDecl</a> *D) {</div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span>   VisitTagDecl(D);</div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span>   Record.push_back(D-><a class="code" href="classclang_1_1RecordDecl.html#aaacf26482f17281507bd198e82ee7a7e">hasFlexibleArrayMember</a>());</div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span>   Record.push_back(D-><a class="code" href="classclang_1_1RecordDecl.html#ad2dd151523eecb8d15149cc0937c3dff">isAnonymousStructOrUnion</a>());</div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span>   Record.push_back(D-><a class="code" href="classclang_1_1RecordDecl.html#a0fbd75f4cfcc85aeaa36554078a1e62f">hasObjectMember</a>());</div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span>   Record.push_back(D-><a class="code" href="classclang_1_1RecordDecl.html#a3d62e73b14bb7b7f8579b87f1348e6da">hasVolatileMember</a>());</div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span> </div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span>   <span class="keywordflow">if</span> (!D-><a class="code" href="classclang_1_1Decl.html#a003fece5918f94442ff29d24f5e8c1cc">hasAttrs</a>() &&</div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span>       !D-><a class="code" href="classclang_1_1Decl.html#ac4fdc680ed3574eb8630eb54d7869125">isImplicit</a>() &&</div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span>       !D-><a class="code" href="classclang_1_1Decl.html#ad588cec2ab8cfc2963b9ee5a9a21d304" title="Whether this declaration was used, meaning that a definition is required.">isUsed</a>(<span class="keyword">false</span>) &&</div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span>       !D->hasExtInfo() &&</div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span>       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>() == D-><a class="code" href="classclang_1_1RecordDecl.html#ae4cebd25b3bf7adf980ea071c018385e">getMostRecentDecl</a>() &&</div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span>       !D-><a class="code" href="classclang_1_1Decl.html#a17ec912fd67469eea51741d45eb0c800">isInvalidDecl</a>() &&</div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span>       !D-><a class="code" href="classclang_1_1Decl.html#a3d1b39277883c845c5d51301f302cf03" title="Whether this declaration was referenced.">isReferenced</a>() &&</div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span>       !D-><a class="code" href="classclang_1_1Decl.html#a552711754a4c45d49c6e2de83917e39a" title="Whether this declaration is a top-level declaration (function, global variable, etc.) that is lexically inside an objc container definition.">isTopLevelDeclInObjCContainer</a>() &&</div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span>       D-><a class="code" href="classclang_1_1Decl.html#a81e82461f69e9a50e129ef4bfac42987">getAccess</a>() == <a class="code" href="namespaceclang.html#afc8aabd1f46cf32e805cd0d970ef988fa24d2c10b569678923a7bff78b68cb02b">AS_none</a> &&</div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</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="l00293"></a><span class="lineno">  293</span>       !<a class="code" href="classclang_1_1CXXRecordDecl.html#aca7b0d6bbcc2e85ae07e6173364bba90">CXXRecordDecl::classofKind</a>(D-><a class="code" href="classclang_1_1Decl.html#a6c53e861dae5545e8f6974af04cb2986">getKind</a>()) &&</div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span>       D-><a class="code" href="classclang_1_1NamedDecl.html#a1e3e90455be89bb5c7c23640cbbd7153">getDeclName</a>().<a class="code" href="classclang_1_1DeclarationName.html#a3e722af81dd4b5670e834b20f47ba94b" title="getNameKind - Determine what kind of name this is.">getNameKind</a>() == <a class="code" href="classclang_1_1DeclarationName.html#a9ab322d434446b43379d39e41af5cbe3a244f43949d88869f4d8782e758f5bac8">DeclarationName::Identifier</a>)</div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span>     AbbrevToUse = Writer.getDeclRecordAbbrev();</div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span> </div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda7482e398f9d4b3572edf31ceef7321b6" title="A RecordDecl record.">serialization::DECL_RECORD</a>;</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> </div>
+<div class="line"><a name="l00300"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#a4e7e8efa1ce5c3cc87b5773c7ab831f6">  300</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#a4e7e8efa1ce5c3cc87b5773c7ab831f6">ASTDeclWriter::VisitValueDecl</a>(<a class="code" href="classclang_1_1ValueDecl.html">ValueDecl</a> *D) {</div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span>   VisitNamedDecl(D);</div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span>   Writer.AddTypeRef(D-><a class="code" href="classclang_1_1ValueDecl.html#aefa6d3327144aee23d2935f41d993484">getType</a>(), Record);</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> </div>
+<div class="line"><a name="l00305"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#a860f25ea8d2df4725bd1d7bd62750d1a">  305</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#a860f25ea8d2df4725bd1d7bd62750d1a">ASTDeclWriter::VisitEnumConstantDecl</a>(<a class="code" href="classclang_1_1EnumConstantDecl.html">EnumConstantDecl</a> *D) {</div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span>   VisitValueDecl(D);</div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span>   Record.push_back(D-><a class="code" href="classclang_1_1EnumConstantDecl.html#a87c08983c35df1f83c72e7f356034f20">getInitExpr</a>()? 1 : 0);</div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span>   <span class="keywordflow">if</span> (D-><a class="code" href="classclang_1_1EnumConstantDecl.html#a87c08983c35df1f83c72e7f356034f20">getInitExpr</a>())</div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span>     Writer.AddStmt(D-><a class="code" href="classclang_1_1EnumConstantDecl.html#a87c08983c35df1f83c72e7f356034f20">getInitExpr</a>());</div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span>   Writer.AddAPSInt(D-><a class="code" href="classclang_1_1EnumConstantDecl.html#a57d41ce7068cf0facc8841d25db9f602">getInitVal</a>(), Record);</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>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda403e04c8a8e8fb93b42c47b0a4a281ec" title="An EnumConstantDecl record.">serialization::DECL_ENUM_CONSTANT</a>;</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> </div>
+<div class="line"><a name="l00315"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#a24b4d2482d86293f0dbbfae95564de8d">  315</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#a24b4d2482d86293f0dbbfae95564de8d">ASTDeclWriter::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> *D) {</div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span>   VisitValueDecl(D);</div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span>   Writer.AddSourceLocation(D-><a class="code" href="classclang_1_1DeclaratorDecl.html#a70b2b4fd72d0322253e5259a8d23ca26">getInnerLocStart</a>(), Record);</div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span>   Record.push_back(D->hasExtInfo());</div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span>   <span class="keywordflow">if</span> (D->hasExtInfo())</div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span>     Writer.AddQualifierInfo(*D->getExtInfo(), Record);</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> </div>
+<div class="line"><a name="l00323"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#add8c0315c1fcea0e55805f0dc2604f02">  323</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#add8c0315c1fcea0e55805f0dc2604f02">ASTDeclWriter::VisitFunctionDecl</a>(<a class="code" href="classclang_1_1FunctionDecl.html">FunctionDecl</a> *D) {</div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span>   VisitRedeclarable(D);</div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span>   VisitDeclaratorDecl(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>   Writer.AddDeclarationNameLoc(D->DNLoc, D-><a class="code" href="classclang_1_1NamedDecl.html#a1e3e90455be89bb5c7c23640cbbd7153">getDeclName</a>(), Record);</div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span>   Record.push_back(D-><a class="code" href="classclang_1_1Decl.html#a1172fe32c48af6bf358c3ae0e81a9257">getIdentifierNamespace</a>());</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>   <span class="comment">// FunctionDecl's body is handled last at ASTWriterDecl::Visit,</span></div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span>   <span class="comment">// after everything else is written.</span></div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span>   </div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span>   Record.push_back(D-><a class="code" href="classclang_1_1FunctionDecl.html#aeb4c7e5a876665e4a955ae91f19204d4" title="Returns the storage class as written in the source. For the computed linkage of symbol, see getLinkage.">getStorageClass</a>()); <span class="comment">// FIXME: stable encoding</span></div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span>   Record.push_back(D->IsInline);</div>
+<div class="line"><a name="l00335"></a><span class="lineno">  335</span>   Record.push_back(D-><a class="code" href="classclang_1_1FunctionDecl.html#acdcff3767048184ade7d27e0006cfabd" title="Determine whether the "inline" keyword was specified for this function.">isInlineSpecified</a>());</div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span>   Record.push_back(D-><a class="code" href="classclang_1_1FunctionDecl.html#a89b7dfd57fa9015a0c724ff95d9a4c9a" title="Whether this function is marked as virtual explicitly.">isVirtualAsWritten</a>());</div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span>   Record.push_back(D-><a class="code" href="classclang_1_1FunctionDecl.html#acd8bea03a58e549ae7fb31d7570bcdfa">isPure</a>());</div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span>   Record.push_back(D-><a class="code" href="classclang_1_1FunctionDecl.html#a4116822499c223bb8fbfc855b5a3f173" title="Whether this function inherited its prototype from a previous declaration.">hasInheritedPrototype</a>());</div>
+<div class="line"><a name="l00339"></a><span class="lineno">  339</span>   Record.push_back(D-><a class="code" href="classclang_1_1FunctionDecl.html#ad125aa415ba16256ae67a54f4fa8132e">hasWrittenPrototype</a>());</div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span>   Record.push_back(D-><a class="code" href="classclang_1_1FunctionDecl.html#ac88a831aeb59e0866cb71bf4b75ff04d">isDeletedAsWritten</a>());</div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span>   Record.push_back(D-><a class="code" href="classclang_1_1FunctionDecl.html#a38f30631618adf76156cc295cd88040a">isTrivial</a>());</div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span>   Record.push_back(D-><a class="code" href="classclang_1_1FunctionDecl.html#ade9df00e7c8e6d18bd681d10da7d9e13">isDefaulted</a>());</div>
+<div class="line"><a name="l00343"></a><span class="lineno">  343</span>   Record.push_back(D-><a class="code" href="classclang_1_1FunctionDecl.html#a5a5de8afb7ae4c466f1819f0a897528c">isExplicitlyDefaulted</a>());</div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span>   Record.push_back(D-><a class="code" href="classclang_1_1FunctionDecl.html#a0d796f7a3436a8ffa1b0ac6144a4f181">hasImplicitReturnZero</a>());</div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span>   Record.push_back(D-><a class="code" href="classclang_1_1FunctionDecl.html#a3c1f97ddf2c0d5885f36aefa90ffae11" title="Whether this is a (C++11) constexpr function or constexpr constructor.">isConstexpr</a>());</div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span>   Record.push_back(D->HasSkippedBody);</div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span>   Record.push_back(D-><a class="code" href="classclang_1_1FunctionDecl.html#a1997ebd015da99846ae44566c88a3e0b" title="Whether this templated function will be late parsed.">isLateTemplateParsed</a>());</div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span>   Record.push_back(D-><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="l00349"></a><span class="lineno">  349</span>   Writer.AddSourceLocation(D-><a class="code" href="classclang_1_1Decl.html#a6eb7b247deafb504e09a9d225bbea0c4">getLocEnd</a>(), Record);</div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span> </div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span>   Record.push_back(D-><a class="code" href="classclang_1_1FunctionDecl.html#ac5301b8f196f9ae4758fd26e4dbbca17" title="What kind of templated function this is.">getTemplatedKind</a>());</div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span>   <span class="keywordflow">switch</span> (D-><a class="code" href="classclang_1_1FunctionDecl.html#ac5301b8f196f9ae4758fd26e4dbbca17" title="What kind of templated function this is.">getTemplatedKind</a>()) {</div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</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="l00354"></a><span class="lineno">  354</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</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="l00356"></a><span class="lineno">  356</span>     Writer.AddDeclRef(D-><a class="code" href="classclang_1_1FunctionDecl.html#a88c31f0a03a609ba42f357cd458ec0c6" title="Retrieves the function template that is described by this function declaration.">getDescribedFunctionTemplate</a>(), Record);</div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</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="l00359"></a><span class="lineno">  359</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> *MemberInfo = D-><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>();</div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span>     Writer.AddDeclRef(MemberInfo-><a class="code" href="classclang_1_1MemberSpecializationInfo.html#a4784da25b2eac98fdf281a1e61047b49" title="Retrieve the member declaration from which this member was instantiated.">getInstantiatedFrom</a>(), Record);</div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span>     Record.push_back(MemberInfo-><a class="code" href="classclang_1_1MemberSpecializationInfo.html#a2c8812855611cbc2fe2f8081994db3db" title="Determine what kind of template specialization this is.">getTemplateSpecializationKind</a>());</div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span>     Writer.AddSourceLocation(MemberInfo-><a class="code" href="classclang_1_1MemberSpecializationInfo.html#a941030ee659fed9bc7018ec83efb9dac" title="Retrieve the first point of instantiation of this member. If the point of instantiation is an invalid...">getPointOfInstantiation</a>(), Record);</div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span>   }</div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</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="l00366"></a><span class="lineno">  366</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> *</div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span>       FTSInfo = D-><a class="code" href="classclang_1_1FunctionDecl.html#a1b1673b1bc1926ad29c1833350c381bd" title="If this function is actually a function template specialization, retrieve information about this func...">getTemplateSpecializationInfo</a>();</div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span>     Writer.AddDeclRef(FTSInfo-><a class="code" href="classclang_1_1FunctionTemplateSpecializationInfo.html#a5d0a8b013ccd4b54331b7f0da534e822" title="Retrieve the template from which this function was specialized.">getTemplate</a>(), Record);</div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span>     Record.push_back(FTSInfo-><a class="code" href="classclang_1_1FunctionTemplateSpecializationInfo.html#a4214267d38e5fe32d46bad19de83cea3" title="Determine what kind of template specialization this is.">getTemplateSpecializationKind</a>());</div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span>     </div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span>     <span class="comment">// Template arguments.</span></div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span>     Writer.AddTemplateArgumentList(FTSInfo-><a class="code" href="classclang_1_1FunctionTemplateSpecializationInfo.html#a0bd9db1369a322a8fd7fd8d5ce39410b" title="The template arguments used to produce the function template specialization from the function templat...">TemplateArguments</a>, Record);</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>     <span class="comment">// Template args as written.</span></div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span>     Record.push_back(FTSInfo-><a class="code" href="classclang_1_1FunctionTemplateSpecializationInfo.html#a8382554ab22aad542beff273f2e555cc" title="The template arguments as written in the sources, if provided.">TemplateArgumentsAsWritten</a> != 0);</div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span>     <span class="keywordflow">if</span> (FTSInfo-><a class="code" href="classclang_1_1FunctionTemplateSpecializationInfo.html#a8382554ab22aad542beff273f2e555cc" title="The template arguments as written in the sources, if provided.">TemplateArgumentsAsWritten</a>) {</div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span>       Record.push_back(FTSInfo-><a class="code" href="classclang_1_1FunctionTemplateSpecializationInfo.html#a8382554ab22aad542beff273f2e555cc" title="The template arguments as written in the sources, if provided.">TemplateArgumentsAsWritten</a>-><a class="code" href="structclang_1_1ASTTemplateArgumentListInfo.html#ae908711a8955cf8298257a35342fafe2" title="The number of template arguments in TemplateArgs. The actual template arguments (if any) are stored a...">NumTemplateArgs</a>);</div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span>       <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=0, e = FTSInfo-><a class="code" href="classclang_1_1FunctionTemplateSpecializationInfo.html#a8382554ab22aad542beff273f2e555cc" title="The template arguments as written in the sources, if provided.">TemplateArgumentsAsWritten</a>-><a class="code" href="structclang_1_1ASTTemplateArgumentListInfo.html#ae908711a8955cf8298257a35342fafe2" title="The number of template arguments in TemplateArgs. The actual template arguments (if any) are stored a...">NumTemplateArgs</a>;</div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span>              i!=e; ++i)</div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span>         Writer.AddTemplateArgumentLoc((*FTSInfo-><a class="code" href="classclang_1_1FunctionTemplateSpecializationInfo.html#a8382554ab22aad542beff273f2e555cc" title="The template arguments as written in the sources, if provided.">TemplateArgumentsAsWritten</a>)[i],</div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span>                                       Record);</div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span>       Writer.AddSourceLocation(FTSInfo-><a class="code" href="classclang_1_1FunctionTemplateSpecializationInfo.html#a8382554ab22aad542beff273f2e555cc" title="The template arguments as written in the sources, if provided.">TemplateArgumentsAsWritten</a>-><a class="code" href="structclang_1_1ASTTemplateArgumentListInfo.html#a0b671f58dd0ae3f03bc373c1f10a21db" title="The source location of the left angle bracket ('<').">LAngleLoc</a>,</div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span>                                Record);</div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span>       Writer.AddSourceLocation(FTSInfo-><a class="code" href="classclang_1_1FunctionTemplateSpecializationInfo.html#a8382554ab22aad542beff273f2e555cc" title="The template arguments as written in the sources, if provided.">TemplateArgumentsAsWritten</a>-><a class="code" href="structclang_1_1ASTTemplateArgumentListInfo.html#a01f497faea4892b83792b19f5bc841b8" title="The source location of the right angle bracket ('>').">RAngleLoc</a>,</div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span>                                Record);</div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span>     }</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>     Writer.AddSourceLocation(FTSInfo-><a class="code" href="classclang_1_1FunctionTemplateSpecializationInfo.html#afafa2c037f19cffc957b63e29fa42e55" title="Retrieve the first point of instantiation of this function template specialization.">getPointOfInstantiation</a>(), Record);</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>     <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>()) {</div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span>       <span class="comment">// Write the template that contains the specializations set. We will</span></div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span>       <span class="comment">// add a FunctionTemplateSpecializationInfo to it when reading.</span></div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span>       Writer.AddDeclRef(FTSInfo-><a class="code" href="classclang_1_1FunctionTemplateSpecializationInfo.html#a5d0a8b013ccd4b54331b7f0da534e822" title="Retrieve the template from which this function was specialized.">getTemplate</a>()-><a class="code" href="classclang_1_1FunctionTemplateDecl.html#adc31c0cd35961f3ea20515f166d8040d" title="Retrieves the canonical declaration of this template.">getCanonicalDecl</a>(), Record);</div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span>     }</div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00396"></a><span class="lineno">  396</span>   }</div>
+<div class="line"><a name="l00397"></a><span class="lineno">  397</span>   <span class="keywordflow">case</span> <a class="code" href="classclang_1_1FunctionDecl.html#a66ab419ab9222b80ff2b2cdc0f989a4baeb981f77ff99d11d9b0905f51322df66">FunctionDecl::TK_DependentFunctionTemplateSpecialization</a>: {</div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span>     <a class="code" href="classclang_1_1DependentFunctionTemplateSpecializationInfo.html" title="Provides information about a dependent function-template specialization declaration.">DependentFunctionTemplateSpecializationInfo</a> *</div>
+<div class="line"><a name="l00399"></a><span class="lineno">  399</span>       DFTSInfo = D-><a class="code" href="classclang_1_1FunctionDecl.html#ae21f1c6da27e84e7cfa5e4d5c651974e">getDependentSpecializationInfo</a>();</div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span>     </div>
+<div class="line"><a name="l00401"></a><span class="lineno">  401</span>     <span class="comment">// Templates.</span></div>
+<div class="line"><a name="l00402"></a><span class="lineno">  402</span>     Record.push_back(DFTSInfo-><a class="code" href="classclang_1_1DependentFunctionTemplateSpecializationInfo.html#a83480e5f52b6a157be67a4a4a9700965" title="Returns the number of function templates that this might be a specialization of.">getNumTemplates</a>());</div>
+<div class="line"><a name="l00403"></a><span class="lineno">  403</span>     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=0, e = DFTSInfo-><a class="code" href="classclang_1_1DependentFunctionTemplateSpecializationInfo.html#a83480e5f52b6a157be67a4a4a9700965" title="Returns the number of function templates that this might be a specialization of.">getNumTemplates</a>(); i != e; ++i)</div>
+<div class="line"><a name="l00404"></a><span class="lineno">  404</span>       Writer.AddDeclRef(DFTSInfo-><a class="code" href="classclang_1_1DependentFunctionTemplateSpecializationInfo.html#a16d2058ae064693b38968acd490fc549" title="Returns the i'th template candidate.">getTemplate</a>(i), Record);</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>     <span class="comment">// Templates args.</span></div>
+<div class="line"><a name="l00407"></a><span class="lineno">  407</span>     Record.push_back(DFTSInfo-><a class="code" href="classclang_1_1DependentFunctionTemplateSpecializationInfo.html#a9b41ccea0bbf6a1125f2baab6968d7f2" title="Returns the number of explicit template arguments that were given.">getNumTemplateArgs</a>());</div>
+<div class="line"><a name="l00408"></a><span class="lineno">  408</span>     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=0, e = DFTSInfo-><a class="code" href="classclang_1_1DependentFunctionTemplateSpecializationInfo.html#a9b41ccea0bbf6a1125f2baab6968d7f2" title="Returns the number of explicit template arguments that were given.">getNumTemplateArgs</a>(); i != e; ++i)</div>
+<div class="line"><a name="l00409"></a><span class="lineno">  409</span>       Writer.AddTemplateArgumentLoc(DFTSInfo-><a class="code" href="classclang_1_1DependentFunctionTemplateSpecializationInfo.html#ac85fe113dbca4ca29143152e52e0938e" title="Returns the nth template argument.">getTemplateArg</a>(i), Record);</div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span>     Writer.AddSourceLocation(DFTSInfo-><a class="code" href="classclang_1_1DependentFunctionTemplateSpecializationInfo.html#a5f199f64eb8f8147eba651f61ac1bdf5">getLAngleLoc</a>(), Record);</div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span>     Writer.AddSourceLocation(DFTSInfo-><a class="code" href="classclang_1_1DependentFunctionTemplateSpecializationInfo.html#aa549e03347747de86b2e0a79e1823bc4">getRAngleLoc</a>(), Record);</div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span>     <span class="keywordflow">break</span>;</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>   Record.push_back(D-><a class="code" href="classclang_1_1FunctionDecl.html#a2c37f82354c8dadfa6a475c385b3cd69">param_size</a>());</div>
+<div class="line"><a name="l00417"></a><span class="lineno">  417</span>   <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1ParmVarDecl.html" title="ParmVarDecl - Represents a parameter to a function.">FunctionDecl::param_iterator</a> <a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a> = D-><a class="code" href="classclang_1_1FunctionDecl.html#a48678562009dc8b21f0e4611eb96c433">param_begin</a>(), PEnd = D-><a class="code" href="classclang_1_1FunctionDecl.html#a1dc6d06fe673db5053adfa3160f3175f">param_end</a>();</div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span>        <a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a> != PEnd; ++<a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a>)</div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span>     Writer.AddDeclRef(*<a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a>, Record);</div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda734329bcfd9120f9b3b236afe244cdb6" title="A FunctionDecl record.">serialization::DECL_FUNCTION</a>;</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_1ASTDeclWriter.html#ac6686cd41217ac4810e6e18867d299b5">  423</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#ac6686cd41217ac4810e6e18867d299b5">ASTDeclWriter::VisitObjCMethodDecl</a>(<a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *D) {</div>
+<div class="line"><a name="l00424"></a><span class="lineno">  424</span>   VisitNamedDecl(D);</div>
+<div class="line"><a name="l00425"></a><span class="lineno">  425</span>   <span class="comment">// FIXME: convert to LazyStmtPtr?</span></div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span>   <span class="comment">// Unlike C/C++, method bodies will never be in header files.</span></div>
+<div class="line"><a name="l00427"></a><span class="lineno">  427</span>   <span class="keywordtype">bool</span> HasBodyStuff = D-><a class="code" href="classclang_1_1ObjCMethodDecl.html#a22e377ee7c8d39f7087197ac6d69d4ae" title="Retrieve the body of this method, if it has one.">getBody</a>() != 0     ||</div>
+<div class="line"><a name="l00428"></a><span class="lineno">  428</span>                       D-><a class="code" href="classclang_1_1ObjCMethodDecl.html#aca5d21d1409956e5d6ba77b0ce4beb0d">getSelfDecl</a>() != 0 || D-><a class="code" href="classclang_1_1ObjCMethodDecl.html#ab5c716be2156d59824da88f40414988a">getCmdDecl</a>() != 0;</div>
+<div class="line"><a name="l00429"></a><span class="lineno">  429</span>   Record.push_back(HasBodyStuff);</div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span>   <span class="keywordflow">if</span> (HasBodyStuff) {</div>
+<div class="line"><a name="l00431"></a><span class="lineno">  431</span>     Writer.AddStmt(D-><a class="code" href="classclang_1_1ObjCMethodDecl.html#a22e377ee7c8d39f7087197ac6d69d4ae" title="Retrieve the body of this method, if it has one.">getBody</a>());</div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span>     Writer.AddDeclRef(D-><a class="code" href="classclang_1_1ObjCMethodDecl.html#aca5d21d1409956e5d6ba77b0ce4beb0d">getSelfDecl</a>(), Record);</div>
+<div class="line"><a name="l00433"></a><span class="lineno">  433</span>     Writer.AddDeclRef(D-><a class="code" href="classclang_1_1ObjCMethodDecl.html#ab5c716be2156d59824da88f40414988a">getCmdDecl</a>(), Record);</div>
+<div class="line"><a name="l00434"></a><span class="lineno">  434</span>   }</div>
+<div class="line"><a name="l00435"></a><span class="lineno">  435</span>   Record.push_back(D-><a class="code" href="classclang_1_1ObjCMethodDecl.html#a437ea0ebec5ba72fcf0084dd01654d4c">isInstanceMethod</a>());</div>
+<div class="line"><a name="l00436"></a><span class="lineno">  436</span>   Record.push_back(D-><a class="code" href="classclang_1_1ObjCMethodDecl.html#af47b19dc4279f1cf2572ca1a0a8d730e">isVariadic</a>());</div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span>   Record.push_back(D-><a class="code" href="classclang_1_1ObjCMethodDecl.html#a4ca2941f86e7822b3f15b6d258230cb1">isPropertyAccessor</a>());</div>
+<div class="line"><a name="l00438"></a><span class="lineno">  438</span>   Record.push_back(D-><a class="code" href="classclang_1_1ObjCMethodDecl.html#af9fd315bab8178e3f0e77bb26150a1fe">isDefined</a>());</div>
+<div class="line"><a name="l00439"></a><span class="lineno">  439</span>   Record.push_back(D->IsOverriding);</div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span>   Record.push_back(D->HasSkippedBody);</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>   Record.push_back(D->IsRedeclaration);</div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</span>   Record.push_back(D->HasRedeclaration);</div>
+<div class="line"><a name="l00444"></a><span class="lineno">  444</span>   <span class="keywordflow">if</span> (D->HasRedeclaration) {</div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span>     assert(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>.<a class="code" href="classclang_1_1ASTContext.html#a866e7c721293c6cd1a9a1b1989e8808a" title="Get the duplicate declaration of a ObjCMethod in the same interface, or null if none exists...">getObjCMethodRedeclaration</a>(D));</div>
+<div class="line"><a name="l00446"></a><span class="lineno">  446</span>     Writer.AddDeclRef(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>.<a class="code" href="classclang_1_1ASTContext.html#a866e7c721293c6cd1a9a1b1989e8808a" title="Get the duplicate declaration of a ObjCMethod in the same interface, or null if none exists...">getObjCMethodRedeclaration</a>(D), Record);</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> </div>
+<div class="line"><a name="l00449"></a><span class="lineno">  449</span>   <span class="comment">// FIXME: stable encoding for @required/@optional</span></div>
+<div class="line"><a name="l00450"></a><span class="lineno">  450</span>   Record.push_back(D-><a class="code" href="classclang_1_1ObjCMethodDecl.html#a3d490a2f2f823221b9184dcdaad43f8c">getImplementationControl</a>());</div>
+<div class="line"><a name="l00451"></a><span class="lineno">  451</span>   <span class="comment">// FIXME: stable encoding for in/out/inout/bycopy/byref/oneway</span></div>
+<div class="line"><a name="l00452"></a><span class="lineno">  452</span>   Record.push_back(D-><a class="code" href="classclang_1_1ObjCMethodDecl.html#a6ea0fac24b767f9d95b474a250b9d8b9">getObjCDeclQualifier</a>());</div>
+<div class="line"><a name="l00453"></a><span class="lineno">  453</span>   Record.push_back(D-><a class="code" href="classclang_1_1ObjCMethodDecl.html#af39c2be03915c55301f0d4961e496c2a" title="Determine whether this method has a result type that is related to the message receiver's type...">hasRelatedResultType</a>());</div>
+<div class="line"><a name="l00454"></a><span class="lineno">  454</span>   Writer.AddTypeRef(D-><a class="code" href="classclang_1_1ObjCMethodDecl.html#a5019b51f490a8eb6c6a6c89938486a5f">getResultType</a>(), Record);</div>
+<div class="line"><a name="l00455"></a><span class="lineno">  455</span>   Writer.AddTypeSourceInfo(D-><a class="code" href="classclang_1_1ObjCMethodDecl.html#a1abdb658ad45f7f8e51b3ee5a7a6145a">getResultTypeSourceInfo</a>(), Record);</div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span>   Writer.AddSourceLocation(D-><a class="code" href="classclang_1_1ObjCMethodDecl.html#acd60d6bc9ec62a067dec6baa35e9e524">getLocEnd</a>(), Record);</div>
+<div class="line"><a name="l00457"></a><span class="lineno">  457</span>   Record.push_back(D-><a class="code" href="classclang_1_1ObjCMethodDecl.html#af883bf1b49148f6653b4e68d482e81ec">param_size</a>());</div>
+<div class="line"><a name="l00458"></a><span class="lineno">  458</span>   <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1ObjCMethodDecl.html#abbba9916294190611d98ec23edcf6bef">ObjCMethodDecl::param_iterator</a> <a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a> = D-><a class="code" href="classclang_1_1ObjCMethodDecl.html#a6e3f1b5626a6e795168b51ff78888bf9">param_begin</a>(),</div>
+<div class="line"><a name="l00459"></a><span class="lineno">  459</span>                                    PEnd = D-><a class="code" href="classclang_1_1ObjCMethodDecl.html#a41c8a73187b3feac6defb5c1e7987b36">param_end</a>(); <a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a> != PEnd; ++<a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a>)</div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span>     Writer.AddDeclRef(*<a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a>, Record);</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>   Record.push_back(D->SelLocsKind);</div>
+<div class="line"><a name="l00463"></a><span class="lineno">  463</span>   <span class="keywordtype">unsigned</span> NumStoredSelLocs = D->getNumStoredSelLocs();</div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</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> *SelLocs = D->getStoredSelLocs();</div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span>   Record.push_back(NumStoredSelLocs);</div>
+<div class="line"><a name="l00466"></a><span class="lineno">  466</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i != NumStoredSelLocs; ++i)</div>
+<div class="line"><a name="l00467"></a><span class="lineno">  467</span>     Writer.AddSourceLocation(SelLocs[i], Record);</div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span> </div>
+<div class="line"><a name="l00469"></a><span class="lineno">  469</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdad671fb3a1248ff419a78b03de2627ff2" title="A ObjCMethodDecl record.">serialization::DECL_OBJC_METHOD</a>;</div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span> }</div>
+<div class="line"><a name="l00471"></a><span class="lineno">  471</span> </div>
+<div class="line"><a name="l00472"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#a448f794223e81e87dd1c366c5b007ae7">  472</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#a448f794223e81e87dd1c366c5b007ae7">ASTDeclWriter::VisitObjCContainerDecl</a>(<a class="code" href="classclang_1_1ObjCContainerDecl.html">ObjCContainerDecl</a> *D) {</div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span>   VisitNamedDecl(D);</div>
+<div class="line"><a name="l00474"></a><span class="lineno">  474</span>   Writer.AddSourceLocation(D-><a class="code" href="classclang_1_1ObjCContainerDecl.html#a1fcb52e25e79bc7a977174ae2ea867e3">getAtStartLoc</a>(), Record);</div>
+<div class="line"><a name="l00475"></a><span class="lineno">  475</span>   Writer.AddSourceRange(D-><a class="code" href="classclang_1_1ObjCContainerDecl.html#a4a0c15e638d2508d539f0ee836a64913">getAtEndRange</a>(), Record);</div>
+<div class="line"><a name="l00476"></a><span class="lineno">  476</span>   <span class="comment">// Abstract class (no need to define a stable serialization::DECL code).</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">  478</span> </div>
+<div class="line"><a name="l00479"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#aef84d1b55050d05ff66cd03bde486872">  479</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#aef84d1b55050d05ff66cd03bde486872">ASTDeclWriter::VisitObjCInterfaceDecl</a>(<a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *D) {</div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span>   VisitRedeclarable(D);</div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span>   VisitObjCContainerDecl(D);</div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span>   Writer.AddTypeRef(<a class="code" href="classclang_1_1QualType.html">QualType</a>(D-><a class="code" href="classclang_1_1ObjCInterfaceDecl.html#a93d1e6e132697424536c64b1cd6391f8">getTypeForDecl</a>(), 0), Record);</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>   Record.push_back(D-><a class="code" href="classclang_1_1ObjCInterfaceDecl.html#a9630b8535a9be9129ad8b7d552650701" title="Determine whether this particular declaration of this class is actually also a definition.">isThisDeclarationADefinition</a>());</div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span>   <span class="keywordflow">if</span> (D-><a class="code" href="classclang_1_1ObjCInterfaceDecl.html#a9630b8535a9be9129ad8b7d552650701" title="Determine whether this particular declaration of this class is actually also a definition.">isThisDeclarationADefinition</a>()) {</div>
+<div class="line"><a name="l00486"></a><span class="lineno">  486</span>     <span class="comment">// Write the DefinitionData</span></div>
+<div class="line"><a name="l00487"></a><span class="lineno">  487</span>     ObjCInterfaceDecl::DefinitionData &Data = D->data();</div>
+<div class="line"><a name="l00488"></a><span class="lineno">  488</span>     </div>
+<div class="line"><a name="l00489"></a><span class="lineno">  489</span>     Writer.AddDeclRef(D-><a class="code" href="classclang_1_1ObjCInterfaceDecl.html#a5f23eb5cda9e27622e71382d1dc4b95d">getSuperClass</a>(), Record);</div>
+<div class="line"><a name="l00490"></a><span class="lineno">  490</span>     Writer.AddSourceLocation(D-><a class="code" href="classclang_1_1ObjCInterfaceDecl.html#a154a18dbea84edda64939a07e5ba69aa">getSuperClassLoc</a>(), Record);</div>
+<div class="line"><a name="l00491"></a><span class="lineno">  491</span>     Writer.AddSourceLocation(D-><a class="code" href="classclang_1_1ObjCInterfaceDecl.html#a21356cf36069269970422f1060fb1c8c">getEndOfDefinitionLoc</a>(), Record);</div>
+<div class="line"><a name="l00492"></a><span class="lineno">  492</span> </div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span>     <span class="comment">// Write out the protocols that are directly referenced by the @interface.</span></div>
+<div class="line"><a name="l00494"></a><span class="lineno">  494</span>     Record.push_back(Data.ReferencedProtocols.size());</div>
+<div class="line"><a name="l00495"></a><span class="lineno">  495</span>     <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1ObjCInterfaceDecl.html#a0a01af30c26a569976214a2e4159abe0">ObjCInterfaceDecl::protocol_iterator</a> <a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a> = D-><a class="code" href="classclang_1_1ObjCInterfaceDecl.html#a249561750a487e53acf51fb8d8d769e3">protocol_begin</a>(),</div>
+<div class="line"><a name="l00496"></a><span class="lineno">  496</span>                                            PEnd = D-><a class="code" href="classclang_1_1ObjCInterfaceDecl.html#af1f408922438739d6a05875d62b2a2bc">protocol_end</a>();</div>
+<div class="line"><a name="l00497"></a><span class="lineno">  497</span>          <a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a> != PEnd; ++<a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a>)</div>
+<div class="line"><a name="l00498"></a><span class="lineno">  498</span>       Writer.AddDeclRef(*<a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a>, Record);</div>
+<div class="line"><a name="l00499"></a><span class="lineno">  499</span>     <span class="keywordflow">for</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...">ObjCInterfaceDecl::protocol_loc_iterator</a> PL = D-><a class="code" href="classclang_1_1ObjCInterfaceDecl.html#adf61c840d2903f14241fd91596b6108d">protocol_loc_begin</a>(),</div>
+<div class="line"><a name="l00500"></a><span class="lineno">  500</span>          PLEnd = D-><a class="code" href="classclang_1_1ObjCInterfaceDecl.html#acca8e3e5140a41ceb493c61a27ae37fa">protocol_loc_end</a>();</div>
+<div class="line"><a name="l00501"></a><span class="lineno">  501</span>          PL != PLEnd; ++PL)</div>
+<div class="line"><a name="l00502"></a><span class="lineno">  502</span>       Writer.AddSourceLocation(*PL, Record);</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="comment">// Write out the protocols that are transitively referenced.</span></div>
+<div class="line"><a name="l00505"></a><span class="lineno">  505</span>     Record.push_back(Data.AllReferencedProtocols.size());</div>
+<div class="line"><a name="l00506"></a><span class="lineno">  506</span>     <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1ObjCList.html">ObjCList<ObjCProtocolDecl>::iterator</a></div>
+<div class="line"><a name="l00507"></a><span class="lineno">  507</span>               <a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a> = Data.AllReferencedProtocols.begin(),</div>
+<div class="line"><a name="l00508"></a><span class="lineno">  508</span>            PEnd = Data.AllReferencedProtocols.end();</div>
+<div class="line"><a name="l00509"></a><span class="lineno">  509</span>          <a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a> != PEnd; ++<a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a>)</div>
+<div class="line"><a name="l00510"></a><span class="lineno">  510</span>       Writer.AddDeclRef(*<a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a>, Record);</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>     </div>
+<div class="line"><a name="l00513"></a><span class="lineno">  513</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1ObjCCategoryDecl.html">ObjCCategoryDecl</a> *Cat = D-><a class="code" href="classclang_1_1ObjCInterfaceDecl.html#acd5c921bdc012c4f1fb4c1896c6f121f" title="Retrieve the raw pointer to the start of the category/extension list.">getCategoryListRaw</a>()) {</div>
+<div class="line"><a name="l00514"></a><span class="lineno">  514</span>       <span class="comment">// Ensure that we write out the set of categories for this class.</span></div>
+<div class="line"><a name="l00515"></a><span class="lineno">  515</span>       Writer.ObjCClassesWithCategories.insert(D);</div>
+<div class="line"><a name="l00516"></a><span class="lineno">  516</span>       </div>
+<div class="line"><a name="l00517"></a><span class="lineno">  517</span>       <span class="comment">// Make sure that the categories get serialized.</span></div>
+<div class="line"><a name="l00518"></a><span class="lineno">  518</span>       <span class="keywordflow">for</span> (; Cat; Cat = Cat->getNextClassCategoryRaw())</div>
+<div class="line"><a name="l00519"></a><span class="lineno">  519</span>         (<span class="keywordtype">void</span>)Writer.GetDeclRef(Cat);</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">  522</span>   </div>
+<div class="line"><a name="l00523"></a><span class="lineno">  523</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdaef76e58559ff67edde439d11659799a1" title="A ObjCInterfaceDecl record.">serialization::DECL_OBJC_INTERFACE</a>;</div>
+<div class="line"><a name="l00524"></a><span class="lineno">  524</span> }</div>
+<div class="line"><a name="l00525"></a><span class="lineno">  525</span> </div>
+<div class="line"><a name="l00526"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#a871877dcd0b45c5d7b0298132eb3b10b">  526</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#a871877dcd0b45c5d7b0298132eb3b10b">ASTDeclWriter::VisitObjCIvarDecl</a>(<a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *D) {</div>
+<div class="line"><a name="l00527"></a><span class="lineno">  527</span>   VisitFieldDecl(D);</div>
+<div class="line"><a name="l00528"></a><span class="lineno">  528</span>   <span class="comment">// FIXME: stable encoding for @public/@private/@protected/@package</span></div>
+<div class="line"><a name="l00529"></a><span class="lineno">  529</span>   Record.push_back(D-><a class="code" href="classclang_1_1ObjCIvarDecl.html#a7f30051db17903f55c3519750886277a">getAccessControl</a>());</div>
+<div class="line"><a name="l00530"></a><span class="lineno">  530</span>   Record.push_back(D-><a class="code" href="classclang_1_1ObjCIvarDecl.html#ae3b2d77862c967f71d4b03081b3ddb8b">getSynthesize</a>());</div>
+<div class="line"><a name="l00531"></a><span class="lineno">  531</span>   Record.push_back(D-><a class="code" href="classclang_1_1ObjCIvarDecl.html#a972fa3550e37f8b876efc84168f86116">getBackingIvarReferencedInAccessor</a>());</div>
+<div class="line"><a name="l00532"></a><span class="lineno">  532</span> </div>
+<div class="line"><a name="l00533"></a><span class="lineno">  533</span>   <span class="keywordflow">if</span> (!D-><a class="code" href="classclang_1_1Decl.html#a003fece5918f94442ff29d24f5e8c1cc">hasAttrs</a>() &&</div>
+<div class="line"><a name="l00534"></a><span class="lineno">  534</span>       !D-><a class="code" href="classclang_1_1Decl.html#ac4fdc680ed3574eb8630eb54d7869125">isImplicit</a>() &&</div>
+<div class="line"><a name="l00535"></a><span class="lineno">  535</span>       !D-><a class="code" href="classclang_1_1Decl.html#ad588cec2ab8cfc2963b9ee5a9a21d304" title="Whether this declaration was used, meaning that a definition is required.">isUsed</a>(<span class="keyword">false</span>) &&</div>
+<div class="line"><a name="l00536"></a><span class="lineno">  536</span>       !D-><a class="code" href="classclang_1_1Decl.html#a17ec912fd67469eea51741d45eb0c800">isInvalidDecl</a>() &&</div>
+<div class="line"><a name="l00537"></a><span class="lineno">  537</span>       !D-><a class="code" href="classclang_1_1Decl.html#a3d1b39277883c845c5d51301f302cf03" title="Whether this declaration was referenced.">isReferenced</a>() &&</div>
+<div class="line"><a name="l00538"></a><span class="lineno">  538</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="l00539"></a><span class="lineno">  539</span>       !D-><a class="code" href="classclang_1_1FieldDecl.html#aa440216ac6adbdd2044ca91c9f31386f">getBitWidth</a>() &&</div>
+<div class="line"><a name="l00540"></a><span class="lineno">  540</span>       !D->hasExtInfo() &&</div>
+<div class="line"><a name="l00541"></a><span class="lineno">  541</span>       D-><a class="code" href="classclang_1_1NamedDecl.html#a1e3e90455be89bb5c7c23640cbbd7153">getDeclName</a>())</div>
+<div class="line"><a name="l00542"></a><span class="lineno">  542</span>     AbbrevToUse = Writer.getDeclObjCIvarAbbrev();</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>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdae7b40f478012ac8c54e85b15e3f554a0" title="A ObjCIvarDecl record.">serialization::DECL_OBJC_IVAR</a>;</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> </div>
+<div class="line"><a name="l00547"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#a5825cf1927e685d889a99806fc240014">  547</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#a5825cf1927e685d889a99806fc240014">ASTDeclWriter::VisitObjCProtocolDecl</a>(<a class="code" href="classclang_1_1ObjCProtocolDecl.html" title="Represents an Objective-C protocol declaration.">ObjCProtocolDecl</a> *D) {</div>
+<div class="line"><a name="l00548"></a><span class="lineno">  548</span>   VisitRedeclarable(D);</div>
+<div class="line"><a name="l00549"></a><span class="lineno">  549</span>   VisitObjCContainerDecl(D);</div>
+<div class="line"><a name="l00550"></a><span class="lineno">  550</span>   </div>
+<div class="line"><a name="l00551"></a><span class="lineno">  551</span>   Record.push_back(D-><a class="code" href="classclang_1_1ObjCProtocolDecl.html#a80248299799f2efb0abd1bb0e1dd87fe" title="Determine whether this particular declaration is also the definition.">isThisDeclarationADefinition</a>());</div>
+<div class="line"><a name="l00552"></a><span class="lineno">  552</span>   <span class="keywordflow">if</span> (D-><a class="code" href="classclang_1_1ObjCProtocolDecl.html#a80248299799f2efb0abd1bb0e1dd87fe" title="Determine whether this particular declaration is also the definition.">isThisDeclarationADefinition</a>()) {</div>
+<div class="line"><a name="l00553"></a><span class="lineno">  553</span>     Record.push_back(D-><a class="code" href="classclang_1_1ObjCProtocolDecl.html#aa7a72e4849da792fe9e571f62ca38aac">protocol_size</a>());</div>
+<div class="line"><a name="l00554"></a><span class="lineno">  554</span>     <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1ObjCProtocolDecl.html#adbd4b44a478f573a24072123f93b2fe9">ObjCProtocolDecl::protocol_iterator</a></div>
+<div class="line"><a name="l00555"></a><span class="lineno">  555</span>          I = D-><a class="code" href="classclang_1_1ObjCProtocolDecl.html#a199069b3da6c86cd72a6b8fe9f8feec0">protocol_begin</a>(), IEnd = D-><a class="code" href="classclang_1_1ObjCProtocolDecl.html#a681da3dbfa474479f44d59eee31d0e1e">protocol_end</a>(); I != IEnd; ++I)</div>
+<div class="line"><a name="l00556"></a><span class="lineno">  556</span>       Writer.AddDeclRef(*I, Record);</div>
+<div class="line"><a name="l00557"></a><span class="lineno">  557</span>     <span class="keywordflow">for</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...">ObjCProtocolDecl::protocol_loc_iterator</a> PL = D-><a class="code" href="classclang_1_1ObjCProtocolDecl.html#a68caf21b9dd85c876f78a92391d85c5a">protocol_loc_begin</a>(),</div>
+<div class="line"><a name="l00558"></a><span class="lineno">  558</span>            PLEnd = D-><a class="code" href="classclang_1_1ObjCProtocolDecl.html#a1bc9584d78cedb42ca37abf28d61780e">protocol_loc_end</a>();</div>
+<div class="line"><a name="l00559"></a><span class="lineno">  559</span>          PL != PLEnd; ++PL)</div>
+<div class="line"><a name="l00560"></a><span class="lineno">  560</span>       Writer.AddSourceLocation(*PL, Record);</div>
+<div class="line"><a name="l00561"></a><span class="lineno">  561</span>   }</div>
+<div class="line"><a name="l00562"></a><span class="lineno">  562</span>   </div>
+<div class="line"><a name="l00563"></a><span class="lineno">  563</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdaa2d8a7ed3305a60642923457f00342a4" title="A ObjCProtocolDecl record.">serialization::DECL_OBJC_PROTOCOL</a>;</div>
+<div class="line"><a name="l00564"></a><span class="lineno">  564</span> }</div>
+<div class="line"><a name="l00565"></a><span class="lineno">  565</span> </div>
+<div class="line"><a name="l00566"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#aced3480a3f1ba773030fe48230335261">  566</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#aced3480a3f1ba773030fe48230335261">ASTDeclWriter::VisitObjCAtDefsFieldDecl</a>(<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="l00567"></a><span class="lineno">  567</span>   VisitFieldDecl(D);</div>
+<div class="line"><a name="l00568"></a><span class="lineno">  568</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdac0374c2338d0b6d7f6b89e53f5cb7e99" title="A ObjCAtDefsFieldDecl record.">serialization::DECL_OBJC_AT_DEFS_FIELD</a>;</div>
+<div class="line"><a name="l00569"></a><span class="lineno">  569</span> }</div>
+<div class="line"><a name="l00570"></a><span class="lineno">  570</span> </div>
+<div class="line"><a name="l00571"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#a5c490d8c76f43c308ae94d861e61b422">  571</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#a5c490d8c76f43c308ae94d861e61b422">ASTDeclWriter::VisitObjCCategoryDecl</a>(<a class="code" href="classclang_1_1ObjCCategoryDecl.html">ObjCCategoryDecl</a> *D) {</div>
+<div class="line"><a name="l00572"></a><span class="lineno">  572</span>   VisitObjCContainerDecl(D);</div>
+<div class="line"><a name="l00573"></a><span class="lineno">  573</span>   Writer.AddSourceLocation(D-><a class="code" href="classclang_1_1ObjCCategoryDecl.html#a0b75df9ff3527db27c8449efb608b659">getCategoryNameLoc</a>(), Record);</div>
+<div class="line"><a name="l00574"></a><span class="lineno">  574</span>   Writer.AddSourceLocation(D-><a class="code" href="classclang_1_1ObjCCategoryDecl.html#ace90a78aa8e6c306623875ef05c5ec25">getIvarLBraceLoc</a>(), Record);</div>
+<div class="line"><a name="l00575"></a><span class="lineno">  575</span>   Writer.AddSourceLocation(D-><a class="code" href="classclang_1_1ObjCCategoryDecl.html#a098d234238558e199ba7660f3636d218">getIvarRBraceLoc</a>(), Record);</div>
+<div class="line"><a name="l00576"></a><span class="lineno">  576</span>   Writer.AddDeclRef(D-><a class="code" href="classclang_1_1ObjCCategoryDecl.html#acdb14eeca277cfa745a4e8e842312008">getClassInterface</a>(), Record);</div>
+<div class="line"><a name="l00577"></a><span class="lineno">  577</span>   Record.push_back(D-><a class="code" href="classclang_1_1ObjCCategoryDecl.html#a5429a26c17b62f6f751256a4ab176835">protocol_size</a>());</div>
+<div class="line"><a name="l00578"></a><span class="lineno">  578</span>   <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1ObjCCategoryDecl.html#a2838849e5805ca4bce587a4d9c68acb8">ObjCCategoryDecl::protocol_iterator</a></div>
+<div class="line"><a name="l00579"></a><span class="lineno">  579</span>        I = D-><a class="code" href="classclang_1_1ObjCCategoryDecl.html#a6bf8bb3e8a49ae865175e0f1808e7202">protocol_begin</a>(), IEnd = D-><a class="code" href="classclang_1_1ObjCCategoryDecl.html#ab7d4fd0806b09c9ed15966e449cb18b2">protocol_end</a>(); I != IEnd; ++I)</div>
+<div class="line"><a name="l00580"></a><span class="lineno">  580</span>     Writer.AddDeclRef(*I, Record);</div>
+<div class="line"><a name="l00581"></a><span class="lineno">  581</span>   <span class="keywordflow">for</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...">ObjCCategoryDecl::protocol_loc_iterator</a> </div>
+<div class="line"><a name="l00582"></a><span class="lineno">  582</span>          PL = D-><a class="code" href="classclang_1_1ObjCCategoryDecl.html#abfb69b219bf1f0812590ddf73bc8b6c0">protocol_loc_begin</a>(), PLEnd = D-><a class="code" href="classclang_1_1ObjCCategoryDecl.html#a3639aac054eecdc7fe9fac09a6c522d3">protocol_loc_end</a>();</div>
+<div class="line"><a name="l00583"></a><span class="lineno">  583</span>        PL != PLEnd; ++PL)</div>
+<div class="line"><a name="l00584"></a><span class="lineno">  584</span>     Writer.AddSourceLocation(*PL, Record);</div>
+<div class="line"><a name="l00585"></a><span class="lineno">  585</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda9d2bade248d45ed77a08e8e67d672f5c" title="A ObjCCategoryDecl record.">serialization::DECL_OBJC_CATEGORY</a>;</div>
+<div class="line"><a name="l00586"></a><span class="lineno">  586</span> }</div>
+<div class="line"><a name="l00587"></a><span class="lineno">  587</span> </div>
+<div class="line"><a name="l00588"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#ae7243aeeb69c2ade2f545dc7d3876dd1">  588</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#ae7243aeeb69c2ade2f545dc7d3876dd1">ASTDeclWriter::VisitObjCCompatibleAliasDecl</a>(<a class="code" href="classclang_1_1ObjCCompatibleAliasDecl.html">ObjCCompatibleAliasDecl</a> *D) {</div>
+<div class="line"><a name="l00589"></a><span class="lineno">  589</span>   VisitNamedDecl(D);</div>
+<div class="line"><a name="l00590"></a><span class="lineno">  590</span>   Writer.AddDeclRef(D-><a class="code" href="classclang_1_1ObjCCompatibleAliasDecl.html#a66adf40a41d632ab6fbf512bb5fce2c1">getClassInterface</a>(), Record);</div>
+<div class="line"><a name="l00591"></a><span class="lineno">  591</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdab5f2312d906173ef82ae105eb0e37b28" title="A ObjCCompatibleAliasDecl record.">serialization::DECL_OBJC_COMPATIBLE_ALIAS</a>;</div>
+<div class="line"><a name="l00592"></a><span class="lineno">  592</span> }</div>
+<div class="line"><a name="l00593"></a><span class="lineno">  593</span> </div>
+<div class="line"><a name="l00594"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#a2c5c422c4e1219c1c0a1bd2bdeeef713">  594</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#a2c5c422c4e1219c1c0a1bd2bdeeef713">ASTDeclWriter::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="l00595"></a><span class="lineno">  595</span>   VisitNamedDecl(D);</div>
+<div class="line"><a name="l00596"></a><span class="lineno">  596</span>   Writer.AddSourceLocation(D-><a class="code" href="classclang_1_1ObjCPropertyDecl.html#ababa7df44fadbacd470894064bb011ea">getAtLoc</a>(), Record);</div>
+<div class="line"><a name="l00597"></a><span class="lineno">  597</span>   Writer.AddSourceLocation(D-><a class="code" href="classclang_1_1ObjCPropertyDecl.html#aaeba493f5dff3119e3307e9c26846a3c">getLParenLoc</a>(), Record);</div>
+<div class="line"><a name="l00598"></a><span class="lineno">  598</span>   Writer.AddTypeSourceInfo(D-><a class="code" href="classclang_1_1ObjCPropertyDecl.html#a10fe1cb645fc76605c71344b9323be49">getTypeSourceInfo</a>(), Record);</div>
+<div class="line"><a name="l00599"></a><span class="lineno">  599</span>   <span class="comment">// FIXME: stable encoding</span></div>
+<div class="line"><a name="l00600"></a><span class="lineno">  600</span>   Record.push_back((<span class="keywordtype">unsigned</span>)D-><a class="code" href="classclang_1_1ObjCPropertyDecl.html#a3ab708c370cfcf22f84f69afa79345c8">getPropertyAttributes</a>());</div>
+<div class="line"><a name="l00601"></a><span class="lineno">  601</span>   Record.push_back((<span class="keywordtype">unsigned</span>)D-><a class="code" href="classclang_1_1ObjCPropertyDecl.html#abea5ac9eeb1d4c9d7db14d2c3c38714f">getPropertyAttributesAsWritten</a>());</div>
+<div class="line"><a name="l00602"></a><span class="lineno">  602</span>   <span class="comment">// FIXME: stable encoding</span></div>
+<div class="line"><a name="l00603"></a><span class="lineno">  603</span>   Record.push_back((<span class="keywordtype">unsigned</span>)D-><a class="code" href="classclang_1_1ObjCPropertyDecl.html#af10258894cb90d5caf3b7caee60b324c">getPropertyImplementation</a>());</div>
+<div class="line"><a name="l00604"></a><span class="lineno">  604</span>   Writer.AddDeclarationName(D-><a class="code" href="classclang_1_1ObjCPropertyDecl.html#a403f7866008e173bf1346ccef5221f99">getGetterName</a>(), Record);</div>
+<div class="line"><a name="l00605"></a><span class="lineno">  605</span>   Writer.AddDeclarationName(D-><a class="code" href="classclang_1_1ObjCPropertyDecl.html#aa7d97f612763f8d63f2b4571c14d14f3">getSetterName</a>(), Record);</div>
+<div class="line"><a name="l00606"></a><span class="lineno">  606</span>   Writer.AddDeclRef(D-><a class="code" href="classclang_1_1ObjCPropertyDecl.html#ac7f00c5e70f112c0c7863f93c1872545">getGetterMethodDecl</a>(), Record);</div>
+<div class="line"><a name="l00607"></a><span class="lineno">  607</span>   Writer.AddDeclRef(D-><a class="code" href="classclang_1_1ObjCPropertyDecl.html#a0deedcad9deaf37c5964646a16a6ef36">getSetterMethodDecl</a>(), Record);</div>
+<div class="line"><a name="l00608"></a><span class="lineno">  608</span>   Writer.AddDeclRef(D-><a class="code" href="classclang_1_1ObjCPropertyDecl.html#a7b5b23569f23b01449ad96df3974bdde">getPropertyIvarDecl</a>(), Record);</div>
+<div class="line"><a name="l00609"></a><span class="lineno">  609</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdaea4b9b30a65f8ddf318618ba75badd03" title="A ObjCPropertyDecl record.">serialization::DECL_OBJC_PROPERTY</a>;</div>
+<div class="line"><a name="l00610"></a><span class="lineno">  610</span> }</div>
+<div class="line"><a name="l00611"></a><span class="lineno">  611</span> </div>
+<div class="line"><a name="l00612"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#ace5307c8b8ddaea269273757b42f5195">  612</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#ace5307c8b8ddaea269273757b42f5195">ASTDeclWriter::VisitObjCImplDecl</a>(<a class="code" href="classclang_1_1ObjCImplDecl.html">ObjCImplDecl</a> *D) {</div>
+<div class="line"><a name="l00613"></a><span class="lineno">  613</span>   VisitObjCContainerDecl(D);</div>
+<div class="line"><a name="l00614"></a><span class="lineno">  614</span>   Writer.AddDeclRef(D-><a class="code" href="classclang_1_1ObjCImplDecl.html#ae3c6fb728fe5a7aee81ca394470493c4">getClassInterface</a>(), Record);</div>
+<div class="line"><a name="l00615"></a><span class="lineno">  615</span>   <span class="comment">// Abstract class (no need to define a stable serialization::DECL code).</span></div>
+<div class="line"><a name="l00616"></a><span class="lineno">  616</span> }</div>
+<div class="line"><a name="l00617"></a><span class="lineno">  617</span> </div>
+<div class="line"><a name="l00618"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#af39675eb6c689c13c05457dd045d8d11">  618</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#af39675eb6c689c13c05457dd045d8d11">ASTDeclWriter::VisitObjCCategoryImplDecl</a>(<a class="code" href="classclang_1_1ObjCCategoryImplDecl.html">ObjCCategoryImplDecl</a> *D) {</div>
+<div class="line"><a name="l00619"></a><span class="lineno">  619</span>   VisitObjCImplDecl(D);</div>
+<div class="line"><a name="l00620"></a><span class="lineno">  620</span>   Writer.AddIdentifierRef(D-><a class="code" href="classclang_1_1ObjCCategoryImplDecl.html#acfd58b44aa57cb04907fec87b0297f93">getIdentifier</a>(), Record);</div>
+<div class="line"><a name="l00621"></a><span class="lineno">  621</span>   Writer.AddSourceLocation(D-><a class="code" href="classclang_1_1ObjCCategoryImplDecl.html#a540e206f9acf5dce9dcded63891f2802">getCategoryNameLoc</a>(), Record);</div>
+<div class="line"><a name="l00622"></a><span class="lineno">  622</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda3aa3dbb4e9ac94effc9e5387c29cb90d" title="A ObjCCategoryImplDecl record.">serialization::DECL_OBJC_CATEGORY_IMPL</a>;</div>
+<div class="line"><a name="l00623"></a><span class="lineno">  623</span> }</div>
+<div class="line"><a name="l00624"></a><span class="lineno">  624</span> </div>
+<div class="line"><a name="l00625"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#abf1cb5dbc6440662b41000ff68a5d19a">  625</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#abf1cb5dbc6440662b41000ff68a5d19a">ASTDeclWriter::VisitObjCImplementationDecl</a>(<a class="code" href="classclang_1_1ObjCImplementationDecl.html">ObjCImplementationDecl</a> *D) {</div>
+<div class="line"><a name="l00626"></a><span class="lineno">  626</span>   VisitObjCImplDecl(D);</div>
+<div class="line"><a name="l00627"></a><span class="lineno">  627</span>   Writer.AddDeclRef(D-><a class="code" href="classclang_1_1ObjCImplementationDecl.html#a387c88c7bec8777bb64925365eb68ce4">getSuperClass</a>(), Record);</div>
+<div class="line"><a name="l00628"></a><span class="lineno">  628</span>   Writer.AddSourceLocation(D-><a class="code" href="classclang_1_1ObjCImplementationDecl.html#a49dd089018425c0e7dde577af8e720af">getSuperClassLoc</a>(), Record);</div>
+<div class="line"><a name="l00629"></a><span class="lineno">  629</span>   Writer.AddSourceLocation(D-><a class="code" href="classclang_1_1ObjCImplementationDecl.html#af9856a1b43e6d22c83ab9dc0321c0ab6">getIvarLBraceLoc</a>(), Record);</div>
+<div class="line"><a name="l00630"></a><span class="lineno">  630</span>   Writer.AddSourceLocation(D-><a class="code" href="classclang_1_1ObjCImplementationDecl.html#adb3d1bff6dd49fcacd4063c67fceb699">getIvarRBraceLoc</a>(), Record);</div>
+<div class="line"><a name="l00631"></a><span class="lineno">  631</span>   Record.push_back(D-><a class="code" href="classclang_1_1ObjCImplementationDecl.html#aa187157053612843739147b3da3fe4d0">hasNonZeroConstructors</a>());</div>
+<div class="line"><a name="l00632"></a><span class="lineno">  632</span>   Record.push_back(D-><a class="code" href="classclang_1_1ObjCImplementationDecl.html#a045f9b44b1ec107f9fdc88f3a261ee25">hasDestructors</a>());</div>
+<div class="line"><a name="l00633"></a><span class="lineno">  633</span>   Writer.AddCXXCtorInitializers(D->IvarInitializers, D->NumIvarInitializers,</div>
+<div class="line"><a name="l00634"></a><span class="lineno">  634</span>                                 Record);</div>
+<div class="line"><a name="l00635"></a><span class="lineno">  635</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdaa78f787c020e807d2d898c6ed5b0aec7" title="A ObjCImplementationDecl record.">serialization::DECL_OBJC_IMPLEMENTATION</a>;</div>
+<div class="line"><a name="l00636"></a><span class="lineno">  636</span> }</div>
+<div class="line"><a name="l00637"></a><span class="lineno">  637</span> </div>
+<div class="line"><a name="l00638"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#a46714ac0fb10f6a8a60cee3b870bc652">  638</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#a46714ac0fb10f6a8a60cee3b870bc652">ASTDeclWriter::VisitObjCPropertyImplDecl</a>(<a class="code" href="classclang_1_1ObjCPropertyImplDecl.html">ObjCPropertyImplDecl</a> *D) {</div>
+<div class="line"><a name="l00639"></a><span class="lineno">  639</span>   VisitDecl(D);</div>
+<div class="line"><a name="l00640"></a><span class="lineno">  640</span>   Writer.AddSourceLocation(D-><a class="code" href="classclang_1_1ObjCPropertyImplDecl.html#a73c6537ad31012c934f0c32c61d2ea9b">getLocStart</a>(), Record);</div>
+<div class="line"><a name="l00641"></a><span class="lineno">  641</span>   Writer.AddDeclRef(D-><a class="code" href="classclang_1_1ObjCPropertyImplDecl.html#a7c47743d3355f901f96c12f3ea552d16">getPropertyDecl</a>(), Record);</div>
+<div class="line"><a name="l00642"></a><span class="lineno">  642</span>   Writer.AddDeclRef(D-><a class="code" href="classclang_1_1ObjCPropertyImplDecl.html#a4997f96072c557376eeb6c52423ff6fc">getPropertyIvarDecl</a>(), Record);</div>
+<div class="line"><a name="l00643"></a><span class="lineno">  643</span>   Writer.AddSourceLocation(D-><a class="code" href="classclang_1_1ObjCPropertyImplDecl.html#a5fa9ba5514e54db37830afc14da2f0a3">getPropertyIvarDeclLoc</a>(), Record);</div>
+<div class="line"><a name="l00644"></a><span class="lineno">  644</span>   Writer.AddStmt(D-><a class="code" href="classclang_1_1ObjCPropertyImplDecl.html#aa913ea1dcfdd9c8d23ee69f7cb6dc8ee">getGetterCXXConstructor</a>());</div>
+<div class="line"><a name="l00645"></a><span class="lineno">  645</span>   Writer.AddStmt(D-><a class="code" href="classclang_1_1ObjCPropertyImplDecl.html#a6715a4348431248163bc821c56e27a38">getSetterCXXAssignment</a>());</div>
+<div class="line"><a name="l00646"></a><span class="lineno">  646</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdafd181d330770c596655a55cd71b3d3b1" title="A ObjCPropertyImplDecl record.">serialization::DECL_OBJC_PROPERTY_IMPL</a>;</div>
+<div class="line"><a name="l00647"></a><span class="lineno">  647</span> }</div>
+<div class="line"><a name="l00648"></a><span class="lineno">  648</span> </div>
+<div class="line"><a name="l00649"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#a37032ab1ee923d75ca4a980b3dee9f53">  649</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#a37032ab1ee923d75ca4a980b3dee9f53">ASTDeclWriter::VisitFieldDecl</a>(<a class="code" href="classclang_1_1FieldDecl.html">FieldDecl</a> *D) {</div>
+<div class="line"><a name="l00650"></a><span class="lineno">  650</span>   VisitDeclaratorDecl(D);</div>
+<div class="line"><a name="l00651"></a><span class="lineno">  651</span>   Record.push_back(D-><a class="code" href="classclang_1_1FieldDecl.html#a24d01ef63ff78b23df6a4f17f6a02527" title="isMutable - Determines whether this field is mutable (C++ only).">isMutable</a>());</div>
+<div class="line"><a name="l00652"></a><span class="lineno">  652</span>   <span class="keywordflow">if</span> (D->InitializerOrBitWidth.getInt() != <a class="code" href="namespaceclang.html#a38631de947cb87dc51f30d539410a786aa7e7fcec7cfb08e0975e5fc01e88fb44" title="No in-class initializer.">ICIS_NoInit</a> ||</div>
+<div class="line"><a name="l00653"></a><span class="lineno">  653</span>       D->InitializerOrBitWidth.getPointer()) {</div>
+<div class="line"><a name="l00654"></a><span class="lineno">  654</span>     Record.push_back(D->InitializerOrBitWidth.getInt() + 1);</div>
+<div class="line"><a name="l00655"></a><span class="lineno">  655</span>     Writer.AddStmt(D->InitializerOrBitWidth.getPointer());</div>
+<div class="line"><a name="l00656"></a><span class="lineno">  656</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00657"></a><span class="lineno">  657</span>     Record.push_back(0);</div>
+<div class="line"><a name="l00658"></a><span class="lineno">  658</span>   }</div>
+<div class="line"><a name="l00659"></a><span class="lineno">  659</span>   <span class="keywordflow">if</span> (!D-><a class="code" href="classclang_1_1NamedDecl.html#a1e3e90455be89bb5c7c23640cbbd7153">getDeclName</a>())</div>
+<div class="line"><a name="l00660"></a><span class="lineno">  660</span>     Writer.AddDeclRef(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>.<a class="code" href="classclang_1_1ASTContext.html#a6dc6cab639074288480651d0f21a2d53">getInstantiatedFromUnnamedFieldDecl</a>(D), Record);</div>
+<div class="line"><a name="l00661"></a><span class="lineno">  661</span> </div>
+<div class="line"><a name="l00662"></a><span class="lineno">  662</span>   <span class="keywordflow">if</span> (!D-><a class="code" href="classclang_1_1Decl.html#a003fece5918f94442ff29d24f5e8c1cc">hasAttrs</a>() &&</div>
+<div class="line"><a name="l00663"></a><span class="lineno">  663</span>       !D-><a class="code" href="classclang_1_1Decl.html#ac4fdc680ed3574eb8630eb54d7869125">isImplicit</a>() &&</div>
+<div class="line"><a name="l00664"></a><span class="lineno">  664</span>       !D-><a class="code" href="classclang_1_1Decl.html#ad588cec2ab8cfc2963b9ee5a9a21d304" title="Whether this declaration was used, meaning that a definition is required.">isUsed</a>(<span class="keyword">false</span>) &&</div>
+<div class="line"><a name="l00665"></a><span class="lineno">  665</span>       !D-><a class="code" href="classclang_1_1Decl.html#a17ec912fd67469eea51741d45eb0c800">isInvalidDecl</a>() &&</div>
+<div class="line"><a name="l00666"></a><span class="lineno">  666</span>       !D-><a class="code" href="classclang_1_1Decl.html#a3d1b39277883c845c5d51301f302cf03" title="Whether this declaration was referenced.">isReferenced</a>() &&</div>
+<div class="line"><a name="l00667"></a><span class="lineno">  667</span>       !D-><a class="code" href="classclang_1_1Decl.html#a552711754a4c45d49c6e2de83917e39a" title="Whether this declaration is a top-level declaration (function, global variable, etc.) that is lexically inside an objc container definition.">isTopLevelDeclInObjCContainer</a>() &&</div>
+<div class="line"><a name="l00668"></a><span class="lineno">  668</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="l00669"></a><span class="lineno">  669</span>       !D-><a class="code" href="classclang_1_1FieldDecl.html#aa440216ac6adbdd2044ca91c9f31386f">getBitWidth</a>() &&</div>
+<div class="line"><a name="l00670"></a><span class="lineno">  670</span>       !D-><a class="code" href="classclang_1_1FieldDecl.html#aa11de31e26263195b5c2b2ab6cdd2918">hasInClassInitializer</a>() &&</div>
+<div class="line"><a name="l00671"></a><span class="lineno">  671</span>       !D->hasExtInfo() &&</div>
+<div class="line"><a name="l00672"></a><span class="lineno">  672</span>       !<a class="code" href="classclang_1_1ObjCIvarDecl.html#af9a9c4e745cd279534c7e17bd315354b">ObjCIvarDecl::classofKind</a>(D-><a class="code" href="classclang_1_1Decl.html#a6c53e861dae5545e8f6974af04cb2986">getKind</a>()) &&</div>
+<div class="line"><a name="l00673"></a><span class="lineno">  673</span>       !<a class="code" href="classclang_1_1ObjCAtDefsFieldDecl.html#a02d4dd388c433d4d31e646da8f1f2e86">ObjCAtDefsFieldDecl::classofKind</a>(D-><a class="code" href="classclang_1_1Decl.html#a6c53e861dae5545e8f6974af04cb2986">getKind</a>()) &&</div>
+<div class="line"><a name="l00674"></a><span class="lineno">  674</span>       D-><a class="code" href="classclang_1_1NamedDecl.html#a1e3e90455be89bb5c7c23640cbbd7153">getDeclName</a>())</div>
+<div class="line"><a name="l00675"></a><span class="lineno">  675</span>     AbbrevToUse = Writer.getDeclFieldAbbrev();</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>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda6120228ff3e758994f18127141c92776" title="A FieldDecl record.">serialization::DECL_FIELD</a>;</div>
+<div class="line"><a name="l00678"></a><span class="lineno">  678</span> }</div>
+<div class="line"><a name="l00679"></a><span class="lineno">  679</span> </div>
+<div class="line"><a name="l00680"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#a777f90947a1631def7ce961b1d70320e">  680</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#a777f90947a1631def7ce961b1d70320e">ASTDeclWriter::VisitMSPropertyDecl</a>(<a class="code" href="classclang_1_1MSPropertyDecl.html">MSPropertyDecl</a> *D) {</div>
+<div class="line"><a name="l00681"></a><span class="lineno">  681</span>   VisitDeclaratorDecl(D);</div>
+<div class="line"><a name="l00682"></a><span class="lineno">  682</span>   Writer.AddIdentifierRef(D-><a class="code" href="classclang_1_1MSPropertyDecl.html#adc723bcc7edab4bf5b9354648f6db4ec">getGetterId</a>(), Record);</div>
+<div class="line"><a name="l00683"></a><span class="lineno">  683</span>   Writer.AddIdentifierRef(D-><a class="code" href="classclang_1_1MSPropertyDecl.html#abc06eab975726b896f3979f1bfe8ae5e">getSetterId</a>(), Record);</div>
+<div class="line"><a name="l00684"></a><span class="lineno">  684</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda12a623153683addf39e3f7ab76436e7f" title="A MSPropertyDecl record.">serialization::DECL_MS_PROPERTY</a>;</div>
+<div class="line"><a name="l00685"></a><span class="lineno">  685</span> }</div>
+<div class="line"><a name="l00686"></a><span class="lineno">  686</span> </div>
+<div class="line"><a name="l00687"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#a4f7d495c820ad90b48b21d1e93d938c3">  687</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#a4f7d495c820ad90b48b21d1e93d938c3">ASTDeclWriter::VisitIndirectFieldDecl</a>(<a class="code" href="classclang_1_1IndirectFieldDecl.html">IndirectFieldDecl</a> *D) {</div>
+<div class="line"><a name="l00688"></a><span class="lineno">  688</span>   VisitValueDecl(D);</div>
+<div class="line"><a name="l00689"></a><span class="lineno">  689</span>   Record.push_back(D-><a class="code" href="classclang_1_1IndirectFieldDecl.html#acde2dd47d268082c5f232b645c6faa2b">getChainingSize</a>());</div>
+<div class="line"><a name="l00690"></a><span class="lineno">  690</span> </div>
+<div class="line"><a name="l00691"></a><span class="lineno">  691</span>   <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1IndirectFieldDecl.html#a6a0fd4de9f1a53fb21791d50c9ed2abc">IndirectFieldDecl::chain_iterator</a></div>
+<div class="line"><a name="l00692"></a><span class="lineno">  692</span>        <a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a> = D-><a class="code" href="classclang_1_1IndirectFieldDecl.html#a6fc82272044f7f5834621a2f9d66540d">chain_begin</a>(),</div>
+<div class="line"><a name="l00693"></a><span class="lineno">  693</span>        PEnd = D-><a class="code" href="classclang_1_1IndirectFieldDecl.html#a844b66f0d6ce8af21722f424e884e6d0">chain_end</a>(); <a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a> != PEnd; ++<a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a>)</div>
+<div class="line"><a name="l00694"></a><span class="lineno">  694</span>     Writer.AddDeclRef(*<a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a>, Record);</div>
+<div class="line"><a name="l00695"></a><span class="lineno">  695</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda264c6686da8818d66c46468494c53a38" title="A IndirectFieldDecl record.">serialization::DECL_INDIRECTFIELD</a>;</div>
+<div class="line"><a name="l00696"></a><span class="lineno">  696</span> }</div>
+<div class="line"><a name="l00697"></a><span class="lineno">  697</span> </div>
+<div class="line"><a name="l00698"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#ad0d34d503a9636553b90b457228d3ea5">  698</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#ad0d34d503a9636553b90b457228d3ea5">ASTDeclWriter::VisitVarDecl</a>(<a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *D) {</div>
+<div class="line"><a name="l00699"></a><span class="lineno">  699</span>   VisitRedeclarable(D);</div>
+<div class="line"><a name="l00700"></a><span class="lineno">  700</span>   VisitDeclaratorDecl(D);</div>
+<div class="line"><a name="l00701"></a><span class="lineno">  701</span>   Record.push_back(D-><a class="code" href="classclang_1_1VarDecl.html#aabdb595f049bd0ce4703ca3a97dd2445" title="Returns the storage class as written in the source. For the computed linkage of symbol, see getLinkage.">getStorageClass</a>());</div>
+<div class="line"><a name="l00702"></a><span class="lineno">  702</span>   Record.push_back(D-><a class="code" href="classclang_1_1VarDecl.html#ae5910923015256012a426d91bb426513">getTSCSpec</a>());</div>
+<div class="line"><a name="l00703"></a><span class="lineno">  703</span>   Record.push_back(D-><a class="code" href="classclang_1_1VarDecl.html#aaa0da426d0319966b0372af1547b09ef" title="The style of initialization for this declaration.">getInitStyle</a>());</div>
+<div class="line"><a name="l00704"></a><span class="lineno">  704</span>   Record.push_back(D-><a class="code" href="classclang_1_1VarDecl.html#a6f54f1f540dd93f3eb79c0c323a09615" title="Determine whether this variable is the exception variable in a C++ catch statememt or an Objective-C ...">isExceptionVariable</a>());</div>
+<div class="line"><a name="l00705"></a><span class="lineno">  705</span>   Record.push_back(D-><a class="code" href="classclang_1_1VarDecl.html#a58bae2465dc5d7d404476a98131690be" title="Determine whether this local variable can be used with the named return value optimization (NRVO)...">isNRVOVariable</a>());</div>
+<div class="line"><a name="l00706"></a><span class="lineno">  706</span>   Record.push_back(D-><a class="code" href="classclang_1_1VarDecl.html#ae4db0eacda8940ff6adea06c8f7b08ea" title="Determine whether this variable is the for-range-declaration in a C++0x for-range statement...">isCXXForRangeDecl</a>());</div>
+<div class="line"><a name="l00707"></a><span class="lineno">  707</span>   Record.push_back(D-><a class="code" href="classclang_1_1VarDecl.html#a15bdce290ac352eb7b1bcee3fa2fc5e6" title="Determine whether this variable is an ARC pseudo-__strong variable. A pseudo-__strong variable has a ...">isARCPseudoStrong</a>());</div>
+<div class="line"><a name="l00708"></a><span class="lineno">  708</span>   Record.push_back(D-><a class="code" href="classclang_1_1VarDecl.html#a2b869e48603ee23219d50f9c8843807a" title="Whether this variable is (C++11) constexpr.">isConstexpr</a>());</div>
+<div class="line"><a name="l00709"></a><span class="lineno">  709</span>   Record.push_back(D-><a class="code" href="classclang_1_1VarDecl.html#aba33091d519798546dea769aa1e6056b" title="Whether this variable is the implicit variable for a lambda init-capture.">isInitCapture</a>());</div>
+<div class="line"><a name="l00710"></a><span class="lineno">  710</span>   Record.push_back(D-><a class="code" href="classclang_1_1VarDecl.html#aa611faba86f8a3b2466569a4fe55658b">isPreviousDeclInSameBlockScope</a>());</div>
+<div class="line"><a name="l00711"></a><span class="lineno">  711</span>   Record.push_back(D-><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="l00712"></a><span class="lineno">  712</span> </div>
+<div class="line"><a name="l00713"></a><span class="lineno">  713</span>   <span class="keywordflow">if</span> (D-><a class="code" href="classclang_1_1VarDecl.html#af6438debfc45cb2ad2d5cb5ce2711e0c">getInit</a>()) {</div>
+<div class="line"><a name="l00714"></a><span class="lineno">  714</span>     Record.push_back(!D-><a class="code" href="classclang_1_1VarDecl.html#ae023ac41086bd69b5235c2086956189a" title="Determines whether it is already known whether the initializer is an integral constant expression or ...">isInitKnownICE</a>() ? 1 : (D-><a class="code" href="classclang_1_1VarDecl.html#a3c2f445b7cd527f8a3dc1370744aa20e" title="Determines whether the initializer is an integral constant expression, or in C++11, whether the initializer is a constant expression.">isInitICE</a>() ? 3 : 2));</div>
+<div class="line"><a name="l00715"></a><span class="lineno">  715</span>     Writer.AddStmt(D-><a class="code" href="classclang_1_1VarDecl.html#af6438debfc45cb2ad2d5cb5ce2711e0c">getInit</a>());</div>
+<div class="line"><a name="l00716"></a><span class="lineno">  716</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00717"></a><span class="lineno">  717</span>     Record.push_back(0);</div>
+<div class="line"><a name="l00718"></a><span class="lineno">  718</span>   }</div>
+<div class="line"><a name="l00719"></a><span class="lineno">  719</span>   </div>
+<div class="line"><a name="l00720"></a><span class="lineno">  720</span>   <span class="keyword">enum</span> {</div>
+<div class="line"><a name="l00721"></a><span class="lineno">  721</span>     VarNotTemplate = 0, VarTemplate, StaticDataMemberSpecialization</div>
+<div class="line"><a name="l00722"></a><span class="lineno">  722</span>   };</div>
+<div class="line"><a name="l00723"></a><span class="lineno">  723</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1VarTemplateDecl.html" title="Declaration of a variable template.">VarTemplateDecl</a> *TemplD = D-><a class="code" href="classclang_1_1VarDecl.html#a9c2eb3a1a810ac17ba5f61c742fe5813" title="Retrieves the variable template that is described by this variable declaration.">getDescribedVarTemplate</a>()) {</div>
+<div class="line"><a name="l00724"></a><span class="lineno">  724</span>     Record.push_back(VarTemplate);</div>
+<div class="line"><a name="l00725"></a><span class="lineno">  725</span>     Writer.AddDeclRef(TemplD, Record);</div>
+<div class="line"><a name="l00726"></a><span class="lineno">  726</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</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> *SpecInfo</div>
+<div class="line"><a name="l00727"></a><span class="lineno">  727</span>                = D-><a class="code" href="classclang_1_1VarDecl.html#a7d864575664324d9f5829dcf4d46daa2" title="If this variable is an instantiation of a static data member of a class template specialization, retrieves the member specialization information.">getMemberSpecializationInfo</a>()) {</div>
+<div class="line"><a name="l00728"></a><span class="lineno">  728</span>     Record.push_back(StaticDataMemberSpecialization);</div>
+<div class="line"><a name="l00729"></a><span class="lineno">  729</span>     Writer.AddDeclRef(SpecInfo->getInstantiatedFrom(), Record);</div>
+<div class="line"><a name="l00730"></a><span class="lineno">  730</span>     Record.push_back(SpecInfo->getTemplateSpecializationKind());</div>
+<div class="line"><a name="l00731"></a><span class="lineno">  731</span>     Writer.AddSourceLocation(SpecInfo->getPointOfInstantiation(), Record);</div>
+<div class="line"><a name="l00732"></a><span class="lineno">  732</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00733"></a><span class="lineno">  733</span>     Record.push_back(VarNotTemplate);</div>
+<div class="line"><a name="l00734"></a><span class="lineno">  734</span>   }</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>   <span class="keywordflow">if</span> (!D-><a class="code" href="classclang_1_1Decl.html#a003fece5918f94442ff29d24f5e8c1cc">hasAttrs</a>() &&</div>
+<div class="line"><a name="l00737"></a><span class="lineno">  737</span>       !D-><a class="code" href="classclang_1_1Decl.html#ac4fdc680ed3574eb8630eb54d7869125">isImplicit</a>() &&</div>
+<div class="line"><a name="l00738"></a><span class="lineno">  738</span>       !D-><a class="code" href="classclang_1_1Decl.html#ad588cec2ab8cfc2963b9ee5a9a21d304" title="Whether this declaration was used, meaning that a definition is required.">isUsed</a>(<span class="keyword">false</span>) &&</div>
+<div class="line"><a name="l00739"></a><span class="lineno">  739</span>       !D-><a class="code" href="classclang_1_1Decl.html#a17ec912fd67469eea51741d45eb0c800">isInvalidDecl</a>() &&</div>
+<div class="line"><a name="l00740"></a><span class="lineno">  740</span>       !D-><a class="code" href="classclang_1_1Decl.html#a3d1b39277883c845c5d51301f302cf03" title="Whether this declaration was referenced.">isReferenced</a>() &&</div>
+<div class="line"><a name="l00741"></a><span class="lineno">  741</span>       !D-><a class="code" href="classclang_1_1Decl.html#a552711754a4c45d49c6e2de83917e39a" title="Whether this declaration is a top-level declaration (function, global variable, etc.) that is lexically inside an objc container definition.">isTopLevelDeclInObjCContainer</a>() &&</div>
+<div class="line"><a name="l00742"></a><span class="lineno">  742</span>       D-><a class="code" href="classclang_1_1Decl.html#a81e82461f69e9a50e129ef4bfac42987">getAccess</a>() == <a class="code" href="namespaceclang.html#afc8aabd1f46cf32e805cd0d970ef988fa24d2c10b569678923a7bff78b68cb02b">AS_none</a> &&</div>
+<div class="line"><a name="l00743"></a><span class="lineno">  743</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="l00744"></a><span class="lineno">  744</span>       D-><a class="code" href="classclang_1_1NamedDecl.html#a1e3e90455be89bb5c7c23640cbbd7153">getDeclName</a>().<a class="code" href="classclang_1_1DeclarationName.html#a3e722af81dd4b5670e834b20f47ba94b" title="getNameKind - Determine what kind of name this is.">getNameKind</a>() == <a class="code" href="classclang_1_1DeclarationName.html#a9ab322d434446b43379d39e41af5cbe3a244f43949d88869f4d8782e758f5bac8">DeclarationName::Identifier</a> &&</div>
+<div class="line"><a name="l00745"></a><span class="lineno">  745</span>       !D->hasExtInfo() &&</div>
+<div class="line"><a name="l00746"></a><span class="lineno">  746</span>       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>() == D-><a class="code" href="classclang_1_1Redeclarable.html#a9ea014cf6b0106a824cb7a1eb0b29252" title="Returns the most recent (re)declaration of this declaration.">getMostRecentDecl</a>() &&</div>
+<div class="line"><a name="l00747"></a><span class="lineno">  747</span>       D-><a class="code" href="classclang_1_1VarDecl.html#aaa0da426d0319966b0372af1547b09ef" title="The style of initialization for this declaration.">getInitStyle</a>() == <a class="code" href="classclang_1_1VarDecl.html#a4e23202e164f8d6d14a833023c3711efa3374d9cf75fe5dbbb1b19e87e138e778" title="C-style initialization with assignment.">VarDecl::CInit</a> &&</div>
+<div class="line"><a name="l00748"></a><span class="lineno">  748</span>       D-><a class="code" href="classclang_1_1VarDecl.html#af6438debfc45cb2ad2d5cb5ce2711e0c">getInit</a>() == 0 &&</div>
+<div class="line"><a name="l00749"></a><span class="lineno">  749</span>       !isa<ParmVarDecl>(D) &&</div>
+<div class="line"><a name="l00750"></a><span class="lineno">  750</span>       !isa<VarTemplateSpecializationDecl>(D) &&</div>
+<div class="line"><a name="l00751"></a><span class="lineno">  751</span>       !D-><a class="code" href="classclang_1_1VarDecl.html#a2b869e48603ee23219d50f9c8843807a" title="Whether this variable is (C++11) constexpr.">isConstexpr</a>() &&</div>
+<div class="line"><a name="l00752"></a><span class="lineno">  752</span>       !D-><a class="code" href="classclang_1_1VarDecl.html#aba33091d519798546dea769aa1e6056b" title="Whether this variable is the implicit variable for a lambda init-capture.">isInitCapture</a>() &&</div>
+<div class="line"><a name="l00753"></a><span class="lineno">  753</span>       !D-><a class="code" href="classclang_1_1VarDecl.html#aa611faba86f8a3b2466569a4fe55658b">isPreviousDeclInSameBlockScope</a>() &&</div>
+<div class="line"><a name="l00754"></a><span class="lineno">  754</span>       !D-><a class="code" href="classclang_1_1VarDecl.html#a7d864575664324d9f5829dcf4d46daa2" title="If this variable is an instantiation of a static data member of a class template specialization, retrieves the member specialization information.">getMemberSpecializationInfo</a>())</div>
+<div class="line"><a name="l00755"></a><span class="lineno">  755</span>     AbbrevToUse = Writer.getDeclVarAbbrev();</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>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda9e384c28f844c88209addf1f19313b93" title="A VarDecl record.">serialization::DECL_VAR</a>;</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> </div>
+<div class="line"><a name="l00760"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#a52368c14bc30578e881135ef11ed103d">  760</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#a52368c14bc30578e881135ef11ed103d">ASTDeclWriter::VisitImplicitParamDecl</a>(<a class="code" href="classclang_1_1ImplicitParamDecl.html">ImplicitParamDecl</a> *D) {</div>
+<div class="line"><a name="l00761"></a><span class="lineno">  761</span>   VisitVarDecl(D);</div>
+<div class="line"><a name="l00762"></a><span class="lineno">  762</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdac13bfc8bb173049dae77fd26f64ef2e7" title="An ImplicitParamDecl record.">serialization::DECL_IMPLICIT_PARAM</a>;</div>
+<div class="line"><a name="l00763"></a><span class="lineno">  763</span> }</div>
+<div class="line"><a name="l00764"></a><span class="lineno">  764</span> </div>
+<div class="line"><a name="l00765"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#a220acf6a69ae2f48862795857529fc4b">  765</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#a220acf6a69ae2f48862795857529fc4b">ASTDeclWriter::VisitParmVarDecl</a>(<a class="code" href="classclang_1_1ParmVarDecl.html" title="ParmVarDecl - Represents a parameter to a function.">ParmVarDecl</a> *D) {</div>
+<div class="line"><a name="l00766"></a><span class="lineno">  766</span>   VisitVarDecl(D);</div>
+<div class="line"><a name="l00767"></a><span class="lineno">  767</span>   Record.push_back(D-><a class="code" href="classclang_1_1ParmVarDecl.html#a25fc88422511bba1b5a423fe7984a837">isObjCMethodParameter</a>());</div>
+<div class="line"><a name="l00768"></a><span class="lineno">  768</span>   Record.push_back(D-><a class="code" href="classclang_1_1ParmVarDecl.html#a56bb3d9248bebcc6a5532062602a3623">getFunctionScopeDepth</a>());</div>
+<div class="line"><a name="l00769"></a><span class="lineno">  769</span>   Record.push_back(D-><a class="code" href="classclang_1_1ParmVarDecl.html#a88baa61855cb81d941ae6a46102e0437" title="Returns the index of this parameter in its prototype or method scope.">getFunctionScopeIndex</a>());</div>
+<div class="line"><a name="l00770"></a><span class="lineno">  770</span>   Record.push_back(D-><a class="code" href="classclang_1_1ParmVarDecl.html#a84fd067629178df74043b1289ffd4d16">getObjCDeclQualifier</a>()); <span class="comment">// FIXME: stable encoding</span></div>
+<div class="line"><a name="l00771"></a><span class="lineno">  771</span>   Record.push_back(D-><a class="code" href="classclang_1_1ParmVarDecl.html#a67b309318edcb2d5ce2e3630b127b998">isKNRPromoted</a>());</div>
+<div class="line"><a name="l00772"></a><span class="lineno">  772</span>   Record.push_back(D-><a class="code" href="classclang_1_1ParmVarDecl.html#aff873f9b8911e584dae58100cc1c2d2d">hasInheritedDefaultArg</a>());</div>
+<div class="line"><a name="l00773"></a><span class="lineno">  773</span>   Record.push_back(D-><a class="code" href="classclang_1_1ParmVarDecl.html#a323467236c0333b8f29c3ceb004f1ee4">hasUninstantiatedDefaultArg</a>());</div>
+<div class="line"><a name="l00774"></a><span class="lineno">  774</span>   <span class="keywordflow">if</span> (D-><a class="code" href="classclang_1_1ParmVarDecl.html#a323467236c0333b8f29c3ceb004f1ee4">hasUninstantiatedDefaultArg</a>())</div>
+<div class="line"><a name="l00775"></a><span class="lineno">  775</span>     Writer.AddStmt(D-><a class="code" href="classclang_1_1ParmVarDecl.html#aa724439fc1ca97fa5c7730fa4a314f0b">getUninstantiatedDefaultArg</a>());</div>
+<div class="line"><a name="l00776"></a><span class="lineno">  776</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda41b4f032561d1c9e5ce9cab230a10873" title="A ParmVarDecl record.">serialization::DECL_PARM_VAR</a>;</div>
+<div class="line"><a name="l00777"></a><span class="lineno">  777</span> </div>
+<div class="line"><a name="l00778"></a><span class="lineno">  778</span>   assert(!D-><a class="code" href="classclang_1_1VarDecl.html#a15bdce290ac352eb7b1bcee3fa2fc5e6" title="Determine whether this variable is an ARC pseudo-__strong variable. A pseudo-__strong variable has a ...">isARCPseudoStrong</a>()); <span class="comment">// can be true of ImplicitParamDecl</span></div>
+<div class="line"><a name="l00779"></a><span class="lineno">  779</span> </div>
+<div class="line"><a name="l00780"></a><span class="lineno">  780</span>   <span class="comment">// If the assumptions about the DECL_PARM_VAR abbrev are true, use it.  Here</span></div>
+<div class="line"><a name="l00781"></a><span class="lineno">  781</span>   <span class="comment">// we dynamically check for the properties that we optimize for, but don't</span></div>
+<div class="line"><a name="l00782"></a><span class="lineno">  782</span>   <span class="comment">// know are true of all PARM_VAR_DECLs.</span></div>
+<div class="line"><a name="l00783"></a><span class="lineno">  783</span>   <span class="keywordflow">if</span> (!D-><a class="code" href="classclang_1_1Decl.html#a003fece5918f94442ff29d24f5e8c1cc">hasAttrs</a>() &&</div>
+<div class="line"><a name="l00784"></a><span class="lineno">  784</span>       !D->hasExtInfo() &&</div>
+<div class="line"><a name="l00785"></a><span class="lineno">  785</span>       !D-><a class="code" href="classclang_1_1Decl.html#ac4fdc680ed3574eb8630eb54d7869125">isImplicit</a>() &&</div>
+<div class="line"><a name="l00786"></a><span class="lineno">  786</span>       !D-><a class="code" href="classclang_1_1Decl.html#ad588cec2ab8cfc2963b9ee5a9a21d304" title="Whether this declaration was used, meaning that a definition is required.">isUsed</a>(<span class="keyword">false</span>) &&</div>
+<div class="line"><a name="l00787"></a><span class="lineno">  787</span>       !D-><a class="code" href="classclang_1_1Decl.html#a17ec912fd67469eea51741d45eb0c800">isInvalidDecl</a>() &&</div>
+<div class="line"><a name="l00788"></a><span class="lineno">  788</span>       !D-><a class="code" href="classclang_1_1Decl.html#a3d1b39277883c845c5d51301f302cf03" title="Whether this declaration was referenced.">isReferenced</a>() &&</div>
+<div class="line"><a name="l00789"></a><span class="lineno">  789</span>       D-><a class="code" href="classclang_1_1Decl.html#a81e82461f69e9a50e129ef4bfac42987">getAccess</a>() == <a class="code" href="namespaceclang.html#afc8aabd1f46cf32e805cd0d970ef988fa24d2c10b569678923a7bff78b68cb02b">AS_none</a> &&</div>
+<div class="line"><a name="l00790"></a><span class="lineno">  790</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="l00791"></a><span class="lineno">  791</span>       D-><a class="code" href="classclang_1_1VarDecl.html#aabdb595f049bd0ce4703ca3a97dd2445" title="Returns the storage class as written in the source. For the computed linkage of symbol, see getLinkage.">getStorageClass</a>() == 0 &&</div>
+<div class="line"><a name="l00792"></a><span class="lineno">  792</span>       D-><a class="code" href="classclang_1_1VarDecl.html#aaa0da426d0319966b0372af1547b09ef" title="The style of initialization for this declaration.">getInitStyle</a>() == <a class="code" href="classclang_1_1VarDecl.html#a4e23202e164f8d6d14a833023c3711efa3374d9cf75fe5dbbb1b19e87e138e778" title="C-style initialization with assignment.">VarDecl::CInit</a> && <span class="comment">// Can params have anything else?</span></div>
+<div class="line"><a name="l00793"></a><span class="lineno">  793</span>       D-><a class="code" href="classclang_1_1ParmVarDecl.html#a56bb3d9248bebcc6a5532062602a3623">getFunctionScopeDepth</a>() == 0 &&</div>
+<div class="line"><a name="l00794"></a><span class="lineno">  794</span>       D-><a class="code" href="classclang_1_1ParmVarDecl.html#a84fd067629178df74043b1289ffd4d16">getObjCDeclQualifier</a>() == 0 &&</div>
+<div class="line"><a name="l00795"></a><span class="lineno">  795</span>       !D-><a class="code" href="classclang_1_1ParmVarDecl.html#a67b309318edcb2d5ce2e3630b127b998">isKNRPromoted</a>() &&</div>
+<div class="line"><a name="l00796"></a><span class="lineno">  796</span>       !D-><a class="code" href="classclang_1_1ParmVarDecl.html#aff873f9b8911e584dae58100cc1c2d2d">hasInheritedDefaultArg</a>() &&</div>
+<div class="line"><a name="l00797"></a><span class="lineno">  797</span>       D-><a class="code" href="classclang_1_1VarDecl.html#af6438debfc45cb2ad2d5cb5ce2711e0c">getInit</a>() == 0 &&</div>
+<div class="line"><a name="l00798"></a><span class="lineno">  798</span>       !D-><a class="code" href="classclang_1_1ParmVarDecl.html#a323467236c0333b8f29c3ceb004f1ee4">hasUninstantiatedDefaultArg</a>())  <span class="comment">// No default expr.</span></div>
+<div class="line"><a name="l00799"></a><span class="lineno">  799</span>     AbbrevToUse = Writer.getDeclParmVarAbbrev();</div>
+<div class="line"><a name="l00800"></a><span class="lineno">  800</span> </div>
+<div class="line"><a name="l00801"></a><span class="lineno">  801</span>   <span class="comment">// Check things we know are true of *every* PARM_VAR_DECL, which is more than</span></div>
+<div class="line"><a name="l00802"></a><span class="lineno">  802</span>   <span class="comment">// just us assuming it.</span></div>
+<div class="line"><a name="l00803"></a><span class="lineno">  803</span>   assert(!D-><a class="code" href="classclang_1_1VarDecl.html#ae5910923015256012a426d91bb426513">getTSCSpec</a>() && <span class="stringliteral">"PARM_VAR_DECL can't use TLS"</span>);</div>
+<div class="line"><a name="l00804"></a><span class="lineno">  804</span>   assert(D-><a class="code" href="classclang_1_1Decl.html#a81e82461f69e9a50e129ef4bfac42987">getAccess</a>() == <a class="code" href="namespaceclang.html#afc8aabd1f46cf32e805cd0d970ef988fa24d2c10b569678923a7bff78b68cb02b">AS_none</a> && <span class="stringliteral">"PARM_VAR_DECL can't be public/private"</span>);</div>
+<div class="line"><a name="l00805"></a><span class="lineno">  805</span>   assert(!D-><a class="code" href="classclang_1_1VarDecl.html#a6f54f1f540dd93f3eb79c0c323a09615" title="Determine whether this variable is the exception variable in a C++ catch statememt or an Objective-C ...">isExceptionVariable</a>() && <span class="stringliteral">"PARM_VAR_DECL can't be exception var"</span>);</div>
+<div class="line"><a name="l00806"></a><span class="lineno">  806</span>   assert(D-><a class="code" href="classclang_1_1Redeclarable.html#ae865b5549d99099ecb62d8b3a104f033" title="Return the previous declaration of this declaration or NULL if this is the first declaration.">getPreviousDecl</a>() == 0 && <span class="stringliteral">"PARM_VAR_DECL can't be redecl"</span>);</div>
+<div class="line"><a name="l00807"></a><span class="lineno">  807</span>   assert(!D-><a class="code" href="classclang_1_1VarDecl.html#a373bffe9299b1e17054f1bd6c46e00a5" title="Determines whether this is a static data member.">isStaticDataMember</a>() &&</div>
+<div class="line"><a name="l00808"></a><span class="lineno">  808</span>          <span class="stringliteral">"PARM_VAR_DECL can't be static data member"</span>);</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> </div>
+<div class="line"><a name="l00811"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#add2fe703095cd67331f53ada9cb69f45">  811</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#add2fe703095cd67331f53ada9cb69f45">ASTDeclWriter::VisitFileScopeAsmDecl</a>(<a class="code" href="classclang_1_1FileScopeAsmDecl.html">FileScopeAsmDecl</a> *D) {</div>
+<div class="line"><a name="l00812"></a><span class="lineno">  812</span>   VisitDecl(D);</div>
+<div class="line"><a name="l00813"></a><span class="lineno">  813</span>   Writer.AddStmt(D-><a class="code" href="classclang_1_1FileScopeAsmDecl.html#a26dc2cc8284f3b22c9a1c5eb7925ee68">getAsmString</a>());</div>
+<div class="line"><a name="l00814"></a><span class="lineno">  814</span>   Writer.AddSourceLocation(D-><a class="code" href="classclang_1_1FileScopeAsmDecl.html#a5d6f0106f555f533659853450409420d">getRParenLoc</a>(), Record);</div>
+<div class="line"><a name="l00815"></a><span class="lineno">  815</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda59169ddb05fdadf4f01d076ad022c230" title="A FileScopeAsmDecl record.">serialization::DECL_FILE_SCOPE_ASM</a>;</div>
+<div class="line"><a name="l00816"></a><span class="lineno">  816</span> }</div>
+<div class="line"><a name="l00817"></a><span class="lineno">  817</span> </div>
+<div class="line"><a name="l00818"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#a08416f780c90bc90949e08570eb2da7f">  818</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#a08416f780c90bc90949e08570eb2da7f">ASTDeclWriter::VisitEmptyDecl</a>(<a class="code" href="classclang_1_1EmptyDecl.html" title="Represents an empty-declaration.">EmptyDecl</a> *D) {</div>
+<div class="line"><a name="l00819"></a><span class="lineno">  819</span>   VisitDecl(D);</div>
+<div class="line"><a name="l00820"></a><span class="lineno">  820</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda06ef62e07ff9ede63c5e139f6c0ae011" title="An EmptyDecl record.">serialization::DECL_EMPTY</a>;</div>
+<div class="line"><a name="l00821"></a><span class="lineno">  821</span> }</div>
+<div class="line"><a name="l00822"></a><span class="lineno">  822</span> </div>
+<div class="line"><a name="l00823"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#a2da212bdcf132c5b6cf6bf988e7c5460">  823</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#a2da212bdcf132c5b6cf6bf988e7c5460">ASTDeclWriter::VisitBlockDecl</a>(<a class="code" href="classclang_1_1BlockDecl.html">BlockDecl</a> *D) {</div>
+<div class="line"><a name="l00824"></a><span class="lineno">  824</span>   VisitDecl(D);</div>
+<div class="line"><a name="l00825"></a><span class="lineno">  825</span>   Writer.AddStmt(D-><a class="code" href="classclang_1_1BlockDecl.html#ae07a2821ec03192a1628168aaeb34621">getBody</a>());</div>
+<div class="line"><a name="l00826"></a><span class="lineno">  826</span>   Writer.AddTypeSourceInfo(D-><a class="code" href="classclang_1_1BlockDecl.html#a2c0a6bfbbfaf9204060eef275f354524">getSignatureAsWritten</a>(), Record);</div>
+<div class="line"><a name="l00827"></a><span class="lineno">  827</span>   Record.push_back(D-><a class="code" href="classclang_1_1BlockDecl.html#a028e79f4f624bad6c69514d2934acbfd">param_size</a>());</div>
+<div class="line"><a name="l00828"></a><span class="lineno">  828</span>   <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1ParmVarDecl.html" title="ParmVarDecl - Represents a parameter to a function.">FunctionDecl::param_iterator</a> <a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a> = D-><a class="code" href="classclang_1_1BlockDecl.html#a7c7e03c529594460a5c33a527297bb66">param_begin</a>(), PEnd = D-><a class="code" href="classclang_1_1BlockDecl.html#a353976636542f283812278b7e7572c96">param_end</a>();</div>
+<div class="line"><a name="l00829"></a><span class="lineno">  829</span>        <a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a> != PEnd; ++<a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a>)</div>
+<div class="line"><a name="l00830"></a><span class="lineno">  830</span>     Writer.AddDeclRef(*<a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a>, Record);</div>
+<div class="line"><a name="l00831"></a><span class="lineno">  831</span>   Record.push_back(D-><a class="code" href="classclang_1_1BlockDecl.html#a51f7b34e3e0deae0d54701e680baaf66">isVariadic</a>());</div>
+<div class="line"><a name="l00832"></a><span class="lineno">  832</span>   Record.push_back(D-><a class="code" href="classclang_1_1BlockDecl.html#a22c7305d8cf56239bf0b0f96ec0955f1">blockMissingReturnType</a>());</div>
+<div class="line"><a name="l00833"></a><span class="lineno">  833</span>   Record.push_back(D-><a class="code" href="classclang_1_1BlockDecl.html#a28f9a542c5d2223117922ae982f70dce">isConversionFromLambda</a>());</div>
+<div class="line"><a name="l00834"></a><span class="lineno">  834</span>   Record.push_back(D-><a class="code" href="classclang_1_1BlockDecl.html#af5cecbb512952438792ec412a79ad0e0">capturesCXXThis</a>());</div>
+<div class="line"><a name="l00835"></a><span class="lineno">  835</span>   Record.push_back(D-><a class="code" href="classclang_1_1BlockDecl.html#a0e3c15056ac6ce4c992f009a6fc816a3">getNumCaptures</a>());</div>
+<div class="line"><a name="l00836"></a><span class="lineno">  836</span>   <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1BlockDecl_1_1Capture.html">BlockDecl::capture_iterator</a></div>
+<div class="line"><a name="l00837"></a><span class="lineno">  837</span>          i = D-><a class="code" href="classclang_1_1BlockDecl.html#ab22e740e64eb0eb9b79f8cd043b07606">capture_begin</a>(), e = D-><a class="code" href="classclang_1_1BlockDecl.html#a00f598199079e2be3d254168e6a24644">capture_end</a>(); i != e; ++i) {</div>
+<div class="line"><a name="l00838"></a><span class="lineno">  838</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1BlockDecl_1_1Capture.html">BlockDecl::Capture</a> &capture = *i;</div>
+<div class="line"><a name="l00839"></a><span class="lineno">  839</span>     Writer.AddDeclRef(capture.<a class="code" href="classclang_1_1BlockDecl_1_1Capture.html#a0ef6c39debd4f72aec7392f6a8e4bbea" title="The variable being captured.">getVariable</a>(), Record);</div>
+<div class="line"><a name="l00840"></a><span class="lineno">  840</span> </div>
+<div class="line"><a name="l00841"></a><span class="lineno">  841</span>     <span class="keywordtype">unsigned</span> flags = 0;</div>
+<div class="line"><a name="l00842"></a><span class="lineno">  842</span>     <span class="keywordflow">if</span> (capture.<a class="code" href="classclang_1_1BlockDecl_1_1Capture.html#acb67dd1ac032aa17b7e85095ff5aa792">isByRef</a>()) flags |= 1;</div>
+<div class="line"><a name="l00843"></a><span class="lineno">  843</span>     <span class="keywordflow">if</span> (capture.<a class="code" href="classclang_1_1BlockDecl_1_1Capture.html#a6b747abc7f3f1467d9405dff63266de4">isNested</a>()) flags |= 2;</div>
+<div class="line"><a name="l00844"></a><span class="lineno">  844</span>     <span class="keywordflow">if</span> (capture.<a class="code" href="classclang_1_1BlockDecl_1_1Capture.html#ac18e596e4576ae5754e322e371b78e3e">hasCopyExpr</a>()) flags |= 4;</div>
+<div class="line"><a name="l00845"></a><span class="lineno">  845</span>     Record.push_back(flags);</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="keywordflow">if</span> (capture.<a class="code" href="classclang_1_1BlockDecl_1_1Capture.html#ac18e596e4576ae5754e322e371b78e3e">hasCopyExpr</a>()) Writer.AddStmt(capture.<a class="code" href="classclang_1_1BlockDecl_1_1Capture.html#a7730d00fafb0e13e7d21eac2c1b303a8">getCopyExpr</a>());</div>
+<div class="line"><a name="l00848"></a><span class="lineno">  848</span>   }</div>
+<div class="line"><a name="l00849"></a><span class="lineno">  849</span> </div>
+<div class="line"><a name="l00850"></a><span class="lineno">  850</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda7fe348c25ed39f51854ad19638ad47f6" title="A BlockDecl record.">serialization::DECL_BLOCK</a>;</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> </div>
+<div class="line"><a name="l00853"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#a88e5a7f6cb6c4f260d98352fc77de919">  853</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#a88e5a7f6cb6c4f260d98352fc77de919">ASTDeclWriter::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="l00854"></a><span class="lineno">  854</span>   Record.push_back(CD-><a class="code" href="classclang_1_1CapturedDecl.html#a70ce5194585051e3b37cfe0b3da147f4">getNumParams</a>());</div>
+<div class="line"><a name="l00855"></a><span class="lineno">  855</span>   VisitDecl(CD);</div>
+<div class="line"><a name="l00856"></a><span class="lineno">  856</span>   <span class="comment">// Body is stored by VisitCapturedStmt.</span></div>
+<div class="line"><a name="l00857"></a><span class="lineno">  857</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i < CD-><a class="code" href="classclang_1_1CapturedDecl.html#a70ce5194585051e3b37cfe0b3da147f4">getNumParams</a>(); ++i)</div>
+<div class="line"><a name="l00858"></a><span class="lineno">  858</span>     Writer.AddDeclRef(CD-><a class="code" href="classclang_1_1CapturedDecl.html#a6f5a7550c75c80e4c1298f8990c6b114">getParam</a>(i), Record);</div>
+<div class="line"><a name="l00859"></a><span class="lineno">  859</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda084cea238d9e0a5c310a62c199af9001" title="A CapturedDecl record.">serialization::DECL_CAPTURED</a>;</div>
+<div class="line"><a name="l00860"></a><span class="lineno">  860</span> }</div>
+<div class="line"><a name="l00861"></a><span class="lineno">  861</span> </div>
+<div class="line"><a name="l00862"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#a65ac8849b59e0eb899a5930c002e3cc0">  862</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#a65ac8849b59e0eb899a5930c002e3cc0">ASTDeclWriter::VisitLinkageSpecDecl</a>(<a class="code" href="classclang_1_1LinkageSpecDecl.html" title="Represents a linkage specification.">LinkageSpecDecl</a> *D) {</div>
+<div class="line"><a name="l00863"></a><span class="lineno">  863</span>   VisitDecl(D);</div>
+<div class="line"><a name="l00864"></a><span class="lineno">  864</span>   Record.push_back(D-><a class="code" href="classclang_1_1LinkageSpecDecl.html#a5b28496a4e12b165b3e273449505d008" title="Return the language specified by this linkage specification.">getLanguage</a>());</div>
+<div class="line"><a name="l00865"></a><span class="lineno">  865</span>   Writer.AddSourceLocation(D-><a class="code" href="classclang_1_1LinkageSpecDecl.html#a84f144e6d662043f04cf3bd79e0caf75">getExternLoc</a>(), Record);</div>
+<div class="line"><a name="l00866"></a><span class="lineno">  866</span>   Writer.AddSourceLocation(D-><a class="code" href="classclang_1_1LinkageSpecDecl.html#ae8438ba3d35b8f532bd798aabb9f721c">getRBraceLoc</a>(), Record);</div>
+<div class="line"><a name="l00867"></a><span class="lineno">  867</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda66c711e5b8b3fa167fb631ea808ce51c" title="A LinkageSpecDecl record.">serialization::DECL_LINKAGE_SPEC</a>;</div>
+<div class="line"><a name="l00868"></a><span class="lineno">  868</span> }</div>
+<div class="line"><a name="l00869"></a><span class="lineno">  869</span> </div>
+<div class="line"><a name="l00870"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#a30d1d9d4d214019e091bae6ed892ef85">  870</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#a30d1d9d4d214019e091bae6ed892ef85">ASTDeclWriter::VisitLabelDecl</a>(<a class="code" href="classclang_1_1LabelDecl.html">LabelDecl</a> *D) {</div>
+<div class="line"><a name="l00871"></a><span class="lineno">  871</span>   VisitNamedDecl(D);</div>
+<div class="line"><a name="l00872"></a><span class="lineno">  872</span>   Writer.AddSourceLocation(D-><a class="code" href="classclang_1_1Decl.html#ae66a13d419e9cad2f6c3643bfce45c54">getLocStart</a>(), Record);</div>
+<div class="line"><a name="l00873"></a><span class="lineno">  873</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdaa8eb97f69b5e224015e1cf57d667f701" title="A LabelDecl record.">serialization::DECL_LABEL</a>;</div>
+<div class="line"><a name="l00874"></a><span class="lineno">  874</span> }</div>
+<div class="line"><a name="l00875"></a><span class="lineno">  875</span> </div>
+<div class="line"><a name="l00876"></a><span class="lineno">  876</span> </div>
+<div class="line"><a name="l00877"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#a1b11aa9cdffb54ed41121af4353b821e">  877</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#a1b11aa9cdffb54ed41121af4353b821e">ASTDeclWriter::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="l00878"></a><span class="lineno">  878</span>   VisitRedeclarable(D);</div>
+<div class="line"><a name="l00879"></a><span class="lineno">  879</span>   VisitNamedDecl(D);</div>
+<div class="line"><a name="l00880"></a><span class="lineno">  880</span>   Record.push_back(D-><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="l00881"></a><span class="lineno">  881</span>   Writer.AddSourceLocation(D-><a class="code" href="classclang_1_1NamespaceDecl.html#af223434289d547802c5b78f322776433">getLocStart</a>(), Record);</div>
+<div class="line"><a name="l00882"></a><span class="lineno">  882</span>   Writer.AddSourceLocation(D-><a class="code" href="classclang_1_1NamespaceDecl.html#a40caa7ca1fab3d23518cc05593791584">getRBraceLoc</a>(), Record);</div>
+<div class="line"><a name="l00883"></a><span class="lineno">  883</span> </div>
+<div class="line"><a name="l00884"></a><span class="lineno">  884</span>   <span class="keywordflow">if</span> (D-><a class="code" href="classclang_1_1NamespaceDecl.html#ad5d072479f875b1ac9df8aa072acbb43" title="Return true if this declaration is an original (first) declaration of the namespace. This is false for non-original (subsequent) namespace declarations and anonymous namespaces.">isOriginalNamespace</a>())</div>
+<div class="line"><a name="l00885"></a><span class="lineno">  885</span>     Writer.AddDeclRef(D-><a class="code" href="classclang_1_1NamespaceDecl.html#a8eb5e991d74a231a432395fbc13c5ee2" title="Retrieve the anonymous namespace nested inside this namespace, if any.">getAnonymousNamespace</a>(), Record);</div>
+<div class="line"><a name="l00886"></a><span class="lineno">  886</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda6b89a684e9175c5c25cad4fe81de4d8f" title="A NamespaceDecl record.">serialization::DECL_NAMESPACE</a>;</div>
+<div class="line"><a name="l00887"></a><span class="lineno">  887</span> </div>
+<div class="line"><a name="l00888"></a><span class="lineno">  888</span>   <span class="keywordflow">if</span> (Writer.hasChain() && !D-><a class="code" href="classclang_1_1NamespaceDecl.html#ad5d072479f875b1ac9df8aa072acbb43" title="Return true if this declaration is an original (first) declaration of the namespace. This is false for non-original (subsequent) namespace declarations and anonymous namespaces.">isOriginalNamespace</a>() &&</div>
+<div class="line"><a name="l00889"></a><span class="lineno">  889</span>       D-><a class="code" href="classclang_1_1NamespaceDecl.html#ae1a5d3499ed235611ba054da2ca9dd2a" title="Get the original (first) namespace declaration.">getOriginalNamespace</a>()-><a class="code" href="classclang_1_1Decl.html#a65e7ee086555015067f692bb1c2036f7" title="Determine whether this declaration came from an AST file (such as a precompiled header or module) rat...">isFromASTFile</a>()) {</div>
+<div class="line"><a name="l00890"></a><span class="lineno">  890</span>     <a class="code" href="classclang_1_1NamespaceDecl.html" title="NamespaceDecl - Represent a C++ namespace.">NamespaceDecl</a> *NS = D-><a class="code" href="classclang_1_1NamespaceDecl.html#ae1a5d3499ed235611ba054da2ca9dd2a" title="Get the original (first) namespace declaration.">getOriginalNamespace</a>();</div>
+<div class="line"><a name="l00891"></a><span class="lineno">  891</span>     Writer.AddUpdatedDeclContext(NS);</div>
+<div class="line"><a name="l00892"></a><span class="lineno">  892</span> </div>
+<div class="line"><a name="l00893"></a><span class="lineno">  893</span>     <span class="comment">// Make sure all visible decls are written. They will be recorded later.</span></div>
+<div class="line"><a name="l00894"></a><span class="lineno">  894</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1StoredDeclsMap.html">StoredDeclsMap</a> *<a class="code" href="namespaceclang_1_1LangAS.html#a241b6fc974438ba623ec877f2b294f0c">Map</a> = NS-><a class="code" href="classclang_1_1DeclContext.html#a8d0b8ace2aca42ea5d8614590046dba0" title="Ensure the lookup structure is fully-built and return it.">buildLookup</a>()) {</div>
+<div class="line"><a name="l00895"></a><span class="lineno">  895</span>       <span class="keywordflow">for</span> (StoredDeclsMap::iterator D = <a class="code" href="namespaceclang_1_1LangAS.html#a241b6fc974438ba623ec877f2b294f0c">Map</a>->begin(), DEnd = <a class="code" href="namespaceclang_1_1LangAS.html#a241b6fc974438ba623ec877f2b294f0c">Map</a>->end();</div>
+<div class="line"><a name="l00896"></a><span class="lineno">  896</span>            D != DEnd; ++D) {</div>
+<div class="line"><a name="l00897"></a><span class="lineno">  897</span>         <a class="code" href="classclang_1_1DeclContext.html#ac25dc34eabe6c4e035c76dd3329e8530">DeclContext::lookup_result</a> R = D->second.getLookupResult();</div>
+<div class="line"><a name="l00898"></a><span class="lineno">  898</span>         <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1NamedDecl.html">DeclContext::lookup_iterator</a> I = R.begin(), E = R.end(); I != E;</div>
+<div class="line"><a name="l00899"></a><span class="lineno">  899</span>              ++I)</div>
+<div class="line"><a name="l00900"></a><span class="lineno">  900</span>           Writer.GetDeclRef(*I);</div>
+<div class="line"><a name="l00901"></a><span class="lineno">  901</span>       }</div>
+<div class="line"><a name="l00902"></a><span class="lineno">  902</span>     }</div>
+<div class="line"><a name="l00903"></a><span class="lineno">  903</span>   }</div>
+<div class="line"><a name="l00904"></a><span class="lineno">  904</span> </div>
+<div class="line"><a name="l00905"></a><span class="lineno">  905</span>   <span class="keywordflow">if</span> (Writer.hasChain() && D-><a class="code" href="classclang_1_1NamespaceDecl.html#a42ebf818c71a0c064117a2a51ed25c42" title="Returns true if this is an anonymous namespace declaration.">isAnonymousNamespace</a>() && </div>
+<div class="line"><a name="l00906"></a><span class="lineno">  906</span>       D == D-><a class="code" href="classclang_1_1NamedDecl.html#aeefe38873fdbc6690f59de00a353980d">getMostRecentDecl</a>()) {</div>
+<div class="line"><a name="l00907"></a><span class="lineno">  907</span>     <span class="comment">// This is a most recent reopening of the anonymous namespace. If its parent</span></div>
+<div class="line"><a name="l00908"></a><span class="lineno">  908</span>     <span class="comment">// is in a previous PCH (or is the TU), mark that parent for update, because</span></div>
+<div class="line"><a name="l00909"></a><span class="lineno">  909</span>     <span class="comment">// the original namespace always points to the latest re-opening of its</span></div>
+<div class="line"><a name="l00910"></a><span class="lineno">  910</span>     <span class="comment">// anonymous namespace.</span></div>
+<div class="line"><a name="l00911"></a><span class="lineno">  911</span>     <a class="code" href="classclang_1_1Decl.html">Decl</a> *Parent = cast<Decl>(</div>
+<div class="line"><a name="l00912"></a><span class="lineno">  912</span>         D-><a class="code" href="classclang_1_1DeclContext.html#a31c99b38017e8d702fda9c0f1d021186" title="getParent - Returns the containing DeclContext.">getParent</a>()-><a class="code" href="classclang_1_1DeclContext.html#a61743ae6acff989a26641900282e6305">getRedeclContext</a>()-><a class="code" href="classclang_1_1DeclContext.html#ac3368ad7389098f8fed5c5d346b77445">getPrimaryContext</a>());</div>
+<div class="line"><a name="l00913"></a><span class="lineno">  913</span>     <span class="keywordflow">if</span> (Parent-><a class="code" href="classclang_1_1Decl.html#a65e7ee086555015067f692bb1c2036f7" title="Determine whether this declaration came from an AST file (such as a precompiled header or module) rat...">isFromASTFile</a>() || isa<TranslationUnitDecl>(Parent)) {</div>
+<div class="line"><a name="l00914"></a><span class="lineno">  914</span>       <a class="code" href="classllvm_1_1SmallVector.html">ASTWriter::UpdateRecord</a> &Record = Writer.DeclUpdates[Parent];</div>
+<div class="line"><a name="l00915"></a><span class="lineno">  915</span>       Record.push_back(<a class="code" href="namespaceclang_1_1serialization.html#afe71e2f66dbab983320d8a8ae4b7b5b1af04ece0f603e9378d1af463b9ba2c6e0">UPD_CXX_ADDED_ANONYMOUS_NAMESPACE</a>);</div>
+<div class="line"><a name="l00916"></a><span class="lineno">  916</span>       Writer.AddDeclRef(D, Record);</div>
+<div class="line"><a name="l00917"></a><span class="lineno">  917</span>     }</div>
+<div class="line"><a name="l00918"></a><span class="lineno">  918</span>   }</div>
+<div class="line"><a name="l00919"></a><span class="lineno">  919</span> }</div>
+<div class="line"><a name="l00920"></a><span class="lineno">  920</span> </div>
+<div class="line"><a name="l00921"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#ac694bfe0ed623d15d518d0dae89086c3">  921</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#ac694bfe0ed623d15d518d0dae89086c3">ASTDeclWriter::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="l00922"></a><span class="lineno">  922</span>   VisitNamedDecl(D);</div>
+<div class="line"><a name="l00923"></a><span class="lineno">  923</span>   Writer.AddSourceLocation(D-><a class="code" href="classclang_1_1NamespaceAliasDecl.html#a6ab435d1bf2f640044b6504e28061947" title="Returns the location of the namespace keyword.">getNamespaceLoc</a>(), Record);</div>
+<div class="line"><a name="l00924"></a><span class="lineno">  924</span>   Writer.AddSourceLocation(D-><a class="code" href="classclang_1_1NamespaceAliasDecl.html#aa3ce103b7f226b8aa2e564f11d85dc98" title="Returns the location of the identifier in the named namespace.">getTargetNameLoc</a>(), Record);</div>
+<div class="line"><a name="l00925"></a><span class="lineno">  925</span>   Writer.AddNestedNameSpecifierLoc(D-><a class="code" href="classclang_1_1NamespaceAliasDecl.html#a1cedd362fc27b641c3ace52efc4529aa" title="Retrieve the nested-name-specifier that qualifies the name of the namespace, with source-location inf...">getQualifierLoc</a>(), Record);</div>
+<div class="line"><a name="l00926"></a><span class="lineno">  926</span>   Writer.AddDeclRef(D-><a class="code" href="classclang_1_1NamespaceAliasDecl.html#ae29c06a217501c9350af280a5073f5cd" title="Retrieve the namespace declaration aliased by this directive.">getNamespace</a>(), Record);</div>
+<div class="line"><a name="l00927"></a><span class="lineno">  927</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda45b71c0438956cbee9a413a8a5834663" title="A NamespaceAliasDecl record.">serialization::DECL_NAMESPACE_ALIAS</a>;</div>
+<div class="line"><a name="l00928"></a><span class="lineno">  928</span> }</div>
+<div class="line"><a name="l00929"></a><span class="lineno">  929</span> </div>
+<div class="line"><a name="l00930"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#ab333992e4eb07115048a40c29a74994a">  930</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#ab333992e4eb07115048a40c29a74994a">ASTDeclWriter::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="l00931"></a><span class="lineno">  931</span>   VisitNamedDecl(D);</div>
+<div class="line"><a name="l00932"></a><span class="lineno">  932</span>   Writer.AddSourceLocation(D-><a class="code" href="classclang_1_1UsingDecl.html#a0cd091a97e3baa83261d27052e5b5a20" title="Return the source location of the 'using' keyword.">getUsingLoc</a>(), Record);</div>
+<div class="line"><a name="l00933"></a><span class="lineno">  933</span>   Writer.AddNestedNameSpecifierLoc(D-><a class="code" href="classclang_1_1UsingDecl.html#a9c13e46919b7bfcd5df2616be07346f8" title="Retrieve the nested-name-specifier that qualifies the name, with source-location information.">getQualifierLoc</a>(), Record);</div>
+<div class="line"><a name="l00934"></a><span class="lineno">  934</span>   Writer.AddDeclarationNameLoc(D->DNLoc, D-><a class="code" href="classclang_1_1NamedDecl.html#a1e3e90455be89bb5c7c23640cbbd7153">getDeclName</a>(), Record);</div>
+<div class="line"><a name="l00935"></a><span class="lineno">  935</span>   Writer.AddDeclRef(D->FirstUsingShadow.getPointer(), Record);</div>
+<div class="line"><a name="l00936"></a><span class="lineno">  936</span>   Record.push_back(D-><a class="code" href="classclang_1_1UsingDecl.html#a2ccc3789d758648482cceb5b551fdb24" title="Return true if the using declaration has 'typename'.">hasTypename</a>());</div>
+<div class="line"><a name="l00937"></a><span class="lineno">  937</span>   Writer.AddDeclRef(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>.<a class="code" href="classclang_1_1ASTContext.html#a6e3aa068c08027c607192743de3a1749" title="If the given using decl Inst is an instantiation of a (possibly unresolved) using decl from a templat...">getInstantiatedFromUsingDecl</a>(D), Record);</div>
+<div class="line"><a name="l00938"></a><span class="lineno">  938</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdaa1ed3dc4b7b54f7af8cd702301edf975" title="A UsingDecl record.">serialization::DECL_USING</a>;</div>
+<div class="line"><a name="l00939"></a><span class="lineno">  939</span> }</div>
+<div class="line"><a name="l00940"></a><span class="lineno">  940</span> </div>
+<div class="line"><a name="l00941"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#a4b7851f56a518be7525a57be93adae2b">  941</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#a4b7851f56a518be7525a57be93adae2b">ASTDeclWriter::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="l00942"></a><span class="lineno">  942</span>   VisitRedeclarable(D);</div>
+<div class="line"><a name="l00943"></a><span class="lineno">  943</span>   VisitNamedDecl(D);</div>
+<div class="line"><a name="l00944"></a><span class="lineno">  944</span>   Writer.AddDeclRef(D-><a class="code" href="classclang_1_1UsingShadowDecl.html#ae03685abd18d914a33e823fa982819a9" title="Gets the underlying declaration which has been brought into the local scope.">getTargetDecl</a>(), Record);</div>
+<div class="line"><a name="l00945"></a><span class="lineno">  945</span>   Writer.AddDeclRef(D->UsingOrNextShadow, Record);</div>
+<div class="line"><a name="l00946"></a><span class="lineno">  946</span>   Writer.AddDeclRef(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>.<a class="code" href="classclang_1_1ASTContext.html#a9e2fd570cc6c61155266c4a45c905122">getInstantiatedFromUsingShadowDecl</a>(D), Record);</div>
+<div class="line"><a name="l00947"></a><span class="lineno">  947</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdade80aee8eacf0a4a0329c6113cceb62d" title="A UsingShadowDecl record.">serialization::DECL_USING_SHADOW</a>;</div>
+<div class="line"><a name="l00948"></a><span class="lineno">  948</span> }</div>
+<div class="line"><a name="l00949"></a><span class="lineno">  949</span> </div>
+<div class="line"><a name="l00950"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#a5905247a33ef2bbb01045e3998334b6d">  950</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#a5905247a33ef2bbb01045e3998334b6d">ASTDeclWriter::VisitUsingDirectiveDecl</a>(<a class="code" href="classclang_1_1UsingDirectiveDecl.html" title="Represents C++ using-directive.">UsingDirectiveDecl</a> *D) {</div>
+<div class="line"><a name="l00951"></a><span class="lineno">  951</span>   VisitNamedDecl(D);</div>
+<div class="line"><a name="l00952"></a><span class="lineno">  952</span>   Writer.AddSourceLocation(D-><a class="code" href="classclang_1_1UsingDirectiveDecl.html#a859dec07371fa13e7354c2d32edbc2f2" title="Return the location of the using keyword.">getUsingLoc</a>(), Record);</div>
+<div class="line"><a name="l00953"></a><span class="lineno">  953</span>   Writer.AddSourceLocation(D-><a class="code" href="classclang_1_1UsingDirectiveDecl.html#a1cc640f26ffc1ef452473fc38df8bc2e" title="Returns the location of the namespace keyword.">getNamespaceKeyLocation</a>(), Record);</div>
+<div class="line"><a name="l00954"></a><span class="lineno">  954</span>   Writer.AddNestedNameSpecifierLoc(D-><a class="code" href="classclang_1_1UsingDirectiveDecl.html#a826d2dcc158175ce4bf658ab05dd4299" title="Retrieve the nested-name-specifier that qualifies the name of the namespace, with source-location inf...">getQualifierLoc</a>(), Record);</div>
+<div class="line"><a name="l00955"></a><span class="lineno">  955</span>   Writer.AddDeclRef(D-><a class="code" href="classclang_1_1UsingDirectiveDecl.html#aa99e507d882d7017103af7a45c0d09f8" title="Returns the namespace nominated by this using-directive.">getNominatedNamespace</a>(), Record);</div>
+<div class="line"><a name="l00956"></a><span class="lineno">  956</span>   Writer.AddDeclRef(dyn_cast<Decl>(D-><a class="code" href="classclang_1_1UsingDirectiveDecl.html#ae31a730af268d262503ca0b4e4a1b9e4" title="Returns the common ancestor context of this using-directive and its nominated namespace.">getCommonAncestor</a>()), Record);</div>
+<div class="line"><a name="l00957"></a><span class="lineno">  957</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda7352d48af4c2d5673e6df36791b3f1e5" title="A UsingDirecitveDecl record.">serialization::DECL_USING_DIRECTIVE</a>;</div>
+<div class="line"><a name="l00958"></a><span class="lineno">  958</span> }</div>
+<div class="line"><a name="l00959"></a><span class="lineno">  959</span> </div>
+<div class="line"><a name="l00960"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#a0b8fe08537e8719b637c219db46d671a">  960</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#a0b8fe08537e8719b637c219db46d671a">ASTDeclWriter::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="l00961"></a><span class="lineno">  961</span>   VisitValueDecl(D);</div>
+<div class="line"><a name="l00962"></a><span class="lineno">  962</span>   Writer.AddSourceLocation(D-><a class="code" href="classclang_1_1UnresolvedUsingValueDecl.html#ac25f6892211e8ad9f55f663089db4c6d" title="Returns the source location of the 'using' keyword.">getUsingLoc</a>(), Record);</div>
+<div class="line"><a name="l00963"></a><span class="lineno">  963</span>   Writer.AddNestedNameSpecifierLoc(D-><a class="code" href="classclang_1_1UnresolvedUsingValueDecl.html#a16f9dec67926d6180f0820389979c3c4" title="Retrieve the nested-name-specifier that qualifies the name, with source-location information.">getQualifierLoc</a>(), Record);</div>
+<div class="line"><a name="l00964"></a><span class="lineno">  964</span>   Writer.AddDeclarationNameLoc(D->DNLoc, D-><a class="code" href="classclang_1_1NamedDecl.html#a1e3e90455be89bb5c7c23640cbbd7153">getDeclName</a>(), Record);</div>
+<div class="line"><a name="l00965"></a><span class="lineno">  965</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda86471ab6a2686044ba40e26d7cbd1cfb" title="An UnresolvedUsingValueDecl record.">serialization::DECL_UNRESOLVED_USING_VALUE</a>;</div>
+<div class="line"><a name="l00966"></a><span class="lineno">  966</span> }</div>
+<div class="line"><a name="l00967"></a><span class="lineno">  967</span> </div>
+<div class="line"><a name="l00968"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#ab6024f66a5b7327310a7d04c69770383">  968</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#ab6024f66a5b7327310a7d04c69770383">ASTDeclWriter::VisitUnresolvedUsingTypenameDecl</a>(</div>
+<div class="line"><a name="l00969"></a><span class="lineno">  969</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="l00970"></a><span class="lineno">  970</span>   VisitTypeDecl(D);</div>
+<div class="line"><a name="l00971"></a><span class="lineno">  971</span>   Writer.AddSourceLocation(D-><a class="code" href="classclang_1_1UnresolvedUsingTypenameDecl.html#af6dedfa197be7728feabec0f68137675" title="Returns the source location of the 'typename' keyword.">getTypenameLoc</a>(), Record);</div>
+<div class="line"><a name="l00972"></a><span class="lineno">  972</span>   Writer.AddNestedNameSpecifierLoc(D-><a class="code" href="classclang_1_1UnresolvedUsingTypenameDecl.html#acd69185375ec952bb647c32e8dc6c119" title="Retrieve the nested-name-specifier that qualifies the name, with source-location information.">getQualifierLoc</a>(), Record);</div>
+<div class="line"><a name="l00973"></a><span class="lineno">  973</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda50096bcaaf14487b945a50e062068065" title="An UnresolvedUsingTypenameDecl record.">serialization::DECL_UNRESOLVED_USING_TYPENAME</a>;</div>
+<div class="line"><a name="l00974"></a><span class="lineno">  974</span> }</div>
+<div class="line"><a name="l00975"></a><span class="lineno">  975</span> </div>
+<div class="line"><a name="l00976"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#ad961dc5aacb2e2eb528c0cbafc017889">  976</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#ad961dc5aacb2e2eb528c0cbafc017889">ASTDeclWriter::VisitCXXRecordDecl</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="l00977"></a><span class="lineno">  977</span>   VisitRecordDecl(D);</div>
+<div class="line"><a name="l00978"></a><span class="lineno">  978</span>   Record.push_back(D-><a class="code" href="classclang_1_1TagDecl.html#afedf2ad96d0205de7428351ad61ad7ef">isThisDeclarationADefinition</a>());</div>
+<div class="line"><a name="l00979"></a><span class="lineno">  979</span>   <span class="keywordflow">if</span> (D-><a class="code" href="classclang_1_1TagDecl.html#afedf2ad96d0205de7428351ad61ad7ef">isThisDeclarationADefinition</a>())</div>
+<div class="line"><a name="l00980"></a><span class="lineno">  980</span>     Writer.AddCXXDefinitionData(D, Record);</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="keyword">enum</span> {</div>
+<div class="line"><a name="l00983"></a><span class="lineno">  983</span>     CXXRecNotTemplate = 0, CXXRecTemplate, CXXRecMemberSpecialization</div>
+<div class="line"><a name="l00984"></a><span class="lineno">  984</span>   };</div>
+<div class="line"><a name="l00985"></a><span class="lineno">  985</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1ClassTemplateDecl.html" title="Declaration of a class template.">ClassTemplateDecl</a> *TemplD = D-><a class="code" href="classclang_1_1CXXRecordDecl.html#a031f451f3db08a98be54471184eacb27" title="Retrieves the class template that is described by this class declaration.">getDescribedClassTemplate</a>()) {</div>
+<div class="line"><a name="l00986"></a><span class="lineno">  986</span>     Record.push_back(CXXRecTemplate);</div>
+<div class="line"><a name="l00987"></a><span class="lineno">  987</span>     Writer.AddDeclRef(TemplD, Record);</div>
+<div class="line"><a name="l00988"></a><span class="lineno">  988</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</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> *MSInfo</div>
+<div class="line"><a name="l00989"></a><span class="lineno">  989</span>                = D-><a class="code" href="classclang_1_1CXXRecordDecl.html#a1faebb33e1cda52affba8a65f2d0a305" title="If this class is an instantiation of a member class of a class template specialization, retrieves the member specialization information.">getMemberSpecializationInfo</a>()) {</div>
+<div class="line"><a name="l00990"></a><span class="lineno">  990</span>     Record.push_back(CXXRecMemberSpecialization);</div>
+<div class="line"><a name="l00991"></a><span class="lineno">  991</span>     Writer.AddDeclRef(MSInfo->getInstantiatedFrom(), Record);</div>
+<div class="line"><a name="l00992"></a><span class="lineno">  992</span>     Record.push_back(MSInfo->getTemplateSpecializationKind());</div>
+<div class="line"><a name="l00993"></a><span class="lineno">  993</span>     Writer.AddSourceLocation(MSInfo->getPointOfInstantiation(), Record);</div>
+<div class="line"><a name="l00994"></a><span class="lineno">  994</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00995"></a><span class="lineno">  995</span>     Record.push_back(CXXRecNotTemplate);</div>
+<div class="line"><a name="l00996"></a><span class="lineno">  996</span>   }</div>
+<div class="line"><a name="l00997"></a><span class="lineno">  997</span> </div>
+<div class="line"><a name="l00998"></a><span class="lineno">  998</span>   <span class="comment">// Store (what we currently believe to be) the key function to avoid</span></div>
+<div class="line"><a name="l00999"></a><span class="lineno">  999</span>   <span class="comment">// deserializing every method so we can compute it.</span></div>
+<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>   <span class="keywordflow">if</span> (D->IsCompleteDefinition)</div>
+<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>     Writer.AddDeclRef(<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>.<a class="code" href="classclang_1_1ASTContext.html#a439522ed0cae62952acae5f30f283de2" title="Get our current best idea for the key function of the given record decl, or NULL if there isn't one...">getCurrentKeyFunction</a>(D), Record);</div>
+<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span> </div>
+<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda0be36518ee3508d58f57e79cd4f3d422" title="A CXXRecordDecl record.">serialization::DECL_CXX_RECORD</a>;</div>
+<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span> }</div>
+<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span> </div>
+<div class="line"><a name="l01006"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#a084b4ce313c868c41d76c49b808acb67"> 1006</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#a084b4ce313c868c41d76c49b808acb67">ASTDeclWriter::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="l01007"></a><span class="lineno"> 1007</span>   VisitFunctionDecl(D);</div>
+<div class="line"><a name="l01008"></a><span class="lineno"> 1008</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>()) {</div>
+<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>     Record.push_back(D-><a class="code" href="classclang_1_1CXXMethodDecl.html#a03dea5a4699a346467aa6c8671c1df58">size_overridden_methods</a>());</div>
+<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>     <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1CXXMethodDecl.html#a434f595b2265452cfda5005e9faff858">CXXMethodDecl::method_iterator</a></div>
+<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>            I = D-><a class="code" href="classclang_1_1CXXMethodDecl.html#ab2d3aa2f5421bfd2f9bd370531796b5c">begin_overridden_methods</a>(), E = D-><a class="code" href="classclang_1_1CXXMethodDecl.html#a32f6ce71668c5f2772a10e6d5362ac90">end_overridden_methods</a>();</div>
+<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>            I != E; ++I)</div>
+<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>       Writer.AddDeclRef(*I, Record);</div>
+<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>     <span class="comment">// We only need to record overridden methods once for the canonical decl.</span></div>
+<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>     Record.push_back(0);</div>
+<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>   }</div>
+<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdac5ac3305af665d429e087d64d552ab2b" title="A CXXMethodDecl record.">serialization::DECL_CXX_METHOD</a>;</div>
+<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span> }</div>
+<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span> </div>
+<div class="line"><a name="l01021"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#ada55e12af12a02011fa54fccf984844d"> 1021</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#ada55e12af12a02011fa54fccf984844d">ASTDeclWriter::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="l01022"></a><span class="lineno"> 1022</span>   VisitCXXMethodDecl(D);</div>
+<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span> </div>
+<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>   Record.push_back(D->IsExplicitSpecified);</div>
+<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>   Writer.AddCXXCtorInitializers(D->CtorInitializers, D->NumCtorInitializers,</div>
+<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>                                 Record);</div>
+<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span> </div>
+<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda5e014c2f3e11b717c7d823a0056a112d" title="A CXXConstructorDecl record.">serialization::DECL_CXX_CONSTRUCTOR</a>;</div>
+<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span> }</div>
+<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span> </div>
+<div class="line"><a name="l01031"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#a340bb659233ca260fa97000001501e24"> 1031</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#a340bb659233ca260fa97000001501e24">ASTDeclWriter::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="l01032"></a><span class="lineno"> 1032</span>   VisitCXXMethodDecl(D);</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>   Writer.AddDeclRef(D->OperatorDelete, Record);</div>
+<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span> </div>
+<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdad7b9da85abdab5479d659b52d73d8470" title="A CXXDestructorDecl record.">serialization::DECL_CXX_DESTRUCTOR</a>;</div>
+<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span> }</div>
+<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span> </div>
+<div class="line"><a name="l01039"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#a4a22669b57b0287760e24fe7531a069e"> 1039</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#a4a22669b57b0287760e24fe7531a069e">ASTDeclWriter::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="l01040"></a><span class="lineno"> 1040</span>   VisitCXXMethodDecl(D);</div>
+<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>   Record.push_back(D->IsExplicitSpecified);</div>
+<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda5f8545610ce81e63b47fed439ea6d4f9" title="A CXXConversionDecl record.">serialization::DECL_CXX_CONVERSION</a>;</div>
+<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span> }</div>
+<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span> </div>
+<div class="line"><a name="l01045"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#ad7a4de643807df429d546bcf343854df"> 1045</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#ad7a4de643807df429d546bcf343854df">ASTDeclWriter::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="l01046"></a><span class="lineno"> 1046</span>   VisitDecl(D);</div>
+<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>   Record.push_back(Writer.getSubmoduleID(D-><a class="code" href="classclang_1_1ImportDecl.html#ac5c611a98333ebe8fd42be01a2141d22" title="Retrieve the module that was imported by the import declaration.">getImportedModule</a>()));</div>
+<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>   <a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<SourceLocation></a> IdentifierLocs = D-><a class="code" href="classclang_1_1ImportDecl.html#ad6bdffef1a9fc36b8ea98a1d0c4470a7" title="Retrieves the locations of each of the identifiers that make up the complete module name in the impor...">getIdentifierLocs</a>();</div>
+<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>   Record.push_back(!IdentifierLocs.empty());</div>
+<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>   <span class="keywordflow">if</span> (IdentifierLocs.empty()) {</div>
+<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>     Writer.AddSourceLocation(D-><a class="code" href="classclang_1_1Decl.html#a6eb7b247deafb504e09a9d225bbea0c4">getLocEnd</a>(), Record);</div>
+<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>     Record.push_back(1);</div>
+<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = IdentifierLocs.size(); I != N; ++I)</div>
+<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>       Writer.AddSourceLocation(IdentifierLocs[I], Record);</div>
+<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>     Record.push_back(IdentifierLocs.size());</div>
+<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>   }</div>
+<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>   <span class="comment">// Note: the number of source locations must always be the last element in</span></div>
+<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>   <span class="comment">// the record.</span></div>
+<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda30c7333204d4e379c6015a3b2e1b1b3d" title="An ImportDecl recording a module import.">serialization::DECL_IMPORT</a>;</div>
+<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span> }</div>
+<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span> </div>
+<div class="line"><a name="l01063"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#a67e7bbc1ef646ce4d7ba4c81ed7df426"> 1063</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#a67e7bbc1ef646ce4d7ba4c81ed7df426">ASTDeclWriter::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="l01064"></a><span class="lineno"> 1064</span>   VisitDecl(D);</div>
+<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>   Writer.AddSourceLocation(D-><a class="code" href="classclang_1_1AccessSpecDecl.html#a0bbfa317be9289935184f3b9eff1e851" title="The location of the colon following the access specifier.">getColonLoc</a>(), Record);</div>
+<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda3990274a16f9fb97491db7fb9e01c670" title="An AccessSpecDecl record.">serialization::DECL_ACCESS_SPEC</a>;</div>
+<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span> }</div>
+<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span> </div>
+<div class="line"><a name="l01069"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#a22f6176c1806ddaab195b39286caf745"> 1069</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#a22f6176c1806ddaab195b39286caf745">ASTDeclWriter::VisitFriendDecl</a>(<a class="code" href="classclang_1_1FriendDecl.html">FriendDecl</a> *D) {</div>
+<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>   <span class="comment">// Record the number of friend type template parameter lists here</span></div>
+<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>   <span class="comment">// so as to simplify memory allocation during deserialization.</span></div>
+<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>   Record.push_back(D->NumTPLists);</div>
+<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>   VisitDecl(D);</div>
+<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>   <span class="keywordtype">bool</span> hasFriendDecl = D->Friend.is<<a class="code" href="classclang_1_1NamedDecl.html">NamedDecl</a>*>();</div>
+<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>   Record.push_back(hasFriendDecl);</div>
+<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>   <span class="keywordflow">if</span> (hasFriendDecl)</div>
+<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>     Writer.AddDeclRef(D-><a class="code" href="classclang_1_1FriendDecl.html#a6d2d7e75a88812492a404793ec6f9f10">getFriendDecl</a>(), Record);</div>
+<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>   <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>     Writer.AddTypeSourceInfo(D-><a class="code" href="classclang_1_1FriendDecl.html#a9b1a93558837897bd03af405bf880937">getFriendType</a>(), Record);</div>
+<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i < D->NumTPLists; ++i)</div>
+<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>     Writer.AddTemplateParameterList(D-><a class="code" href="classclang_1_1FriendDecl.html#a88017524a3c27c6101b47b977275f569">getFriendTypeTemplateParameterList</a>(i),</div>
+<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>                                     Record);</div>
+<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>   Writer.AddDeclRef(D->getNextFriend(), Record);</div>
+<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>   Record.push_back(D->UnsupportedFriend);</div>
+<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>   Writer.AddSourceLocation(D->FriendLoc, Record);</div>
+<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdac27c78d9d3b5ddfbe725823297959c7b" title="A FriendDecl record.">serialization::DECL_FRIEND</a>;</div>
+<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span> }</div>
+<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span> </div>
+<div class="line"><a name="l01089"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#ac5fa1722c52fb8a1c53e69193934372f"> 1089</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#ac5fa1722c52fb8a1c53e69193934372f">ASTDeclWriter::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="l01090"></a><span class="lineno"> 1090</span>   VisitDecl(D);</div>
+<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>   Record.push_back(D-><a class="code" href="classclang_1_1FriendTemplateDecl.html#a9f53e59f17508e2b5e08791c596edb8f">getNumTemplateParameters</a>());</div>
+<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = D-><a class="code" href="classclang_1_1FriendTemplateDecl.html#a9f53e59f17508e2b5e08791c596edb8f">getNumTemplateParameters</a>(); i != e; ++i)</div>
+<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>     Writer.AddTemplateParameterList(D-><a class="code" href="classclang_1_1FriendTemplateDecl.html#aa726ed5b67aea3c3da5d7fb8149f0f06">getTemplateParameterList</a>(i), Record);</div>
+<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>   Record.push_back(D-><a class="code" href="classclang_1_1FriendTemplateDecl.html#a75f20b0e7be88a48dbc2a368c9ddf941">getFriendDecl</a>() != 0);</div>
+<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>   <span class="keywordflow">if</span> (D-><a class="code" href="classclang_1_1FriendTemplateDecl.html#a75f20b0e7be88a48dbc2a368c9ddf941">getFriendDecl</a>())</div>
+<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>     Writer.AddDeclRef(D-><a class="code" href="classclang_1_1FriendTemplateDecl.html#a75f20b0e7be88a48dbc2a368c9ddf941">getFriendDecl</a>(), Record);</div>
+<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>   <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>     Writer.AddTypeSourceInfo(D-><a class="code" href="classclang_1_1FriendTemplateDecl.html#a1a5d05f2b161de47f3b465f5fb5de717">getFriendType</a>(), Record);</div>
+<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>   Writer.AddSourceLocation(D-><a class="code" href="classclang_1_1FriendTemplateDecl.html#af88bd682c58920ae094149d9bf05e37f" title="Retrieves the location of the 'friend' keyword.">getFriendLoc</a>(), Record);</div>
+<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdabcd82d8fac55480ad52e08aee7ccc9b9" title="A FriendTemplateDecl record.">serialization::DECL_FRIEND_TEMPLATE</a>;</div>
+<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span> }</div>
+<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span> </div>
+<div class="line"><a name="l01103"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#a33b5ce859f62dad73dcb8ce231121032"> 1103</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#a33b5ce859f62dad73dcb8ce231121032">ASTDeclWriter::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="l01104"></a><span class="lineno"> 1104</span>   VisitNamedDecl(D);</div>
+<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span> </div>
+<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>   Writer.AddDeclRef(D-><a class="code" href="classclang_1_1TemplateDecl.html#a05244cfd07971aac7e98c2c6656ae866" title="Get the underlying, templated declaration.">getTemplatedDecl</a>(), Record);</div>
+<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>   Writer.AddTemplateParameterList(D-><a class="code" href="classclang_1_1TemplateDecl.html#a39946376f9b9d554c6565bf441a115a4" title="Get the list of template parameters.">getTemplateParameters</a>(), Record);</div>
+<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span> }</div>
+<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span> </div>
+<div class="line"><a name="l01110"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#afd646851100e8715dc8d1ed127a193e2"> 1110</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#afd646851100e8715dc8d1ed127a193e2">ASTDeclWriter::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="l01111"></a><span class="lineno"> 1111</span>   VisitRedeclarable(D);</div>
+<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span> </div>
+<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>   <span class="comment">// Emit data to initialize CommonOrPrev before VisitTemplateDecl so that</span></div>
+<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>   <span class="comment">// getCommonPtr() can be used while this is still initializing.</span></div>
+<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>   <span class="keywordflow">if</span> (D-><a class="code" href="classclang_1_1Redeclarable.html#af8e1ba27cafe185ab6109acf9e9b95f3" title="True if this is the first declaration in its redeclaration chain.">isFirstDecl</a>()) {</div>
+<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>     <span class="comment">// This declaration owns the 'common' pointer, so serialize that data now.</span></div>
+<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>     Writer.AddDeclRef(D-><a class="code" href="classclang_1_1RedeclarableTemplateDecl.html#a1565fd8ac3cf2c838974676599d3d078" title="Retrieve the member template from which this template was instantiated, or NULL if this template was ...">getInstantiatedFromMemberTemplate</a>(), Record);</div>
+<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>     <span class="keywordflow">if</span> (D-><a class="code" href="classclang_1_1RedeclarableTemplateDecl.html#a1565fd8ac3cf2c838974676599d3d078" title="Retrieve the member template from which this template was instantiated, or NULL if this template was ...">getInstantiatedFromMemberTemplate</a>())</div>
+<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>       Record.push_back(D-><a class="code" href="classclang_1_1RedeclarableTemplateDecl.html#a1014c5205340d35d61df54e5a634f6f5" title="Determines whether this template was a specialization of a member template.">isMemberSpecialization</a>());</div>
+<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>   }</div>
+<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>   </div>
+<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>   VisitTemplateDecl(D);</div>
+<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>   Record.push_back(D-><a class="code" href="classclang_1_1Decl.html#a1172fe32c48af6bf358c3ae0e81a9257">getIdentifierNamespace</a>());</div>
+<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span> }</div>
+<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span> </div>
+<div class="line"><a name="l01126"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#add7d84320c8925ec8ea2ececfdbefc34"> 1126</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#add7d84320c8925ec8ea2ececfdbefc34">ASTDeclWriter::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="l01127"></a><span class="lineno"> 1127</span>   VisitRedeclarableTemplateDecl(D);</div>
+<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span> </div>
+<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>   <span class="keywordflow">if</span> (D-><a class="code" href="classclang_1_1Redeclarable.html#af8e1ba27cafe185ab6109acf9e9b95f3" title="True if this is the first declaration in its redeclaration chain.">isFirstDecl</a>()) {</div>
+<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>     <span class="keyword">typedef</span> llvm::FoldingSetVector<ClassTemplateSpecializationDecl> CTSDSetTy;</div>
+<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>     CTSDSetTy &CTSDSet = D-><a class="code" href="classclang_1_1ClassTemplateDecl.html#a93122200d387eb77e590a914a9a9231d" title="Retrieve the set of specializations of this class template.">getSpecializations</a>();</div>
+<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>     Record.push_back(CTSDSet.size());</div>
+<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>     <span class="keywordflow">for</span> (CTSDSetTy::iterator I=CTSDSet.begin(), E = CTSDSet.end(); I!=E; ++I) {</div>
+<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>       assert(I->isCanonicalDecl() && <span class="stringliteral">"Expected only canonical decls in set"</span>);</div>
+<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>       Writer.AddDeclRef(&*I, Record);</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"> 1138</span>     <span class="keyword">typedef</span> llvm::FoldingSetVector<ClassTemplatePartialSpecializationDecl></div>
+<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>       CTPSDSetTy;</div>
+<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>     CTPSDSetTy &CTPSDSet = D-><a class="code" href="classclang_1_1ClassTemplateDecl.html#a61ac794705059e95256174400aaf63bc" title="Retrieve the set of partial specializations of this class template.">getPartialSpecializations</a>();</div>
+<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>     Record.push_back(CTPSDSet.size());</div>
+<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>     <span class="keywordflow">for</span> (CTPSDSetTy::iterator I=CTPSDSet.begin(), E=CTPSDSet.end(); I!=E; ++I) {</div>
+<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>       assert(I->isCanonicalDecl() && <span class="stringliteral">"Expected only canonical decls in set"</span>);</div>
+<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>       Writer.AddDeclRef(&*I, Record); </div>
+<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>     }</div>
+<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span> </div>
+<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>     Writer.AddTypeRef(D-><a class="code" href="classclang_1_1ClassTemplateDecl.html#a79a8d4751689b6d87b08883449c8bb1b">getCommonPtr</a>()-><a class="code" href="structclang_1_1ClassTemplateDecl_1_1Common.html#a33c5ac3b477008c8348d20c78be365e9" title="The injected-class-name type for this class template.">InjectedClassNameType</a>, Record);</div>
+<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>   }</div>
+<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdaddf901f5899e3d84bb0c46bdd2d5e0b6" title="A ClassTemplateDecl record.">serialization::DECL_CLASS_TEMPLATE</a>;</div>
+<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span> }</div>
+<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span> </div>
+<div class="line"><a name="l01152"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#addfb6241577588beded53582a0b8af61"> 1152</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#addfb6241577588beded53582a0b8af61">ASTDeclWriter::VisitClassTemplateSpecializationDecl</a>(</div>
+<div class="line"><a name="l01153"></a><span class="lineno"> 1153</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="l01154"></a><span class="lineno"> 1154</span>   VisitCXXRecordDecl(D);</div>
+<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span> </div>
+<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>   llvm::PointerUnion<<a class="code" href="classclang_1_1ClassTemplateDecl.html" title="Declaration of a class template.">ClassTemplateDecl</a> *,</div>
+<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>                      <a class="code" href="classclang_1_1ClassTemplatePartialSpecializationDecl.html">ClassTemplatePartialSpecializationDecl</a> *> InstFrom</div>
+<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>     = D-><a class="code" href="classclang_1_1ClassTemplateSpecializationDecl.html#a80a0149aa66248e42be7c13d007b6122" title="Retrieve the class template or class template partial specialization which was specialized by this...">getSpecializedTemplateOrPartial</a>();</div>
+<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Decl.html">Decl</a> *InstFromD = InstFrom.dyn_cast<ClassTemplateDecl *>()) {</div>
+<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>     Writer.AddDeclRef(InstFromD, Record);</div>
+<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>     Writer.AddDeclRef(InstFrom.get<<a class="code" href="classclang_1_1ClassTemplatePartialSpecializationDecl.html">ClassTemplatePartialSpecializationDecl</a> *>(),</div>
+<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>                       Record);</div>
+<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>     Writer.AddTemplateArgumentList(&D-><a class="code" href="classclang_1_1ClassTemplateSpecializationDecl.html#a52291d2cf6e66a141c1fd1f8a443499c" title="Retrieve the set of template arguments that should be used to instantiate members of the class templa...">getTemplateInstantiationArgs</a>(), Record);</div>
+<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>   }</div>
+<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span> </div>
+<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>   Writer.AddTemplateArgumentList(&D-><a class="code" href="classclang_1_1ClassTemplateSpecializationDecl.html#a7f96ed5915491d1e5d344701b00f5077" title="Retrieve the template arguments of the class template specialization.">getTemplateArgs</a>(), Record);</div>
+<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>   Writer.AddSourceLocation(D-><a class="code" href="classclang_1_1ClassTemplateSpecializationDecl.html#acc1675a78d867b66d020d883d1061429" title="Get the point of instantiation (if any), or null if none.">getPointOfInstantiation</a>(), Record);</div>
+<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>   Record.push_back(D-><a class="code" href="classclang_1_1ClassTemplateSpecializationDecl.html#a87005cfe1ec3448bed2fc594ff97d6db" title="Determine the kind of specialization that this declaration represents.">getSpecializationKind</a>());</div>
+<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>   Record.push_back(D-><a class="code" href="classclang_1_1Decl.html#a2b931baf609b7f7de1e61841a7b0d876" title="Whether this particular Decl is a canonical one.">isCanonicalDecl</a>());</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="keywordflow">if</span> (D-><a class="code" href="classclang_1_1Decl.html#a2b931baf609b7f7de1e61841a7b0d876" title="Whether this particular Decl is a canonical one.">isCanonicalDecl</a>()) {</div>
+<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>     <span class="comment">// When reading, we'll add it to the folding set of the following template. </span></div>
+<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>     Writer.AddDeclRef(D-><a class="code" href="classclang_1_1ClassTemplateSpecializationDecl.html#a6fe41f542619eb1b953460485d505137" title="Retrieve the template that this specialization specializes.">getSpecializedTemplate</a>()-><a class="code" href="classclang_1_1ClassTemplateDecl.html#a64ad8d7d227e56b9efd48848c3928806" title="Retrieves the canonical declaration of this template.">getCanonicalDecl</a>(), Record);</div>
+<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>   }</div>
+<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span> </div>
+<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>   <span class="comment">// Explicit info.</span></div>
+<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>   Writer.AddTypeSourceInfo(D-><a class="code" href="classclang_1_1ClassTemplateSpecializationDecl.html#a839158cb141fb06980502dac4879fc7f" title="Gets the type of this specialization as it was written by the user, if it was so written.">getTypeAsWritten</a>(), Record);</div>
+<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>   <span class="keywordflow">if</span> (D-><a class="code" href="classclang_1_1ClassTemplateSpecializationDecl.html#a839158cb141fb06980502dac4879fc7f" title="Gets the type of this specialization as it was written by the user, if it was so written.">getTypeAsWritten</a>()) {</div>
+<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>     Writer.AddSourceLocation(D-><a class="code" href="classclang_1_1ClassTemplateSpecializationDecl.html#a0782dcd95558b1158045d2302ab8cd20" title="Gets the location of the extern keyword, if present.">getExternLoc</a>(), Record);</div>
+<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>     Writer.AddSourceLocation(D-><a class="code" href="classclang_1_1ClassTemplateSpecializationDecl.html#aed2365b4d662179308e3be1a01589c49" title="Gets the location of the template keyword, if present.">getTemplateKeywordLoc</a>(), Record);</div>
+<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>   }</div>
+<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span> </div>
+<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda50c0ee0699a40d0812832aab60f54fb8" title="A ClassTemplateSpecializationDecl record.">serialization::DECL_CLASS_TEMPLATE_SPECIALIZATION</a>;</div>
+<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span> }</div>
+<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span> </div>
+<div class="line"><a name="l01187"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#a8392df335d500b4a8ce1d033b0546824"> 1187</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#a8392df335d500b4a8ce1d033b0546824">ASTDeclWriter::VisitClassTemplatePartialSpecializationDecl</a>(</div>
+<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>                                     <a class="code" href="classclang_1_1ClassTemplatePartialSpecializationDecl.html">ClassTemplatePartialSpecializationDecl</a> *D) {</div>
+<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>   VisitClassTemplateSpecializationDecl(D);</div>
+<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span> </div>
+<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>   Writer.AddTemplateParameterList(D-><a class="code" href="classclang_1_1ClassTemplatePartialSpecializationDecl.html#adbaa2c816016ec674978a8da4ba8bc6f" title="Get the list of template parameters.">getTemplateParameters</a>(), Record);</div>
+<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>   Writer.AddASTTemplateArgumentListInfo(D-><a class="code" href="classclang_1_1ClassTemplatePartialSpecializationDecl.html#a12b0d9fca7227cdb17b49125efa57385" title="Get the template arguments as written.">getTemplateArgsAsWritten</a>(), Record);</div>
+<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span> </div>
+<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>   <span class="comment">// These are read/set from/to the first declaration.</span></div>
+<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>   <span class="keywordflow">if</span> (D-><a class="code" href="classclang_1_1CXXRecordDecl.html#a97ec903bbc706cca327dac310ff0cb65">getPreviousDecl</a>() == 0) {</div>
+<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>     Writer.AddDeclRef(D-><a class="code" href="classclang_1_1ClassTemplatePartialSpecializationDecl.html#ad4138ab9d643414ae52de411cde15ec1" title="Retrieve the member class template partial specialization from which this particular class template p...">getInstantiatedFromMember</a>(), Record);</div>
+<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>     Record.push_back(D-><a class="code" href="classclang_1_1ClassTemplatePartialSpecializationDecl.html#a3e291b6ba1d24469d94df3ce65ee41c7" title="Determines whether this class template partial specialization template was a specialization of a memb...">isMemberSpecialization</a>());</div>
+<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>   }</div>
+<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span> </div>
+<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdaf82863a157f36e650fa3980583ff0a92" title="A ClassTemplatePartialSpecializationDecl record.">serialization::DECL_CLASS_TEMPLATE_PARTIAL_SPECIALIZATION</a>;</div>
+<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span> }</div>
+<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span> </div>
+<div class="line"><a name="l01203"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#aca09b7473c4125ce5959f8194f596d79"> 1203</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#aca09b7473c4125ce5959f8194f596d79">ASTDeclWriter::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="l01204"></a><span class="lineno"> 1204</span>   VisitRedeclarableTemplateDecl(D);</div>
+<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span> </div>
+<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>   <span class="keywordflow">if</span> (D-><a class="code" href="classclang_1_1Redeclarable.html#af8e1ba27cafe185ab6109acf9e9b95f3" title="True if this is the first declaration in its redeclaration chain.">isFirstDecl</a>()) {</div>
+<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>     <span class="keyword">typedef</span> llvm::FoldingSetVector<VarTemplateSpecializationDecl> VTSDSetTy;</div>
+<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>     VTSDSetTy &VTSDSet = D-><a class="code" href="classclang_1_1VarTemplateDecl.html#a154fe811228063f51a79bac36e957723" title="Retrieve the set of specializations of this variable template.">getSpecializations</a>();</div>
+<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>     Record.push_back(VTSDSet.size());</div>
+<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>     <span class="keywordflow">for</span> (VTSDSetTy::iterator I = VTSDSet.begin(), E = VTSDSet.end(); I != E;</div>
+<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>          ++I) {</div>
+<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>       assert(I->isCanonicalDecl() && <span class="stringliteral">"Expected only canonical decls in set"</span>);</div>
+<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>       Writer.AddDeclRef(&*I, Record);</div>
+<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>     }</div>
+<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span> </div>
+<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>     <span class="keyword">typedef</span> llvm::FoldingSetVector<VarTemplatePartialSpecializationDecl></div>
+<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>     VTPSDSetTy;</div>
+<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>     VTPSDSetTy &VTPSDSet = D-><a class="code" href="classclang_1_1VarTemplateDecl.html#a7a1a95dd8fb2f1112c488968ec24393d" title="Retrieve the set of partial specializations of this class template.">getPartialSpecializations</a>();</div>
+<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>     Record.push_back(VTPSDSet.size());</div>
+<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>     <span class="keywordflow">for</span> (VTPSDSetTy::iterator I = VTPSDSet.begin(), E = VTPSDSet.end(); I != E;</div>
+<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>          ++I) {</div>
+<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>       assert(I->isCanonicalDecl() && <span class="stringliteral">"Expected only canonical decls in set"</span>);</div>
+<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>       Writer.AddDeclRef(&*I, Record);</div>
+<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>     }</div>
+<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>   }</div>
+<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdaf028c95ad16e759cf48a2acbd4948786" title="A VarTemplateDecl record.">serialization::DECL_VAR_TEMPLATE</a>;</div>
+<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span> }</div>
+<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span> </div>
+<div class="line"><a name="l01229"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#aa9375a13cbd434cdc0355ba921fc89dc"> 1229</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#aa9375a13cbd434cdc0355ba921fc89dc">ASTDeclWriter::VisitVarTemplateSpecializationDecl</a>(</div>
+<div class="line"><a name="l01230"></a><span class="lineno"> 1230</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="l01231"></a><span class="lineno"> 1231</span>   VisitVarDecl(D);</div>
+<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span> </div>
+<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>   llvm::PointerUnion<VarTemplateDecl *, VarTemplatePartialSpecializationDecl *></div>
+<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>   InstFrom = D-><a class="code" href="classclang_1_1VarTemplateSpecializationDecl.html#ad02a234f643ef1977351a2c21b8d1332" title="Retrieve the variable template or variable template partial specialization which was specialized by t...">getSpecializedTemplateOrPartial</a>();</div>
+<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Decl.html">Decl</a> *InstFromD = InstFrom.dyn_cast<<a class="code" href="classclang_1_1VarTemplateDecl.html" title="Declaration of a variable template.">VarTemplateDecl</a> *>()) {</div>
+<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>     Writer.AddDeclRef(InstFromD, Record);</div>
+<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>     Writer.AddDeclRef(InstFrom.get<<a class="code" href="classclang_1_1VarTemplatePartialSpecializationDecl.html">VarTemplatePartialSpecializationDecl</a> *>(),</div>
+<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>                       Record);</div>
+<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>     Writer.AddTemplateArgumentList(&D-><a class="code" href="classclang_1_1VarTemplateSpecializationDecl.html#a8122db8b3be14e0c1083ffa6b9519de0" title="Retrieve the set of template arguments that should be used to instantiate the initializer of the vari...">getTemplateInstantiationArgs</a>(), Record);</div>
+<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>   }</div>
+<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span> </div>
+<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>   <span class="comment">// Explicit info.</span></div>
+<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>   Writer.AddTypeSourceInfo(D-><a class="code" href="classclang_1_1VarTemplateSpecializationDecl.html#afafd0e1e4b69d71d65ca3d08796967be" title="Gets the type of this specialization as it was written by the user, if it was so written.">getTypeAsWritten</a>(), Record);</div>
+<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>   <span class="keywordflow">if</span> (D-><a class="code" href="classclang_1_1VarTemplateSpecializationDecl.html#afafd0e1e4b69d71d65ca3d08796967be" title="Gets the type of this specialization as it was written by the user, if it was so written.">getTypeAsWritten</a>()) {</div>
+<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>     Writer.AddSourceLocation(D-><a class="code" href="classclang_1_1VarTemplateSpecializationDecl.html#ae05414a819cc469bd88540eaf39e0568" title="Gets the location of the extern keyword, if present.">getExternLoc</a>(), Record);</div>
+<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>     Writer.AddSourceLocation(D-><a class="code" href="classclang_1_1VarTemplateSpecializationDecl.html#ad3637f8753d1dfda4649f4cc0c1f968d" title="Gets the location of the template keyword, if present.">getTemplateKeywordLoc</a>(), Record);</div>
+<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>   }</div>
+<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span> </div>
+<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>   Writer.AddTemplateArgumentList(&D-><a class="code" href="classclang_1_1VarTemplateSpecializationDecl.html#aa2995cd59c41ec23dad8625643f3b0c8" title="Retrieve the template arguments of the variable template specialization.">getTemplateArgs</a>(), Record);</div>
+<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>   Writer.AddSourceLocation(D-><a class="code" href="classclang_1_1VarTemplateSpecializationDecl.html#a0adc4292f24f315e9ece8e51946e572e" title="Get the point of instantiation (if any), or null if none.">getPointOfInstantiation</a>(), Record);</div>
+<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>   Record.push_back(D-><a class="code" href="classclang_1_1VarTemplateSpecializationDecl.html#a812e927e2401bac4e85dafa676bd0b4b" title="Determine the kind of specialization that this declaration represents.">getSpecializationKind</a>());</div>
+<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>   Record.push_back(D-><a class="code" href="classclang_1_1Decl.html#a2b931baf609b7f7de1e61841a7b0d876" title="Whether this particular Decl is a canonical one.">isCanonicalDecl</a>());</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>   <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>()) {</div>
+<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>     <span class="comment">// When reading, we'll add it to the folding set of the following template.</span></div>
+<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>     Writer.AddDeclRef(D-><a class="code" href="classclang_1_1VarTemplateSpecializationDecl.html#a387388d8a9f69805efe6ec73fe5e1eee" title="Retrieve the template that this specialization specializes.">getSpecializedTemplate</a>()-><a class="code" href="classclang_1_1VarTemplateDecl.html#a96a93bd8fe5636ea38e9df1d95e8ac2b" title="Retrieves the canonical declaration of this template.">getCanonicalDecl</a>(), Record);</div>
+<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>   }</div>
+<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span> </div>
+<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdaa5b1a183a61933cb343d1b9a5646bdea" title="A VarTemplateSpecializationDecl record.">serialization::DECL_VAR_TEMPLATE_SPECIALIZATION</a>;</div>
+<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span> }</div>
+<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span> </div>
+<div class="line"><a name="l01263"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#a46b90932a0c52a6a04677062e1de4c75"> 1263</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#a46b90932a0c52a6a04677062e1de4c75">ASTDeclWriter::VisitVarTemplatePartialSpecializationDecl</a>(</div>
+<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>     <a class="code" href="classclang_1_1VarTemplatePartialSpecializationDecl.html">VarTemplatePartialSpecializationDecl</a> *D) {</div>
+<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>   VisitVarTemplateSpecializationDecl(D);</div>
+<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span> </div>
+<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>   Writer.AddTemplateParameterList(D-><a class="code" href="classclang_1_1VarTemplatePartialSpecializationDecl.html#aef53ce32b20ed8d790af72e4c9a11b2e" title="Get the list of template parameters.">getTemplateParameters</a>(), Record);</div>
+<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>   Writer.AddASTTemplateArgumentListInfo(D-><a class="code" href="classclang_1_1VarTemplatePartialSpecializationDecl.html#a98779bd89f007b5e95e8d76166ccf3cd" title="Get the template arguments as written.">getTemplateArgsAsWritten</a>(), Record);</div>
+<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span> </div>
+<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>   <span class="comment">// These are read/set from/to the first declaration.</span></div>
+<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>   <span class="keywordflow">if</span> (D-><a class="code" href="classclang_1_1Redeclarable.html#ae865b5549d99099ecb62d8b3a104f033" title="Return the previous declaration of this declaration or NULL if this is the first declaration.">getPreviousDecl</a>() == 0) {</div>
+<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>     Writer.AddDeclRef(D-><a class="code" href="classclang_1_1VarTemplatePartialSpecializationDecl.html#ab821e14ae0ec5847f6b11c0fc4b8d6b3" title="Retrieve the member variable template partial specialization from which this particular variable temp...">getInstantiatedFromMember</a>(), Record);</div>
+<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>     Record.push_back(D-><a class="code" href="classclang_1_1VarTemplatePartialSpecializationDecl.html#a94e98733c2dfaf0b7f1f9c6b84134085" title="Determines whether this variable template partial specialization was a specialization of a member par...">isMemberSpecialization</a>());</div>
+<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>   }</div>
+<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span> </div>
+<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda102c06473f86dfa837395febaf1d30da" title="A VarTemplatePartialSpecializationDecl record.">serialization::DECL_VAR_TEMPLATE_PARTIAL_SPECIALIZATION</a>;</div>
+<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span> }</div>
+<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span> </div>
+<div class="line"><a name="l01279"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#abec76c21d1f5950a7c1801f05a5f718d"> 1279</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#abec76c21d1f5950a7c1801f05a5f718d">ASTDeclWriter::VisitClassScopeFunctionSpecializationDecl</a>(</div>
+<div class="line"><a name="l01280"></a><span class="lineno"> 1280</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="l01281"></a><span class="lineno"> 1281</span>   VisitDecl(D);</div>
+<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>   Writer.AddDeclRef(D-><a class="code" href="classclang_1_1ClassScopeFunctionSpecializationDecl.html#a8a02bce387456e2cdc013f1d5b68e4b8">getSpecialization</a>(), Record);</div>
+<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda7fc5394d3fdf01a12bef3fe8f1150b0d" title="A ClassScopeFunctionSpecializationDecl record a class scope function specialization. (Microsoft extension).">serialization::DECL_CLASS_SCOPE_FUNCTION_SPECIALIZATION</a>;</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> </div>
+<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span> </div>
+<div class="line"><a name="l01287"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#a5a3569dcf1d7341cb7923a15e807f6ab"> 1287</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#a5a3569dcf1d7341cb7923a15e807f6ab">ASTDeclWriter::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="l01288"></a><span class="lineno"> 1288</span>   VisitRedeclarableTemplateDecl(D);</div>
+<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span> </div>
+<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>   <span class="keywordflow">if</span> (D-><a class="code" href="classclang_1_1Redeclarable.html#af8e1ba27cafe185ab6109acf9e9b95f3" title="True if this is the first declaration in its redeclaration chain.">isFirstDecl</a>()) {</div>
+<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>     <span class="comment">// This FunctionTemplateDecl owns the CommonPtr; write it.</span></div>
+<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span> </div>
+<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>     <span class="comment">// Write the function specialization declarations.</span></div>
+<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>     Record.push_back(D-><a class="code" href="classclang_1_1FunctionTemplateDecl.html#a3ddb17526d7955edc7fc3306b97dbdba" title="Retrieve the set of function template specializations of this function template.">getSpecializations</a>().size());</div>
+<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>     <span class="keywordflow">for</span> (llvm::FoldingSetVector<FunctionTemplateSpecializationInfo>::iterator</div>
+<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>            I = D-><a class="code" href="classclang_1_1FunctionTemplateDecl.html#a3ddb17526d7955edc7fc3306b97dbdba" title="Retrieve the set of function template specializations of this function template.">getSpecializations</a>().begin(),</div>
+<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>            E = D-><a class="code" href="classclang_1_1FunctionTemplateDecl.html#a3ddb17526d7955edc7fc3306b97dbdba" title="Retrieve the set of function template specializations of this function template.">getSpecializations</a>().end()   ; I != E; ++I) {</div>
+<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>       assert(I->Function->isCanonicalDecl() &&</div>
+<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>              <span class="stringliteral">"Expected only canonical decls in set"</span>);</div>
+<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>       Writer.AddDeclRef(I->Function, Record);</div>
+<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>     }</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>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda4fa76ad6349893ed73ae76a98443b938" title="A FunctionTemplateDecl record.">serialization::DECL_FUNCTION_TEMPLATE</a>;</div>
+<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span> }</div>
+<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span> </div>
+<div class="line"><a name="l01306"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#adc4ccaea4fda69dea516610e78d6b142"> 1306</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#adc4ccaea4fda69dea516610e78d6b142">ASTDeclWriter::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="l01307"></a><span class="lineno"> 1307</span>   VisitTypeDecl(D);</div>
+<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span> </div>
+<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>   Record.push_back(D-><a class="code" href="classclang_1_1TemplateTypeParmDecl.html#a733d685cbd9dbf3303f3aa62bf084a02" title="Whether this template type parameter was declared with the 'typename' keyword.">wasDeclaredWithTypename</a>());</div>
+<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>   Record.push_back(D-><a class="code" href="classclang_1_1TemplateTypeParmDecl.html#a9d08ff1e68a28360ec2803ae675d1efd" title="Determines whether the default argument was inherited from a previous declaration of this template...">defaultArgumentWasInherited</a>());</div>
+<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>   Writer.AddTypeSourceInfo(D-><a class="code" href="classclang_1_1TemplateTypeParmDecl.html#a53cab0f2211d89405d790391f8c93859" title="Retrieves the default argument's source information, if any.">getDefaultArgumentInfo</a>(), Record);</div>
+<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span> </div>
+<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdaa4cf8077e30fcd491a0f13bfe0f14c78" title="A TemplateTypeParmDecl record.">serialization::DECL_TEMPLATE_TYPE_PARM</a>;</div>
+<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span> }</div>
+<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span> </div>
+<div class="line"><a name="l01316"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#ab1c12f374682d9eceaad296f6b49eda3"> 1316</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#ab1c12f374682d9eceaad296f6b49eda3">ASTDeclWriter::VisitNonTypeTemplateParmDecl</a>(<a class="code" href="classclang_1_1NonTypeTemplateParmDecl.html">NonTypeTemplateParmDecl</a> *D) {</div>
+<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>   <span class="comment">// For an expanded parameter pack, record the number of expansion types here</span></div>
+<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>   <span class="comment">// so that it's easier for deserialization to allocate the right amount of</span></div>
+<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>   <span class="comment">// memory.</span></div>
+<div class="line"><a name="l01320"></a><span class="lineno"> 1320</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="l01321"></a><span class="lineno"> 1321</span>     Record.push_back(D-><a class="code" href="classclang_1_1NonTypeTemplateParmDecl.html#acb7891082449b2dc9e34bd90ceceb9f6" title="Retrieves the number of expansion types in an expanded parameter pack.">getNumExpansionTypes</a>());</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>   VisitDeclaratorDecl(D);</div>
+<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>   <span class="comment">// TemplateParmPosition.</span></div>
+<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>   Record.push_back(D-><a class="code" href="classclang_1_1TemplateParmPosition.html#a77e21945a55661fd6ee1e4ad7823b6c3" title="Get the nesting depth of the template parameter.">getDepth</a>());</div>
+<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>   Record.push_back(D-><a class="code" href="classclang_1_1TemplateParmPosition.html#a7d54f8125655e6bc19f4e6f760438ccc" title="Get the position of the template parameter within its parameter list.">getPosition</a>());</div>
+<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>   </div>
+<div class="line"><a name="l01328"></a><span class="lineno"> 1328</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="l01329"></a><span class="lineno"> 1329</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="l01330"></a><span class="lineno"> 1330</span>       Writer.AddTypeRef(D-><a class="code" href="classclang_1_1NonTypeTemplateParmDecl.html#a6e865899fb27dc0f12af38c45ff65449" title="Retrieve a particular expansion type within an expanded parameter pack.">getExpansionType</a>(I), Record);</div>
+<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>       Writer.AddTypeSourceInfo(D-><a class="code" href="classclang_1_1NonTypeTemplateParmDecl.html#a47fd9e1159078d5e4577cffa1190b926" title="Retrieve a particular expansion type source info within an expanded parameter pack.">getExpansionTypeSourceInfo</a>(I), Record);</div>
+<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>     }</div>
+<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>       </div>
+<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>     Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdabd86eb9aadb4a00eef20646f83eee97b" title="A NonTypeTemplateParmDecl record that stores an expanded non-type template parameter pack...">serialization::DECL_EXPANDED_NON_TYPE_TEMPLATE_PARM_PACK</a>;</div>
+<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>     <span class="comment">// Rest of NonTypeTemplateParmDecl.</span></div>
+<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>     Record.push_back(D-><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="l01338"></a><span class="lineno"> 1338</span>     Record.push_back(D-><a class="code" href="classclang_1_1NonTypeTemplateParmDecl.html#ae291b19bd289b3037ee33ee757e9a883" title="Retrieve the default argument, if any.">getDefaultArgument</a>() != 0);</div>
+<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>     <span class="keywordflow">if</span> (D-><a class="code" href="classclang_1_1NonTypeTemplateParmDecl.html#ae291b19bd289b3037ee33ee757e9a883" title="Retrieve the default argument, if any.">getDefaultArgument</a>()) {</div>
+<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>       Writer.AddStmt(D-><a class="code" href="classclang_1_1NonTypeTemplateParmDecl.html#ae291b19bd289b3037ee33ee757e9a883" title="Retrieve the default argument, if any.">getDefaultArgument</a>());</div>
+<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>       Record.push_back(D-><a class="code" href="classclang_1_1NonTypeTemplateParmDecl.html#aa5e0d0356b29e3d4872242b737bee7d3" title="Determines whether the default argument was inherited from a previous declaration of this template...">defaultArgumentWasInherited</a>());</div>
+<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>     }</div>
+<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>     Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda6bad0d6d72827a5f9190ff7809c4ed32" title="A NonTypeTemplateParmDecl record.">serialization::DECL_NON_TYPE_TEMPLATE_PARM</a>;</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"> 1346</span> </div>
+<div class="line"><a name="l01347"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#a2009f9ce15f51c866a3e01703c18b7a7"> 1347</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#a2009f9ce15f51c866a3e01703c18b7a7">ASTDeclWriter::VisitTemplateTemplateParmDecl</a>(<a class="code" href="classclang_1_1TemplateTemplateParmDecl.html">TemplateTemplateParmDecl</a> *D) {</div>
+<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>   <span class="comment">// For an expanded parameter pack, record the number of expansion types here</span></div>
+<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>   <span class="comment">// so that it's easier for deserialization to allocate the right amount of</span></div>
+<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>   <span class="comment">// memory.</span></div>
+<div class="line"><a name="l01351"></a><span class="lineno"> 1351</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="l01352"></a><span class="lineno"> 1352</span>     Record.push_back(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="l01353"></a><span class="lineno"> 1353</span> </div>
+<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>   VisitTemplateDecl(D);</div>
+<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>   <span class="comment">// TemplateParmPosition.</span></div>
+<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>   Record.push_back(D-><a class="code" href="classclang_1_1TemplateParmPosition.html#a77e21945a55661fd6ee1e4ad7823b6c3" title="Get the nesting depth of the template parameter.">getDepth</a>());</div>
+<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>   Record.push_back(D-><a class="code" href="classclang_1_1TemplateParmPosition.html#a7d54f8125655e6bc19f4e6f760438ccc" title="Get the position of the template parameter within its parameter list.">getPosition</a>());</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>   <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="l01360"></a><span class="lineno"> 1360</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="l01361"></a><span class="lineno"> 1361</span>          I != N; ++I)</div>
+<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>       Writer.AddTemplateParameterList(D-><a class="code" href="classclang_1_1TemplateTemplateParmDecl.html#ac4be9f7e41977b8aae37a6586485c13e" title="Retrieve a particular expansion type within an expanded parameter pack.">getExpansionTemplateParameters</a>(I),</div>
+<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>                                       Record);</div>
+<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>     Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda42c929aaeb5962b22a0a5b4b5cc417f4" title="A TemplateTemplateParmDecl record that stores an expanded template template parameter pack...">serialization::DECL_EXPANDED_TEMPLATE_TEMPLATE_PARM_PACK</a>;</div>
+<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>     <span class="comment">// Rest of TemplateTemplateParmDecl.</span></div>
+<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>     Writer.AddTemplateArgumentLoc(D-><a class="code" href="classclang_1_1TemplateTemplateParmDecl.html#a65b68dc6ec5d5dc303ae2e27b0e36238" title="Retrieve the default argument, if any.">getDefaultArgument</a>(), Record);</div>
+<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>     Record.push_back(D-><a class="code" href="classclang_1_1TemplateTemplateParmDecl.html#aeafa63d2be6c95169923f936195fae1f" title="Determines whether the default argument was inherited from a previous declaration of this template...">defaultArgumentWasInherited</a>());</div>
+<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>     Record.push_back(D-><a class="code" href="classclang_1_1TemplateTemplateParmDecl.html#a182fa906c72ee4824bda5f56842201f5" title="Whether this template template parameter is a template parameter pack.">isParameterPack</a>());</div>
+<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>     Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda29c1244e56ca7a593e4ac12af0d1b68c" title="A TemplateTemplateParmDecl record.">serialization::DECL_TEMPLATE_TEMPLATE_PARM</a>;</div>
+<div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>   }</div>
+<div class="line"><a name="l01372"></a><span class="lineno"> 1372</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"><a class="code" href="classclang_1_1ASTDeclWriter.html#a7167a7ab5f9e0ccdd2e1f10dcebc5655"> 1374</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#a7167a7ab5f9e0ccdd2e1f10dcebc5655">ASTDeclWriter::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="l01375"></a><span class="lineno"> 1375</span>   VisitRedeclarableTemplateDecl(D);</div>
+<div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda8aacb015b4b12c7653862fb1101e9c6e" title="A TypeAliasTemplateDecl record.">serialization::DECL_TYPE_ALIAS_TEMPLATE</a>;</div>
+<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span> }</div>
+<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span> </div>
+<div class="line"><a name="l01379"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#ae893acebc946e3630fece56e1fcd2360"> 1379</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#ae893acebc946e3630fece56e1fcd2360">ASTDeclWriter::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="l01380"></a><span class="lineno"> 1380</span>   VisitDecl(D);</div>
+<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>   Writer.AddStmt(D-><a class="code" href="classclang_1_1StaticAssertDecl.html#ae92fabeb5f6edd238a4b9b7dab75be69">getAssertExpr</a>());</div>
+<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>   Record.push_back(D-><a class="code" href="classclang_1_1StaticAssertDecl.html#a2b3b563e844d33f21689856c76c424c6">isFailed</a>());</div>
+<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>   Writer.AddStmt(D-><a class="code" href="classclang_1_1StaticAssertDecl.html#ad7eae48965a25f7e9977e4f0c0bb5932">getMessage</a>());</div>
+<div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>   Writer.AddSourceLocation(D-><a class="code" href="classclang_1_1StaticAssertDecl.html#a075d9386f4ffea6f7ced55aae15eb9dd">getRParenLoc</a>(), Record);</div>
+<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda25d91d05124c41f0df560b04150fcd99" title="A StaticAssertDecl record.">serialization::DECL_STATIC_ASSERT</a>;</div>
+<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span> }</div>
+<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span> <span class="comment"></span></div>
+<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span> <span class="comment">/// \brief Emit the DeclContext part of a declaration context decl.</span></div>
+<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span> <span class="comment">/// \param LexicalOffset the offset at which the DECL_CONTEXT_LEXICAL</span></div>
+<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span> <span class="comment">/// block for this declaration context is stored. May be 0 to indicate</span></div>
+<div class="line"><a name="l01392"></a><span class="lineno"> 1392</span> <span class="comment">/// that there are no declarations stored within this context.</span></div>
+<div class="line"><a name="l01393"></a><span class="lineno"> 1393</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span> <span class="comment">/// \param VisibleOffset the offset at which the DECL_CONTEXT_VISIBLE</span></div>
+<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span> <span class="comment">/// block for this declaration context is stored. May be 0 to indicate</span></div>
+<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span> <span class="comment">/// that there are no declarations visible from this context. Note</span></div>
+<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span> <span class="comment">/// that this value will not be emitted for non-primary declaration</span></div>
+<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span> <span class="comment">/// contexts.</span></div>
+<div class="line"><a name="l01399"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#a658fd72747dde30fe2893b276b844fb1"> 1399</a></span> <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#a658fd72747dde30fe2893b276b844fb1" title="Emit the DeclContext part of a declaration context decl.">ASTDeclWriter::VisitDeclContext</a>(<a class="code" href="classclang_1_1DeclContext.html">DeclContext</a> *DC, uint64_t LexicalOffset,</div>
+<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>                                      uint64_t VisibleOffset) {</div>
+<div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>   Record.push_back(LexicalOffset);</div>
+<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>   Record.push_back(VisibleOffset);</div>
+<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span> }</div>
+<div class="line"><a name="l01404"></a><span class="lineno"> 1404</span> </div>
+<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l01406"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#a220c1e9e534caeade6276391486a6006"> 1406</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#a220c1e9e534caeade6276391486a6006">ASTDeclWriter::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="l01407"></a><span class="lineno"> 1407</span>   T *First = 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="l01408"></a><span class="lineno"> 1408</span>   <span class="keywordflow">if</span> (First->getMostRecentDecl() != First) {</div>
+<div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>     assert(<a class="code" href="namespaceclang_1_1serialization.html#a323f8d6164864e57f01dcfef5c400502" title="Determine whether the given declaration kind is redeclarable.">isRedeclarableDeclKind</a>(static_cast<T *>(D)-><a class="code" href="DeclBase_8cpp.html#a37d13911f1772d0ed90b6b2e89cf3c60">getKind</a>()) &&</div>
+<div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>            <span class="stringliteral">"Not considered redeclarable?"</span>);</div>
+<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>     </div>
+<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>     <span class="comment">// There is more than one declaration of this entity, so we will need to</span></div>
+<div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>     <span class="comment">// write a redeclaration chain.</span></div>
+<div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>     Writer.AddDeclRef(First, Record);</div>
+<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>     Writer.Redeclarations.insert(First);</div>
+<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span> </div>
+<div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>     <span class="comment">// Make sure that we serialize both the previous and the most-recent </span></div>
+<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>     <span class="comment">// declarations, which (transitively) ensures that all declarations in the</span></div>
+<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>     <span class="comment">// chain get serialized.</span></div>
+<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>     (void)Writer.GetDeclRef(D-><a class="code" href="classclang_1_1Redeclarable.html#ae865b5549d99099ecb62d8b3a104f033" title="Return the previous declaration of this declaration or NULL if this is the first declaration.">getPreviousDecl</a>());</div>
+<div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>     (void)Writer.GetDeclRef(First->getMostRecentDecl());</div>
+<div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>     <span class="comment">// We use the sentinel value 0 to indicate an only declaration.</span></div>
+<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>     Record.push_back(0);</div>
+<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>   }</div>
+<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>   </div>
+<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span> }</div>
+<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span> </div>
+<div class="line"><a name="l01429"></a><span class="lineno"><a class="code" href="classclang_1_1ASTDeclWriter.html#a1f392715e9d85a2301f17c9937bd6946"> 1429</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTDeclWriter.html#a1f392715e9d85a2301f17c9937bd6946">ASTDeclWriter::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="l01430"></a><span class="lineno"> 1430</span>   Record.push_back(D-><a class="code" href="classclang_1_1OMPThreadPrivateDecl.html#a310ffe7ada260467d1c826f0ca1f31e2">varlist_size</a>());</div>
+<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>   VisitDecl(D);</div>
+<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>   <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1OMPThreadPrivateDecl.html#a04422fecf58a08c26d3963dadf73dd26">OMPThreadPrivateDecl::varlist_iterator</a> I = D-><a class="code" href="classclang_1_1OMPThreadPrivateDecl.html#ae7e65f14cf1467900d37c1e289690ed4">varlist_begin</a>(),</div>
+<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>                                               E = D-><a class="code" href="classclang_1_1OMPThreadPrivateDecl.html#a99244515c1838ec8fdffd58f33ea435d">varlist_end</a>();</div>
+<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>        I != E; ++I)</div>
+<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>     Writer.AddStmt(*I);</div>
+<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>   Code = <a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdad46fdf16abd1ee76cdd43d29a28f8e41" title="An OMPThreadPrivateDecl record.">serialization::DECL_OMP_THREADPRIVATE</a>;</div>
+<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span> }</div>
+<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span> </div>
+<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span> <span class="comment">// ASTWriter Implementation</span></div>
+<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span> <span class="comment">//===----------------------------------------------------------------------===//</span></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> <span class="keywordtype">void</span> ASTWriter::WriteDeclsBlockAbbrevs() {</div>
+<div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>   <span class="keyword">using namespace </span>llvm;</div>
+<div class="line"><a name="l01445"></a><span class="lineno"> 1445</span> </div>
+<div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>   BitCodeAbbrev *Abv;</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>   <span class="comment">// Abbreviation for DECL_FIELD</span></div>
+<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>   Abv = <span class="keyword">new</span> BitCodeAbbrev();</div>
+<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>   Abv->Add(BitCodeAbbrevOp(<a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda6120228ff3e758994f18127141c92776" title="A FieldDecl record.">serialization::DECL_FIELD</a>));</div>
+<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>   <span class="comment">// Decl</span></div>
+<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// DeclContext</span></div>
+<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// LexicalDeclContext</span></div>
+<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// isInvalidDecl</span></div>
+<div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// HasAttrs</span></div>
+<div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// isImplicit</span></div>
+<div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// isUsed</span></div>
+<div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// isReferenced</span></div>
+<div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>   Abv->Add(BitCodeAbbrevOp(0));                   <span class="comment">// TopLevelDeclInObjCContainer</span></div>
+<div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 2));  <span class="comment">// AccessSpecifier</span></div>
+<div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// ModulePrivate</span></div>
+<div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// SubmoduleID</span></div>
+<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>   <span class="comment">// NamedDecl</span></div>
+<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// NameKind = Identifier</span></div>
+<div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// Name</span></div>
+<div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>   <span class="comment">// ValueDecl</span></div>
+<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// Type</span></div>
+<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>   <span class="comment">// DeclaratorDecl</span></div>
+<div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// InnerStartLoc</span></div>
+<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// hasExtInfo</span></div>
+<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>   <span class="comment">// FieldDecl</span></div>
+<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); <span class="comment">// isMutable</span></div>
+<div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">//getBitWidth</span></div>
+<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>   <span class="comment">// Type Source Info</span></div>
+<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6));</div>
+<div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Array));</div>
+<div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// TypeLoc</span></div>
+<div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>   DeclFieldAbbrev = Stream.EmitAbbrev(Abv);</div>
+<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span> </div>
+<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>   <span class="comment">// Abbreviation for DECL_OBJC_IVAR</span></div>
+<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>   Abv = <span class="keyword">new</span> BitCodeAbbrev();</div>
+<div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>   Abv->Add(BitCodeAbbrevOp(<a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdae7b40f478012ac8c54e85b15e3f554a0" title="A ObjCIvarDecl record.">serialization::DECL_OBJC_IVAR</a>));</div>
+<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>   <span class="comment">// Decl</span></div>
+<div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// DeclContext</span></div>
+<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// LexicalDeclContext</span></div>
+<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// isInvalidDecl</span></div>
+<div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// HasAttrs</span></div>
+<div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// isImplicit</span></div>
+<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// isUsed</span></div>
+<div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// isReferenced</span></div>
+<div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>   Abv->Add(BitCodeAbbrevOp(0));                   <span class="comment">// TopLevelDeclInObjCContainer</span></div>
+<div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 2));  <span class="comment">// AccessSpecifier</span></div>
+<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// ModulePrivate</span></div>
+<div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// SubmoduleID</span></div>
+<div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>   <span class="comment">// NamedDecl</span></div>
+<div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// NameKind = Identifier</span></div>
+<div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// Name</span></div>
+<div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>   <span class="comment">// ValueDecl</span></div>
+<div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// Type</span></div>
+<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>   <span class="comment">// DeclaratorDecl</span></div>
+<div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// InnerStartLoc</span></div>
+<div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// hasExtInfo</span></div>
+<div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>   <span class="comment">// FieldDecl</span></div>
+<div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); <span class="comment">// isMutable</span></div>
+<div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">//getBitWidth</span></div>
+<div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>   <span class="comment">// ObjC Ivar</span></div>
+<div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// getAccessControl</span></div>
+<div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// getSynthesize</span></div>
+<div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>   <span class="comment">// getBackingIvarReferencedInAccessor</span></div>
+<div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6));</div>
+<div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>   <span class="comment">// Type Source Info</span></div>
+<div class="line"><a name="l01512"></a><span class="lineno"> 1512</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6));</div>
+<div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Array));</div>
+<div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// TypeLoc</span></div>
+<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>   DeclObjCIvarAbbrev = Stream.EmitAbbrev(Abv);</div>
+<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span> </div>
+<div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>   <span class="comment">// Abbreviation for DECL_ENUM</span></div>
+<div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>   Abv = <span class="keyword">new</span> BitCodeAbbrev();</div>
+<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>   Abv->Add(BitCodeAbbrevOp(<a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdacd7c98403463dcf489152e6fa9d3d945" title="An EnumDecl record.">serialization::DECL_ENUM</a>));</div>
+<div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>   <span class="comment">// Redeclarable</span></div>
+<div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// No redeclaration</span></div>
+<div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>   <span class="comment">// Decl</span></div>
+<div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// DeclContext</span></div>
+<div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// LexicalDeclContext</span></div>
+<div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// isInvalidDecl</span></div>
+<div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// HasAttrs</span></div>
+<div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// isImplicit</span></div>
+<div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// isUsed</span></div>
+<div class="line"><a name="l01529"></a><span class="lineno"> 1529</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// isReferenced</span></div>
+<div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>   Abv->Add(BitCodeAbbrevOp(0));                   <span class="comment">// TopLevelDeclInObjCContainer</span></div>
+<div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>   Abv->Add(BitCodeAbbrevOp(<a class="code" href="namespaceclang.html#afc8aabd1f46cf32e805cd0d970ef988fa24d2c10b569678923a7bff78b68cb02b">AS_none</a>));                 <span class="comment">// C++ AccessSpecifier</span></div>
+<div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// ModulePrivate</span></div>
+<div class="line"><a name="l01533"></a><span class="lineno"> 1533</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// SubmoduleID</span></div>
+<div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>   <span class="comment">// NamedDecl</span></div>
+<div class="line"><a name="l01535"></a><span class="lineno"> 1535</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// NameKind = Identifier</span></div>
+<div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// Name</span></div>
+<div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>   <span class="comment">// TypeDecl</span></div>
+<div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// Source Location</span></div>
+<div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// Type Ref</span></div>
+<div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>   <span class="comment">// TagDecl</span></div>
+<div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6));   <span class="comment">// IdentifierNamespace</span></div>
+<div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6));   <span class="comment">// getTagKind</span></div>
+<div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); <span class="comment">// isCompleteDefinition</span></div>
+<div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); <span class="comment">// EmbeddedInDeclarator</span></div>
+<div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); <span class="comment">// IsFreeStanding</span></div>
+<div class="line"><a name="l01546"></a><span class="lineno"> 1546</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); <span class="comment">// IsCompleteDefinitionRequired</span></div>
+<div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6));   <span class="comment">// SourceLocation</span></div>
+<div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>   Abv->Add(BitCodeAbbrevOp(0));                         <span class="comment">// hasExtInfo</span></div>
+<div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6));   <span class="comment">// TypedefNameAnonDecl</span></div>
+<div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>   <span class="comment">// EnumDecl</span></div>
+<div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6));   <span class="comment">// AddTypeRef</span></div>
+<div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6));   <span class="comment">// IntegerType</span></div>
+<div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6));   <span class="comment">// getPromotionType</span></div>
+<div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6));   <span class="comment">// getNumPositiveBits</span></div>
+<div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6));   <span class="comment">// getNumNegativeBits</span></div>
+<div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); <span class="comment">// isScoped</span></div>
+<div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); <span class="comment">// isScopedUsingClassTag</span></div>
+<div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); <span class="comment">// isFixed</span></div>
+<div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6));   <span class="comment">// InstantiatedMembEnum</span></div>
+<div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>   <span class="comment">// DC</span></div>
+<div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6));   <span class="comment">// LexicalOffset</span></div>
+<div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6));   <span class="comment">// VisibleOffset</span></div>
+<div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>   DeclEnumAbbrev = Stream.EmitAbbrev(Abv);</div>
+<div class="line"><a name="l01564"></a><span class="lineno"> 1564</span> </div>
+<div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>   <span class="comment">// Abbreviation for DECL_RECORD</span></div>
+<div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>   Abv = <span class="keyword">new</span> BitCodeAbbrev();</div>
+<div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>   Abv->Add(BitCodeAbbrevOp(<a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda7482e398f9d4b3572edf31ceef7321b6" title="A RecordDecl record.">serialization::DECL_RECORD</a>));</div>
+<div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>   <span class="comment">// Redeclarable</span></div>
+<div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// No redeclaration</span></div>
+<div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>   <span class="comment">// Decl</span></div>
+<div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// DeclContext</span></div>
+<div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// LexicalDeclContext</span></div>
+<div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// isInvalidDecl</span></div>
+<div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// HasAttrs</span></div>
+<div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// isImplicit</span></div>
+<div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// isUsed</span></div>
+<div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// isReferenced</span></div>
+<div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>   Abv->Add(BitCodeAbbrevOp(0));                   <span class="comment">// TopLevelDeclInObjCContainer</span></div>
+<div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>   Abv->Add(BitCodeAbbrevOp(<a class="code" href="namespaceclang.html#afc8aabd1f46cf32e805cd0d970ef988fa24d2c10b569678923a7bff78b68cb02b">AS_none</a>));                 <span class="comment">// C++ AccessSpecifier</span></div>
+<div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// ModulePrivate</span></div>
+<div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// SubmoduleID</span></div>
+<div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>   <span class="comment">// NamedDecl</span></div>
+<div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// NameKind = Identifier</span></div>
+<div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// Name</span></div>
+<div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>   <span class="comment">// TypeDecl</span></div>
+<div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// Source Location</span></div>
+<div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// Type Ref</span></div>
+<div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>   <span class="comment">// TagDecl</span></div>
+<div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6));   <span class="comment">// IdentifierNamespace</span></div>
+<div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6));   <span class="comment">// getTagKind</span></div>
+<div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); <span class="comment">// isCompleteDefinition</span></div>
+<div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); <span class="comment">// EmbeddedInDeclarator</span></div>
+<div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); <span class="comment">// IsFreeStanding</span></div>
+<div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); <span class="comment">// IsCompleteDefinitionRequired</span></div>
+<div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6));   <span class="comment">// SourceLocation</span></div>
+<div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>   Abv->Add(BitCodeAbbrevOp(0));                         <span class="comment">// hasExtInfo</span></div>
+<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6));   <span class="comment">// TypedefNameAnonDecl</span></div>
+<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>   <span class="comment">// RecordDecl</span></div>
+<div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); <span class="comment">// FlexibleArrayMember</span></div>
+<div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); <span class="comment">// AnonymousStructUnion</span></div>
+<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); <span class="comment">// hasObjectMember</span></div>
+<div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); <span class="comment">// hasVolatileMember</span></div>
+<div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>   <span class="comment">// DC</span></div>
+<div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6));   <span class="comment">// LexicalOffset</span></div>
+<div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6));   <span class="comment">// VisibleOffset</span></div>
+<div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>   DeclRecordAbbrev = Stream.EmitAbbrev(Abv);</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>   <span class="comment">// Abbreviation for DECL_PARM_VAR</span></div>
+<div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>   Abv = <span class="keyword">new</span> BitCodeAbbrev();</div>
+<div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>   Abv->Add(BitCodeAbbrevOp(<a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda41b4f032561d1c9e5ce9cab230a10873" title="A ParmVarDecl record.">serialization::DECL_PARM_VAR</a>));</div>
+<div class="line"><a name="l01611"></a><span class="lineno"> 1611</span>   <span class="comment">// Redeclarable</span></div>
+<div class="line"><a name="l01612"></a><span class="lineno"> 1612</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// No redeclaration</span></div>
+<div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>   <span class="comment">// Decl</span></div>
+<div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// DeclContext</span></div>
+<div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// LexicalDeclContext</span></div>
+<div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// isInvalidDecl</span></div>
+<div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// HasAttrs</span></div>
+<div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// isImplicit</span></div>
+<div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// isUsed</span></div>
+<div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// isReferenced</span></div>
+<div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>   Abv->Add(BitCodeAbbrevOp(0));                   <span class="comment">// TopLevelDeclInObjCContainer</span></div>
+<div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>   Abv->Add(BitCodeAbbrevOp(<a class="code" href="namespaceclang.html#afc8aabd1f46cf32e805cd0d970ef988fa24d2c10b569678923a7bff78b68cb02b">AS_none</a>));                 <span class="comment">// C++ AccessSpecifier</span></div>
+<div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// ModulePrivate</span></div>
+<div class="line"><a name="l01624"></a><span class="lineno"> 1624</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// SubmoduleID</span></div>
+<div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>   <span class="comment">// NamedDecl</span></div>
+<div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// NameKind = Identifier</span></div>
+<div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// Name</span></div>
+<div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>   <span class="comment">// ValueDecl</span></div>
+<div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// Type</span></div>
+<div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>   <span class="comment">// DeclaratorDecl</span></div>
+<div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// InnerStartLoc</span></div>
+<div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// hasExtInfo</span></div>
+<div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>   <span class="comment">// VarDecl</span></div>
+<div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// StorageClass</span></div>
+<div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// getTSCSpec</span></div>
+<div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// hasCXXDirectInitializer</span></div>
+<div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// isExceptionVariable</span></div>
+<div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// isNRVOVariable</span></div>
+<div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// isCXXForRangeDecl</span></div>
+<div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// isARCPseudoStrong</span></div>
+<div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// isConstexpr</span></div>
+<div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// isInitCapture</span></div>
+<div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// isPrevDeclInSameScope</span></div>
+<div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// Linkage</span></div>
+<div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// HasInit</span></div>
+<div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>   Abv->Add(BitCodeAbbrevOp(0));                   <span class="comment">// HasMemberSpecializationInfo</span></div>
+<div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>   <span class="comment">// ParmVarDecl</span></div>
+<div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); <span class="comment">// IsObjCMethodParameter</span></div>
+<div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// ScopeDepth</span></div>
+<div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// ScopeIndex</span></div>
+<div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// ObjCDeclQualifier</span></div>
+<div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// KNRPromoted</span></div>
+<div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// HasInheritedDefaultArg</span></div>
+<div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>   Abv->Add(BitCodeAbbrevOp(0));                   <span class="comment">// HasUninstantiatedDefaultArg</span></div>
+<div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>   <span class="comment">// Type Source Info</span></div>
+<div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6));</div>
+<div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Array));</div>
+<div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// TypeLoc</span></div>
+<div class="line"><a name="l01659"></a><span class="lineno"> 1659</span>   DeclParmVarAbbrev = Stream.EmitAbbrev(Abv);</div>
+<div class="line"><a name="l01660"></a><span class="lineno"> 1660</span> </div>
+<div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>   <span class="comment">// Abbreviation for DECL_TYPEDEF</span></div>
+<div class="line"><a name="l01662"></a><span class="lineno"> 1662</span>   Abv = <span class="keyword">new</span> BitCodeAbbrev();</div>
+<div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>   Abv->Add(BitCodeAbbrevOp(<a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda422905d00e014ff3366cc40b89711606" title="A TypedefDecl record.">serialization::DECL_TYPEDEF</a>));</div>
+<div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>   <span class="comment">// Redeclarable</span></div>
+<div class="line"><a name="l01665"></a><span class="lineno"> 1665</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// No redeclaration</span></div>
+<div class="line"><a name="l01666"></a><span class="lineno"> 1666</span>   <span class="comment">// Decl</span></div>
+<div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// DeclContext</span></div>
+<div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// LexicalDeclContext</span></div>
+<div class="line"><a name="l01669"></a><span class="lineno"> 1669</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// isInvalidDecl</span></div>
+<div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// HasAttrs</span></div>
+<div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// isImplicit</span></div>
+<div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// isUsed</span></div>
+<div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// isReferenced</span></div>
+<div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>   Abv->Add(BitCodeAbbrevOp(0));                   <span class="comment">// TopLevelDeclInObjCContainer</span></div>
+<div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>   Abv->Add(BitCodeAbbrevOp(<a class="code" href="namespaceclang.html#afc8aabd1f46cf32e805cd0d970ef988fa24d2c10b569678923a7bff78b68cb02b">AS_none</a>));                 <span class="comment">// C++ AccessSpecifier</span></div>
+<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// ModulePrivate</span></div>
+<div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// SubmoduleID</span></div>
+<div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>   <span class="comment">// NamedDecl</span></div>
+<div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// NameKind = Identifier</span></div>
+<div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// Name</span></div>
+<div class="line"><a name="l01681"></a><span class="lineno"> 1681</span>   <span class="comment">// TypeDecl</span></div>
+<div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// Source Location</span></div>
+<div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// Type Ref</span></div>
+<div class="line"><a name="l01684"></a><span class="lineno"> 1684</span>   <span class="comment">// TypedefDecl</span></div>
+<div class="line"><a name="l01685"></a><span class="lineno"> 1685</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Array));</div>
+<div class="line"><a name="l01686"></a><span class="lineno"> 1686</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// TypeLoc</span></div>
+<div class="line"><a name="l01687"></a><span class="lineno"> 1687</span>   DeclTypedefAbbrev = Stream.EmitAbbrev(Abv);</div>
+<div class="line"><a name="l01688"></a><span class="lineno"> 1688</span> </div>
+<div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>   <span class="comment">// Abbreviation for DECL_VAR</span></div>
+<div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>   Abv = <span class="keyword">new</span> BitCodeAbbrev();</div>
+<div class="line"><a name="l01691"></a><span class="lineno"> 1691</span>   Abv->Add(BitCodeAbbrevOp(<a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cda9e384c28f844c88209addf1f19313b93" title="A VarDecl record.">serialization::DECL_VAR</a>));</div>
+<div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>   <span class="comment">// Redeclarable</span></div>
+<div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// No redeclaration</span></div>
+<div class="line"><a name="l01694"></a><span class="lineno"> 1694</span>   <span class="comment">// Decl</span></div>
+<div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// DeclContext</span></div>
+<div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// LexicalDeclContext</span></div>
+<div class="line"><a name="l01697"></a><span class="lineno"> 1697</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// isInvalidDecl</span></div>
+<div class="line"><a name="l01698"></a><span class="lineno"> 1698</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// HasAttrs</span></div>
+<div class="line"><a name="l01699"></a><span class="lineno"> 1699</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// isImplicit</span></div>
+<div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// isUsed</span></div>
+<div class="line"><a name="l01701"></a><span class="lineno"> 1701</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// isReferenced</span></div>
+<div class="line"><a name="l01702"></a><span class="lineno"> 1702</span>   Abv->Add(BitCodeAbbrevOp(0));                   <span class="comment">// TopLevelDeclInObjCContainer</span></div>
+<div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>   Abv->Add(BitCodeAbbrevOp(<a class="code" href="namespaceclang.html#afc8aabd1f46cf32e805cd0d970ef988fa24d2c10b569678923a7bff78b68cb02b">AS_none</a>));                 <span class="comment">// C++ AccessSpecifier</span></div>
+<div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// ModulePrivate</span></div>
+<div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// SubmoduleID</span></div>
+<div class="line"><a name="l01706"></a><span class="lineno"> 1706</span>   <span class="comment">// NamedDecl</span></div>
+<div class="line"><a name="l01707"></a><span class="lineno"> 1707</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// NameKind = Identifier</span></div>
+<div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// Name</span></div>
+<div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>   <span class="comment">// ValueDecl</span></div>
+<div class="line"><a name="l01710"></a><span class="lineno"> 1710</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// Type</span></div>
+<div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>   <span class="comment">// DeclaratorDecl</span></div>
+<div class="line"><a name="l01712"></a><span class="lineno"> 1712</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// InnerStartLoc</span></div>
+<div class="line"><a name="l01713"></a><span class="lineno"> 1713</span>   Abv->Add(BitCodeAbbrevOp(0));                       <span class="comment">// hasExtInfo</span></div>
+<div class="line"><a name="l01714"></a><span class="lineno"> 1714</span>   <span class="comment">// VarDecl</span></div>
+<div class="line"><a name="l01715"></a><span class="lineno"> 1715</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// StorageClass</span></div>
+<div class="line"><a name="l01716"></a><span class="lineno"> 1716</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 2)); <span class="comment">// getTSCSpec</span></div>
+<div class="line"><a name="l01717"></a><span class="lineno"> 1717</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); <span class="comment">// CXXDirectInitializer</span></div>
+<div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); <span class="comment">// isExceptionVariable</span></div>
+<div class="line"><a name="l01719"></a><span class="lineno"> 1719</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); <span class="comment">// isNRVOVariable</span></div>
+<div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); <span class="comment">// isCXXForRangeDecl</span></div>
+<div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); <span class="comment">// isARCPseudoStrong</span></div>
+<div class="line"><a name="l01722"></a><span class="lineno"> 1722</span>   Abv->Add(BitCodeAbbrevOp(0));                         <span class="comment">// isConstexpr</span></div>
+<div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>   Abv->Add(BitCodeAbbrevOp(0));                         <span class="comment">// isInitCapture</span></div>
+<div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>   Abv->Add(BitCodeAbbrevOp(0));                         <span class="comment">// isPrevDeclInSameScope</span></div>
+<div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 3)); <span class="comment">// Linkage</span></div>
+<div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); <span class="comment">// HasInit</span></div>
+<div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); <span class="comment">// HasMemberSpecInfo</span></div>
+<div class="line"><a name="l01728"></a><span class="lineno"> 1728</span>   <span class="comment">// Type Source Info</span></div>
+<div class="line"><a name="l01729"></a><span class="lineno"> 1729</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6));</div>
+<div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Array));</div>
+<div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// TypeLoc</span></div>
+<div class="line"><a name="l01732"></a><span class="lineno"> 1732</span>   DeclVarAbbrev = Stream.EmitAbbrev(Abv);</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>   <span class="comment">// Abbreviation for EXPR_DECL_REF</span></div>
+<div class="line"><a name="l01735"></a><span class="lineno"> 1735</span>   Abv = <span class="keyword">new</span> BitCodeAbbrev();</div>
+<div class="line"><a name="l01736"></a><span class="lineno"> 1736</span>   Abv->Add(BitCodeAbbrevOp(<a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65abfa3a34ca1851ae00d66d7ae767ca1e3" title="A DeclRefExpr record.">serialization::EXPR_DECL_REF</a>));</div>
+<div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>   <span class="comment">//Stmt</span></div>
+<div class="line"><a name="l01738"></a><span class="lineno"> 1738</span>   <span class="comment">//Expr</span></div>
+<div class="line"><a name="l01739"></a><span class="lineno"> 1739</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// Type</span></div>
+<div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); <span class="comment">//TypeDependent</span></div>
+<div class="line"><a name="l01741"></a><span class="lineno"> 1741</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); <span class="comment">//ValueDependent</span></div>
+<div class="line"><a name="l01742"></a><span class="lineno"> 1742</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); <span class="comment">//InstantiationDependent</span></div>
+<div class="line"><a name="l01743"></a><span class="lineno"> 1743</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); <span class="comment">//UnexpandedParamPack</span></div>
+<div class="line"><a name="l01744"></a><span class="lineno"> 1744</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 3)); <span class="comment">//GetValueKind</span></div>
+<div class="line"><a name="l01745"></a><span class="lineno"> 1745</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 3)); <span class="comment">//GetObjectKind</span></div>
+<div class="line"><a name="l01746"></a><span class="lineno"> 1746</span>   <span class="comment">//DeclRefExpr</span></div>
+<div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); <span class="comment">//HasQualifier</span></div>
+<div class="line"><a name="l01748"></a><span class="lineno"> 1748</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); <span class="comment">//GetDeclFound</span></div>
+<div class="line"><a name="l01749"></a><span class="lineno"> 1749</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); <span class="comment">//ExplicitTemplateArgs</span></div>
+<div class="line"><a name="l01750"></a><span class="lineno"> 1750</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); <span class="comment">//HadMultipleCandidates</span></div>
+<div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); <span class="comment">//RefersToEnclosingLocal</span></div>
+<div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// DeclRef</span></div>
+<div class="line"><a name="l01753"></a><span class="lineno"> 1753</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// Location</span></div>
+<div class="line"><a name="l01754"></a><span class="lineno"> 1754</span>   DeclRefExprAbbrev = Stream.EmitAbbrev(Abv);</div>
+<div class="line"><a name="l01755"></a><span class="lineno"> 1755</span> </div>
+<div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>   <span class="comment">// Abbreviation for EXPR_INTEGER_LITERAL</span></div>
+<div class="line"><a name="l01757"></a><span class="lineno"> 1757</span>   Abv = <span class="keyword">new</span> BitCodeAbbrev();</div>
+<div class="line"><a name="l01758"></a><span class="lineno"> 1758</span>   Abv->Add(BitCodeAbbrevOp(<a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65ad29a63b1a0c93540b8f0c72f6b38952c" title="An IntegerLiteral record.">serialization::EXPR_INTEGER_LITERAL</a>));</div>
+<div class="line"><a name="l01759"></a><span class="lineno"> 1759</span>   <span class="comment">//Stmt</span></div>
+<div class="line"><a name="l01760"></a><span class="lineno"> 1760</span>   <span class="comment">//Expr</span></div>
+<div class="line"><a name="l01761"></a><span class="lineno"> 1761</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// Type</span></div>
+<div class="line"><a name="l01762"></a><span class="lineno"> 1762</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); <span class="comment">//TypeDependent</span></div>
+<div class="line"><a name="l01763"></a><span class="lineno"> 1763</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); <span class="comment">//ValueDependent</span></div>
+<div class="line"><a name="l01764"></a><span class="lineno"> 1764</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); <span class="comment">//InstantiationDependent</span></div>
+<div class="line"><a name="l01765"></a><span class="lineno"> 1765</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); <span class="comment">//UnexpandedParamPack</span></div>
+<div class="line"><a name="l01766"></a><span class="lineno"> 1766</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 3)); <span class="comment">//GetValueKind</span></div>
+<div class="line"><a name="l01767"></a><span class="lineno"> 1767</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 3)); <span class="comment">//GetObjectKind</span></div>
+<div class="line"><a name="l01768"></a><span class="lineno"> 1768</span>   <span class="comment">//Integer Literal</span></div>
+<div class="line"><a name="l01769"></a><span class="lineno"> 1769</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// Location</span></div>
+<div class="line"><a name="l01770"></a><span class="lineno"> 1770</span>   Abv->Add(BitCodeAbbrevOp(32));                      <span class="comment">// Bit Width</span></div>
+<div class="line"><a name="l01771"></a><span class="lineno"> 1771</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// Value</span></div>
+<div class="line"><a name="l01772"></a><span class="lineno"> 1772</span>   IntegerLiteralAbbrev = Stream.EmitAbbrev(Abv);</div>
+<div class="line"><a name="l01773"></a><span class="lineno"> 1773</span> </div>
+<div class="line"><a name="l01774"></a><span class="lineno"> 1774</span>   <span class="comment">// Abbreviation for EXPR_CHARACTER_LITERAL</span></div>
+<div class="line"><a name="l01775"></a><span class="lineno"> 1775</span>   Abv = <span class="keyword">new</span> BitCodeAbbrev();</div>
+<div class="line"><a name="l01776"></a><span class="lineno"> 1776</span>   Abv->Add(BitCodeAbbrevOp(<a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65a4b83b925e522441c956cb22b327c2749" title="A CharacterLiteral record.">serialization::EXPR_CHARACTER_LITERAL</a>));</div>
+<div class="line"><a name="l01777"></a><span class="lineno"> 1777</span>   <span class="comment">//Stmt</span></div>
+<div class="line"><a name="l01778"></a><span class="lineno"> 1778</span>   <span class="comment">//Expr</span></div>
+<div class="line"><a name="l01779"></a><span class="lineno"> 1779</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// Type</span></div>
+<div class="line"><a name="l01780"></a><span class="lineno"> 1780</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); <span class="comment">//TypeDependent</span></div>
+<div class="line"><a name="l01781"></a><span class="lineno"> 1781</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); <span class="comment">//ValueDependent</span></div>
+<div class="line"><a name="l01782"></a><span class="lineno"> 1782</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); <span class="comment">//InstantiationDependent</span></div>
+<div class="line"><a name="l01783"></a><span class="lineno"> 1783</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); <span class="comment">//UnexpandedParamPack</span></div>
+<div class="line"><a name="l01784"></a><span class="lineno"> 1784</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 3)); <span class="comment">//GetValueKind</span></div>
+<div class="line"><a name="l01785"></a><span class="lineno"> 1785</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 3)); <span class="comment">//GetObjectKind</span></div>
+<div class="line"><a name="l01786"></a><span class="lineno"> 1786</span>   <span class="comment">//Character Literal</span></div>
+<div class="line"><a name="l01787"></a><span class="lineno"> 1787</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// getValue</span></div>
+<div class="line"><a name="l01788"></a><span class="lineno"> 1788</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); <span class="comment">// Location</span></div>
+<div class="line"><a name="l01789"></a><span class="lineno"> 1789</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 2)); <span class="comment">// getKind</span></div>
+<div class="line"><a name="l01790"></a><span class="lineno"> 1790</span>   CharacterLiteralAbbrev = Stream.EmitAbbrev(Abv);</div>
+<div class="line"><a name="l01791"></a><span class="lineno"> 1791</span> </div>
+<div class="line"><a name="l01792"></a><span class="lineno"> 1792</span>   Abv = <span class="keyword">new</span> BitCodeAbbrev();</div>
+<div class="line"><a name="l01793"></a><span class="lineno"> 1793</span>   Abv->Add(BitCodeAbbrevOp(<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...">serialization::DECL_CONTEXT_LEXICAL</a>));</div>
+<div class="line"><a name="l01794"></a><span class="lineno"> 1794</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Blob));</div>
+<div class="line"><a name="l01795"></a><span class="lineno"> 1795</span>   DeclContextLexicalAbbrev = Stream.EmitAbbrev(Abv);</div>
+<div class="line"><a name="l01796"></a><span class="lineno"> 1796</span> </div>
+<div class="line"><a name="l01797"></a><span class="lineno"> 1797</span>   Abv = <span class="keyword">new</span> BitCodeAbbrev();</div>
+<div class="line"><a name="l01798"></a><span class="lineno"> 1798</span>   Abv->Add(BitCodeAbbrevOp(<a class="code" href="group__ASTAST.html#gga8ee85854f8c999f4dad34a2afccdc1cdafcf73a1ed9070059c5895e18ce3af9aa" title="A record that stores the set of declarations that are visible from a given DeclContext.">serialization::DECL_CONTEXT_VISIBLE</a>));</div>
+<div class="line"><a name="l01799"></a><span class="lineno"> 1799</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 32));</div>
+<div class="line"><a name="l01800"></a><span class="lineno"> 1800</span>   Abv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Blob));</div>
+<div class="line"><a name="l01801"></a><span class="lineno"> 1801</span>   DeclContextVisibleLookupAbbrev = Stream.EmitAbbrev(Abv);</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> <span class="comment"></span></div>
+<div class="line"><a name="l01804"></a><span class="lineno"> 1804</span> <span class="comment">/// isRequiredDecl - Check if this is a "required" Decl, which must be seen by</span></div>
+<div class="line"><a name="l01805"></a><span class="lineno"> 1805</span> <span class="comment">/// consumers of the AST.</span></div>
+<div class="line"><a name="l01806"></a><span class="lineno"> 1806</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01807"></a><span class="lineno"> 1807</span> <span class="comment">/// Such decls will always be deserialized from the AST file, so we would like</span></div>
+<div class="line"><a name="l01808"></a><span class="lineno"> 1808</span> <span class="comment">/// this to be as restrictive as possible. Currently the predicate is driven by</span></div>
+<div class="line"><a name="l01809"></a><span class="lineno"> 1809</span> <span class="comment">/// code generation requirements, if other clients have a different notion of</span></div>
+<div class="line"><a name="l01810"></a><span class="lineno"> 1810</span> <span class="comment">/// what is "required" then we may have to consider an alternate scheme where</span></div>
+<div class="line"><a name="l01811"></a><span class="lineno"> 1811</span> <span class="comment">/// clients can iterate over the top-level decls and get information on them,</span></div>
+<div class="line"><a name="l01812"></a><span class="lineno"> 1812</span> <span class="comment">/// without necessary deserializing them. We could explicitly require such</span></div>
+<div class="line"><a name="l01813"></a><span class="lineno"> 1813</span> <span class="comment">/// clients to use a separate API call to "realize" the decl. This should be</span></div>
+<div class="line"><a name="l01814"></a><span class="lineno"> 1814</span> <span class="comment">/// relatively painless since they would presumably only do it for top-level</span></div>
+<div class="line"><a name="l01815"></a><span class="lineno"> 1815</span> <span class="comment">/// decls.</span></div>
+<div class="line"><a name="l01816"></a><span class="lineno"><a class="code" href="ASTWriterDecl_8cpp.html#a7a64b01e42a9a9afcfd21e6da85450dd"> 1816</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="ASTWriterDecl_8cpp.html#a7a64b01e42a9a9afcfd21e6da85450dd">isRequiredDecl</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Decl.html">Decl</a> *D, <a class="code" href="classclang_1_1ASTContext.html" title="Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...">ASTContext</a> &<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>) {</div>
+<div class="line"><a name="l01817"></a><span class="lineno"> 1817</span>   <span class="comment">// An ObjCMethodDecl is never considered as "required" because its</span></div>
+<div class="line"><a name="l01818"></a><span class="lineno"> 1818</span>   <span class="comment">// implementation container always is.</span></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>   <span class="comment">// File scoped assembly or obj-c implementation must be seen.</span></div>
+<div class="line"><a name="l01821"></a><span class="lineno"> 1821</span>   <span class="keywordflow">if</span> (isa<FileScopeAsmDecl>(D) || isa<ObjCImplDecl>(D))</div>
+<div class="line"><a name="l01822"></a><span class="lineno"> 1822</span>     <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01823"></a><span class="lineno"> 1823</span> </div>
+<div class="line"><a name="l01824"></a><span class="lineno"> 1824</span>   <span class="keywordflow">return</span> Context.<a class="code" href="classclang_1_1ASTContext.html#a3b9cd9f4bc5349ff4afd1f98c6ceca28" title="Determines if the decl can be CodeGen'ed or deserialized from PCH lazily, only when used; this is onl...">DeclMustBeEmitted</a>(D);</div>
+<div class="line"><a name="l01825"></a><span class="lineno"> 1825</span> }</div>
+<div class="line"><a name="l01826"></a><span class="lineno"> 1826</span> </div>
+<div class="line"><a name="l01827"></a><span class="lineno"> 1827</span> <span class="keywordtype">void</span> ASTWriter::WriteDecl(<a class="code" href="classclang_1_1ASTContext.html" title="Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...">ASTContext</a> &<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, <a class="code" href="classclang_1_1Decl.html">Decl</a> *D) {</div>
+<div class="line"><a name="l01828"></a><span class="lineno"> 1828</span>   <span class="comment">// Switch case IDs are per Decl.</span></div>
+<div class="line"><a name="l01829"></a><span class="lineno"> 1829</span>   ClearSwitchCaseIDs();</div>
+<div class="line"><a name="l01830"></a><span class="lineno"> 1830</span> </div>
+<div class="line"><a name="l01831"></a><span class="lineno"> 1831</span>   RecordData Record;</div>
+<div class="line"><a name="l01832"></a><span class="lineno"> 1832</span>   <a class="code" href="classclang_1_1ASTDeclWriter.html">ASTDeclWriter</a> W(*<span class="keyword">this</span>, Context, Record);</div>
+<div class="line"><a name="l01833"></a><span class="lineno"> 1833</span> </div>
+<div class="line"><a name="l01834"></a><span class="lineno"> 1834</span>   <span class="comment">// Determine the ID for this declaration.</span></div>
+<div class="line"><a name="l01835"></a><span class="lineno"> 1835</span>   <a class="code" href="namespaceclang_1_1serialization.html#af3f9c681595246da4bb499bd210e7f36" title="An ID number that refers to a declaration in an AST file.">serialization::DeclID</a> <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>;</div>
+<div class="line"><a name="l01836"></a><span class="lineno"> 1836</span>   <span class="keywordflow">if</span> (D-><a class="code" href="classclang_1_1Decl.html#a65e7ee086555015067f692bb1c2036f7" title="Determine whether this declaration came from an AST file (such as a precompiled header or module) rat...">isFromASTFile</a>())</div>
+<div class="line"><a name="l01837"></a><span class="lineno"> 1837</span>     ID = getDeclID(D);</div>
+<div class="line"><a name="l01838"></a><span class="lineno"> 1838</span>   <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01839"></a><span class="lineno"> 1839</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> &IDR = DeclIDs[D];</div>
+<div class="line"><a name="l01840"></a><span class="lineno"> 1840</span>     <span class="keywordflow">if</span> (IDR == 0)</div>
+<div class="line"><a name="l01841"></a><span class="lineno"> 1841</span>       IDR = NextDeclID++;</div>
+<div class="line"><a name="l01842"></a><span class="lineno"> 1842</span>     </div>
+<div class="line"><a name="l01843"></a><span class="lineno"> 1843</span>     ID= IDR;</div>
+<div class="line"><a name="l01844"></a><span class="lineno"> 1844</span>   }</div>
+<div class="line"><a name="l01845"></a><span class="lineno"> 1845</span> </div>
+<div class="line"><a name="l01846"></a><span class="lineno"> 1846</span>   <span class="keywordtype">bool</span> isReplacingADecl = ID < FirstDeclID;</div>
+<div class="line"><a name="l01847"></a><span class="lineno"> 1847</span> </div>
+<div class="line"><a name="l01848"></a><span class="lineno"> 1848</span>   <span class="comment">// If this declaration is also a DeclContext, write blocks for the</span></div>
+<div class="line"><a name="l01849"></a><span class="lineno"> 1849</span>   <span class="comment">// declarations that lexically stored inside its context and those</span></div>
+<div class="line"><a name="l01850"></a><span class="lineno"> 1850</span>   <span class="comment">// declarations that are visible from its context. These blocks</span></div>
+<div class="line"><a name="l01851"></a><span class="lineno"> 1851</span>   <span class="comment">// are written before the declaration itself so that we can put</span></div>
+<div class="line"><a name="l01852"></a><span class="lineno"> 1852</span>   <span class="comment">// their offsets into the record for the declaration.</span></div>
+<div class="line"><a name="l01853"></a><span class="lineno"> 1853</span>   uint64_t LexicalOffset = 0;</div>
+<div class="line"><a name="l01854"></a><span class="lineno"> 1854</span>   uint64_t VisibleOffset = 0;</div>
+<div class="line"><a name="l01855"></a><span class="lineno"> 1855</span>   <a class="code" href="classclang_1_1DeclContext.html">DeclContext</a> *DC = dyn_cast<<a class="code" href="classclang_1_1DeclContext.html">DeclContext</a>>(D);</div>
+<div class="line"><a name="l01856"></a><span class="lineno"> 1856</span>   <span class="keywordflow">if</span> (DC) {</div>
+<div class="line"><a name="l01857"></a><span class="lineno"> 1857</span>     <span class="keywordflow">if</span> (isReplacingADecl) {</div>
+<div class="line"><a name="l01858"></a><span class="lineno"> 1858</span>       <span class="comment">// It is replacing a decl from a chained PCH; make sure that the</span></div>
+<div class="line"><a name="l01859"></a><span class="lineno"> 1859</span>       <span class="comment">// DeclContext is fully loaded.</span></div>
+<div class="line"><a name="l01860"></a><span class="lineno"> 1860</span>       <span class="keywordflow">if</span> (DC-><a class="code" href="classclang_1_1DeclContext.html#aa8dec740806276791eb26896b3ea8ffa" title="Whether this DeclContext has external storage containing additional declarations that are lexically i...">hasExternalLexicalStorage</a>())</div>
+<div class="line"><a name="l01861"></a><span class="lineno"> 1861</span>         DC->LoadLexicalDeclsFromExternalStorage();</div>
+<div class="line"><a name="l01862"></a><span class="lineno"> 1862</span>       <span class="keywordflow">if</span> (DC-><a class="code" href="classclang_1_1DeclContext.html#aa20a53d33583b1c82f0762070b2cf375" title="Whether this DeclContext has external storage containing additional declarations that are visible in ...">hasExternalVisibleStorage</a>())</div>
+<div class="line"><a name="l01863"></a><span class="lineno"> 1863</span>         Chain->completeVisibleDeclsMap(DC);</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>     LexicalOffset = WriteDeclContextLexicalBlock(Context, DC);</div>
+<div class="line"><a name="l01866"></a><span class="lineno"> 1866</span>     VisibleOffset = WriteDeclContextVisibleBlock(Context, DC);</div>
+<div class="line"><a name="l01867"></a><span class="lineno"> 1867</span>   }</div>
+<div class="line"><a name="l01868"></a><span class="lineno"> 1868</span>   </div>
+<div class="line"><a name="l01869"></a><span class="lineno"> 1869</span>   <span class="keywordflow">if</span> (isReplacingADecl) {</div>
+<div class="line"><a name="l01870"></a><span class="lineno"> 1870</span>     <span class="comment">// We're replacing a decl in a previous file.</span></div>
+<div class="line"><a name="l01871"></a><span class="lineno"> 1871</span>     ReplacedDecls.push_back(ReplacedDeclInfo(ID, Stream.GetCurrentBitNo(),</div>
+<div class="line"><a name="l01872"></a><span class="lineno"> 1872</span>                                              D-><a class="code" href="classclang_1_1Decl.html#a2348196ac4e0b1d5ebb1859c31b99eac">getLocation</a>()));</div>
+<div class="line"><a name="l01873"></a><span class="lineno"> 1873</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01874"></a><span class="lineno"> 1874</span>     <span class="keywordtype">unsigned</span> Index = ID - FirstDeclID;</div>
+<div class="line"><a name="l01875"></a><span class="lineno"> 1875</span> </div>
+<div class="line"><a name="l01876"></a><span class="lineno"> 1876</span>     <span class="comment">// Record the offset for this declaration</span></div>
+<div class="line"><a name="l01877"></a><span class="lineno"> 1877</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 = D-><a class="code" href="classclang_1_1Decl.html#a2348196ac4e0b1d5ebb1859c31b99eac">getLocation</a>();</div>
+<div class="line"><a name="l01878"></a><span class="lineno"> 1878</span>     <span class="keywordflow">if</span> (DeclOffsets.size() == Index)</div>
+<div class="line"><a name="l01879"></a><span class="lineno"> 1879</span>       DeclOffsets.push_back(<a class="code" href="structclang_1_1serialization_1_1DeclOffset.html" title="Source range/offset of a preprocessed entity.">DeclOffset</a>(Loc, Stream.GetCurrentBitNo()));</div>
+<div class="line"><a name="l01880"></a><span class="lineno"> 1880</span>     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (DeclOffsets.size() < Index) {</div>
+<div class="line"><a name="l01881"></a><span class="lineno"> 1881</span>       DeclOffsets.resize(Index+1);</div>
+<div class="line"><a name="l01882"></a><span class="lineno"> 1882</span>       DeclOffsets[Index].setLocation(Loc);</div>
+<div class="line"><a name="l01883"></a><span class="lineno"> 1883</span>       DeclOffsets[Index].BitOffset = Stream.GetCurrentBitNo();</div>
+<div class="line"><a name="l01884"></a><span class="lineno"> 1884</span>     }</div>
+<div class="line"><a name="l01885"></a><span class="lineno"> 1885</span>     </div>
+<div class="line"><a name="l01886"></a><span class="lineno"> 1886</span>     <a class="code" href="classclang_1_1SourceManager.html" title="This class handles loading and caching of source files into memory.">SourceManager</a> &<a class="code" href="AnalysisBasedWarnings_8cpp.html#afe4356a77609114d8df0bfc9c2b8701f">SM</a> = Context.<a class="code" href="classclang_1_1ASTContext.html#a091e2575135f7f9f1aeb25ba0090bfde">getSourceManager</a>();</div>
+<div class="line"><a name="l01887"></a><span class="lineno"> 1887</span>     <span class="keywordflow">if</span> (Loc.<a class="code" href="classclang_1_1SourceLocation.html#ad504978d83973770506b6ddb1d7b48f9" title="Return true if this is a valid SourceLocation object.">isValid</a>() && SM.<a class="code" href="classclang_1_1SourceManager.html#af1194356bbade1c672011d939b75ebd2" title="Returns true if Loc did not come from a PCH/Module.">isLocalSourceLocation</a>(Loc))</div>
+<div class="line"><a name="l01888"></a><span class="lineno"> 1888</span>       associateDeclWithFile(D, ID);</div>
+<div class="line"><a name="l01889"></a><span class="lineno"> 1889</span>   }</div>
+<div class="line"><a name="l01890"></a><span class="lineno"> 1890</span> </div>
+<div class="line"><a name="l01891"></a><span class="lineno"> 1891</span>   <span class="comment">// Build and emit a record for this declaration</span></div>
+<div class="line"><a name="l01892"></a><span class="lineno"> 1892</span>   Record.clear();</div>
+<div class="line"><a name="l01893"></a><span class="lineno"> 1893</span>   W.Code = (<a class="code" href="group__ASTAST.html#ga8ee85854f8c999f4dad34a2afccdc1cd" title="Record codes for each kind of declaration.">serialization::DeclCode</a>)0;</div>
+<div class="line"><a name="l01894"></a><span class="lineno"> 1894</span>   W.AbbrevToUse = 0;</div>
+<div class="line"><a name="l01895"></a><span class="lineno"> 1895</span>   W.Visit(D);</div>
+<div class="line"><a name="l01896"></a><span class="lineno"> 1896</span>   <span class="keywordflow">if</span> (DC) W.VisitDeclContext(DC, LexicalOffset, VisibleOffset);</div>
+<div class="line"><a name="l01897"></a><span class="lineno"> 1897</span> </div>
+<div class="line"><a name="l01898"></a><span class="lineno"> 1898</span>   <span class="keywordflow">if</span> (!W.Code)</div>
+<div class="line"><a name="l01899"></a><span class="lineno"> 1899</span>     llvm::report_fatal_error(StringRef(<span class="stringliteral">"unexpected declaration kind '"</span>) +</div>
+<div class="line"><a name="l01900"></a><span class="lineno"> 1900</span>                             D-><a class="code" href="classclang_1_1Decl.html#ab9ea2c2c1b8d56bb2631823e94eb094a">getDeclKindName</a>() + <span class="stringliteral">"'"</span>);</div>
+<div class="line"><a name="l01901"></a><span class="lineno"> 1901</span>   Stream.EmitRecord(W.Code, Record, W.AbbrevToUse);</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">// Flush any expressions that were written as part of this declaration.</span></div>
+<div class="line"><a name="l01904"></a><span class="lineno"> 1904</span>   FlushStmts();</div>
+<div class="line"><a name="l01905"></a><span class="lineno"> 1905</span>   </div>
+<div class="line"><a name="l01906"></a><span class="lineno"> 1906</span>   <span class="comment">// Flush C++ base specifiers, if there are any.</span></div>
+<div class="line"><a name="l01907"></a><span class="lineno"> 1907</span>   FlushCXXBaseSpecifiers();</div>
+<div class="line"><a name="l01908"></a><span class="lineno"> 1908</span>   </div>
+<div class="line"><a name="l01909"></a><span class="lineno"> 1909</span>   <span class="comment">// Note "external" declarations so that we can add them to a record in the</span></div>
+<div class="line"><a name="l01910"></a><span class="lineno"> 1910</span>   <span class="comment">// AST file later.</span></div>
+<div class="line"><a name="l01911"></a><span class="lineno"> 1911</span>   <span class="comment">//</span></div>
+<div class="line"><a name="l01912"></a><span class="lineno"> 1912</span>   <span class="comment">// FIXME: This should be renamed, the predicate is much more complicated.</span></div>
+<div class="line"><a name="l01913"></a><span class="lineno"> 1913</span>   <span class="keywordflow">if</span> (<a class="code" href="ASTWriterDecl_8cpp.html#a7a64b01e42a9a9afcfd21e6da85450dd">isRequiredDecl</a>(D, Context))</div>
+<div class="line"><a name="l01914"></a><span class="lineno"> 1914</span>     ExternalDefinitions.push_back(ID);</div>
+<div class="line"><a name="l01915"></a><span class="lineno"> 1915</span> }</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:18 for r$LatestRev$ by <a href="http://www.doxygen.org">Doxygen 
+1.8.3.1</a>.</p>
+<p class="footer">
+See the <a href="http://clang.llvm.org">Main Clang Web Page</a> for more 
+information.</p>
+</body>
+</html>

Added: www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ASTWriterDecl_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ASTWriterDecl_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ASTWriterDecl_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ASTWriterDecl_8d_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,570 @@
+<!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: ASTWriterDecl.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">ASTWriterDecl.d</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="ASTWriterDecl_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/ASTWriterDecl.o \</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/Release+Asserts/ASTWriterDecl.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>  ASTWriterDecl.cpp \</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Serialization/ASTWriter.h \</div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/ASTMutationListener.h \</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/SourceLocation.h \</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/LLVM.h \</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>  /home/tstellar/llvm/include/llvm/Support/Casting.h \</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>  /home/tstellar/llvm/include/llvm/Support/type_traits.h \</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>  /home/tstellar/llvm/include/llvm/Support/DataTypes.h \</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>  /home/tstellar/llvm/include/llvm/ADT/None.h \</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>  /home/tstellar/llvm/include/llvm/Support/Compiler.h \</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>  /home/tstellar/llvm/include/llvm/Config/llvm-config.h \</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>  /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h \</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/Decl.h \</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/APValue.h \</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>  /home/tstellar/llvm/include/llvm/ADT/APFloat.h \</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>  /home/tstellar/llvm/include/llvm/ADT/APInt.h \</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>  /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h \</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>  /home/tstellar/llvm/include/llvm/ADT/SmallVector.h \</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>  /home/tstellar/llvm/include/llvm/Support/AlignOf.h \</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>  /home/tstellar/llvm/include/llvm/Support/MathExtras.h \</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>  /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h \</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>  /home/tstellar/llvm/include/llvm/ADT/APSInt.h \</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>  /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h \</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>  /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h \</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclBase.h \</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/AttrIterator.h \</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclarationName.h \</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/IdentifierTable.h \</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/OperatorKinds.h \</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/OperatorKinds.def \</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/TokenKinds.h \</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/TokenKinds.def \</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>  /home/tstellar/llvm/include/llvm/ADT/SmallString.h \</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>  /home/tstellar/llvm/include/llvm/ADT/StringRef.h \</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>  /home/tstellar/llvm/include/llvm/ADT/StringMap.h \</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>  /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h \</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/PartialDiagnostic.h \</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/Diagnostic.h \</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/DiagnosticIDs.h \</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>  /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h \</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/DiagnosticCommonKinds.inc \</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/DiagnosticOptions.h \</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/DiagnosticOptions.def \</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMap.h \</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h \</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>  /home/tstellar/llvm/include/llvm/ADT/STLExtras.h \</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/<a class="code" href="namespaceclang.html#a78aadfeaf316ded55fdd2d1a9c8815b6" title="Describes the different kinds of linkage (C++ [basic.link], C99 6.2.2) that an entity may have...">Linkage</a>.h \</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/Specifiers.h \</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>  /home/tstellar/llvm/include/llvm/Support/PrettyStackTrace.h \</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclNodes.inc \</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/ExternalASTSource.h \</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/CharUnits.h \</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/Redeclarable.h \</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/Type.h \</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/NestedNameSpecifier.h \</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>  /home/tstellar/llvm/include/llvm/ADT/FoldingSet.h \</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/TemplateName.h \</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/<a class="code" href="namespaceclang.html#af8a91eed04532d5da41ef08e7c9c081e" title="The various types of exception specifications that exist in C++11.">ExceptionSpecificationType</a>.h \</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/<a class="code" href="namespaceclang.html#afbab15cd4aa598c4e6d9192f7ac4f102" title="Describes the different kinds of visibility that a declaration may have.">Visibility</a>.h \</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>  /home/tstellar/llvm/include/llvm/ADT/Optional.h \</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>  /home/tstellar/llvm/include/llvm/ADT/Twine.h \</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>  /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h \</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/TypeNodes.def \</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/BuiltinTypes.def \</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>  /home/tstellar/llvm/include/llvm/Support/raw_ostream.h \</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>  /home/tstellar/llvm/include/llvm/Support/FileSystem.h \</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>  /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h \</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>  /home/tstellar/llvm/include/llvm/Support/TimeValue.h \</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>  /home/tstellar/llvm/include/llvm/Support/system_error.h \</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/TemplateBase.h \</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/SemaConsumer.h \</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/ASTConsumer.h \</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Serialization/ASTBitCodes.h \</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>  /home/tstellar/llvm/include/llvm/Bitcode/BitCodes.h \</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Serialization/ASTDeserializationListener.h \</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>  /home/tstellar/llvm/include/llvm/ADT/DenseSet.h \</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>  /home/tstellar/llvm/include/llvm/ADT/MapVector.h \</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>  /home/tstellar/llvm/include/llvm/ADT/SetVector.h \</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>  /home/tstellar/llvm/include/llvm/ADT/SmallSet.h \</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>  /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.h \</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>  /home/tstellar/llvm/include/llvm/Bitcode/BitstreamWriter.h ASTCommon.h \</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/ASTContext.h \</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/ASTTypeTraits.h \</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/ASTFwd.h \</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/StmtNodes.inc \</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/Stmt.h \</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclGroup.h \</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/StmtIterator.h \</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/CapturedStmt.h \</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/TypeLoc.h \</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/TypeLocNodes.def \</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/CanonicalType.h \</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/CommentCommandTraits.h \</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/CommentOptions.h \</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/CommentCommandList.inc \</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/PrettyPrinter.h \</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/LangOptions.h \</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/ObjCRuntime.h \</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/VersionTuple.h \</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>  /home/tstellar/llvm/include/llvm/ADT/Triple.h \</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/Sanitizers.def \</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/LangOptions.def \</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/OpenCLExtensions.def \</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/RawCommentList.h \</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/SourceManager.h \</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/FileManager.h \</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/FileSystemOptions.h \</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>  /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h \</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>  /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h \</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>  /home/tstellar/llvm/include/llvm-c/Core.h \</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/AddressSpaces.h \</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>  /home/tstellar/llvm/include/llvm/ADT/TinyPtrVector.h \</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclCXX.h \</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/ASTUnresolvedSet.h \</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/ASTVector.h \</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/UnresolvedSet.h \</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclAccessPair.h \</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/Expr.h \</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/OperationKinds.h \</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/CharInfo.h \</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/TypeTraits.h \</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/Builtins.def \</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/ExprCXX.h \</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/ExpressionTraits.h \</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/Lambda.h \</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclContextInternals.h \</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclTemplate.h \</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclVisitor.h \</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclFriend.h \</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclObjC.h \</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</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="l00134"></a><span class="lineno">  134</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclOpenMP.h \</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Serialization/ASTReader.h \</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/Version.h \</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/Version.inc \</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</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="l00139"></a><span class="lineno">  139</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="l00140"></a><span class="lineno">  140</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="l00141"></a><span class="lineno">  141</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="l00142"></a><span class="lineno">  142</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/Module.h \</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>  /home/tstellar/llvm/include/llvm/ADT/StringSet.h \</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PreprocessingRecord.h \</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PPCallbacks.h \</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</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="l00147"></a><span class="lineno">  147</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="l00148"></a><span class="lineno">  148</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/ExternalSemaSource.h \</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/TypoCorrection.h \</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/DeclSpec.h \</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</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="l00152"></a><span class="lineno">  152</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/TemplateKinds.h \</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/AttributeList.h \</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/Ownership.h \</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/AttrParsedAttrList.inc \</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/Weak.h \</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Serialization/ContinuousRangeMap.h \</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Serialization/Module.h \</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>  /home/tstellar/llvm/include/llvm/Bitcode/BitstreamReader.h \</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>  /home/tstellar/llvm/include/llvm/Support/Endian.h \</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>  /home/tstellar/llvm/include/llvm/Support/Host.h \</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>  /home/tstellar/llvm/include/llvm/Support/StreamableMemoryObject.h \</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>  /home/tstellar/llvm/include/llvm/Support/DataStream.h \</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>  /home/tstellar/llvm/include/llvm/Support/MemoryObject.h \</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>  /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Serialization/ModuleManager.h</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span> </div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Serialization/ASTWriter.h:</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span> </div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/ASTMutationListener.h:</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> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/SourceLocation.h:</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span> </div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/LLVM.h:</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> /home/tstellar/llvm/include/llvm/Support/Casting.h:</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> /home/tstellar/llvm/include/llvm/Support/type_traits.h:</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span> </div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span> /home/tstellar/llvm/include/llvm/Support/DataTypes.h:</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> /home/tstellar/llvm/include/llvm/ADT/None.h:</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> /home/tstellar/llvm/include/llvm/Support/Compiler.h:</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span> </div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span> /home/tstellar/llvm/include/llvm/Config/llvm-config.h:</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> /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h:</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> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/Decl.h:</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span> </div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/APValue.h:</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span> </div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span> /home/tstellar/llvm/include/llvm/ADT/APFloat.h:</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span> </div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span> /home/tstellar/llvm/include/llvm/ADT/APInt.h:</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span> </div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span> /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h:</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span> </div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span> /home/tstellar/llvm/include/llvm/ADT/SmallVector.h:</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span> </div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span> /home/tstellar/llvm/include/llvm/Support/AlignOf.h:</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> /home/tstellar/llvm/include/llvm/Support/MathExtras.h:</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span> </div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span> /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h:</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span> </div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span> /home/tstellar/llvm/include/llvm/ADT/APSInt.h:</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span> </div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span> /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h:</div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span> </div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span> /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h:</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> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclBase.h:</div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span> </div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/AttrIterator.h:</div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span> </div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclarationName.h:</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> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/IdentifierTable.h:</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span> </div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/OperatorKinds.h:</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> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/OperatorKinds.def:</div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span> </div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/TokenKinds.h:</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span> </div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/TokenKinds.def:</div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span> </div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span> /home/tstellar/llvm/include/llvm/ADT/SmallString.h:</div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span> </div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span> /home/tstellar/llvm/include/llvm/ADT/StringRef.h:</div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span> </div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span> /home/tstellar/llvm/include/llvm/ADT/StringMap.h:</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> /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h:</div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span> </div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/PartialDiagnostic.h:</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> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/Diagnostic.h:</div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span> </div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/DiagnosticIDs.h:</div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span> </div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span> /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h:</div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span> </div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/DiagnosticCommonKinds.inc:</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> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/DiagnosticOptions.h:</div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span> </div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/DiagnosticOptions.def:</div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span> </div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span> /home/tstellar/llvm/include/llvm/ADT/DenseMap.h:</div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span> </div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span> /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h:</div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span> </div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span> /home/tstellar/llvm/include/llvm/ADT/STLExtras.h:</div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span> </div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</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="l00258"></a><span class="lineno">  258</span> </div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/Specifiers.h:</div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span> </div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span> /home/tstellar/llvm/include/llvm/Support/PrettyStackTrace.h:</div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span> </div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclNodes.inc:</div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span> </div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/ExternalASTSource.h:</div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span> </div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/CharUnits.h:</div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span> </div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/Redeclarable.h:</div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span> </div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/Type.h:</div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span> </div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/NestedNameSpecifier.h:</div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span> </div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span> /home/tstellar/llvm/include/llvm/ADT/FoldingSet.h:</div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span> </div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/TemplateName.h:</div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span> </div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</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="l00280"></a><span class="lineno">  280</span> </div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</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="l00282"></a><span class="lineno">  282</span> </div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span> /home/tstellar/llvm/include/llvm/ADT/Optional.h:</div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span> </div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span> /home/tstellar/llvm/include/llvm/ADT/Twine.h:</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> /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h:</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> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/TypeNodes.def:</div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span> </div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/BuiltinTypes.def:</div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span> </div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span> /home/tstellar/llvm/include/llvm/Support/raw_ostream.h:</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> /home/tstellar/llvm/include/llvm/Support/FileSystem.h:</div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span> </div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span> /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h:</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> /home/tstellar/llvm/include/llvm/Support/TimeValue.h:</div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span> </div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span> /home/tstellar/llvm/include/llvm/Support/system_error.h:</div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span> </div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/TemplateBase.h:</div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span> </div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/SemaConsumer.h:</div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span> </div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/ASTConsumer.h:</div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span> </div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Serialization/ASTBitCodes.h:</div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span> </div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span> /home/tstellar/llvm/include/llvm/Bitcode/BitCodes.h:</div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span> </div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Serialization/ASTDeserializationListener.h:</div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span> </div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span> /home/tstellar/llvm/include/llvm/ADT/DenseSet.h:</div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span> </div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span> /home/tstellar/llvm/include/llvm/ADT/MapVector.h:</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> /home/tstellar/llvm/include/llvm/ADT/SetVector.h:</div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span> </div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span> /home/tstellar/llvm/include/llvm/ADT/SmallSet.h:</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> /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.h:</div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span> </div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span> /home/tstellar/llvm/include/llvm/Bitcode/BitstreamWriter.h:</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> ASTCommon.h:</div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span> </div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/ASTContext.h:</div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span> </div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/ASTTypeTraits.h:</div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span> </div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/ASTFwd.h:</div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span> </div>
+<div class="line"><a name="l00335"></a><span class="lineno">  335</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/StmtNodes.inc:</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> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/Stmt.h:</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> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclGroup.h:</div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span> </div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/StmtIterator.h:</div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span> </div>
+<div class="line"><a name="l00343"></a><span class="lineno">  343</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/CapturedStmt.h:</div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span> </div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/TypeLoc.h:</div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span> </div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/TypeLocNodes.def:</div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span> </div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/CanonicalType.h:</div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span> </div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/CommentCommandTraits.h:</div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span> </div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/CommentOptions.h:</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> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/CommentCommandList.inc:</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> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/PrettyPrinter.h:</div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span> </div>
+<div class="line"><a name="l00359"></a><span class="lineno">  359</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/LangOptions.h:</div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span> </div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/ObjCRuntime.h:</div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span> </div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/VersionTuple.h:</div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span> </div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span> /home/tstellar/llvm/include/llvm/ADT/Triple.h:</div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span> </div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/Sanitizers.def:</div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span> </div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/LangOptions.def:</div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span> </div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/OpenCLExtensions.def:</div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span> </div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/RawCommentList.h:</div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span> </div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/SourceManager.h:</div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span> </div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/FileManager.h:</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> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/FileSystemOptions.h:</div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span> </div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span> /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h:</div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span> </div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span> /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h:</div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span> </div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span> /home/tstellar/llvm/include/llvm-c/Core.h:</div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span> </div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/AddressSpaces.h:</div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span> </div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span> /home/tstellar/llvm/include/llvm/ADT/TinyPtrVector.h:</div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span> </div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclCXX.h:</div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span> </div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/ASTUnresolvedSet.h:</div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span> </div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/ASTVector.h:</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> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/UnresolvedSet.h:</div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span> </div>
+<div class="line"><a name="l00399"></a><span class="lineno">  399</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclAccessPair.h:</div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span> </div>
+<div class="line"><a name="l00401"></a><span class="lineno">  401</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/Expr.h:</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> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/OperationKinds.h:</div>
+<div class="line"><a name="l00404"></a><span class="lineno">  404</span> </div>
+<div class="line"><a name="l00405"></a><span class="lineno">  405</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/CharInfo.h:</div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span> </div>
+<div class="line"><a name="l00407"></a><span class="lineno">  407</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/TypeTraits.h:</div>
+<div class="line"><a name="l00408"></a><span class="lineno">  408</span> </div>
+<div class="line"><a name="l00409"></a><span class="lineno">  409</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/Builtins.def:</div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span> </div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/ExprCXX.h:</div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span> </div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/ExpressionTraits.h:</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> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/Lambda.h:</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> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclContextInternals.h:</div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span> </div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclTemplate.h:</div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span> </div>
+<div class="line"><a name="l00421"></a><span class="lineno">  421</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclVisitor.h:</div>
+<div class="line"><a name="l00422"></a><span class="lineno">  422</span> </div>
+<div class="line"><a name="l00423"></a><span class="lineno">  423</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclFriend.h:</div>
+<div class="line"><a name="l00424"></a><span class="lineno">  424</span> </div>
+<div class="line"><a name="l00425"></a><span class="lineno">  425</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclObjC.h:</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> /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="l00428"></a><span class="lineno">  428</span> </div>
+<div class="line"><a name="l00429"></a><span class="lineno">  429</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/AST/DeclOpenMP.h:</div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span> </div>
+<div class="line"><a name="l00431"></a><span class="lineno">  431</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Serialization/ASTReader.h:</div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span> </div>
+<div class="line"><a name="l00433"></a><span class="lineno">  433</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/Version.h:</div>
+<div class="line"><a name="l00434"></a><span class="lineno">  434</span> </div>
+<div class="line"><a name="l00435"></a><span class="lineno">  435</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/Version.inc:</div>
+<div class="line"><a name="l00436"></a><span class="lineno">  436</span> </div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span> /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="l00438"></a><span class="lineno">  438</span> </div>
+<div class="line"><a name="l00439"></a><span class="lineno">  439</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="l00440"></a><span class="lineno">  440</span> </div>
+<div class="line"><a name="l00441"></a><span class="lineno">  441</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="l00442"></a><span class="lineno">  442</span> </div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</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="l00444"></a><span class="lineno">  444</span> </div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/Module.h:</div>
+<div class="line"><a name="l00446"></a><span class="lineno">  446</span> </div>
+<div class="line"><a name="l00447"></a><span class="lineno">  447</span> /home/tstellar/llvm/include/llvm/ADT/StringSet.h:</div>
+<div class="line"><a name="l00448"></a><span class="lineno">  448</span> </div>
+<div class="line"><a name="l00449"></a><span class="lineno">  449</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="l00450"></a><span class="lineno">  450</span> </div>
+<div class="line"><a name="l00451"></a><span class="lineno">  451</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="l00452"></a><span class="lineno">  452</span> </div>
+<div class="line"><a name="l00453"></a><span class="lineno">  453</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="l00454"></a><span class="lineno">  454</span> </div>
+<div class="line"><a name="l00455"></a><span class="lineno">  455</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="l00456"></a><span class="lineno">  456</span> </div>
+<div class="line"><a name="l00457"></a><span class="lineno">  457</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/ExternalSemaSource.h:</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> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/TypoCorrection.h:</div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span> </div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/DeclSpec.h:</div>
+<div class="line"><a name="l00462"></a><span class="lineno">  462</span> </div>
+<div class="line"><a name="l00463"></a><span class="lineno">  463</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="l00464"></a><span class="lineno">  464</span> </div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Basic/TemplateKinds.h:</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> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/AttributeList.h:</div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span> </div>
+<div class="line"><a name="l00469"></a><span class="lineno">  469</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/Ownership.h:</div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span> </div>
+<div class="line"><a name="l00471"></a><span class="lineno">  471</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/AttrParsedAttrList.inc:</div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span> </div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Sema/Weak.h:</div>
+<div class="line"><a name="l00474"></a><span class="lineno">  474</span> </div>
+<div class="line"><a name="l00475"></a><span class="lineno">  475</span> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Serialization/ContinuousRangeMap.h:</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> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Serialization/Module.h:</div>
+<div class="line"><a name="l00478"></a><span class="lineno">  478</span> </div>
+<div class="line"><a name="l00479"></a><span class="lineno">  479</span> /home/tstellar/llvm/include/llvm/Bitcode/BitstreamReader.h:</div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span> </div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span> /home/tstellar/llvm/include/llvm/Support/Endian.h:</div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span> </div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span> /home/tstellar/llvm/include/llvm/Support/Host.h:</div>
+<div class="line"><a name="l00484"></a><span class="lineno">  484</span> </div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span> /home/tstellar/llvm/include/llvm/Support/StreamableMemoryObject.h:</div>
+<div class="line"><a name="l00486"></a><span class="lineno">  486</span> </div>
+<div class="line"><a name="l00487"></a><span class="lineno">  487</span> /home/tstellar/llvm/include/llvm/Support/DataStream.h:</div>
+<div class="line"><a name="l00488"></a><span class="lineno">  488</span> </div>
+<div class="line"><a name="l00489"></a><span class="lineno">  489</span> /home/tstellar/llvm/include/llvm/Support/MemoryObject.h:</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> /home/tstellar/llvm/tools/clang/lib/Serialization/../../include/clang/Serialization/ModuleManager.h:</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:18 for r$LatestRev$ by <a href="http://www.doxygen.org">Doxygen 
+1.8.3.1</a>.</p>
+<p class="footer">
+See the <a href="http://clang.llvm.org">Main Clang Web Page</a> for more 
+information.</p>
+</body>
+</html>

Added: www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ASTWriterStmt_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ASTWriterStmt_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ASTWriterStmt_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ASTWriterStmt_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,1952 @@
+<!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: ASTWriterStmt.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">ASTWriterStmt.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="ASTWriterStmt_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">//===--- ASTWriterStmt.cpp - Statement and Expression Serialization -------===//</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">//                     The LLVM Compiler Infrastructure</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment">// This file is distributed under the University of Illinois Open Source</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">// License. See LICENSE.TXT for details.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span> <span class="comment">//===----------------------------------------------------------------------===//</span><span class="comment"></span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span> <span class="comment">/// \file</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="comment">/// \brief Implements serialization for Statements and Expressions.</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> <span class="comment"></span><span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> <span class="preprocessor">#include "<a class="code" href="ASTWriter_8h.html">clang/Serialization/ASTWriter.h</a>"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</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="l00017"></a><span class="lineno">   17</span> <span class="preprocessor">#include "<a class="code" href="DeclCXX_8h.html" title="Defines the C++ Decl subclasses, other than those for templates (found in DeclTemplate.h) and friends (in DeclFriend.h).">clang/AST/DeclCXX.h</a>"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="preprocessor">#include "<a class="code" href="DeclObjC_8h.html">clang/AST/DeclObjC.h</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="preprocessor">#include "<a class="code" href="DeclTemplate_8h.html" title="Defines the C++ template declaration subclasses.">clang/AST/DeclTemplate.h</a>"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="preprocessor">#include "<a class="code" href="StmtVisitor_8h.html">clang/AST/StmtVisitor.h</a>"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="preprocessor">#include "<a class="code" href="Token_8h.html">clang/Lex/Token.h</a>"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="preprocessor">#include "llvm/Bitcode/BitstreamWriter.h"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="keyword">using 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="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="comment">// Statement/expression serialization</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="keyword">namespace </span>clang {</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span> </div>
+<div class="line"><a name="l00031"></a><span class="lineno"><a class="code" href="classclang_1_1ASTStmtWriter.html">   31</a></span>   <span class="keyword">class </span><a class="code" href="classclang_1_1ASTStmtWriter.html">ASTStmtWriter</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1StmtVisitor.html">StmtVisitor</a><ASTStmtWriter, void> {</div>
+<div class="line"><a name="l00032"></a><span class="lineno"><a class="code" href="classclang_1_1ASTStmtWriter.html#ae56c6db561402a0148cf28beea9d5df9">   32</a></span>     <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classclang_1_1OMPClauseWriter.html">OMPClauseWriter</a>;</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>     <a class="code" href="classclang_1_1ASTWriter.html" title="Writes an AST file containing the contents of a translation unit.">ASTWriter</a> &Writer;</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>     <a class="code" href="classllvm_1_1SmallVector.html">ASTWriter::RecordData</a> &Record;</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">public</span>:</div>
+<div class="line"><a name="l00037"></a><span class="lineno"><a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">   37</a></span>     <a class="code" href="group__ASTAST.html#gab68acefcc947e7c17930046344f61d65" title="Record codes for each kind of statement or expression.">serialization::StmtCode</a> <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a>;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"><a class="code" href="classclang_1_1ASTStmtWriter.html#a3c1f897597d314df36206ae3dddce3bf">   38</a></span>     <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1ASTStmtWriter.html#a3c1f897597d314df36206ae3dddce3bf">AbbrevToUse</a>;</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span> </div>
+<div class="line"><a name="l00040"></a><span class="lineno"><a class="code" href="classclang_1_1ASTStmtWriter.html#af3f5130368bf7af0de3c6ca490acac5e">   40</a></span>     <a class="code" href="classclang_1_1ASTStmtWriter.html">ASTStmtWriter</a>(<a class="code" href="classclang_1_1ASTWriter.html" title="Writes an AST file containing the contents of a translation unit.">ASTWriter</a> &Writer, <a class="code" href="classllvm_1_1SmallVector.html">ASTWriter::RecordData</a> &Record)</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>       : Writer(Writer), Record(Record) { }</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span> </div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>     <span class="keywordtype">void</span> AddTemplateKWAndArgsInfo(<span class="keyword">const</span> <a class="code" href="structclang_1_1ASTTemplateKWAndArgsInfo.html" title="Extends ASTTemplateArgumentListInfo with the source location information for the template keyword; th...">ASTTemplateKWAndArgsInfo</a> &<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>);</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span> </div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>     <span class="keywordtype">void</span> VisitStmt(<a class="code" href="classclang_1_1Stmt.html">Stmt</a> *<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>);</div>
+<div class="line"><a name="l00046"></a><span class="lineno"><a class="code" href="ASTWriterStmt_8cpp.html#a912b3fea59d23ae35926932751a062a9">   46</a></span> <span class="preprocessor">#define STMT(Type, Base) \</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span> <span class="preprocessor">    void Visit##Type(Type *);</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span> <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="StmtNodes_8inc.html">clang/AST/StmtNodes.inc</a>"</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>   };</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span> }</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span> </div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTStmtWriter.html#a2d07106eb5d6d90d0cb49644ab083096">ASTStmtWriter::</a></div>
+<div class="line"><a name="l00053"></a><span class="lineno"><a class="code" href="classclang_1_1ASTStmtWriter.html#a2d07106eb5d6d90d0cb49644ab083096">   53</a></span> <a class="code" href="classclang_1_1ASTStmtWriter.html#a2d07106eb5d6d90d0cb49644ab083096">AddTemplateKWAndArgsInfo</a>(<span class="keyword">const</span> <a class="code" href="structclang_1_1ASTTemplateKWAndArgsInfo.html" title="Extends ASTTemplateArgumentListInfo with the source location information for the template keyword; th...">ASTTemplateKWAndArgsInfo</a> &<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>) {</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(Args.<a class="code" href="structclang_1_1ASTTemplateKWAndArgsInfo.html#a2265210ea5d26c1d5207f6d88bad56ae" title="Get the source location of the template keyword.">getTemplateKeywordLoc</a>(), Record);</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(Args.<a class="code" href="structclang_1_1ASTTemplateArgumentListInfo.html#a0b671f58dd0ae3f03bc373c1f10a21db" title="The source location of the left angle bracket ('<').">LAngleLoc</a>, Record);</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(Args.<a class="code" href="structclang_1_1ASTTemplateArgumentListInfo.html#a01f497faea4892b83792b19f5bc841b8" title="The source location of the right angle bracket ('>').">RAngleLoc</a>, Record);</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i=0; i != Args.<a class="code" href="structclang_1_1ASTTemplateArgumentListInfo.html#ae908711a8955cf8298257a35342fafe2" title="The number of template arguments in TemplateArgs. The actual template arguments (if any) are stored a...">NumTemplateArgs</a>; ++i)</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#aa0cf51090877033a94f219498ebd7701" title="Emits a template argument location.">AddTemplateArgumentLoc</a>(Args.<a class="code" href="structclang_1_1ASTTemplateArgumentListInfo.html#af40d5d31948b9f43765e31c4f192f951" title="Retrieve the template arguments.">getTemplateArgs</a>()[i], Record);</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span> }</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span> </div>
+<div class="line"><a name="l00061"></a><span class="lineno"><a class="code" href="classclang_1_1ASTStmtWriter.html#af4379f9b34f840c3f82041a095f68db2">   61</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ASTStmtWriter.html#af4379f9b34f840c3f82041a095f68db2">ASTStmtWriter::VisitStmt</a>(<a class="code" href="classclang_1_1Stmt.html">Stmt</a> *<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>) {</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span> }</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span> </div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitNullStmt(<a class="code" href="classclang_1_1NullStmt.html">NullStmt</a> *<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>) {</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#af4379f9b34f840c3f82041a095f68db2">VisitStmt</a>(S);</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(S-><a class="code" href="classclang_1_1NullStmt.html#a52cea0a10ce90bcac2866f84caf9556d">getSemiLoc</a>(), Record);</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>   Record.push_back(S->HasLeadingEmptyMacro);</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65abdd9cd9b919b7cd8944314bcd93b7699" title="A NullStmt record.">serialization::STMT_NULL</a>;</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="keywordtype">void</span> ASTStmtWriter::VisitCompoundStmt(<a class="code" href="classclang_1_1CompoundStmt.html">CompoundStmt</a> *S) {</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#af4379f9b34f840c3f82041a095f68db2">VisitStmt</a>(S);</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>   Record.push_back(S-><a class="code" href="classclang_1_1CompoundStmt.html#ae21de9600246442f0360846b0db134ef">size</a>());</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>   <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1Stmt.html">CompoundStmt::body_iterator</a> CS = S-><a class="code" href="classclang_1_1CompoundStmt.html#a89f494cf13b72531e81c7b9a87db22a7">body_begin</a>(), CSEnd = S-><a class="code" href="classclang_1_1CompoundStmt.html#a5bc934fe5cf3477500b1824a7e0d4db2">body_end</a>();</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>        CS != CSEnd; ++CS)</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(*CS);</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(S-><a class="code" href="classclang_1_1CompoundStmt.html#a69c302ef8b8c4aa524e48e018503ec15">getLBracLoc</a>(), Record);</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(S-><a class="code" href="classclang_1_1CompoundStmt.html#a5a3ec9cd066b7f7f5acf887794dcba36">getRBracLoc</a>(), Record);</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65a6b9795d06baac13b414064446df08cf7" title="A CompoundStmt record.">serialization::STMT_COMPOUND</a>;</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span> }</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span> </div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitSwitchCase(<a class="code" href="classclang_1_1SwitchCase.html">SwitchCase</a> *S) {</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#af4379f9b34f840c3f82041a095f68db2">VisitStmt</a>(S);</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>   Record.push_back(Writer.<a class="code" href="classclang_1_1ASTWriter.html#a39675d070a23859aa4d807d8ef84ce85" title="Retrieve the ID for the given switch-case statement.">getSwitchCaseID</a>(S));</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(S-><a class="code" href="classclang_1_1SwitchCase.html#a490a65d8024265f53ba82ad0ec13ff9d">getKeywordLoc</a>(), Record);</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(S-><a class="code" href="classclang_1_1SwitchCase.html#af0e81c84e5bae1f4cd85e81ee5c9ad60">getColonLoc</a>(), Record);</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span> }</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span> </div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitCaseStmt(<a class="code" href="classclang_1_1CaseStmt.html">CaseStmt</a> *S) {</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>   VisitSwitchCase(S);</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(S-><a class="code" href="classclang_1_1CaseStmt.html#a8188cfacff6e4d7aaeb709a5a4a80a9e">getLHS</a>());</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(S-><a class="code" href="classclang_1_1CaseStmt.html#a96cfe2aca9a2248a0f493f9e172de2e1">getRHS</a>());</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(S-><a class="code" href="classclang_1_1CaseStmt.html#ab70a2320faa389853019c92f5c16893f">getSubStmt</a>());</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(S-><a class="code" href="classclang_1_1CaseStmt.html#a47dc682ec667be4f5a95b940e145dd78">getEllipsisLoc</a>(), Record);</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65aa30d667708194ccd847bb34cf1252b26" title="A CaseStmt record.">serialization::STMT_CASE</a>;</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span> }</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> <span class="keywordtype">void</span> ASTStmtWriter::VisitDefaultStmt(<a class="code" href="classclang_1_1DefaultStmt.html">DefaultStmt</a> *S) {</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>   VisitSwitchCase(S);</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(S-><a class="code" href="classclang_1_1DefaultStmt.html#a93439cb38f4eda6444b29ddef016d09d">getSubStmt</a>());</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65abb4e636e77bd014c852e56a37edacb50" title="A DefaultStmt record.">serialization::STMT_DEFAULT</a>;</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span> }</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span> </div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitLabelStmt(<a class="code" href="classclang_1_1LabelStmt.html">LabelStmt</a> *S) {</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#af4379f9b34f840c3f82041a095f68db2">VisitStmt</a>(S);</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#afaee50073b062fcd0481d85db29e7331" title="Emit a reference to a declaration.">AddDeclRef</a>(S-><a class="code" href="classclang_1_1LabelStmt.html#aa89c84a63448fb6fd6bf149516e1492c">getDecl</a>(), Record);</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(S-><a class="code" href="classclang_1_1LabelStmt.html#adeb5f693b5baff78c96e8d5078914800">getSubStmt</a>());</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(S-><a class="code" href="classclang_1_1LabelStmt.html#ad485ae408b3d51f2d8d97a13ff48c252">getIdentLoc</a>(), Record);</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65acc4118572905843cc37d8e876e838d30" title="A LabelStmt record.">serialization::STMT_LABEL</a>;</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span> }</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span> </div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitAttributedStmt(<a class="code" href="classclang_1_1AttributedStmt.html" title="Represents an attribute applied to a statement.">AttributedStmt</a> *S) {</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#af4379f9b34f840c3f82041a095f68db2">VisitStmt</a>(S);</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>   Record.push_back(S-><a class="code" href="classclang_1_1AttributedStmt.html#a1e4e61ca0bd76d5852e3a4b919941f63">getAttrs</a>().size());</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>   Writer.WriteAttributes(S-><a class="code" href="classclang_1_1AttributedStmt.html#a1e4e61ca0bd76d5852e3a4b919941f63">getAttrs</a>(), Record);</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(S-><a class="code" href="classclang_1_1AttributedStmt.html#ac0fbe9c10afca866c17cd8f085017379">getSubStmt</a>());</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(S-><a class="code" href="classclang_1_1AttributedStmt.html#ae48c33c99ac75a51bdc752ce2d72a352">getAttrLoc</a>(), Record);</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65a71d16fa2cfc5d3b171e96a5f6c243695" title="An AttributedStmt record.">serialization::STMT_ATTRIBUTED</a>;</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> </div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitIfStmt(<a class="code" href="classclang_1_1IfStmt.html">IfStmt</a> *S) {</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#af4379f9b34f840c3f82041a095f68db2">VisitStmt</a>(S);</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#afaee50073b062fcd0481d85db29e7331" title="Emit a reference to a declaration.">AddDeclRef</a>(S-><a class="code" href="classclang_1_1IfStmt.html#a7da455bed7eac4f380689cf7d5a2122b" title="Retrieve the variable declared in this "if" statement, if any.">getConditionVariable</a>(), Record);</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(S-><a class="code" href="classclang_1_1IfStmt.html#a2abf6bc9a2b3d4c8f1c90f49e9baa81d">getCond</a>());</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(S-><a class="code" href="classclang_1_1IfStmt.html#adc5d1594ff597deaa6d431ce45fa8c96">getThen</a>());</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(S-><a class="code" href="classclang_1_1IfStmt.html#a799cbc371f3c02319d779040c9b3ceae">getElse</a>());</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(S-><a class="code" href="classclang_1_1IfStmt.html#a93d730b0ff4091211ab9a1233dccbeed">getIfLoc</a>(), Record);</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(S-><a class="code" href="classclang_1_1IfStmt.html#aff779d495908d38d6bdb99d4c5e7e9fd">getElseLoc</a>(), Record);</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65a28df8ce1989ba1cfc511ec8f2b2dc3e3" title="An IfStmt record.">serialization::STMT_IF</a>;</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> <span class="keywordtype">void</span> ASTStmtWriter::VisitSwitchStmt(<a class="code" href="classclang_1_1SwitchStmt.html">SwitchStmt</a> *S) {</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#af4379f9b34f840c3f82041a095f68db2">VisitStmt</a>(S);</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#afaee50073b062fcd0481d85db29e7331" title="Emit a reference to a declaration.">AddDeclRef</a>(S-><a class="code" href="classclang_1_1SwitchStmt.html#add328aa8e549b60b247000ee8b4395be" title="Retrieve the variable declared in this "switch" statement, if any.">getConditionVariable</a>(), Record);</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(S-><a class="code" href="classclang_1_1SwitchStmt.html#a7404791c1f6c98cca9a60f681c6f9d32">getCond</a>());</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(S-><a class="code" href="classclang_1_1SwitchStmt.html#abeb106525d0882bd067091b5cb6779cc">getBody</a>());</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(S-><a class="code" href="classclang_1_1SwitchStmt.html#a1be60deba4219d61ba9f80928945761e">getSwitchLoc</a>(), Record);</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>   Record.push_back(S-><a class="code" href="classclang_1_1SwitchStmt.html#a0dcf3f43ccd2a171088055bcb8196fcd">isAllEnumCasesCovered</a>());</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>   <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1SwitchCase.html">SwitchCase</a> *SC = S-><a class="code" href="classclang_1_1SwitchStmt.html#ace9b2bce71bc2eb328253001c230f011">getSwitchCaseList</a>(); SC;</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>        SC = SC-><a class="code" href="classclang_1_1SwitchCase.html#ac260de1f5de7d9e5c5cba896d7f2813f">getNextSwitchCase</a>())</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>     Record.push_back(Writer.<a class="code" href="classclang_1_1ASTWriter.html#ab0088b93bfb6304382aa44f1319e7336" title="Record an ID for the given switch-case statement.">RecordSwitchCaseID</a>(SC));</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65adf86643d6edde521194a118e56d251cc" title="A SwitchStmt record.">serialization::STMT_SWITCH</a>;</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span> }</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span> </div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitWhileStmt(<a class="code" href="classclang_1_1WhileStmt.html">WhileStmt</a> *S) {</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#af4379f9b34f840c3f82041a095f68db2">VisitStmt</a>(S);</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#afaee50073b062fcd0481d85db29e7331" title="Emit a reference to a declaration.">AddDeclRef</a>(S-><a class="code" href="classclang_1_1WhileStmt.html#a28042c05ca3cfc7b58b2a4aa2a39c93e" title="Retrieve the variable declared in this "while" statement, if any.">getConditionVariable</a>(), Record);</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(S-><a class="code" href="classclang_1_1WhileStmt.html#abd95f2d5428c8a78d0815130ca9f3f13">getCond</a>());</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(S-><a class="code" href="classclang_1_1WhileStmt.html#ab7929ea3f57d21b62e0027b757ff038c">getBody</a>());</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(S-><a class="code" href="classclang_1_1WhileStmt.html#a9287898a1c63f7047b0fbd57fc747871">getWhileLoc</a>(), Record);</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65a3898aa96d90df2769b0afe3d55cd4004" title="A WhileStmt record.">serialization::STMT_WHILE</a>;</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span> }</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span> </div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitDoStmt(<a class="code" href="classclang_1_1DoStmt.html">DoStmt</a> *S) {</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#af4379f9b34f840c3f82041a095f68db2">VisitStmt</a>(S);</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(S-><a class="code" href="classclang_1_1DoStmt.html#a0bb1ed03c538eb146c0bdbca4b5df5a3">getCond</a>());</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(S-><a class="code" href="classclang_1_1DoStmt.html#abe217d4623575f61d8bced562d1aaf39">getBody</a>());</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(S-><a class="code" href="classclang_1_1DoStmt.html#a04499f4e92af3eb0c6ffae645cb8ca02">getDoLoc</a>(), Record);</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(S-><a class="code" href="classclang_1_1DoStmt.html#aa86137dc0c67304bd9405a55b6f28d6c">getWhileLoc</a>(), Record);</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(S-><a class="code" href="classclang_1_1DoStmt.html#a682fa49bd3e399fc4c49dd6f1037cfeb">getRParenLoc</a>(), Record);</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65a26921c564cb14bf66bd5234a8e539bc5" title="A DoStmt record.">serialization::STMT_DO</a>;</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span> }</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span> </div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitForStmt(<a class="code" href="classclang_1_1ForStmt.html">ForStmt</a> *S) {</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#af4379f9b34f840c3f82041a095f68db2">VisitStmt</a>(S);</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(S-><a class="code" href="classclang_1_1ForStmt.html#ae4fc309b84b57a02376a02fd36c1d836">getInit</a>());</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(S-><a class="code" href="classclang_1_1ForStmt.html#adfc65a829fed9bf7fdf39c1ad7c141fa">getCond</a>());</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#afaee50073b062fcd0481d85db29e7331" title="Emit a reference to a declaration.">AddDeclRef</a>(S-><a class="code" href="classclang_1_1ForStmt.html#a43f4d356baa047f895978ddc8d64fee0" title="Retrieve the variable declared in this "for" statement, if any.">getConditionVariable</a>(), Record);</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(S-><a class="code" href="classclang_1_1ForStmt.html#a1862e5a9ace98ddef0075b43820d9528">getInc</a>());</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(S-><a class="code" href="classclang_1_1ForStmt.html#a6f73f050185a05d2492a48d3e0673094">getBody</a>());</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(S-><a class="code" href="classclang_1_1ForStmt.html#a24e20e9218e6916ca5c1e043bd722364">getForLoc</a>(), Record);</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(S-><a class="code" href="classclang_1_1ForStmt.html#a9acf0fc02f3d106bbd2f866f3ec10aa8">getLParenLoc</a>(), Record);</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(S-><a class="code" href="classclang_1_1ForStmt.html#a9e35fefd2456152a2923ab7636167244">getRParenLoc</a>(), Record);</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65a70728ba4195bec253f065dedce9730d6" title="A ForStmt record.">serialization::STMT_FOR</a>;</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span> }</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span> </div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitGotoStmt(<a class="code" href="classclang_1_1GotoStmt.html">GotoStmt</a> *S) {</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#af4379f9b34f840c3f82041a095f68db2">VisitStmt</a>(S);</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#afaee50073b062fcd0481d85db29e7331" title="Emit a reference to a declaration.">AddDeclRef</a>(S-><a class="code" href="classclang_1_1GotoStmt.html#a9c28589a30beb1b70426fc6b4cac56b9">getLabel</a>(), Record);</div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(S-><a class="code" href="classclang_1_1GotoStmt.html#a47698a65bce95b82cf112645b825fc75">getGotoLoc</a>(), Record);</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(S-><a class="code" href="classclang_1_1GotoStmt.html#a377443376822e44551c0cf287adf2a6c">getLabelLoc</a>(), Record);</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65a7f083295a854746af7a6f00c7752ac2c" title="A GotoStmt record.">serialization::STMT_GOTO</a>;</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span> }</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span> </div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitIndirectGotoStmt(<a class="code" href="classclang_1_1IndirectGotoStmt.html">IndirectGotoStmt</a> *S) {</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#af4379f9b34f840c3f82041a095f68db2">VisitStmt</a>(S);</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(S-><a class="code" href="classclang_1_1IndirectGotoStmt.html#a961f5488ec5852d6f8c388e08e829c0d">getGotoLoc</a>(), Record);</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(S-><a class="code" href="classclang_1_1IndirectGotoStmt.html#a4587d6f8fdbf38a54640a3d38cf17e46">getStarLoc</a>(), Record);</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(S-><a class="code" href="classclang_1_1IndirectGotoStmt.html#a17f33bbbb62f278aaa255ec77de2a07c">getTarget</a>());</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65aff506f63c4b562c56de8f6b3978bb07d" title="An IndirectGotoStmt record.">serialization::STMT_INDIRECT_GOTO</a>;</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span> }</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span> </div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitContinueStmt(<a class="code" href="classclang_1_1ContinueStmt.html">ContinueStmt</a> *S) {</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#af4379f9b34f840c3f82041a095f68db2">VisitStmt</a>(S);</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(S-><a class="code" href="classclang_1_1ContinueStmt.html#ae25096af280f9a475d1c35a2b469a881">getContinueLoc</a>(), Record);</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65a605f814dac396fd59100b1124259f70f" title="A ContinueStmt record.">serialization::STMT_CONTINUE</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> </div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitBreakStmt(<a class="code" href="classclang_1_1BreakStmt.html">BreakStmt</a> *S) {</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#af4379f9b34f840c3f82041a095f68db2">VisitStmt</a>(S);</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(S-><a class="code" href="classclang_1_1BreakStmt.html#aafdab5a61828611b7c1d0067a9d55ef0">getBreakLoc</a>(), Record);</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65aedf6ba0fb135af879f91bfaf308b8e5e" title="A BreakStmt record.">serialization::STMT_BREAK</a>;</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> </div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitReturnStmt(<a class="code" href="classclang_1_1ReturnStmt.html">ReturnStmt</a> *S) {</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#af4379f9b34f840c3f82041a095f68db2">VisitStmt</a>(S);</div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(S-><a class="code" href="classclang_1_1ReturnStmt.html#a7de01dadd6eeb10fae138e97d7a8edc7">getRetValue</a>());</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(S-><a class="code" href="classclang_1_1ReturnStmt.html#a85a5d946c188a63d823fc10762855546">getReturnLoc</a>(), Record);</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#afaee50073b062fcd0481d85db29e7331" title="Emit a reference to a declaration.">AddDeclRef</a>(S-><a class="code" href="classclang_1_1ReturnStmt.html#a3844a724c5e82f49a09b1074edbdc68b" title="Retrieve the variable that might be used for the named return value optimization.">getNRVOCandidate</a>(), Record);</div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65a5ae1a922cb82140b5239f77171718124" title="A ReturnStmt record.">serialization::STMT_RETURN</a>;</div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span> }</div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span> </div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitDeclStmt(<a class="code" href="classclang_1_1DeclStmt.html">DeclStmt</a> *S) {</div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#af4379f9b34f840c3f82041a095f68db2">VisitStmt</a>(S);</div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(S-><a class="code" href="classclang_1_1DeclStmt.html#ac09fbe4e859cf4e759412750adff1666">getStartLoc</a>(), Record);</div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(S-><a class="code" href="classclang_1_1DeclStmt.html#a5be41b4a0630560ae06f74405921299e">getEndLoc</a>(), Record);</div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span>   <a class="code" href="classclang_1_1DeclGroupRef.html">DeclGroupRef</a> DG = S-><a class="code" href="classclang_1_1DeclStmt.html#acaee6c9e4658630ee22a50405ce1a187">getDeclGroup</a>();</div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>   <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1Decl.html">DeclGroupRef::iterator</a> D = DG.<a class="code" href="classclang_1_1DeclGroupRef.html#a6992d5c8adb23509dbdd5f0c6e302a39">begin</a>(), DEnd = DG.<a class="code" href="classclang_1_1DeclGroupRef.html#a6a4708b4425390f3d2c2f002a765e413">end</a>(); D != DEnd; ++D)</div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#afaee50073b062fcd0481d85db29e7331" title="Emit a reference to a declaration.">AddDeclRef</a>(*D, Record);</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65ae0af889ca44bd1aaab7500ef44a115f4" title="A DeclStmt record.">serialization::STMT_DECL</a>;</div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span> }</div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span> </div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitAsmStmt(<a class="code" href="classclang_1_1AsmStmt.html">AsmStmt</a> *S) {</div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#af4379f9b34f840c3f82041a095f68db2">VisitStmt</a>(S);</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>   Record.push_back(S-><a class="code" href="classclang_1_1AsmStmt.html#a932f490fb6bd45a87b52e8205dd99b4e">getNumOutputs</a>());</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>   Record.push_back(S-><a class="code" href="classclang_1_1AsmStmt.html#ae746b964e34edabd4d1b905e0095d955">getNumInputs</a>());</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>   Record.push_back(S-><a class="code" href="classclang_1_1AsmStmt.html#ab5acb433ebe05d4a56fb84c735d052f3">getNumClobbers</a>());</div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(S-><a class="code" href="classclang_1_1AsmStmt.html#ad0664c87db9a38ab3d9ee1c10b227807">getAsmLoc</a>(), Record);</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span>   Record.push_back(S-><a class="code" href="classclang_1_1AsmStmt.html#a37278a65e788129bbf92f5c6f09a8186">isVolatile</a>());</div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span>   Record.push_back(S-><a class="code" href="classclang_1_1AsmStmt.html#ae908b2b71cc01309d4dcfd13ee1ab92a">isSimple</a>());</div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span> }</div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span> </div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitGCCAsmStmt(<a class="code" href="classclang_1_1GCCAsmStmt.html">GCCAsmStmt</a> *S) {</div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>   VisitAsmStmt(S);</div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(S-><a class="code" href="classclang_1_1GCCAsmStmt.html#a7501368561d5bd9901d8ab266aa58bf8">getRParenLoc</a>(), Record);</div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(S-><a class="code" href="classclang_1_1GCCAsmStmt.html#a4f3c666c1c99d4f66e8969ca36edaf1a">getAsmString</a>());</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="comment">// Outputs</span></div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = S-><a class="code" href="classclang_1_1AsmStmt.html#a932f490fb6bd45a87b52e8205dd99b4e">getNumOutputs</a>(); I != N; ++I) {      </div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#a91ebff830b2425b103f7be4747359495" title="Emit a reference to an identifier.">AddIdentifierRef</a>(S-><a class="code" href="classclang_1_1GCCAsmStmt.html#a2a497914dd2f7deb6324e167ef6417f7">getOutputIdentifier</a>(I), Record);</div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(S-><a class="code" href="classclang_1_1GCCAsmStmt.html#ae1e57ca698c0580f471d09ddc954bffd">getOutputConstraintLiteral</a>(I));</div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(S-><a class="code" href="classclang_1_1GCCAsmStmt.html#ac62057b9dae47bc5e260be28e7898a51">getOutputExpr</a>(I));</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> </div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span>   <span class="comment">// Inputs</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = S-><a class="code" href="classclang_1_1AsmStmt.html#ae746b964e34edabd4d1b905e0095d955">getNumInputs</a>(); I != N; ++I) {</div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#a91ebff830b2425b103f7be4747359495" title="Emit a reference to an identifier.">AddIdentifierRef</a>(S-><a class="code" href="classclang_1_1GCCAsmStmt.html#a4d15d2e7c7d4a938eaaccc9e57920dd9">getInputIdentifier</a>(I), Record);</div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(S-><a class="code" href="classclang_1_1GCCAsmStmt.html#a0e120ec053a662e9a72f60d770486b5c">getInputConstraintLiteral</a>(I));</div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(S-><a class="code" href="classclang_1_1GCCAsmStmt.html#adcbe76a680c09def45d56b21336cc8f5">getInputExpr</a>(I));</div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span>   }</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>   <span class="comment">// Clobbers</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = S-><a class="code" href="classclang_1_1AsmStmt.html#ab5acb433ebe05d4a56fb84c735d052f3">getNumClobbers</a>(); I != N; ++I)</div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(S-><a class="code" href="classclang_1_1GCCAsmStmt.html#ae838f0e69f371acf05ba123537c31130">getClobberStringLiteral</a>(I));</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>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65a36f31e403001685fef606e05f5b51fb7" title="A GCC-style AsmStmt record.">serialization::STMT_GCCASM</a>;</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> </div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitMSAsmStmt(<a class="code" href="classclang_1_1MSAsmStmt.html">MSAsmStmt</a> *S) {</div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span>   VisitAsmStmt(S);</div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(S-><a class="code" href="classclang_1_1MSAsmStmt.html#aae227c3e83b2aaa766b0b14bc51bd072">getLBraceLoc</a>(), Record);</div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(S-><a class="code" href="classclang_1_1MSAsmStmt.html#afd7a1136aa59ff4783161e22f02bedfd">getEndLoc</a>(), Record);</div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span>   Record.push_back(S-><a class="code" href="classclang_1_1MSAsmStmt.html#ae1609f352c09abbb739ee98325dff1a6">getNumAsmToks</a>());</div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a70ad062608ce12b8440561cf633d9942" title="Add a string to the given record.">AddString</a>(S-><a class="code" href="classclang_1_1MSAsmStmt.html#ac51e462b8152aa3e7f691dab4c35c2e3">getAsmString</a>(), Record);</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>   <span class="comment">// Tokens</span></div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = S-><a class="code" href="classclang_1_1MSAsmStmt.html#ae1609f352c09abbb739ee98325dff1a6">getNumAsmToks</a>(); I != N; ++I) {</div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#ad46f517d124b7bce0befe48d21722e29" title="Emit a token.">AddToken</a>(S-><a class="code" href="classclang_1_1MSAsmStmt.html#af42b761402530182c4d4bb4fb2b8a2e5">getAsmToks</a>()[I], Record);</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> </div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span>   <span class="comment">// Clobbers</span></div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = S-><a class="code" href="classclang_1_1AsmStmt.html#ab5acb433ebe05d4a56fb84c735d052f3">getNumClobbers</a>(); I != N; ++I) {</div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#a70ad062608ce12b8440561cf633d9942" title="Add a string to the given record.">AddString</a>(S-><a class="code" href="classclang_1_1MSAsmStmt.html#acc3b7769334cd9a2eeea076a18597263">getClobber</a>(I), Record);</div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span>   }</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>   <span class="comment">// Outputs</span></div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = S-><a class="code" href="classclang_1_1AsmStmt.html#a932f490fb6bd45a87b52e8205dd99b4e">getNumOutputs</a>(); I != N; ++I) {      </div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(S-><a class="code" href="classclang_1_1MSAsmStmt.html#a0f3377ea2ccfdadc01dc4af4380746dd">getOutputExpr</a>(I));</div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#a70ad062608ce12b8440561cf633d9942" title="Add a string to the given record.">AddString</a>(S-><a class="code" href="classclang_1_1MSAsmStmt.html#aaab4166691ab4403b89052ac330542e2">getOutputConstraint</a>(I), Record);</div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span>   }</div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span> </div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span>   <span class="comment">// Inputs</span></div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = S-><a class="code" href="classclang_1_1AsmStmt.html#ae746b964e34edabd4d1b905e0095d955">getNumInputs</a>(); I != N; ++I) {</div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(S-><a class="code" href="classclang_1_1MSAsmStmt.html#afba64c9a1224e36c2bcc53410c676a15">getInputExpr</a>(I));</div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#a70ad062608ce12b8440561cf633d9942" title="Add a string to the given record.">AddString</a>(S-><a class="code" href="classclang_1_1MSAsmStmt.html#ac662504391a5e892be76b7d1ccc89e73">getInputConstraint</a>(I), Record);</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> </div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65aaa74ebeb6b5aadb401a2987babfd5ef0" title="A MS-style AsmStmt record.">serialization::STMT_MSASM</a>;</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> </div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitCapturedStmt(<a class="code" href="classclang_1_1CapturedStmt.html" title="This captures a statement into a function. For example, the following pragma annotated compound state...">CapturedStmt</a> *S) {</div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#af4379f9b34f840c3f82041a095f68db2">VisitStmt</a>(S);</div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span>   <span class="comment">// NumCaptures</span></div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span>   Record.push_back(std::distance(S-><a class="code" href="classclang_1_1CapturedStmt.html#aa33c320f36e4b541a7729234524589f7" title="Retrieve an iterator pointing to the first capture.">capture_begin</a>(), S-><a class="code" href="classclang_1_1CapturedStmt.html#aad076f0963a5acff2b103bd054884524" title="Retrieve an iterator pointing past the end of the sequence of captures.">capture_end</a>()));</div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span> </div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span>   <span class="comment">// CapturedDecl and captured region kind</span></div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#afaee50073b062fcd0481d85db29e7331" title="Emit a reference to a declaration.">AddDeclRef</a>(S-><a class="code" href="classclang_1_1CapturedStmt.html#a960a5bd4305398bb0ba8a1efc36989aa" title="Retrieve the outlined function declaration.">getCapturedDecl</a>(), Record);</div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span>   Record.push_back(S-><a class="code" href="classclang_1_1CapturedStmt.html#a07b3d10f13c707690e898e71a00345d0" title="Retrieve the captured region kind.">getCapturedRegionKind</a>());</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>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#afaee50073b062fcd0481d85db29e7331" title="Emit a reference to a declaration.">AddDeclRef</a>(S-><a class="code" href="classclang_1_1CapturedStmt.html#a2f409a989ad3689bd7739a98cc6c4f2f" title="Retrieve the record declaration for captured variables.">getCapturedRecordDecl</a>(), Record);</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">// Capture inits</span></div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span>   <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1Expr.html">CapturedStmt::capture_init_iterator</a> I = S-><a class="code" href="classclang_1_1CapturedStmt.html#a610a2d9a1e298de36a22a890af4bd922" title="Retrieve the first initialization argument.">capture_init_begin</a>(),</div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span>                                            E = S-><a class="code" href="classclang_1_1CapturedStmt.html#a6783aa0df938371b7fa1ee9f5d73c803" title="Retrieve the iterator pointing one past the last initialization argument.">capture_init_end</a>();</div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span>        I != E; ++I)</div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(*I);</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>   <span class="comment">// Body</span></div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(S-><a class="code" href="classclang_1_1CapturedStmt.html#ae8ade9cc59759ca1e39d7bb9d0a76f9f" title="Retrieve the statement being captured.">getCapturedStmt</a>());</div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span> </div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span>   <span class="comment">// Captures</span></div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span>   <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1CapturedStmt_1_1Capture.html" title="Describes the capture of either a variable or 'this'.">CapturedStmt::capture_iterator</a> I = S-><a class="code" href="classclang_1_1CapturedStmt.html#aa33c320f36e4b541a7729234524589f7" title="Retrieve an iterator pointing to the first capture.">capture_begin</a>(),</div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span>                                       E = S-><a class="code" href="classclang_1_1CapturedStmt.html#aad076f0963a5acff2b103bd054884524" title="Retrieve an iterator pointing past the end of the sequence of captures.">capture_end</a>();</div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span>        I != E; ++I) {</div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span>     <span class="keywordflow">if</span> (I->capturesThis())</div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span>       Writer.<a class="code" href="classclang_1_1ASTWriter.html#afaee50073b062fcd0481d85db29e7331" title="Emit a reference to a declaration.">AddDeclRef</a>(0, Record);</div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span>     <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span>       Writer.<a class="code" href="classclang_1_1ASTWriter.html#afaee50073b062fcd0481d85db29e7331" title="Emit a reference to a declaration.">AddDeclRef</a>(I->getCapturedVar(), Record);</div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span>     Record.push_back(I->getCaptureKind());</div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(I->getLocation(), Record);</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> </div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65a32c7aec3df847c7a73662f8c624a7036" title="A CapturedStmt record.">serialization::STMT_CAPTURED</a>;</div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span> }</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> <span class="keywordtype">void</span> ASTStmtWriter::VisitExpr(<a class="code" href="classclang_1_1Expr.html">Expr</a> *E) {</div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#af4379f9b34f840c3f82041a095f68db2">VisitStmt</a>(E);</div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a9e2f9e2524f06212afa9fab0d0531dfd" title="Emit a reference to a type.">AddTypeRef</a>(E-><a class="code" href="classclang_1_1Expr.html#a3dd8850a4ad8a5b5f595dd9e9446187b">getType</a>(), Record);</div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span>   Record.push_back(E-><a class="code" href="classclang_1_1Expr.html#a48cd7038510f42d44e314d1b8d294824">isTypeDependent</a>());</div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span>   Record.push_back(E-><a class="code" href="classclang_1_1Expr.html#a34f1652a9072dfd3c7119d23e1a14fa5">isValueDependent</a>());</div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span>   Record.push_back(E-><a class="code" href="classclang_1_1Expr.html#ae6915a41dbc08e0c2ce21ab7e4dc6e6c" title="Whether this expression is instantiation-dependent, meaning that it depends in some way on a template...">isInstantiationDependent</a>());</div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span>   Record.push_back(E-><a class="code" href="classclang_1_1Expr.html#a14a5a1832255ac167153e7389e70ecfd" title="Whether this expression contains an unexpanded parameter pack (for C++11 variadic templates)...">containsUnexpandedParameterPack</a>());</div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span>   Record.push_back(E-><a class="code" href="classclang_1_1Expr.html#aacbe243ee99ac093e4eba5e40d6a9edb" title="getValueKind - The value kind that this expression produces.">getValueKind</a>());</div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span>   Record.push_back(E-><a class="code" href="classclang_1_1Expr.html#a6fd3892ddf8334fc9b311daaa93a27f5">getObjectKind</a>());</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> </div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitPredefinedExpr(<a class="code" href="classclang_1_1PredefinedExpr.html" title="PredefinedExpr - [C99 6.4.2.2] - A predefined identifier such as func.">PredefinedExpr</a> *E) {</div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span>   VisitExpr(E);</div>
+<div class="line"><a name="l00339"></a><span class="lineno">  339</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1PredefinedExpr.html#aedb3c8713aed875117f2f47096ec6afc">getLocation</a>(), Record);</div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span>   Record.push_back(E-><a class="code" href="classclang_1_1PredefinedExpr.html#a3bf41fb240534802584e70cd8f4edd30">getIdentType</a>()); <span class="comment">// FIXME: stable encoding</span></div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65a61de87232b53b50a0ece32ad02208b1e" title="A PredefinedExpr record.">serialization::EXPR_PREDEFINED</a>;</div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span> }</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> <span class="keywordtype">void</span> ASTStmtWriter::VisitDeclRefExpr(<a class="code" href="classclang_1_1DeclRefExpr.html" title="A reference to a declared variable, function, enum, etc. [C99 6.5.1p2].">DeclRefExpr</a> *E) {</div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span>   VisitExpr(E);</div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span> </div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span>   Record.push_back(E-><a class="code" href="classclang_1_1DeclRefExpr.html#ab790630e8b2e9e490b86cb5e6ea1c35a" title="Determine whether this declaration reference was preceded by a C++ nested-name-specifier, e.g., N::foo.">hasQualifier</a>());</div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span>   Record.push_back(E-><a class="code" href="classclang_1_1DeclRefExpr.html#a22eec021070f5d0733e90b6c5c127a25">getDecl</a>() != E-><a class="code" href="classclang_1_1DeclRefExpr.html#a97b341b0280572b1058c7b09e18ee4cf" title="Get the NamedDecl through which this reference occurred.">getFoundDecl</a>());</div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span>   Record.push_back(E-><a class="code" href="classclang_1_1DeclRefExpr.html#a093aaddaead472b1925af5c9c9c23495">hasTemplateKWAndArgsInfo</a>());</div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span>   Record.push_back(E-><a class="code" href="classclang_1_1DeclRefExpr.html#af1a88fea117aad0eef3d20e0a879b082" title="Returns true if this expression refers to a function that was resolved from an overloaded set having ...">hadMultipleCandidates</a>());</div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span>   Record.push_back(E-><a class="code" href="classclang_1_1DeclRefExpr.html#a771346de459eacc4867cf6d6740c75b8">refersToEnclosingLocal</a>());</div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span> </div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span>   <span class="keywordflow">if</span> (E-><a class="code" href="classclang_1_1DeclRefExpr.html#a093aaddaead472b1925af5c9c9c23495">hasTemplateKWAndArgsInfo</a>()) {</div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span>     <span class="keywordtype">unsigned</span> NumTemplateArgs = E-><a class="code" href="classclang_1_1DeclRefExpr.html#a6c6408dbf7d4583386c4c15b2852735a" title="Retrieve the number of template arguments provided as part of this template-id.">getNumTemplateArgs</a>();</div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span>     Record.push_back(NumTemplateArgs);</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">  358</span>   <a class="code" href="classclang_1_1DeclarationName.html#a9ab322d434446b43379d39e41af5cbe3" title="NameKind - The kind of name this object contains.">DeclarationName::NameKind</a> nk = (E-><a class="code" href="classclang_1_1DeclRefExpr.html#a22eec021070f5d0733e90b6c5c127a25">getDecl</a>()-><a class="code" href="classclang_1_1NamedDecl.html#a1e3e90455be89bb5c7c23640cbbd7153">getDeclName</a>().<a class="code" href="classclang_1_1DeclarationName.html#a3e722af81dd4b5670e834b20f47ba94b" title="getNameKind - Determine what kind of name this is.">getNameKind</a>());</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>   <span class="keywordflow">if</span> ((!E-><a class="code" href="classclang_1_1DeclRefExpr.html#a093aaddaead472b1925af5c9c9c23495">hasTemplateKWAndArgsInfo</a>()) && (!E-><a class="code" href="classclang_1_1DeclRefExpr.html#ab790630e8b2e9e490b86cb5e6ea1c35a" title="Determine whether this declaration reference was preceded by a C++ nested-name-specifier, e.g., N::foo.">hasQualifier</a>()) &&</div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span>       (E-><a class="code" href="classclang_1_1DeclRefExpr.html#a22eec021070f5d0733e90b6c5c127a25">getDecl</a>() == E-><a class="code" href="classclang_1_1DeclRefExpr.html#a97b341b0280572b1058c7b09e18ee4cf" title="Get the NamedDecl through which this reference occurred.">getFoundDecl</a>()) &&</div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span>       nk == <a class="code" href="classclang_1_1DeclarationName.html#a9ab322d434446b43379d39e41af5cbe3a244f43949d88869f4d8782e758f5bac8">DeclarationName::Identifier</a>) {</div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span>     <a class="code" href="classclang_1_1ASTStmtWriter.html#a3c1f897597d314df36206ae3dddce3bf">AbbrevToUse</a> = Writer.<a class="code" href="classclang_1_1ASTWriter.html#a6c377128c63e244e4c68e866c550a25a">getDeclRefExprAbbrev</a>();</div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span>   }</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>   <span class="keywordflow">if</span> (E-><a class="code" href="classclang_1_1DeclRefExpr.html#ab790630e8b2e9e490b86cb5e6ea1c35a" title="Determine whether this declaration reference was preceded by a C++ nested-name-specifier, e.g., N::foo.">hasQualifier</a>())</div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#a56148750b4cf442e6b271da1a17ef73a" title="Emit a nested name specifier with source-location information.">AddNestedNameSpecifierLoc</a>(E-><a class="code" href="classclang_1_1DeclRefExpr.html#aa9be2986f6c7cf13e6327a2c417a47f0" title="If the name was qualified, retrieves the nested-name-specifier that precedes the name, with source-location information.">getQualifierLoc</a>(), Record);</div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span> </div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span>   <span class="keywordflow">if</span> (E-><a class="code" href="classclang_1_1DeclRefExpr.html#a22eec021070f5d0733e90b6c5c127a25">getDecl</a>() != E-><a class="code" href="classclang_1_1DeclRefExpr.html#a97b341b0280572b1058c7b09e18ee4cf" title="Get the NamedDecl through which this reference occurred.">getFoundDecl</a>())</div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#afaee50073b062fcd0481d85db29e7331" title="Emit a reference to a declaration.">AddDeclRef</a>(E-><a class="code" href="classclang_1_1DeclRefExpr.html#a97b341b0280572b1058c7b09e18ee4cf" title="Get the NamedDecl through which this reference occurred.">getFoundDecl</a>(), Record);</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>   <span class="keywordflow">if</span> (E-><a class="code" href="classclang_1_1DeclRefExpr.html#a093aaddaead472b1925af5c9c9c23495">hasTemplateKWAndArgsInfo</a>())</div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span>     <a class="code" href="classclang_1_1ASTStmtWriter.html#a2d07106eb5d6d90d0cb49644ab083096">AddTemplateKWAndArgsInfo</a>(*E-><a class="code" href="classclang_1_1DeclRefExpr.html#a415cc88f4b438d040e72eb6312be1390" title="Return the optional template keyword and arguments info.">getTemplateKWAndArgsInfo</a>());</div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span> </div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#afaee50073b062fcd0481d85db29e7331" title="Emit a reference to a declaration.">AddDeclRef</a>(E-><a class="code" href="classclang_1_1DeclRefExpr.html#a22eec021070f5d0733e90b6c5c127a25">getDecl</a>(), Record);</div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1DeclRefExpr.html#ab4616545c45fc9569eb99471396361b9">getLocation</a>(), Record);</div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#aa7ec4ecc9d0f7ad7efc9a074fec2d1dd">AddDeclarationNameLoc</a>(E->DNLoc, E-><a class="code" href="classclang_1_1DeclRefExpr.html#a22eec021070f5d0733e90b6c5c127a25">getDecl</a>()-><a class="code" href="classclang_1_1NamedDecl.html#a1e3e90455be89bb5c7c23640cbbd7153">getDeclName</a>(), Record);</div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65abfa3a34ca1851ae00d66d7ae767ca1e3" title="A DeclRefExpr record.">serialization::EXPR_DECL_REF</a>;</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> </div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitIntegerLiteral(<a class="code" href="classclang_1_1IntegerLiteral.html">IntegerLiteral</a> *E) {</div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span>   VisitExpr(E);</div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1IntegerLiteral.html#ad6bec6e7dfedecd7cca739d3179efdd5" title="Retrieve the location of the literal.">getLocation</a>(), Record);</div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a6829f10dd40398d081ea8b0505716bee" title="Emit an integral value.">AddAPInt</a>(E-><a class="code" href="classclang_1_1APIntStorage.html#a2e483ee266dda1302a3bb4ef6ceab5a9">getValue</a>(), Record);</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>   <span class="keywordflow">if</span> (E-><a class="code" href="classclang_1_1APIntStorage.html#a2e483ee266dda1302a3bb4ef6ceab5a9">getValue</a>().getBitWidth() == 32) {</div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span>     <a class="code" href="classclang_1_1ASTStmtWriter.html#a3c1f897597d314df36206ae3dddce3bf">AbbrevToUse</a> = Writer.<a class="code" href="classclang_1_1ASTWriter.html#aab6885e9be3b4f74e4ba2f573501e645">getIntegerLiteralAbbrev</a>();</div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span>   }</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>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65ad29a63b1a0c93540b8f0c72f6b38952c" title="An IntegerLiteral record.">serialization::EXPR_INTEGER_LITERAL</a>;</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> </div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitFloatingLiteral(<a class="code" href="classclang_1_1FloatingLiteral.html">FloatingLiteral</a> *E) {</div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span>   VisitExpr(E);</div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span>   Record.push_back(E-><a class="code" href="classclang_1_1FloatingLiteral.html#a85f579016b58f48471c49667943d4d04">getRawSemantics</a>());</div>
+<div class="line"><a name="l00396"></a><span class="lineno">  396</span>   Record.push_back(E-><a class="code" href="classclang_1_1FloatingLiteral.html#aa3b4dfb8461e049e471da588cd2208ef">isExact</a>());</div>
+<div class="line"><a name="l00397"></a><span class="lineno">  397</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#aee3cf9145aa06eb033827fd510cf0e2d" title="Emit a floating-point value.">AddAPFloat</a>(E-><a class="code" href="classclang_1_1FloatingLiteral.html#abd8fbf2605c142c303083b99de2557d3">getValue</a>(), Record);</div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1FloatingLiteral.html#a59ba1debc34144aba97adf107086e16b">getLocation</a>(), Record);</div>
+<div class="line"><a name="l00399"></a><span class="lineno">  399</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65ab5601bb946fff9f98e4fa1a27825515a" title="A FloatingLiteral record.">serialization::EXPR_FLOATING_LITERAL</a>;</div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span> }</div>
+<div class="line"><a name="l00401"></a><span class="lineno">  401</span> </div>
+<div class="line"><a name="l00402"></a><span class="lineno">  402</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitImaginaryLiteral(<a class="code" href="classclang_1_1ImaginaryLiteral.html">ImaginaryLiteral</a> *E) {</div>
+<div class="line"><a name="l00403"></a><span class="lineno">  403</span>   VisitExpr(E);</div>
+<div class="line"><a name="l00404"></a><span class="lineno">  404</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(E-><a class="code" href="classclang_1_1ImaginaryLiteral.html#a7322766e392b031711373159ec23e119">getSubExpr</a>());</div>
+<div class="line"><a name="l00405"></a><span class="lineno">  405</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65a3758f1508dd7c65abddaee55ee94795e" title="An ImaginaryLiteral record.">serialization::EXPR_IMAGINARY_LITERAL</a>;</div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span> }</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> <span class="keywordtype">void</span> ASTStmtWriter::VisitStringLiteral(<a class="code" href="classclang_1_1StringLiteral.html">StringLiteral</a> *E) {</div>
+<div class="line"><a name="l00409"></a><span class="lineno">  409</span>   VisitExpr(E);</div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span>   Record.push_back(E-><a class="code" href="classclang_1_1StringLiteral.html#a1509ebfcf424c3234a084282f445c3e6">getByteLength</a>());</div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span>   Record.push_back(E-><a class="code" href="classclang_1_1StringLiteral.html#ad4768f2ffce70bf93afea2e2f9c80471">getNumConcatenated</a>());</div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span>   Record.push_back(E-><a class="code" href="classclang_1_1StringLiteral.html#a4cd7dc9166f3226b46ec4314eb9063af">getKind</a>());</div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</span>   Record.push_back(E-><a class="code" href="classclang_1_1StringLiteral.html#af0866682e8a69c080fc280f33878e2c6">isPascal</a>());</div>
+<div class="line"><a name="l00414"></a><span class="lineno">  414</span>   <span class="comment">// FIXME: String data should be stored as a blob at the end of the</span></div>
+<div class="line"><a name="l00415"></a><span class="lineno">  415</span>   <span class="comment">// StringLiteral. However, we can't do so now because we have no</span></div>
+<div class="line"><a name="l00416"></a><span class="lineno">  416</span>   <span class="comment">// provision for coping with abbreviations when we're jumping around</span></div>
+<div class="line"><a name="l00417"></a><span class="lineno">  417</span>   <span class="comment">// the AST file during deserialization.</span></div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span>   Record.append(E-><a class="code" href="classclang_1_1StringLiteral.html#ac610f51a12e7f18be455179877b8e9c2">getBytes</a>().begin(), E-><a class="code" href="classclang_1_1StringLiteral.html#ac610f51a12e7f18be455179877b8e9c2">getBytes</a>().end());</div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = E-><a class="code" href="classclang_1_1StringLiteral.html#ad4768f2ffce70bf93afea2e2f9c80471">getNumConcatenated</a>(); I != N; ++I)</div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1StringLiteral.html#a70bba0d378413d6a0610a5f64e5d162c">getStrTokenLoc</a>(I), Record);</div>
+<div class="line"><a name="l00421"></a><span class="lineno">  421</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65a2db564d270fc15a7119dbe72478c3aec" title="A StringLiteral record.">serialization::EXPR_STRING_LITERAL</a>;</div>
+<div class="line"><a name="l00422"></a><span class="lineno">  422</span> }</div>
+<div class="line"><a name="l00423"></a><span class="lineno">  423</span> </div>
+<div class="line"><a name="l00424"></a><span class="lineno">  424</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitCharacterLiteral(<a class="code" href="classclang_1_1CharacterLiteral.html">CharacterLiteral</a> *E) {</div>
+<div class="line"><a name="l00425"></a><span class="lineno">  425</span>   VisitExpr(E);</div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span>   Record.push_back(E-><a class="code" href="classclang_1_1CharacterLiteral.html#a7cf792977bc8a5b9d1719236e52e350c">getValue</a>());</div>
+<div class="line"><a name="l00427"></a><span class="lineno">  427</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1CharacterLiteral.html#afb68d60925a8eac73529401d080ac6da">getLocation</a>(), Record);</div>
+<div class="line"><a name="l00428"></a><span class="lineno">  428</span>   Record.push_back(E-><a class="code" href="classclang_1_1CharacterLiteral.html#aaedcb499dc23172233cc47b6691dd67f">getKind</a>());</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>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a3c1f897597d314df36206ae3dddce3bf">AbbrevToUse</a> = Writer.<a class="code" href="classclang_1_1ASTWriter.html#a2dc5710b45b4c8f1004dd30c82394832">getCharacterLiteralAbbrev</a>();</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>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65a4b83b925e522441c956cb22b327c2749" title="A CharacterLiteral record.">serialization::EXPR_CHARACTER_LITERAL</a>;</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">  435</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitParenExpr(<a class="code" href="classclang_1_1ParenExpr.html">ParenExpr</a> *E) {</div>
+<div class="line"><a name="l00436"></a><span class="lineno">  436</span>   VisitExpr(E);</div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1ParenExpr.html#a5534a909d5d763818a125f0fd30270d6" title="Get the location of the left parentheses '('.">getLParen</a>(), Record);</div>
+<div class="line"><a name="l00438"></a><span class="lineno">  438</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1ParenExpr.html#a0343e648dfb087cf408ec516cb186f95" title="Get the location of the right parentheses ')'.">getRParen</a>(), Record);</div>
+<div class="line"><a name="l00439"></a><span class="lineno">  439</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(E-><a class="code" href="classclang_1_1ParenExpr.html#afd9e25d5ae91df9ada9e26b74b60422b">getSubExpr</a>());</div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65ac9178914fd229547ccbd2a960419f68e" title="A ParenExpr record.">serialization::EXPR_PAREN</a>;</div>
+<div class="line"><a name="l00441"></a><span class="lineno">  441</span> }</div>
+<div class="line"><a name="l00442"></a><span class="lineno">  442</span> </div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitParenListExpr(<a class="code" href="classclang_1_1ParenListExpr.html">ParenListExpr</a> *E) {</div>
+<div class="line"><a name="l00444"></a><span class="lineno">  444</span>   VisitExpr(E);</div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span>   Record.push_back(E->NumExprs);</div>
+<div class="line"><a name="l00446"></a><span class="lineno">  446</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i=0; i != E->NumExprs; ++i)</div>
+<div class="line"><a name="l00447"></a><span class="lineno">  447</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(E->Exprs[i]);</div>
+<div class="line"><a name="l00448"></a><span class="lineno">  448</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E->LParenLoc, Record);</div>
+<div class="line"><a name="l00449"></a><span class="lineno">  449</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E->RParenLoc, Record);</div>
+<div class="line"><a name="l00450"></a><span class="lineno">  450</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65a674c4335bbb537bef378c57797d5b10d" title="A ParenListExpr record.">serialization::EXPR_PAREN_LIST</a>;</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> </div>
+<div class="line"><a name="l00453"></a><span class="lineno">  453</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitUnaryOperator(<a class="code" href="classclang_1_1UnaryOperator.html">UnaryOperator</a> *E) {</div>
+<div class="line"><a name="l00454"></a><span class="lineno">  454</span>   VisitExpr(E);</div>
+<div class="line"><a name="l00455"></a><span class="lineno">  455</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(E-><a class="code" href="classclang_1_1UnaryOperator.html#a64fdf148f4f40ae0a35e2bc7e0bfac10">getSubExpr</a>());</div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span>   Record.push_back(E-><a class="code" href="classclang_1_1UnaryOperator.html#a4fceff35ff6b7f186590155fa21df48b">getOpcode</a>()); <span class="comment">// FIXME: stable encoding</span></div>
+<div class="line"><a name="l00457"></a><span class="lineno">  457</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1UnaryOperator.html#a0fa25f2d735fdc9ee601228c5bd4ad68" title="getOperatorLoc - Return the location of the operator.">getOperatorLoc</a>(), Record);</div>
+<div class="line"><a name="l00458"></a><span class="lineno">  458</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65afac0e038f0631082dace432ad2008c2c" title="A UnaryOperator record.">serialization::EXPR_UNARY_OPERATOR</a>;</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> </div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitOffsetOfExpr(<a class="code" href="classclang_1_1OffsetOfExpr.html">OffsetOfExpr</a> *E) {</div>
+<div class="line"><a name="l00462"></a><span class="lineno">  462</span>   VisitExpr(E);</div>
+<div class="line"><a name="l00463"></a><span class="lineno">  463</span>   Record.push_back(E-><a class="code" href="classclang_1_1OffsetOfExpr.html#a60b308dd07d2995e2e89369865828ed6">getNumComponents</a>());</div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</span>   Record.push_back(E-><a class="code" href="classclang_1_1OffsetOfExpr.html#a1e7583642eb70ef65817d5642160a985">getNumExpressions</a>());</div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1OffsetOfExpr.html#a8097217a17284664dbcc8ef7e642c4a3" title="getOperatorLoc - Return the location of the operator.">getOperatorLoc</a>(), Record);</div>
+<div class="line"><a name="l00466"></a><span class="lineno">  466</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1OffsetOfExpr.html#abfaa338d37f94471b769f49b3ea90ff3" title="Return the location of the right parentheses.">getRParenLoc</a>(), Record);</div>
+<div class="line"><a name="l00467"></a><span class="lineno">  467</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#af1cf266346d5bf16ffa56a2e00508cb3" title="Emits a reference to a declarator info.">AddTypeSourceInfo</a>(E-><a class="code" href="classclang_1_1OffsetOfExpr.html#af9cbc9c1bfd2718c71897de759a8b712">getTypeSourceInfo</a>(), Record);</div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = E-><a class="code" href="classclang_1_1OffsetOfExpr.html#a60b308dd07d2995e2e89369865828ed6">getNumComponents</a>(); I != N; ++I) {</div>
+<div class="line"><a name="l00469"></a><span class="lineno">  469</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1OffsetOfExpr_1_1OffsetOfNode.html">OffsetOfExpr::OffsetOfNode</a> &ON = E-><a class="code" href="classclang_1_1OffsetOfExpr.html#acac1a1531e6ae11d202494ab8082f75e">getComponent</a>(I);</div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span>     Record.push_back(ON.<a class="code" href="classclang_1_1OffsetOfExpr_1_1OffsetOfNode.html#a64d4e6c5970c305ce2a9021354bf948a" title="Determine what kind of offsetof node this is.">getKind</a>()); <span class="comment">// FIXME: Stable encoding</span></div>
+<div class="line"><a name="l00471"></a><span class="lineno">  471</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(ON.<a class="code" href="classclang_1_1OffsetOfExpr_1_1OffsetOfNode.html#a36f12c507026795d03aa8e4dd8787a4d" title="Retrieve the source range that covers this offsetof node.">getSourceRange</a>().<a class="code" href="classclang_1_1SourceRange.html#a890dff14560eb9aceb08be18dfe74208">getBegin</a>(), Record);</div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(ON.<a class="code" href="classclang_1_1OffsetOfExpr_1_1OffsetOfNode.html#a36f12c507026795d03aa8e4dd8787a4d" title="Retrieve the source range that covers this offsetof node.">getSourceRange</a>().<a class="code" href="classclang_1_1SourceRange.html#a982d28235ad96ce81b3e8144b7b245c0">getEnd</a>(), Record);</div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span>     <span class="keywordflow">switch</span> (ON.<a class="code" href="classclang_1_1OffsetOfExpr_1_1OffsetOfNode.html#a64d4e6c5970c305ce2a9021354bf948a" title="Determine what kind of offsetof node this is.">getKind</a>()) {</div>
+<div class="line"><a name="l00474"></a><span class="lineno">  474</span>     <span class="keywordflow">case</span> <a class="code" href="classclang_1_1OffsetOfExpr_1_1OffsetOfNode.html#a69cd6b0d43a15c8eb59f58a870679a5aa0248cc6e1b578faeaf38e1407e7b401f" title="An index into an array.">OffsetOfExpr::OffsetOfNode::Array</a>:</div>
+<div class="line"><a name="l00475"></a><span class="lineno">  475</span>       Record.push_back(ON.<a class="code" href="classclang_1_1OffsetOfExpr_1_1OffsetOfNode.html#a930c486170f468e14f24531ea7e7a08d" title="For an array element node, returns the index into the array of expressions.">getArrayExprIndex</a>());</div>
+<div class="line"><a name="l00476"></a><span class="lineno">  476</span>       <span class="keywordflow">break</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">  478</span>     <span class="keywordflow">case</span> <a class="code" href="classclang_1_1OffsetOfExpr_1_1OffsetOfNode.html#a69cd6b0d43a15c8eb59f58a870679a5aa857cf8e702d44631ad43e2e77a7ea307" title="A field.">OffsetOfExpr::OffsetOfNode::Field</a>:</div>
+<div class="line"><a name="l00479"></a><span class="lineno">  479</span>       Writer.<a class="code" href="classclang_1_1ASTWriter.html#afaee50073b062fcd0481d85db29e7331" title="Emit a reference to a declaration.">AddDeclRef</a>(ON.<a class="code" href="classclang_1_1OffsetOfExpr_1_1OffsetOfNode.html#a6a0d18d6fc8e8c5d21f25a30abef92bc" title="For a field offsetof node, returns the field.">getField</a>(), Record);</div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span>       <span class="keywordflow">break</span>;</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>     <span class="keywordflow">case</span> <a class="code" href="classclang_1_1OffsetOfExpr_1_1OffsetOfNode.html#a69cd6b0d43a15c8eb59f58a870679a5aa9dc210a69ad5a5f8dcaf9fedaba33747" title="A field in a dependent type, known only by its name.">OffsetOfExpr::OffsetOfNode::Identifier</a>:</div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span>       Writer.<a class="code" href="classclang_1_1ASTWriter.html#a91ebff830b2425b103f7be4747359495" title="Emit a reference to an identifier.">AddIdentifierRef</a>(ON.<a class="code" href="classclang_1_1OffsetOfExpr_1_1OffsetOfNode.html#ab518d7dc8948f86d5c144e5154103cb4" title="For a field or identifier offsetof node, returns the name of the field.">getFieldName</a>(), Record);</div>
+<div class="line"><a name="l00484"></a><span class="lineno">  484</span>       <span class="keywordflow">break</span>;</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>     <span class="keywordflow">case</span> <a class="code" href="classclang_1_1OffsetOfExpr_1_1OffsetOfNode.html#a69cd6b0d43a15c8eb59f58a870679a5aa5f2a710e8647367697f9aeccf4d01bcf" title="An implicit indirection through a C++ base class, when the field found is in a base class...">OffsetOfExpr::OffsetOfNode::Base</a>:</div>
+<div class="line"><a name="l00487"></a><span class="lineno">  487</span>       Writer.<a class="code" href="classclang_1_1ASTWriter.html#a7e5578e20007f8f4a126357511b866f3" title="Emit a C++ base specifier.">AddCXXBaseSpecifier</a>(*ON.<a class="code" href="classclang_1_1OffsetOfExpr_1_1OffsetOfNode.html#ae67b3629af70eaa42b64135e4f74e36e" title="For a base class node, returns the base specifier.">getBase</a>(), Record);</div>
+<div class="line"><a name="l00488"></a><span class="lineno">  488</span>       <span class="keywordflow">break</span>;</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>   }</div>
+<div class="line"><a name="l00491"></a><span class="lineno">  491</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = E-><a class="code" href="classclang_1_1OffsetOfExpr.html#a1e7583642eb70ef65817d5642160a985">getNumExpressions</a>(); I != N; ++I)</div>
+<div class="line"><a name="l00492"></a><span class="lineno">  492</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(E-><a class="code" href="classclang_1_1OffsetOfExpr.html#aee7f36a552640efa5e67f1c15007932c">getIndexExpr</a>(I));</div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65a59c4e73e758b4400e7d17205f3befb7b" title="An OffsetOfExpr record.">serialization::EXPR_OFFSETOF</a>;</div>
+<div class="line"><a name="l00494"></a><span class="lineno">  494</span> }</div>
+<div class="line"><a name="l00495"></a><span class="lineno">  495</span> </div>
+<div class="line"><a name="l00496"></a><span class="lineno">  496</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitUnaryExprOrTypeTraitExpr(<a class="code" href="classclang_1_1UnaryExprOrTypeTraitExpr.html">UnaryExprOrTypeTraitExpr</a> *E) {</div>
+<div class="line"><a name="l00497"></a><span class="lineno">  497</span>   VisitExpr(E);</div>
+<div class="line"><a name="l00498"></a><span class="lineno">  498</span>   Record.push_back(E-><a class="code" href="classclang_1_1UnaryExprOrTypeTraitExpr.html#aa2277a3ae31b20bd06f41d6adc1620ef">getKind</a>());</div>
+<div class="line"><a name="l00499"></a><span class="lineno">  499</span>   <span class="keywordflow">if</span> (E-><a class="code" href="classclang_1_1UnaryExprOrTypeTraitExpr.html#ad4754c1823bdc76d1702724674bc8c9e">isArgumentType</a>())</div>
+<div class="line"><a name="l00500"></a><span class="lineno">  500</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#af1cf266346d5bf16ffa56a2e00508cb3" title="Emits a reference to a declarator info.">AddTypeSourceInfo</a>(E-><a class="code" href="classclang_1_1UnaryExprOrTypeTraitExpr.html#a75605ca2b18e200471b467c1c2d1862d">getArgumentTypeInfo</a>(), Record);</div>
+<div class="line"><a name="l00501"></a><span class="lineno">  501</span>   <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00502"></a><span class="lineno">  502</span>     Record.push_back(0);</div>
+<div class="line"><a name="l00503"></a><span class="lineno">  503</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(E-><a class="code" href="classclang_1_1UnaryExprOrTypeTraitExpr.html#a32752572fcb378247e114a7e7b5d1e6c">getArgumentExpr</a>());</div>
+<div class="line"><a name="l00504"></a><span class="lineno">  504</span>   }</div>
+<div class="line"><a name="l00505"></a><span class="lineno">  505</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1UnaryExprOrTypeTraitExpr.html#a50b0e8a21c7a43e02699a56e1bf17516">getOperatorLoc</a>(), Record);</div>
+<div class="line"><a name="l00506"></a><span class="lineno">  506</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1UnaryExprOrTypeTraitExpr.html#a119fd38cc96909cec7005e10f757be60">getRParenLoc</a>(), Record);</div>
+<div class="line"><a name="l00507"></a><span class="lineno">  507</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65aecf63890694575a44a219214457a0412" title="A SizefAlignOfExpr record.">serialization::EXPR_SIZEOF_ALIGN_OF</a>;</div>
+<div class="line"><a name="l00508"></a><span class="lineno">  508</span> }</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> <span class="keywordtype">void</span> ASTStmtWriter::VisitArraySubscriptExpr(<a class="code" href="classclang_1_1ArraySubscriptExpr.html" title="ArraySubscriptExpr - [C99 6.5.2.1] Array Subscripting.">ArraySubscriptExpr</a> *E) {</div>
+<div class="line"><a name="l00511"></a><span class="lineno">  511</span>   VisitExpr(E);</div>
+<div class="line"><a name="l00512"></a><span class="lineno">  512</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(E-><a class="code" href="classclang_1_1ArraySubscriptExpr.html#aeea519b6d1b664187c66bf16b2f63d27">getLHS</a>());</div>
+<div class="line"><a name="l00513"></a><span class="lineno">  513</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(E-><a class="code" href="classclang_1_1ArraySubscriptExpr.html#a0eef1e615457142f643f6fd75c347ec8">getRHS</a>());</div>
+<div class="line"><a name="l00514"></a><span class="lineno">  514</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1ArraySubscriptExpr.html#a4fa8f15e1e1bab39de451951047cc257">getRBracketLoc</a>(), Record);</div>
+<div class="line"><a name="l00515"></a><span class="lineno">  515</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65afa47c6c970f7cc38b5b41d767424cbeb" title="An ArraySubscriptExpr record.">serialization::EXPR_ARRAY_SUBSCRIPT</a>;</div>
+<div class="line"><a name="l00516"></a><span class="lineno">  516</span> }</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> <span class="keywordtype">void</span> ASTStmtWriter::VisitCallExpr(<a class="code" href="classclang_1_1CallExpr.html">CallExpr</a> *E) {</div>
+<div class="line"><a name="l00519"></a><span class="lineno">  519</span>   VisitExpr(E);</div>
+<div class="line"><a name="l00520"></a><span class="lineno">  520</span>   Record.push_back(E-><a class="code" href="classclang_1_1CallExpr.html#a244fff3c657a825bbfe3771137c8fb83">getNumArgs</a>());</div>
+<div class="line"><a name="l00521"></a><span class="lineno">  521</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1CallExpr.html#ae2e04e19f10f2a8e4ea98ef2f03430f5">getRParenLoc</a>(), Record);</div>
+<div class="line"><a name="l00522"></a><span class="lineno">  522</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(E-><a class="code" href="classclang_1_1CallExpr.html#a3a2b7cbceb661c81f0d6eb937610eb75">getCallee</a>());</div>
+<div class="line"><a name="l00523"></a><span class="lineno">  523</span>   <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1ExprIterator.html">CallExpr::arg_iterator</a> Arg = E-><a class="code" href="classclang_1_1CallExpr.html#a6f97281c2e5e3820685951be98b661a3">arg_begin</a>(), ArgEnd = E-><a class="code" href="classclang_1_1CallExpr.html#a7131a2da85b34d34e00ec7c6004b0836">arg_end</a>();</div>
+<div class="line"><a name="l00524"></a><span class="lineno">  524</span>        Arg != ArgEnd; ++Arg)</div>
+<div class="line"><a name="l00525"></a><span class="lineno">  525</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(*Arg);</div>
+<div class="line"><a name="l00526"></a><span class="lineno">  526</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65a92a9101d542cc66b01f70bfc9b1d8be4" title="A CallExpr record.">serialization::EXPR_CALL</a>;</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> </div>
+<div class="line"><a name="l00529"></a><span class="lineno">  529</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitMemberExpr(<a class="code" href="classclang_1_1MemberExpr.html">MemberExpr</a> *E) {</div>
+<div class="line"><a name="l00530"></a><span class="lineno">  530</span>   <span class="comment">// Don't call VisitExpr, we'll write everything here.</span></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>   Record.push_back(E-><a class="code" href="classclang_1_1MemberExpr.html#ac04d90748497032435cb66dd06c76b47" title="Determines whether this member expression actually had a C++ nested-name-specifier prior to the name ...">hasQualifier</a>());</div>
+<div class="line"><a name="l00533"></a><span class="lineno">  533</span>   <span class="keywordflow">if</span> (E-><a class="code" href="classclang_1_1MemberExpr.html#ac04d90748497032435cb66dd06c76b47" title="Determines whether this member expression actually had a C++ nested-name-specifier prior to the name ...">hasQualifier</a>())</div>
+<div class="line"><a name="l00534"></a><span class="lineno">  534</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#a56148750b4cf442e6b271da1a17ef73a" title="Emit a nested name specifier with source-location information.">AddNestedNameSpecifierLoc</a>(E-><a class="code" href="classclang_1_1MemberExpr.html#a03e994077e7d4b6fac0330d899f1f24d" title="If the member name was qualified, retrieves the nested-name-specifier that precedes the member name...">getQualifierLoc</a>(), Record);</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>   Record.push_back(E->HasTemplateKWAndArgsInfo);</div>
+<div class="line"><a name="l00537"></a><span class="lineno">  537</span>   <span class="keywordflow">if</span> (E->HasTemplateKWAndArgsInfo) {</div>
+<div class="line"><a name="l00538"></a><span class="lineno">  538</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1MemberExpr.html#ae44de0dbdcee3bb9968f2aad1e07c6f4" title="Retrieve the location of the template keyword preceding the member name, if any.">getTemplateKeywordLoc</a>(), Record);</div>
+<div class="line"><a name="l00539"></a><span class="lineno">  539</span>     <span class="keywordtype">unsigned</span> NumTemplateArgs = E-><a class="code" href="classclang_1_1MemberExpr.html#aa9b2fad69f54ac466018d78825de5e3e" title="Retrieve the number of template arguments provided as part of this template-id.">getNumTemplateArgs</a>();</div>
+<div class="line"><a name="l00540"></a><span class="lineno">  540</span>     Record.push_back(NumTemplateArgs);</div>
+<div class="line"><a name="l00541"></a><span class="lineno">  541</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1MemberExpr.html#a9db14083716a430430ef36060d80c024" title="Retrieve the location of the left angle bracket starting the explicit template argument list followin...">getLAngleLoc</a>(), Record);</div>
+<div class="line"><a name="l00542"></a><span class="lineno">  542</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1MemberExpr.html#a37cc916c9e7f77e523d138233fd81dbd" title="Retrieve the location of the right angle bracket ending the explicit template argument list following...">getRAngleLoc</a>(), Record);</div>
+<div class="line"><a name="l00543"></a><span class="lineno">  543</span>     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i=0; i != NumTemplateArgs; ++i)</div>
+<div class="line"><a name="l00544"></a><span class="lineno">  544</span>       Writer.<a class="code" href="classclang_1_1ASTWriter.html#aa0cf51090877033a94f219498ebd7701" title="Emits a template argument location.">AddTemplateArgumentLoc</a>(E-><a class="code" href="classclang_1_1MemberExpr.html#a70303d8f062d9d6fbf272994e98f762d" title="Retrieve the template arguments provided as part of this template-id.">getTemplateArgs</a>()[i], Record);</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> </div>
+<div class="line"><a name="l00547"></a><span class="lineno">  547</span>   Record.push_back(E-><a class="code" href="classclang_1_1MemberExpr.html#a6d61616810b079450e75a00cbfffafc8" title="Returns true if this member expression refers to a method that was resolved from an overloaded set ha...">hadMultipleCandidates</a>());</div>
+<div class="line"><a name="l00548"></a><span class="lineno">  548</span> </div>
+<div class="line"><a name="l00549"></a><span class="lineno">  549</span>   <a class="code" href="classclang_1_1DeclAccessPair.html">DeclAccessPair</a> FoundDecl = E-><a class="code" href="classclang_1_1MemberExpr.html#a2431e0757ca087b73173d515ff4aed56" title="Retrieves the declaration found by lookup.">getFoundDecl</a>();</div>
+<div class="line"><a name="l00550"></a><span class="lineno">  550</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#afaee50073b062fcd0481d85db29e7331" title="Emit a reference to a declaration.">AddDeclRef</a>(FoundDecl.<a class="code" href="classclang_1_1DeclAccessPair.html#abdbe07a49035d36a858f3253412f2d5a">getDecl</a>(), Record);</div>
+<div class="line"><a name="l00551"></a><span class="lineno">  551</span>   Record.push_back(FoundDecl.<a class="code" href="classclang_1_1DeclAccessPair.html#a18421736490c0827e91213e6bb6e7dc5">getAccess</a>());</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>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a9e2f9e2524f06212afa9fab0d0531dfd" title="Emit a reference to a type.">AddTypeRef</a>(E-><a class="code" href="classclang_1_1Expr.html#a3dd8850a4ad8a5b5f595dd9e9446187b">getType</a>(), Record);</div>
+<div class="line"><a name="l00554"></a><span class="lineno">  554</span>   Record.push_back(E-><a class="code" href="classclang_1_1Expr.html#aacbe243ee99ac093e4eba5e40d6a9edb" title="getValueKind - The value kind that this expression produces.">getValueKind</a>());</div>
+<div class="line"><a name="l00555"></a><span class="lineno">  555</span>   Record.push_back(E-><a class="code" href="classclang_1_1Expr.html#a6fd3892ddf8334fc9b311daaa93a27f5">getObjectKind</a>());</div>
+<div class="line"><a name="l00556"></a><span class="lineno">  556</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(E-><a class="code" href="classclang_1_1MemberExpr.html#ade0c09aefce7fca4cfd671cd96a87083">getBase</a>());</div>
+<div class="line"><a name="l00557"></a><span class="lineno">  557</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#afaee50073b062fcd0481d85db29e7331" title="Emit a reference to a declaration.">AddDeclRef</a>(E-><a class="code" href="classclang_1_1MemberExpr.html#a36cc50d42ad5ca5a4e52b493aa24e6f1" title="Retrieve the member declaration to which this expression refers.">getMemberDecl</a>(), Record);</div>
+<div class="line"><a name="l00558"></a><span class="lineno">  558</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1MemberExpr.html#aa36adfcbd88fdd6f805cce480b3af3a1">getMemberLoc</a>(), Record);</div>
+<div class="line"><a name="l00559"></a><span class="lineno">  559</span>   Record.push_back(E-><a class="code" href="classclang_1_1MemberExpr.html#a22d0072d3f57ed584f03e37d9dd0dc34">isArrow</a>());</div>
+<div class="line"><a name="l00560"></a><span class="lineno">  560</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#aa7ec4ecc9d0f7ad7efc9a074fec2d1dd">AddDeclarationNameLoc</a>(E->MemberDNLoc,</div>
+<div class="line"><a name="l00561"></a><span class="lineno">  561</span>                                E-><a class="code" href="classclang_1_1MemberExpr.html#a36cc50d42ad5ca5a4e52b493aa24e6f1" title="Retrieve the member declaration to which this expression refers.">getMemberDecl</a>()-><a class="code" href="classclang_1_1NamedDecl.html#a1e3e90455be89bb5c7c23640cbbd7153">getDeclName</a>(), Record);</div>
+<div class="line"><a name="l00562"></a><span class="lineno">  562</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65a0f090fafa4eae9bc294415fcdaed023f" title="A MemberExpr record.">serialization::EXPR_MEMBER</a>;</div>
+<div class="line"><a name="l00563"></a><span class="lineno">  563</span> }</div>
+<div class="line"><a name="l00564"></a><span class="lineno">  564</span> </div>
+<div class="line"><a name="l00565"></a><span class="lineno">  565</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitObjCIsaExpr(<a class="code" href="classclang_1_1ObjCIsaExpr.html">ObjCIsaExpr</a> *E) {</div>
+<div class="line"><a name="l00566"></a><span class="lineno">  566</span>   VisitExpr(E);</div>
+<div class="line"><a name="l00567"></a><span class="lineno">  567</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(E-><a class="code" href="classclang_1_1ObjCIsaExpr.html#ad0479433a32e36e193b661844c3e509d">getBase</a>());</div>
+<div class="line"><a name="l00568"></a><span class="lineno">  568</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1ObjCIsaExpr.html#a73ead7c4ca5108d3d8387f74d9ae2ddd">getIsaMemberLoc</a>(), Record);</div>
+<div class="line"><a name="l00569"></a><span class="lineno">  569</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1ObjCIsaExpr.html#afcf90496434c5192c65bdd28ebccb0f6">getOpLoc</a>(), Record);</div>
+<div class="line"><a name="l00570"></a><span class="lineno">  570</span>   Record.push_back(E-><a class="code" href="classclang_1_1ObjCIsaExpr.html#a3ccd5ac1fe5098d34a3d7d7bc04bf5c1">isArrow</a>());</div>
+<div class="line"><a name="l00571"></a><span class="lineno">  571</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65a1c1de45a287b0340dcf0d140d74df3ef" title="An ObjCIsa Expr record.">serialization::EXPR_OBJC_ISA</a>;</div>
+<div class="line"><a name="l00572"></a><span class="lineno">  572</span> }</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="keywordtype">void</span> ASTStmtWriter::</div>
+<div class="line"><a name="l00575"></a><span class="lineno">  575</span> VisitObjCIndirectCopyRestoreExpr(<a class="code" href="classclang_1_1ObjCIndirectCopyRestoreExpr.html">ObjCIndirectCopyRestoreExpr</a> *E) {</div>
+<div class="line"><a name="l00576"></a><span class="lineno">  576</span>   VisitExpr(E);</div>
+<div class="line"><a name="l00577"></a><span class="lineno">  577</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(E-><a class="code" href="classclang_1_1ObjCIndirectCopyRestoreExpr.html#ab9f03c5ebc646e72d5a396391b5ab57b">getSubExpr</a>());</div>
+<div class="line"><a name="l00578"></a><span class="lineno">  578</span>   Record.push_back(E-><a class="code" href="classclang_1_1ObjCIndirectCopyRestoreExpr.html#ad1c5fff4da1658f8890e62933de2ee35">shouldCopy</a>());</div>
+<div class="line"><a name="l00579"></a><span class="lineno">  579</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65a90a600be8f417313b3a47c094000d177" title="An ObjCIndirectCopyRestoreExpr record.">serialization::EXPR_OBJC_INDIRECT_COPY_RESTORE</a>;</div>
+<div class="line"><a name="l00580"></a><span class="lineno">  580</span> }</div>
+<div class="line"><a name="l00581"></a><span class="lineno">  581</span> </div>
+<div class="line"><a name="l00582"></a><span class="lineno">  582</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitObjCBridgedCastExpr(<a class="code" href="classclang_1_1ObjCBridgedCastExpr.html" title="An Objective-C "bridged" cast expression, which casts between Objective-C pointers and C pointers...">ObjCBridgedCastExpr</a> *E) {</div>
+<div class="line"><a name="l00583"></a><span class="lineno">  583</span>   VisitExplicitCastExpr(E);</div>
+<div class="line"><a name="l00584"></a><span class="lineno">  584</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1ObjCBridgedCastExpr.html#a119fc945e57c418a33fcca2e40d11289">getLParenLoc</a>(), Record);</div>
+<div class="line"><a name="l00585"></a><span class="lineno">  585</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1ObjCBridgedCastExpr.html#ade56b61087adcfcfb5ccb793135bc4f9" title="The location of the bridge keyword.">getBridgeKeywordLoc</a>(), Record);</div>
+<div class="line"><a name="l00586"></a><span class="lineno">  586</span>   Record.push_back(E-><a class="code" href="classclang_1_1ObjCBridgedCastExpr.html#a24d75d7e51e0ed9a23d6b10752cb47bf" title="Determine which kind of bridge is being performed via this cast.">getBridgeKind</a>()); <span class="comment">// FIXME: Stable encoding</span></div>
+<div class="line"><a name="l00587"></a><span class="lineno">  587</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65ae92e747c791c5c5cd5b5fa6cb9a5a875">serialization::EXPR_OBJC_BRIDGED_CAST</a>;</div>
+<div class="line"><a name="l00588"></a><span class="lineno">  588</span> }</div>
+<div class="line"><a name="l00589"></a><span class="lineno">  589</span> </div>
+<div class="line"><a name="l00590"></a><span class="lineno">  590</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitCastExpr(<a class="code" href="classclang_1_1CastExpr.html">CastExpr</a> *E) {</div>
+<div class="line"><a name="l00591"></a><span class="lineno">  591</span>   VisitExpr(E);</div>
+<div class="line"><a name="l00592"></a><span class="lineno">  592</span>   Record.push_back(E-><a class="code" href="classclang_1_1CastExpr.html#a344ef64f8d83d6473d0ce5661531c4b3">path_size</a>());</div>
+<div class="line"><a name="l00593"></a><span class="lineno">  593</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(E-><a class="code" href="classclang_1_1CastExpr.html#a37e3d80c4ca590eadbe49e400c50134b">getSubExpr</a>());</div>
+<div class="line"><a name="l00594"></a><span class="lineno">  594</span>   Record.push_back(E-><a class="code" href="classclang_1_1CastExpr.html#a9579ef9370fffd8c5e4bee485eac9265">getCastKind</a>()); <span class="comment">// FIXME: stable encoding</span></div>
+<div class="line"><a name="l00595"></a><span class="lineno">  595</span> </div>
+<div class="line"><a name="l00596"></a><span class="lineno">  596</span>   <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1CXXBaseSpecifier.html" title="Represents a base class of a C++ class.">CastExpr::path_iterator</a></div>
+<div class="line"><a name="l00597"></a><span class="lineno">  597</span>          PI = E-><a class="code" href="classclang_1_1CastExpr.html#a0b21e5af1691cff3b580f3c5f35fe459">path_begin</a>(), PE = E-><a class="code" href="classclang_1_1CastExpr.html#a8faa0fba2075e167943ea782e86296d4">path_end</a>(); PI != PE; ++PI)</div>
+<div class="line"><a name="l00598"></a><span class="lineno">  598</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#a7e5578e20007f8f4a126357511b866f3" title="Emit a C++ base specifier.">AddCXXBaseSpecifier</a>(**PI, Record);</div>
+<div class="line"><a name="l00599"></a><span class="lineno">  599</span> }</div>
+<div class="line"><a name="l00600"></a><span class="lineno">  600</span> </div>
+<div class="line"><a name="l00601"></a><span class="lineno">  601</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitBinaryOperator(<a class="code" href="classclang_1_1BinaryOperator.html" title="A builtin binary operation expression such as "x + y" or "x <= y".">BinaryOperator</a> *E) {</div>
+<div class="line"><a name="l00602"></a><span class="lineno">  602</span>   VisitExpr(E);</div>
+<div class="line"><a name="l00603"></a><span class="lineno">  603</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(E-><a class="code" href="classclang_1_1BinaryOperator.html#ad8b108ac1a7795b9f388d8dece6b8924">getLHS</a>());</div>
+<div class="line"><a name="l00604"></a><span class="lineno">  604</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(E-><a class="code" href="classclang_1_1BinaryOperator.html#a1ab10aae0ffa01be5d1a979e6da285e6">getRHS</a>());</div>
+<div class="line"><a name="l00605"></a><span class="lineno">  605</span>   Record.push_back(E-><a class="code" href="classclang_1_1BinaryOperator.html#a497174c5cc2816aa3a3f29e12dd93165">getOpcode</a>()); <span class="comment">// FIXME: stable encoding</span></div>
+<div class="line"><a name="l00606"></a><span class="lineno">  606</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1BinaryOperator.html#a0b017effb7b1d6ca87b78bd28f6be9ad">getOperatorLoc</a>(), Record);</div>
+<div class="line"><a name="l00607"></a><span class="lineno">  607</span>   Record.push_back(E-><a class="code" href="classclang_1_1BinaryOperator.html#adf908fc7c8cc05db4dbeb97d3895c50f">isFPContractable</a>());</div>
+<div class="line"><a name="l00608"></a><span class="lineno">  608</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65aaf49afc3cc60608b73432197dbab0528" title="A BinaryOperator record.">serialization::EXPR_BINARY_OPERATOR</a>;</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> </div>
+<div class="line"><a name="l00611"></a><span class="lineno">  611</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitCompoundAssignOperator(<a class="code" href="classclang_1_1CompoundAssignOperator.html">CompoundAssignOperator</a> *E) {</div>
+<div class="line"><a name="l00612"></a><span class="lineno">  612</span>   VisitBinaryOperator(E);</div>
+<div class="line"><a name="l00613"></a><span class="lineno">  613</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a9e2f9e2524f06212afa9fab0d0531dfd" title="Emit a reference to a type.">AddTypeRef</a>(E-><a class="code" href="classclang_1_1CompoundAssignOperator.html#ac4a88a84a8db7503dad4efb509da3061">getComputationLHSType</a>(), Record);</div>
+<div class="line"><a name="l00614"></a><span class="lineno">  614</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a9e2f9e2524f06212afa9fab0d0531dfd" title="Emit a reference to a type.">AddTypeRef</a>(E-><a class="code" href="classclang_1_1CompoundAssignOperator.html#a84a27832d28d023ca96f73e4220bdc63">getComputationResultType</a>(), Record);</div>
+<div class="line"><a name="l00615"></a><span class="lineno">  615</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65a14020e19dd32a2bc046938b17f6936ea" title="A CompoundAssignOperator record.">serialization::EXPR_COMPOUND_ASSIGN_OPERATOR</a>;</div>
+<div class="line"><a name="l00616"></a><span class="lineno">  616</span> }</div>
+<div class="line"><a name="l00617"></a><span class="lineno">  617</span> </div>
+<div class="line"><a name="l00618"></a><span class="lineno">  618</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitConditionalOperator(<a class="code" href="classclang_1_1ConditionalOperator.html">ConditionalOperator</a> *E) {</div>
+<div class="line"><a name="l00619"></a><span class="lineno">  619</span>   VisitExpr(E);</div>
+<div class="line"><a name="l00620"></a><span class="lineno">  620</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(E-><a class="code" href="classclang_1_1ConditionalOperator.html#adde4b8e0f728e60640fe4401e3eac1d3">getCond</a>());</div>
+<div class="line"><a name="l00621"></a><span class="lineno">  621</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(E-><a class="code" href="classclang_1_1ConditionalOperator.html#a15ef8acd411290e7d553e858528524f5">getLHS</a>());</div>
+<div class="line"><a name="l00622"></a><span class="lineno">  622</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(E-><a class="code" href="classclang_1_1ConditionalOperator.html#a10ae382d760beec138b94003f277ae75">getRHS</a>());</div>
+<div class="line"><a name="l00623"></a><span class="lineno">  623</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1AbstractConditionalOperator.html#aa7a9e2ad18ddd72b525cdb2dd1cb5db1">getQuestionLoc</a>(), Record);</div>
+<div class="line"><a name="l00624"></a><span class="lineno">  624</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1AbstractConditionalOperator.html#a0d005b0c0e990ed06d352bda5f33d64c">getColonLoc</a>(), Record);</div>
+<div class="line"><a name="l00625"></a><span class="lineno">  625</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65aaf3e26105ae936787164413fdcd4ea38" title="A ConditionOperator record.">serialization::EXPR_CONDITIONAL_OPERATOR</a>;</div>
+<div class="line"><a name="l00626"></a><span class="lineno">  626</span> }</div>
+<div class="line"><a name="l00627"></a><span class="lineno">  627</span> </div>
+<div class="line"><a name="l00628"></a><span class="lineno">  628</span> <span class="keywordtype">void</span></div>
+<div class="line"><a name="l00629"></a><span class="lineno">  629</span> ASTStmtWriter::VisitBinaryConditionalOperator(<a class="code" href="classclang_1_1BinaryConditionalOperator.html">BinaryConditionalOperator</a> *E) {</div>
+<div class="line"><a name="l00630"></a><span class="lineno">  630</span>   VisitExpr(E);</div>
+<div class="line"><a name="l00631"></a><span class="lineno">  631</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(E-><a class="code" href="classclang_1_1BinaryConditionalOperator.html#a4bc96fbd822603ed2d3de2a02d2313b6" title="getOpaqueValue - Return the opaque value placeholder.">getOpaqueValue</a>());</div>
+<div class="line"><a name="l00632"></a><span class="lineno">  632</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(E-><a class="code" href="classclang_1_1BinaryConditionalOperator.html#a95f4d6dc559c9c19c86fade8b3114393" title="getCommon - Return the common expression, written to the left of the condition. The opaque value will...">getCommon</a>());</div>
+<div class="line"><a name="l00633"></a><span class="lineno">  633</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(E-><a class="code" href="classclang_1_1BinaryConditionalOperator.html#a785117b61df5ccee47aceeb9b635e180" title="getCond - Return the condition expression; this is defined in terms of the opaque value...">getCond</a>());</div>
+<div class="line"><a name="l00634"></a><span class="lineno">  634</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(E-><a class="code" href="classclang_1_1BinaryConditionalOperator.html#a543910b34c7190934a83251ba6ad7a0f" title="getTrueExpr - Return the subexpression which will be evaluated if the condition evaluates to true; th...">getTrueExpr</a>());</div>
+<div class="line"><a name="l00635"></a><span class="lineno">  635</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(E-><a class="code" href="classclang_1_1BinaryConditionalOperator.html#a6fed6d9bdd5ce0b16c014d82b708099c" title="getFalseExpr - Return the subexpression which will be evaluated if the condnition evaluates to false;...">getFalseExpr</a>());</div>
+<div class="line"><a name="l00636"></a><span class="lineno">  636</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1AbstractConditionalOperator.html#aa7a9e2ad18ddd72b525cdb2dd1cb5db1">getQuestionLoc</a>(), Record);</div>
+<div class="line"><a name="l00637"></a><span class="lineno">  637</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1AbstractConditionalOperator.html#a0d005b0c0e990ed06d352bda5f33d64c">getColonLoc</a>(), Record);</div>
+<div class="line"><a name="l00638"></a><span class="lineno">  638</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65a95af2623c194aa5dd676e3ea4cbb536e">serialization::EXPR_BINARY_CONDITIONAL_OPERATOR</a>;</div>
+<div class="line"><a name="l00639"></a><span class="lineno">  639</span> }</div>
+<div class="line"><a name="l00640"></a><span class="lineno">  640</span> </div>
+<div class="line"><a name="l00641"></a><span class="lineno">  641</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitImplicitCastExpr(<a class="code" href="classclang_1_1ImplicitCastExpr.html">ImplicitCastExpr</a> *E) {</div>
+<div class="line"><a name="l00642"></a><span class="lineno">  642</span>   VisitCastExpr(E);</div>
+<div class="line"><a name="l00643"></a><span class="lineno">  643</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65a324f1fee1a7beb126bb6155bb48d502f" title="An ImplicitCastExpr record.">serialization::EXPR_IMPLICIT_CAST</a>;</div>
+<div class="line"><a name="l00644"></a><span class="lineno">  644</span> }</div>
+<div class="line"><a name="l00645"></a><span class="lineno">  645</span> </div>
+<div class="line"><a name="l00646"></a><span class="lineno">  646</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitExplicitCastExpr(<a class="code" href="classclang_1_1ExplicitCastExpr.html">ExplicitCastExpr</a> *E) {</div>
+<div class="line"><a name="l00647"></a><span class="lineno">  647</span>   VisitCastExpr(E);</div>
+<div class="line"><a name="l00648"></a><span class="lineno">  648</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#af1cf266346d5bf16ffa56a2e00508cb3" title="Emits a reference to a declarator info.">AddTypeSourceInfo</a>(E-><a class="code" href="classclang_1_1ExplicitCastExpr.html#ab65cd89dc284bd2d46a1fb8b61f267a8">getTypeInfoAsWritten</a>(), Record);</div>
+<div class="line"><a name="l00649"></a><span class="lineno">  649</span> }</div>
+<div class="line"><a name="l00650"></a><span class="lineno">  650</span> </div>
+<div class="line"><a name="l00651"></a><span class="lineno">  651</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitCStyleCastExpr(<a class="code" href="classclang_1_1CStyleCastExpr.html">CStyleCastExpr</a> *E) {</div>
+<div class="line"><a name="l00652"></a><span class="lineno">  652</span>   VisitExplicitCastExpr(E);</div>
+<div class="line"><a name="l00653"></a><span class="lineno">  653</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1CStyleCastExpr.html#aa76922de631c94abd3edfeaa16adbaca">getLParenLoc</a>(), Record);</div>
+<div class="line"><a name="l00654"></a><span class="lineno">  654</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1CStyleCastExpr.html#a7d9e418fa05e5757da6e9ff2eb7fb5df">getRParenLoc</a>(), Record);</div>
+<div class="line"><a name="l00655"></a><span class="lineno">  655</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65a4c56303f5375a7cae2f326db9e270e74" title="A CStyleCastExpr record.">serialization::EXPR_CSTYLE_CAST</a>;</div>
+<div class="line"><a name="l00656"></a><span class="lineno">  656</span> }</div>
+<div class="line"><a name="l00657"></a><span class="lineno">  657</span> </div>
+<div class="line"><a name="l00658"></a><span class="lineno">  658</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitCompoundLiteralExpr(<a class="code" href="classclang_1_1CompoundLiteralExpr.html">CompoundLiteralExpr</a> *E) {</div>
+<div class="line"><a name="l00659"></a><span class="lineno">  659</span>   VisitExpr(E);</div>
+<div class="line"><a name="l00660"></a><span class="lineno">  660</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1CompoundLiteralExpr.html#a85cc811a5980fc0ea98115f6d6fcf353">getLParenLoc</a>(), Record);</div>
+<div class="line"><a name="l00661"></a><span class="lineno">  661</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#af1cf266346d5bf16ffa56a2e00508cb3" title="Emits a reference to a declarator info.">AddTypeSourceInfo</a>(E-><a class="code" href="classclang_1_1CompoundLiteralExpr.html#aba4b2d5ab1e8a8a20c117cf104241e96">getTypeSourceInfo</a>(), Record);</div>
+<div class="line"><a name="l00662"></a><span class="lineno">  662</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(E-><a class="code" href="classclang_1_1CompoundLiteralExpr.html#a58a7892a6b8a634633af52490dc33879">getInitializer</a>());</div>
+<div class="line"><a name="l00663"></a><span class="lineno">  663</span>   Record.push_back(E-><a class="code" href="classclang_1_1CompoundLiteralExpr.html#ad57cda2056b141f75cc33da9ae7db769">isFileScope</a>());</div>
+<div class="line"><a name="l00664"></a><span class="lineno">  664</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65a05cd350ae4d9fdb11fb0dd26dbfd9a02" title="A CompoundLiteralExpr record.">serialization::EXPR_COMPOUND_LITERAL</a>;</div>
+<div class="line"><a name="l00665"></a><span class="lineno">  665</span> }</div>
+<div class="line"><a name="l00666"></a><span class="lineno">  666</span> </div>
+<div class="line"><a name="l00667"></a><span class="lineno">  667</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitExtVectorElementExpr(<a class="code" href="classclang_1_1ExtVectorElementExpr.html">ExtVectorElementExpr</a> *E) {</div>
+<div class="line"><a name="l00668"></a><span class="lineno">  668</span>   VisitExpr(E);</div>
+<div class="line"><a name="l00669"></a><span class="lineno">  669</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(E-><a class="code" href="classclang_1_1ExtVectorElementExpr.html#a28e57f22fc58890b985214c797dacadf">getBase</a>());</div>
+<div class="line"><a name="l00670"></a><span class="lineno">  670</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a91ebff830b2425b103f7be4747359495" title="Emit a reference to an identifier.">AddIdentifierRef</a>(&E-><a class="code" href="classclang_1_1ExtVectorElementExpr.html#ace7cbfb9dfa142d67b2032cbf5fa7ec3">getAccessor</a>(), Record);</div>
+<div class="line"><a name="l00671"></a><span class="lineno">  671</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1ExtVectorElementExpr.html#a73855f4fb8e4e75096b237c121c9aa87">getAccessorLoc</a>(), Record);</div>
+<div class="line"><a name="l00672"></a><span class="lineno">  672</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65a564484e6e47e82532a56678ad5e4f5a1" title="An ExtVectorElementExpr record.">serialization::EXPR_EXT_VECTOR_ELEMENT</a>;</div>
+<div class="line"><a name="l00673"></a><span class="lineno">  673</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> <span class="keywordtype">void</span> ASTStmtWriter::VisitInitListExpr(<a class="code" href="classclang_1_1InitListExpr.html" title="Describes an C or C++ initializer list.">InitListExpr</a> *E) {</div>
+<div class="line"><a name="l00676"></a><span class="lineno">  676</span>   VisitExpr(E);</div>
+<div class="line"><a name="l00677"></a><span class="lineno">  677</span>   <span class="comment">// NOTE: only add the (possibly null) syntactic form.</span></div>
+<div class="line"><a name="l00678"></a><span class="lineno">  678</span>   <span class="comment">// No need to serialize the isSemanticForm flag and the semantic form.</span></div>
+<div class="line"><a name="l00679"></a><span class="lineno">  679</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(E-><a class="code" href="classclang_1_1InitListExpr.html#a802842fde8e9d55098e4d6c5dba68ff8">getSyntacticForm</a>());</div>
+<div class="line"><a name="l00680"></a><span class="lineno">  680</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1InitListExpr.html#add9c724b4aeefd087f4e01f1212cf922">getLBraceLoc</a>(), Record);</div>
+<div class="line"><a name="l00681"></a><span class="lineno">  681</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1InitListExpr.html#a4c8fe557e9b57b9dd9d7675a555a5513">getRBraceLoc</a>(), Record);</div>
+<div class="line"><a name="l00682"></a><span class="lineno">  682</span>   <span class="keywordtype">bool</span> isArrayFiller = E->ArrayFillerOrUnionFieldInit.is<<a class="code" href="classclang_1_1Expr.html">Expr</a>*>();</div>
+<div class="line"><a name="l00683"></a><span class="lineno">  683</span>   Record.push_back(isArrayFiller);</div>
+<div class="line"><a name="l00684"></a><span class="lineno">  684</span>   <span class="keywordflow">if</span> (isArrayFiller)</div>
+<div class="line"><a name="l00685"></a><span class="lineno">  685</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(E-><a class="code" href="classclang_1_1InitListExpr.html#aedc37ba20a990d2bc3e54a8dae290ea5" title="If this initializer list initializes an array with more elements than there are initializers in the l...">getArrayFiller</a>());</div>
+<div class="line"><a name="l00686"></a><span class="lineno">  686</span>   <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00687"></a><span class="lineno">  687</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#afaee50073b062fcd0481d85db29e7331" title="Emit a reference to a declaration.">AddDeclRef</a>(E-><a class="code" href="classclang_1_1InitListExpr.html#a00be38ec80f991a7554541800dc9e48a" title="If this initializes a union, specifies which field in the union to initialize.">getInitializedFieldInUnion</a>(), Record);</div>
+<div class="line"><a name="l00688"></a><span class="lineno">  688</span>   Record.push_back(E-><a class="code" href="classclang_1_1InitListExpr.html#a5deb0e3be271ac96bd9080cf51cd5c27">hadArrayRangeDesignator</a>());</div>
+<div class="line"><a name="l00689"></a><span class="lineno">  689</span>   Record.push_back(E-><a class="code" href="classclang_1_1InitListExpr.html#ab1b7d5327a3ddd189cd8ef37f346aba4">getNumInits</a>());</div>
+<div class="line"><a name="l00690"></a><span class="lineno">  690</span>   <span class="keywordflow">if</span> (isArrayFiller) {</div>
+<div class="line"><a name="l00691"></a><span class="lineno">  691</span>     <span class="comment">// ArrayFiller may have filled "holes" due to designated initializer.</span></div>
+<div class="line"><a name="l00692"></a><span class="lineno">  692</span>     <span class="comment">// Replace them by 0 to indicate that the filler goes in that place.</span></div>
+<div class="line"><a name="l00693"></a><span class="lineno">  693</span>     <a class="code" href="classclang_1_1Expr.html">Expr</a> *filler = E-><a class="code" href="classclang_1_1InitListExpr.html#aedc37ba20a990d2bc3e54a8dae290ea5" title="If this initializer list initializes an array with more elements than there are initializers in the l...">getArrayFiller</a>();</div>
+<div class="line"><a name="l00694"></a><span class="lineno">  694</span>     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = E-><a class="code" href="classclang_1_1InitListExpr.html#ab1b7d5327a3ddd189cd8ef37f346aba4">getNumInits</a>(); I != N; ++I)</div>
+<div class="line"><a name="l00695"></a><span class="lineno">  695</span>       Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(E-><a class="code" href="classclang_1_1InitListExpr.html#a64bef27da665f05c662d2842ad683fd2">getInit</a>(I) != filler ? E-><a class="code" href="classclang_1_1InitListExpr.html#a64bef27da665f05c662d2842ad683fd2">getInit</a>(I) : 0);</div>
+<div class="line"><a name="l00696"></a><span class="lineno">  696</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00697"></a><span class="lineno">  697</span>     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = E-><a class="code" href="classclang_1_1InitListExpr.html#ab1b7d5327a3ddd189cd8ef37f346aba4">getNumInits</a>(); I != N; ++I)</div>
+<div class="line"><a name="l00698"></a><span class="lineno">  698</span>       Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(E-><a class="code" href="classclang_1_1InitListExpr.html#a64bef27da665f05c662d2842ad683fd2">getInit</a>(I));</div>
+<div class="line"><a name="l00699"></a><span class="lineno">  699</span>   }</div>
+<div class="line"><a name="l00700"></a><span class="lineno">  700</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65ac1a398c68a389c8cff4caab1036ac638" title="An InitListExpr record.">serialization::EXPR_INIT_LIST</a>;</div>
+<div class="line"><a name="l00701"></a><span class="lineno">  701</span> }</div>
+<div class="line"><a name="l00702"></a><span class="lineno">  702</span> </div>
+<div class="line"><a name="l00703"></a><span class="lineno">  703</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitDesignatedInitExpr(<a class="code" href="classclang_1_1DesignatedInitExpr.html" title="Represents a C99 designated initializer expression.">DesignatedInitExpr</a> *E) {</div>
+<div class="line"><a name="l00704"></a><span class="lineno">  704</span>   VisitExpr(E);</div>
+<div class="line"><a name="l00705"></a><span class="lineno">  705</span>   Record.push_back(E-><a class="code" href="classclang_1_1DesignatedInitExpr.html#ae775fee029e6a495e1e7dea7113b314a" title="Retrieve the total number of subexpressions in this designated initializer expression, including the actual initialized value and any expressions that occur within array and array-range designators.">getNumSubExprs</a>());</div>
+<div class="line"><a name="l00706"></a><span class="lineno">  706</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = E-><a class="code" href="classclang_1_1DesignatedInitExpr.html#ae775fee029e6a495e1e7dea7113b314a" title="Retrieve the total number of subexpressions in this designated initializer expression, including the actual initialized value and any expressions that occur within array and array-range designators.">getNumSubExprs</a>(); I != N; ++I)</div>
+<div class="line"><a name="l00707"></a><span class="lineno">  707</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(E-><a class="code" href="classclang_1_1DesignatedInitExpr.html#afb2b1f265e00a3a18530a8aeaf805a81">getSubExpr</a>(I));</div>
+<div class="line"><a name="l00708"></a><span class="lineno">  708</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1DesignatedInitExpr.html#aa5287eb17d522f02959b25d55bdb7848" title="Retrieve the location of the '=' that precedes the initializer value itself, if present.">getEqualOrColonLoc</a>(), Record);</div>
+<div class="line"><a name="l00709"></a><span class="lineno">  709</span>   Record.push_back(E-><a class="code" href="classclang_1_1DesignatedInitExpr.html#a3ba37bb3d12c38c8eaabfda1b896d4f4" title="Determines whether this designated initializer used the deprecated GNU syntax for designated initiali...">usesGNUSyntax</a>());</div>
+<div class="line"><a name="l00710"></a><span class="lineno">  710</span>   <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1DesignatedInitExpr_1_1Designator.html" title="Represents a single C99 designator.">DesignatedInitExpr::designators_iterator</a> D = E-><a class="code" href="classclang_1_1DesignatedInitExpr.html#a51263c9574758eed6a90b4e64d6d6256">designators_begin</a>(),</div>
+<div class="line"><a name="l00711"></a><span class="lineno">  711</span>                                              DEnd = E-><a class="code" href="classclang_1_1DesignatedInitExpr.html#a89baf6197a5f802d2f7ec9037e349bc2">designators_end</a>();</div>
+<div class="line"><a name="l00712"></a><span class="lineno">  712</span>        D != DEnd; ++D) {</div>
+<div class="line"><a name="l00713"></a><span class="lineno">  713</span>     <span class="keywordflow">if</span> (D->isFieldDesignator()) {</div>
+<div class="line"><a name="l00714"></a><span class="lineno">  714</span>       <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1FieldDecl.html">FieldDecl</a> *Field = D->getField()) {</div>
+<div class="line"><a name="l00715"></a><span class="lineno">  715</span>         Record.push_back(<a class="code" href="group__ASTAST.html#ggaccdac4840dcdf615d12b45df9229ded6a19761cc73882e985a4898f317cdc07a4" title="Field designator where the field has been resolved to a declaration.">serialization::DESIG_FIELD_DECL</a>);</div>
+<div class="line"><a name="l00716"></a><span class="lineno">  716</span>         Writer.<a class="code" href="classclang_1_1ASTWriter.html#afaee50073b062fcd0481d85db29e7331" title="Emit a reference to a declaration.">AddDeclRef</a>(Field, Record);</div>
+<div class="line"><a name="l00717"></a><span class="lineno">  717</span>       } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00718"></a><span class="lineno">  718</span>         Record.push_back(<a class="code" href="group__ASTAST.html#ggaccdac4840dcdf615d12b45df9229ded6a0a709537ae36f49b51d852b15b357b8c" title="Field designator where only the field name is known.">serialization::DESIG_FIELD_NAME</a>);</div>
+<div class="line"><a name="l00719"></a><span class="lineno">  719</span>         Writer.<a class="code" href="classclang_1_1ASTWriter.html#a91ebff830b2425b103f7be4747359495" title="Emit a reference to an identifier.">AddIdentifierRef</a>(D->getFieldName(), Record);</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>       Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(D->getDotLoc(), Record);</div>
+<div class="line"><a name="l00722"></a><span class="lineno">  722</span>       Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(D->getFieldLoc(), Record);</div>
+<div class="line"><a name="l00723"></a><span class="lineno">  723</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (D->isArrayDesignator()) {</div>
+<div class="line"><a name="l00724"></a><span class="lineno">  724</span>       Record.push_back(<a class="code" href="group__ASTAST.html#ggaccdac4840dcdf615d12b45df9229ded6a73d258ad49534ca296acd9f52dba70f5" title="Array designator.">serialization::DESIG_ARRAY</a>);</div>
+<div class="line"><a name="l00725"></a><span class="lineno">  725</span>       Record.push_back(D->getFirstExprIndex());</div>
+<div class="line"><a name="l00726"></a><span class="lineno">  726</span>       Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(D->getLBracketLoc(), Record);</div>
+<div class="line"><a name="l00727"></a><span class="lineno">  727</span>       Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(D->getRBracketLoc(), Record);</div>
+<div class="line"><a name="l00728"></a><span class="lineno">  728</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00729"></a><span class="lineno">  729</span>       assert(D->isArrayRangeDesignator() && <span class="stringliteral">"Unknown designator"</span>);</div>
+<div class="line"><a name="l00730"></a><span class="lineno">  730</span>       Record.push_back(<a class="code" href="group__ASTAST.html#ggaccdac4840dcdf615d12b45df9229ded6a015fdc00e463200b63c65da24ce76851" title="GNU array range designator.">serialization::DESIG_ARRAY_RANGE</a>);</div>
+<div class="line"><a name="l00731"></a><span class="lineno">  731</span>       Record.push_back(D->getFirstExprIndex());</div>
+<div class="line"><a name="l00732"></a><span class="lineno">  732</span>       Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(D->getLBracketLoc(), Record);</div>
+<div class="line"><a name="l00733"></a><span class="lineno">  733</span>       Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(D->getEllipsisLoc(), Record);</div>
+<div class="line"><a name="l00734"></a><span class="lineno">  734</span>       Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(D->getRBracketLoc(), Record);</div>
+<div class="line"><a name="l00735"></a><span class="lineno">  735</span>     }</div>
+<div class="line"><a name="l00736"></a><span class="lineno">  736</span>   }</div>
+<div class="line"><a name="l00737"></a><span class="lineno">  737</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65a0511cc52b4788f7b73349ab7e6cc963d" title="A DesignatedInitExpr record.">serialization::EXPR_DESIGNATED_INIT</a>;</div>
+<div class="line"><a name="l00738"></a><span class="lineno">  738</span> }</div>
+<div class="line"><a name="l00739"></a><span class="lineno">  739</span> </div>
+<div class="line"><a name="l00740"></a><span class="lineno">  740</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitImplicitValueInitExpr(<a class="code" href="classclang_1_1ImplicitValueInitExpr.html" title="Represents an implicitly-generated value initialization of an object of a given type.">ImplicitValueInitExpr</a> *E) {</div>
+<div class="line"><a name="l00741"></a><span class="lineno">  741</span>   VisitExpr(E);</div>
+<div class="line"><a name="l00742"></a><span class="lineno">  742</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65ac75c9a6b0dd9920a54f9e13c25bf3bd0" title="An ImplicitValueInitExpr record.">serialization::EXPR_IMPLICIT_VALUE_INIT</a>;</div>
+<div class="line"><a name="l00743"></a><span class="lineno">  743</span> }</div>
+<div class="line"><a name="l00744"></a><span class="lineno">  744</span> </div>
+<div class="line"><a name="l00745"></a><span class="lineno">  745</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitVAArgExpr(<a class="code" href="classclang_1_1VAArgExpr.html" title="VAArgExpr, used for the builtin function __builtin_va_arg.">VAArgExpr</a> *E) {</div>
+<div class="line"><a name="l00746"></a><span class="lineno">  746</span>   VisitExpr(E);</div>
+<div class="line"><a name="l00747"></a><span class="lineno">  747</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(E-><a class="code" href="classclang_1_1VAArgExpr.html#a8718a713d4c2cf595a0fde339a2fd9b6">getSubExpr</a>());</div>
+<div class="line"><a name="l00748"></a><span class="lineno">  748</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#af1cf266346d5bf16ffa56a2e00508cb3" title="Emits a reference to a declarator info.">AddTypeSourceInfo</a>(E-><a class="code" href="classclang_1_1VAArgExpr.html#aa005af932f6c26cba5ad5ca42cbb6612">getWrittenTypeInfo</a>(), Record);</div>
+<div class="line"><a name="l00749"></a><span class="lineno">  749</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1VAArgExpr.html#a912c85aecf6c14cce7f7ec689a0e1e39">getBuiltinLoc</a>(), Record);</div>
+<div class="line"><a name="l00750"></a><span class="lineno">  750</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1VAArgExpr.html#a6e9e5a0d4f2ea4acff40b58d99179af2">getRParenLoc</a>(), Record);</div>
+<div class="line"><a name="l00751"></a><span class="lineno">  751</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65a1948a1e2e442f00262083aa1d3e7ed71" title="A VAArgExpr record.">serialization::EXPR_VA_ARG</a>;</div>
+<div class="line"><a name="l00752"></a><span class="lineno">  752</span> }</div>
+<div class="line"><a name="l00753"></a><span class="lineno">  753</span> </div>
+<div class="line"><a name="l00754"></a><span class="lineno">  754</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitAddrLabelExpr(<a class="code" href="classclang_1_1AddrLabelExpr.html" title="AddrLabelExpr - The GNU address of label extension, representing &&label.">AddrLabelExpr</a> *E) {</div>
+<div class="line"><a name="l00755"></a><span class="lineno">  755</span>   VisitExpr(E);</div>
+<div class="line"><a name="l00756"></a><span class="lineno">  756</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1AddrLabelExpr.html#a4b5e6ba0faead47cd29f334bf8b06d42">getAmpAmpLoc</a>(), Record);</div>
+<div class="line"><a name="l00757"></a><span class="lineno">  757</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1AddrLabelExpr.html#a50c23cccc363a2b6c8a9f72d1f5de03c">getLabelLoc</a>(), Record);</div>
+<div class="line"><a name="l00758"></a><span class="lineno">  758</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#afaee50073b062fcd0481d85db29e7331" title="Emit a reference to a declaration.">AddDeclRef</a>(E-><a class="code" href="classclang_1_1AddrLabelExpr.html#af2951d7c16a37c24ed72ae58c509d9b1">getLabel</a>(), Record);</div>
+<div class="line"><a name="l00759"></a><span class="lineno">  759</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65af2a5a84789575344d925d525801f29d1" title="An AddrLabelExpr record.">serialization::EXPR_ADDR_LABEL</a>;</div>
+<div class="line"><a name="l00760"></a><span class="lineno">  760</span> }</div>
+<div class="line"><a name="l00761"></a><span class="lineno">  761</span> </div>
+<div class="line"><a name="l00762"></a><span class="lineno">  762</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitStmtExpr(<a class="code" href="classclang_1_1StmtExpr.html">StmtExpr</a> *E) {</div>
+<div class="line"><a name="l00763"></a><span class="lineno">  763</span>   VisitExpr(E);</div>
+<div class="line"><a name="l00764"></a><span class="lineno">  764</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(E-><a class="code" href="classclang_1_1StmtExpr.html#a0f25641e4a28c9c33580fb2703999958">getSubStmt</a>());</div>
+<div class="line"><a name="l00765"></a><span class="lineno">  765</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1StmtExpr.html#a999c5eefaeb1fb57d0d902b0bfe7bdf7">getLParenLoc</a>(), Record);</div>
+<div class="line"><a name="l00766"></a><span class="lineno">  766</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1StmtExpr.html#a1d6b9f72c9bc47206992cf4cdfceef3a">getRParenLoc</a>(), Record);</div>
+<div class="line"><a name="l00767"></a><span class="lineno">  767</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65a3ed631c823ad6bd9901e8a8f8a132540" title="A StmtExpr record.">serialization::EXPR_STMT</a>;</div>
+<div class="line"><a name="l00768"></a><span class="lineno">  768</span> }</div>
+<div class="line"><a name="l00769"></a><span class="lineno">  769</span> </div>
+<div class="line"><a name="l00770"></a><span class="lineno">  770</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitChooseExpr(<a class="code" href="classclang_1_1ChooseExpr.html">ChooseExpr</a> *E) {</div>
+<div class="line"><a name="l00771"></a><span class="lineno">  771</span>   VisitExpr(E);</div>
+<div class="line"><a name="l00772"></a><span class="lineno">  772</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(E-><a class="code" href="classclang_1_1ChooseExpr.html#aad35aa022c82dfab40ef8130fb99c7a2">getCond</a>());</div>
+<div class="line"><a name="l00773"></a><span class="lineno">  773</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(E-><a class="code" href="classclang_1_1ChooseExpr.html#ad41ebaa30fb7f839565e6252b1d23c5e">getLHS</a>());</div>
+<div class="line"><a name="l00774"></a><span class="lineno">  774</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(E-><a class="code" href="classclang_1_1ChooseExpr.html#a1e747cf710381212b7f767c9adeeff42">getRHS</a>());</div>
+<div class="line"><a name="l00775"></a><span class="lineno">  775</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1ChooseExpr.html#aa840ead5cacba6b215f4216c65de0871">getBuiltinLoc</a>(), Record);</div>
+<div class="line"><a name="l00776"></a><span class="lineno">  776</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1ChooseExpr.html#ad891b71c3db98cf8b2668622887cb31f">getRParenLoc</a>(), Record);</div>
+<div class="line"><a name="l00777"></a><span class="lineno">  777</span>   Record.push_back(E-><a class="code" href="classclang_1_1ChooseExpr.html#ac5964beed2456eb5f06f8eb4e6647574">isConditionDependent</a>() ? <span class="keyword">false</span> : E-><a class="code" href="classclang_1_1ChooseExpr.html#a9a53ab976379745e1b67dfb75e219d83">isConditionTrue</a>());</div>
+<div class="line"><a name="l00778"></a><span class="lineno">  778</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65abb98bf674569d46acffb33e4f3e9509a" title="A ChooseExpr record.">serialization::EXPR_CHOOSE</a>;</div>
+<div class="line"><a name="l00779"></a><span class="lineno">  779</span> }</div>
+<div class="line"><a name="l00780"></a><span class="lineno">  780</span> </div>
+<div class="line"><a name="l00781"></a><span class="lineno">  781</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitGNUNullExpr(<a class="code" href="classclang_1_1GNUNullExpr.html">GNUNullExpr</a> *E) {</div>
+<div class="line"><a name="l00782"></a><span class="lineno">  782</span>   VisitExpr(E);</div>
+<div class="line"><a name="l00783"></a><span class="lineno">  783</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1GNUNullExpr.html#a8fbc5f0356e54b1b8b64233b25a78429" title="getTokenLocation - The location of the __null token.">getTokenLocation</a>(), Record);</div>
+<div class="line"><a name="l00784"></a><span class="lineno">  784</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65a92f6be2be3a4cabe39db6b43a1ba38c7" title="A GNUNullExpr record.">serialization::EXPR_GNU_NULL</a>;</div>
+<div class="line"><a name="l00785"></a><span class="lineno">  785</span> }</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="keywordtype">void</span> ASTStmtWriter::VisitShuffleVectorExpr(<a class="code" href="classclang_1_1ShuffleVectorExpr.html">ShuffleVectorExpr</a> *E) {</div>
+<div class="line"><a name="l00788"></a><span class="lineno">  788</span>   VisitExpr(E);</div>
+<div class="line"><a name="l00789"></a><span class="lineno">  789</span>   Record.push_back(E-><a class="code" href="classclang_1_1ShuffleVectorExpr.html#ad2eac086d9a5b0a4ce131f56b20bbb8a">getNumSubExprs</a>());</div>
+<div class="line"><a name="l00790"></a><span class="lineno">  790</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = E-><a class="code" href="classclang_1_1ShuffleVectorExpr.html#ad2eac086d9a5b0a4ce131f56b20bbb8a">getNumSubExprs</a>(); I != N; ++I)</div>
+<div class="line"><a name="l00791"></a><span class="lineno">  791</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(E-><a class="code" href="classclang_1_1ShuffleVectorExpr.html#af7d74eeef9d30e879b7e34077879b7a6" title="getExpr - Return the Expr at the specified index.">getExpr</a>(I));</div>
+<div class="line"><a name="l00792"></a><span class="lineno">  792</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1ShuffleVectorExpr.html#aee70f74fc931dc9cac6b90c79db7a2f3">getBuiltinLoc</a>(), Record);</div>
+<div class="line"><a name="l00793"></a><span class="lineno">  793</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1ShuffleVectorExpr.html#ae4c51e92fd809b005673277db559a09b">getRParenLoc</a>(), Record);</div>
+<div class="line"><a name="l00794"></a><span class="lineno">  794</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65ab05b6c9f50bdcd8851ca5b0b08184de3" title="A ShuffleVectorExpr record.">serialization::EXPR_SHUFFLE_VECTOR</a>;</div>
+<div class="line"><a name="l00795"></a><span class="lineno">  795</span> }</div>
+<div class="line"><a name="l00796"></a><span class="lineno">  796</span> </div>
+<div class="line"><a name="l00797"></a><span class="lineno">  797</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitConvertVectorExpr(<a class="code" href="classclang_1_1ConvertVectorExpr.html">ConvertVectorExpr</a> *E) {</div>
+<div class="line"><a name="l00798"></a><span class="lineno">  798</span>   VisitExpr(E);</div>
+<div class="line"><a name="l00799"></a><span class="lineno">  799</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1ConvertVectorExpr.html#ad735675493deb1c25b74ac48f0ce5a60" title="getBuiltinLoc - Return the location of the __builtin_convertvector token.">getBuiltinLoc</a>(), Record);</div>
+<div class="line"><a name="l00800"></a><span class="lineno">  800</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1ConvertVectorExpr.html#a1b9c4e647d38437d933a12bab0db6545" title="getRParenLoc - Return the location of final right parenthesis.">getRParenLoc</a>(), Record);</div>
+<div class="line"><a name="l00801"></a><span class="lineno">  801</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#af1cf266346d5bf16ffa56a2e00508cb3" title="Emits a reference to a declarator info.">AddTypeSourceInfo</a>(E-><a class="code" href="classclang_1_1ConvertVectorExpr.html#a4e312592013bc116bf877b18fb7eb506" title="getTypeSourceInfo - Return the destination type.">getTypeSourceInfo</a>(), Record);</div>
+<div class="line"><a name="l00802"></a><span class="lineno">  802</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(E-><a class="code" href="classclang_1_1ConvertVectorExpr.html#a1cd613a03a7137639665b50a279a5e04" title="getSrcExpr - Return the Expr to be converted.">getSrcExpr</a>());</div>
+<div class="line"><a name="l00803"></a><span class="lineno">  803</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65a39d4fddb2e533bc9e4998411b53c873c" title="A ConvertVectorExpr record.">serialization::EXPR_CONVERT_VECTOR</a>;</div>
+<div class="line"><a name="l00804"></a><span class="lineno">  804</span> }</div>
+<div class="line"><a name="l00805"></a><span class="lineno">  805</span> </div>
+<div class="line"><a name="l00806"></a><span class="lineno">  806</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitBlockExpr(<a class="code" href="classclang_1_1BlockExpr.html">BlockExpr</a> *E) {</div>
+<div class="line"><a name="l00807"></a><span class="lineno">  807</span>   VisitExpr(E);</div>
+<div class="line"><a name="l00808"></a><span class="lineno">  808</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#afaee50073b062fcd0481d85db29e7331" title="Emit a reference to a declaration.">AddDeclRef</a>(E-><a class="code" href="classclang_1_1BlockExpr.html#a5c394a54452388eb5b1bf11ca4e4e178">getBlockDecl</a>(), Record);</div>
+<div class="line"><a name="l00809"></a><span class="lineno">  809</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65abedb8db1289395479a4fb81c9d629843" title="BlockExpr.">serialization::EXPR_BLOCK</a>;</div>
+<div class="line"><a name="l00810"></a><span class="lineno">  810</span> }</div>
+<div class="line"><a name="l00811"></a><span class="lineno">  811</span> </div>
+<div class="line"><a name="l00812"></a><span class="lineno">  812</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitGenericSelectionExpr(<a class="code" href="classclang_1_1GenericSelectionExpr.html" title="Represents a C11 generic selection.">GenericSelectionExpr</a> *E) {</div>
+<div class="line"><a name="l00813"></a><span class="lineno">  813</span>   VisitExpr(E);</div>
+<div class="line"><a name="l00814"></a><span class="lineno">  814</span>   Record.push_back(E-><a class="code" href="classclang_1_1GenericSelectionExpr.html#a293170a89fc2f3a1b332ad45f4e3f997">getNumAssocs</a>());</div>
+<div class="line"><a name="l00815"></a><span class="lineno">  815</span> </div>
+<div class="line"><a name="l00816"></a><span class="lineno">  816</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(E-><a class="code" href="classclang_1_1GenericSelectionExpr.html#a793427cffdc4af633828925627828ef4">getControllingExpr</a>());</div>
+<div class="line"><a name="l00817"></a><span class="lineno">  817</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = E-><a class="code" href="classclang_1_1GenericSelectionExpr.html#a293170a89fc2f3a1b332ad45f4e3f997">getNumAssocs</a>(); I != N; ++I) {</div>
+<div class="line"><a name="l00818"></a><span class="lineno">  818</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#af1cf266346d5bf16ffa56a2e00508cb3" title="Emits a reference to a declarator info.">AddTypeSourceInfo</a>(E-><a class="code" href="classclang_1_1GenericSelectionExpr.html#a0fe362f0b89f441714c4ca47800778ea">getAssocTypeSourceInfo</a>(I), Record);</div>
+<div class="line"><a name="l00819"></a><span class="lineno">  819</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(E-><a class="code" href="classclang_1_1GenericSelectionExpr.html#a8eb786d7859660acf3334c269aa256b7">getAssocExpr</a>(I));</div>
+<div class="line"><a name="l00820"></a><span class="lineno">  820</span>   }</div>
+<div class="line"><a name="l00821"></a><span class="lineno">  821</span>   Record.push_back(E-><a class="code" href="classclang_1_1GenericSelectionExpr.html#acc659338b20af2bcf457712a9813024c" title="Whether this generic selection is result-dependent.">isResultDependent</a>() ? -1U : E-><a class="code" href="classclang_1_1GenericSelectionExpr.html#aab80bfb53fcffed1d87339c9eb01fde9">getResultIndex</a>());</div>
+<div class="line"><a name="l00822"></a><span class="lineno">  822</span> </div>
+<div class="line"><a name="l00823"></a><span class="lineno">  823</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1GenericSelectionExpr.html#a17bef43acd31774b7aef57117673aaaa">getGenericLoc</a>(), Record);</div>
+<div class="line"><a name="l00824"></a><span class="lineno">  824</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1GenericSelectionExpr.html#a4b42d3685f207209453005f37380caae">getDefaultLoc</a>(), Record);</div>
+<div class="line"><a name="l00825"></a><span class="lineno">  825</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1GenericSelectionExpr.html#a871b9dad445c9b12c995ad7390e142a4">getRParenLoc</a>(), Record);</div>
+<div class="line"><a name="l00826"></a><span class="lineno">  826</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65a8e9d5d3283b5099a2565faf6ae4551c9" title="A GenericSelectionExpr record.">serialization::EXPR_GENERIC_SELECTION</a>;</div>
+<div class="line"><a name="l00827"></a><span class="lineno">  827</span> }</div>
+<div class="line"><a name="l00828"></a><span class="lineno">  828</span> </div>
+<div class="line"><a name="l00829"></a><span class="lineno">  829</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitPseudoObjectExpr(<a class="code" href="classclang_1_1PseudoObjectExpr.html">PseudoObjectExpr</a> *E) {</div>
+<div class="line"><a name="l00830"></a><span class="lineno">  830</span>   VisitExpr(E);</div>
+<div class="line"><a name="l00831"></a><span class="lineno">  831</span>   Record.push_back(E-><a class="code" href="classclang_1_1PseudoObjectExpr.html#a08d08404a7a54b3758f054b831d283b7">getNumSemanticExprs</a>());</div>
+<div class="line"><a name="l00832"></a><span class="lineno">  832</span> </div>
+<div class="line"><a name="l00833"></a><span class="lineno">  833</span>   <span class="comment">// Push the result index.  Currently, this needs to exactly match</span></div>
+<div class="line"><a name="l00834"></a><span class="lineno">  834</span>   <span class="comment">// the encoding used internally for ResultIndex.</span></div>
+<div class="line"><a name="l00835"></a><span class="lineno">  835</span>   <span class="keywordtype">unsigned</span> result = E-><a class="code" href="classclang_1_1PseudoObjectExpr.html#a4e27224b42ad03ca739020c5ae34509b">getResultExprIndex</a>();</div>
+<div class="line"><a name="l00836"></a><span class="lineno">  836</span>   result = (result == PseudoObjectExpr::NoResult ? 0 : result + 1);</div>
+<div class="line"><a name="l00837"></a><span class="lineno">  837</span>   Record.push_back(result);</div>
+<div class="line"><a name="l00838"></a><span class="lineno">  838</span> </div>
+<div class="line"><a name="l00839"></a><span class="lineno">  839</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(E-><a class="code" href="classclang_1_1PseudoObjectExpr.html#a4412c8cea58337229e7b417fec34dbd4">getSyntacticForm</a>());</div>
+<div class="line"><a name="l00840"></a><span class="lineno">  840</span>   <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1PseudoObjectExpr.html#a4bd00d7e7c8c3c9a2e09210993b3119b">PseudoObjectExpr::semantics_iterator</a></div>
+<div class="line"><a name="l00841"></a><span class="lineno">  841</span>          i = E-><a class="code" href="classclang_1_1PseudoObjectExpr.html#a455ba1c6b83c289e35c00e77add3b4eb">semantics_begin</a>(), e = E-><a class="code" href="classclang_1_1PseudoObjectExpr.html#a1976b4ff176afbd94577feb75431b1d5">semantics_end</a>(); i != e; ++i) {</div>
+<div class="line"><a name="l00842"></a><span class="lineno">  842</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(*i);</div>
+<div class="line"><a name="l00843"></a><span class="lineno">  843</span>   }</div>
+<div class="line"><a name="l00844"></a><span class="lineno">  844</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65a30cf1c2fe1bd85abeeda7b4161ad94a3" title="A PseudoObjectExpr record.">serialization::EXPR_PSEUDO_OBJECT</a>;</div>
+<div class="line"><a name="l00845"></a><span class="lineno">  845</span> }</div>
+<div class="line"><a name="l00846"></a><span class="lineno">  846</span> </div>
+<div class="line"><a name="l00847"></a><span class="lineno">  847</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitAtomicExpr(<a class="code" href="classclang_1_1AtomicExpr.html">AtomicExpr</a> *E) {</div>
+<div class="line"><a name="l00848"></a><span class="lineno">  848</span>   VisitExpr(E);</div>
+<div class="line"><a name="l00849"></a><span class="lineno">  849</span>   Record.push_back(E-><a class="code" href="classclang_1_1AtomicExpr.html#aa5fd970907a48cd0bc2ad452c239f629">getOp</a>());</div>
+<div class="line"><a name="l00850"></a><span class="lineno">  850</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = E-><a class="code" href="classclang_1_1AtomicExpr.html#a3ef2ed899e784b5b29383843ef09c2e0" title="Determine the number of arguments the specified atomic builtin should have.">getNumSubExprs</a>(); I != N; ++I)</div>
+<div class="line"><a name="l00851"></a><span class="lineno">  851</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(E-><a class="code" href="classclang_1_1AtomicExpr.html#a5f2870f45f30a9191a2ab5088b4c6ca4">getSubExprs</a>()[I]);</div>
+<div class="line"><a name="l00852"></a><span class="lineno">  852</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1AtomicExpr.html#a0ea5b7b3c5b9840fe3010f79665c28ac">getBuiltinLoc</a>(), Record);</div>
+<div class="line"><a name="l00853"></a><span class="lineno">  853</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1AtomicExpr.html#af50e82bf47b258756019c19386ee9ebf">getRParenLoc</a>(), Record);</div>
+<div class="line"><a name="l00854"></a><span class="lineno">  854</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65a57f910118ce9838334338871d60e9e17" title="An AtomicExpr record.">serialization::EXPR_ATOMIC</a>;</div>
+<div class="line"><a name="l00855"></a><span class="lineno">  855</span> }</div>
+<div class="line"><a name="l00856"></a><span class="lineno">  856</span> </div>
+<div class="line"><a name="l00857"></a><span class="lineno">  857</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00858"></a><span class="lineno">  858</span> <span class="comment">// Objective-C Expressions and Statements.</span></div>
+<div class="line"><a name="l00859"></a><span class="lineno">  859</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00860"></a><span class="lineno">  860</span> </div>
+<div class="line"><a name="l00861"></a><span class="lineno">  861</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitObjCStringLiteral(<a class="code" href="classclang_1_1ObjCStringLiteral.html">ObjCStringLiteral</a> *E) {</div>
+<div class="line"><a name="l00862"></a><span class="lineno">  862</span>   VisitExpr(E);</div>
+<div class="line"><a name="l00863"></a><span class="lineno">  863</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(E-><a class="code" href="classclang_1_1ObjCStringLiteral.html#a6cb1da3cba4a12ffd3c7f33c8bc78114">getString</a>());</div>
+<div class="line"><a name="l00864"></a><span class="lineno">  864</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1ObjCStringLiteral.html#aa91b3fcf680131d96a349896beceb964">getAtLoc</a>(), Record);</div>
+<div class="line"><a name="l00865"></a><span class="lineno">  865</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65a15301a7d1f27402e000d779fc8d41cea" title="An ObjCStringLiteral record.">serialization::EXPR_OBJC_STRING_LITERAL</a>;</div>
+<div class="line"><a name="l00866"></a><span class="lineno">  866</span> }</div>
+<div class="line"><a name="l00867"></a><span class="lineno">  867</span> </div>
+<div class="line"><a name="l00868"></a><span class="lineno">  868</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitObjCBoxedExpr(<a class="code" href="classclang_1_1ObjCBoxedExpr.html">ObjCBoxedExpr</a> *E) {</div>
+<div class="line"><a name="l00869"></a><span class="lineno">  869</span>   VisitExpr(E);</div>
+<div class="line"><a name="l00870"></a><span class="lineno">  870</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(E-><a class="code" href="classclang_1_1ObjCBoxedExpr.html#ab00145886485e357d5f37eea7d975615">getSubExpr</a>());</div>
+<div class="line"><a name="l00871"></a><span class="lineno">  871</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#afaee50073b062fcd0481d85db29e7331" title="Emit a reference to a declaration.">AddDeclRef</a>(E-><a class="code" href="classclang_1_1ObjCBoxedExpr.html#accef0a484abac0ecfa2b9bd123e57c8b">getBoxingMethod</a>(), Record);</div>
+<div class="line"><a name="l00872"></a><span class="lineno">  872</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a879631536d3f8313162f95e6a694e33d" title="Emit a source range.">AddSourceRange</a>(E-><a class="code" href="classclang_1_1ObjCBoxedExpr.html#a5d75e3e43964ae5984bdf6abf73336cf">getSourceRange</a>(), Record);</div>
+<div class="line"><a name="l00873"></a><span class="lineno">  873</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65a4dde2d01bbb4f788c70327432de1bbdb">serialization::EXPR_OBJC_BOXED_EXPRESSION</a>;</div>
+<div class="line"><a name="l00874"></a><span class="lineno">  874</span> }</div>
+<div class="line"><a name="l00875"></a><span class="lineno">  875</span> </div>
+<div class="line"><a name="l00876"></a><span class="lineno">  876</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitObjCArrayLiteral(<a class="code" href="classclang_1_1ObjCArrayLiteral.html">ObjCArrayLiteral</a> *E) {</div>
+<div class="line"><a name="l00877"></a><span class="lineno">  877</span>   VisitExpr(E);</div>
+<div class="line"><a name="l00878"></a><span class="lineno">  878</span>   Record.push_back(E-><a class="code" href="classclang_1_1ObjCArrayLiteral.html#a3f7ac85eb0aca575940ae1551c6f2d0f" title="getNumElements - Return number of elements of objective-c array literal.">getNumElements</a>());</div>
+<div class="line"><a name="l00879"></a><span class="lineno">  879</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i < E-><a class="code" href="classclang_1_1ObjCArrayLiteral.html#a3f7ac85eb0aca575940ae1551c6f2d0f" title="getNumElements - Return number of elements of objective-c array literal.">getNumElements</a>(); i++)</div>
+<div class="line"><a name="l00880"></a><span class="lineno">  880</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(E-><a class="code" href="classclang_1_1ObjCArrayLiteral.html#ad597d76758a8cfea7d67918b3a0d8b16" title="getExpr - Return the Expr at the specified index.">getElement</a>(i));</div>
+<div class="line"><a name="l00881"></a><span class="lineno">  881</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#afaee50073b062fcd0481d85db29e7331" title="Emit a reference to a declaration.">AddDeclRef</a>(E-><a class="code" href="classclang_1_1ObjCArrayLiteral.html#a5a55c28af826dc9c4f32adb34a4b7704">getArrayWithObjectsMethod</a>(), Record);</div>
+<div class="line"><a name="l00882"></a><span class="lineno">  882</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a879631536d3f8313162f95e6a694e33d" title="Emit a source range.">AddSourceRange</a>(E-><a class="code" href="classclang_1_1ObjCArrayLiteral.html#a948335ffe2ea477b5445282c5939875e">getSourceRange</a>(), Record);</div>
+<div class="line"><a name="l00883"></a><span class="lineno">  883</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65a80445761d5c8e83bed0e5c3d6609db87">serialization::EXPR_OBJC_ARRAY_LITERAL</a>;</div>
+<div class="line"><a name="l00884"></a><span class="lineno">  884</span> }</div>
+<div class="line"><a name="l00885"></a><span class="lineno">  885</span> </div>
+<div class="line"><a name="l00886"></a><span class="lineno">  886</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitObjCDictionaryLiteral(<a class="code" href="classclang_1_1ObjCDictionaryLiteral.html">ObjCDictionaryLiteral</a> *E) {</div>
+<div class="line"><a name="l00887"></a><span class="lineno">  887</span>   VisitExpr(E);</div>
+<div class="line"><a name="l00888"></a><span class="lineno">  888</span>   Record.push_back(E-><a class="code" href="classclang_1_1ObjCDictionaryLiteral.html#aef9e73035eb6a8fdf38fd81809eeb514">getNumElements</a>());</div>
+<div class="line"><a name="l00889"></a><span class="lineno">  889</span>   Record.push_back(E->HasPackExpansions);</div>
+<div class="line"><a name="l00890"></a><span class="lineno">  890</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i < E-><a class="code" href="classclang_1_1ObjCDictionaryLiteral.html#aef9e73035eb6a8fdf38fd81809eeb514">getNumElements</a>(); i++) {</div>
+<div class="line"><a name="l00891"></a><span class="lineno">  891</span>     <a class="code" href="structclang_1_1ObjCDictionaryElement.html" title="An element in an Objective-C dictionary literal.">ObjCDictionaryElement</a> Element = E-><a class="code" href="classclang_1_1ObjCDictionaryLiteral.html#ae2889ca5ab2ab4c6eab1b5892fe790cf">getKeyValueElement</a>(i);</div>
+<div class="line"><a name="l00892"></a><span class="lineno">  892</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(Element.<a class="code" href="structclang_1_1ObjCDictionaryElement.html#ae19b4fe17956b4c452068a05c52f99ce" title="The key for the dictionary element.">Key</a>);</div>
+<div class="line"><a name="l00893"></a><span class="lineno">  893</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(Element.<a class="code" href="structclang_1_1ObjCDictionaryElement.html#a4b07b000d1fb894e24f9f9fa04f1452d" title="The value of the dictionary element.">Value</a>);</div>
+<div class="line"><a name="l00894"></a><span class="lineno">  894</span>     <span class="keywordflow">if</span> (E->HasPackExpansions) {</div>
+<div class="line"><a name="l00895"></a><span class="lineno">  895</span>       Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(Element.<a class="code" href="structclang_1_1ObjCDictionaryElement.html#ad481efa5ca7a75ae52ce7e33f49114bb" title="The location of the ellipsis, if this is a pack expansion.">EllipsisLoc</a>, Record);</div>
+<div class="line"><a name="l00896"></a><span class="lineno">  896</span>       <span class="keywordtype">unsigned</span> NumExpansions = 0;</div>
+<div class="line"><a name="l00897"></a><span class="lineno">  897</span>       <span class="keywordflow">if</span> (Element.<a class="code" href="structclang_1_1ObjCDictionaryElement.html#a6e318558facf9ca1a1567235badf53b6" title="The number of elements this pack expansion will expand to, if this is a pack expansion and is known...">NumExpansions</a>)</div>
+<div class="line"><a name="l00898"></a><span class="lineno">  898</span>         NumExpansions = *Element.<a class="code" href="structclang_1_1ObjCDictionaryElement.html#a6e318558facf9ca1a1567235badf53b6" title="The number of elements this pack expansion will expand to, if this is a pack expansion and is known...">NumExpansions</a> + 1;</div>
+<div class="line"><a name="l00899"></a><span class="lineno">  899</span>       Record.push_back(NumExpansions);</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">  902</span>     </div>
+<div class="line"><a name="l00903"></a><span class="lineno">  903</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#afaee50073b062fcd0481d85db29e7331" title="Emit a reference to a declaration.">AddDeclRef</a>(E-><a class="code" href="classclang_1_1ObjCDictionaryLiteral.html#ad5d4342653f1e833f9a95cf8e0a543f7">getDictWithObjectsMethod</a>(), Record);</div>
+<div class="line"><a name="l00904"></a><span class="lineno">  904</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a879631536d3f8313162f95e6a694e33d" title="Emit a source range.">AddSourceRange</a>(E-><a class="code" href="classclang_1_1ObjCDictionaryLiteral.html#aee3c10db0ae46cfcb9ec17320f7a6de4">getSourceRange</a>(), Record);</div>
+<div class="line"><a name="l00905"></a><span class="lineno">  905</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65a8bbbaf79b5dc0e3d587e0f5c98e85df2">serialization::EXPR_OBJC_DICTIONARY_LITERAL</a>;</div>
+<div class="line"><a name="l00906"></a><span class="lineno">  906</span> }</div>
+<div class="line"><a name="l00907"></a><span class="lineno">  907</span> </div>
+<div class="line"><a name="l00908"></a><span class="lineno">  908</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitObjCEncodeExpr(<a class="code" href="classclang_1_1ObjCEncodeExpr.html">ObjCEncodeExpr</a> *E) {</div>
+<div class="line"><a name="l00909"></a><span class="lineno">  909</span>   VisitExpr(E);</div>
+<div class="line"><a name="l00910"></a><span class="lineno">  910</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#af1cf266346d5bf16ffa56a2e00508cb3" title="Emits a reference to a declarator info.">AddTypeSourceInfo</a>(E-><a class="code" href="classclang_1_1ObjCEncodeExpr.html#adf4d8659a286f2d6034df5d8dc4de33f">getEncodedTypeSourceInfo</a>(), Record);</div>
+<div class="line"><a name="l00911"></a><span class="lineno">  911</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1ObjCEncodeExpr.html#ac13917b41585dcba7d1d6fd895e4e332">getAtLoc</a>(), Record);</div>
+<div class="line"><a name="l00912"></a><span class="lineno">  912</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1ObjCEncodeExpr.html#ae63629a95232947df2d70a078630b576">getRParenLoc</a>(), Record);</div>
+<div class="line"><a name="l00913"></a><span class="lineno">  913</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65a4beb1a5722514f87d1585aef9b41776d" title="An ObjCEncodeExpr record.">serialization::EXPR_OBJC_ENCODE</a>;</div>
+<div class="line"><a name="l00914"></a><span class="lineno">  914</span> }</div>
+<div class="line"><a name="l00915"></a><span class="lineno">  915</span> </div>
+<div class="line"><a name="l00916"></a><span class="lineno">  916</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitObjCSelectorExpr(<a class="code" href="classclang_1_1ObjCSelectorExpr.html" title="ObjCSelectorExpr used for @selector in Objective-C.">ObjCSelectorExpr</a> *E) {</div>
+<div class="line"><a name="l00917"></a><span class="lineno">  917</span>   VisitExpr(E);</div>
+<div class="line"><a name="l00918"></a><span class="lineno">  918</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a452f60e0cebe56928fe3291b531f7f38" title="Emit a Selector (which is a smart pointer reference).">AddSelectorRef</a>(E-><a class="code" href="classclang_1_1ObjCSelectorExpr.html#ad46ef0145cfc29ba528203e2da6cdccc">getSelector</a>(), Record);</div>
+<div class="line"><a name="l00919"></a><span class="lineno">  919</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1ObjCSelectorExpr.html#a2b870e779d580eb8a90153943b9936d1">getAtLoc</a>(), Record);</div>
+<div class="line"><a name="l00920"></a><span class="lineno">  920</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1ObjCSelectorExpr.html#a6acd3a5b75f62aa43cdc7180293c0b8e">getRParenLoc</a>(), Record);</div>
+<div class="line"><a name="l00921"></a><span class="lineno">  921</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65ab3d924036bb521c54bd6cd2396e041d1" title="An ObjCSelectorExpr record.">serialization::EXPR_OBJC_SELECTOR_EXPR</a>;</div>
+<div class="line"><a name="l00922"></a><span class="lineno">  922</span> }</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> <span class="keywordtype">void</span> ASTStmtWriter::VisitObjCProtocolExpr(<a class="code" href="classclang_1_1ObjCProtocolExpr.html">ObjCProtocolExpr</a> *E) {</div>
+<div class="line"><a name="l00925"></a><span class="lineno">  925</span>   VisitExpr(E);</div>
+<div class="line"><a name="l00926"></a><span class="lineno">  926</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#afaee50073b062fcd0481d85db29e7331" title="Emit a reference to a declaration.">AddDeclRef</a>(E-><a class="code" href="classclang_1_1ObjCProtocolExpr.html#ab3f03e1df66e7c88a741e069d5f89fd9">getProtocol</a>(), Record);</div>
+<div class="line"><a name="l00927"></a><span class="lineno">  927</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1ObjCProtocolExpr.html#abab8397da655fac88a5fe22ec0d30c0c">getAtLoc</a>(), Record);</div>
+<div class="line"><a name="l00928"></a><span class="lineno">  928</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E->ProtoLoc, Record);</div>
+<div class="line"><a name="l00929"></a><span class="lineno">  929</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1ObjCProtocolExpr.html#a6689d6c20ff353dadcff5c02d98901af">getRParenLoc</a>(), Record);</div>
+<div class="line"><a name="l00930"></a><span class="lineno">  930</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65a81693c570546775f59e7073eb81f6b5e" title="An ObjCProtocolExpr record.">serialization::EXPR_OBJC_PROTOCOL_EXPR</a>;</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> </div>
+<div class="line"><a name="l00933"></a><span class="lineno">  933</span> <span class="keywordtype">void</span> ASTStmtWriter::VisitObjCIvarRefExpr(<a class="code" href="classclang_1_1ObjCIvarRefExpr.html" title="ObjCIvarRefExpr - A reference to an ObjC instance variable.">ObjCIvarRefExpr</a> *E) {</div>
+<div class="line"><a name="l00934"></a><span class="lineno">  934</span>   VisitExpr(E);</div>
+<div class="line"><a name="l00935"></a><span class="lineno">  935</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#afaee50073b062fcd0481d85db29e7331" title="Emit a reference to a declaration.">AddDeclRef</a>(E-><a class="code" href="classclang_1_1ObjCIvarRefExpr.html#abaa63a7fb7b5fc4bf2d40c6ad41eca2c">getDecl</a>(), Record);</div>
+<div class="line"><a name="l00936"></a><span class="lineno">  936</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1ObjCIvarRefExpr.html#a16f4bef96dcba28b33edb795e0235e28">getLocation</a>(), Record);</div>
+<div class="line"><a name="l00937"></a><span class="lineno">  937</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1ObjCIvarRefExpr.html#a3d5eb8e0ec4f4a75227f4bfd6689d2ac">getOpLoc</a>(), Record);</div>
+<div class="line"><a name="l00938"></a><span class="lineno">  938</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(E-><a class="code" href="classclang_1_1ObjCIvarRefExpr.html#a27fdb40e00a21993a9845fcdc00645f9">getBase</a>());</div>
+<div class="line"><a name="l00939"></a><span class="lineno">  939</span>   Record.push_back(E-><a class="code" href="classclang_1_1ObjCIvarRefExpr.html#af46e182f53b825c983ee375b96036ec7">isArrow</a>());</div>
+<div class="line"><a name="l00940"></a><span class="lineno">  940</span>   Record.push_back(E-><a class="code" href="classclang_1_1ObjCIvarRefExpr.html#a76cae2dcffb3656370fe2da536fa226b">isFreeIvar</a>());</div>
+<div class="line"><a name="l00941"></a><span class="lineno">  941</span>   <a class="code" href="classclang_1_1ASTStmtWriter.html#a9b8d93a86ce5d8e449fce640b18f89f7">Code</a> = <a class="code" href="group__ASTAST.html#ggab68acefcc947e7c17930046344f61d65a07e462b98e5a3f4b76802e606a5eaf4f" title="An ObjCIvarRefExpr record.">serialization::EXPR_OBJC_IVAR_REF_EXPR</a>;</div>
+<div class="line"><a name="l00942"></a><span class="lineno">  942</span> }</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> <span class="keywordtype">void</span> ASTStmtWriter::VisitObjCPropertyRefExpr(<a class="code" href="classclang_1_1ObjCPropertyRefExpr.html">ObjCPropertyRefExpr</a> *E) {</div>
+<div class="line"><a name="l00945"></a><span class="lineno">  945</span>   VisitExpr(E);</div>
+<div class="line"><a name="l00946"></a><span class="lineno">  946</span>   Record.push_back(E->SetterAndMethodRefFlags.getInt());</div>
+<div class="line"><a name="l00947"></a><span class="lineno">  947</span>   Record.push_back(E-><a class="code" href="classclang_1_1ObjCPropertyRefExpr.html#a217b0242b0580b7d0b58e9c2a7a3aefc">isImplicitProperty</a>());</div>
+<div class="line"><a name="l00948"></a><span class="lineno">  948</span>   <span class="keywordflow">if</span> (E-><a class="code" href="classclang_1_1ObjCPropertyRefExpr.html#a217b0242b0580b7d0b58e9c2a7a3aefc">isImplicitProperty</a>()) {</div>
+<div class="line"><a name="l00949"></a><span class="lineno">  949</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#afaee50073b062fcd0481d85db29e7331" title="Emit a reference to a declaration.">AddDeclRef</a>(E-><a class="code" href="classclang_1_1ObjCPropertyRefExpr.html#a9b6e7014bdf14914c2b07efe395e13d6">getImplicitPropertyGetter</a>(), Record);</div>
+<div class="line"><a name="l00950"></a><span class="lineno">  950</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#afaee50073b062fcd0481d85db29e7331" title="Emit a reference to a declaration.">AddDeclRef</a>(E-><a class="code" href="classclang_1_1ObjCPropertyRefExpr.html#a6534ac5e930d1b023ae355d96d5c0e33">getImplicitPropertySetter</a>(), Record);</div>
+<div class="line"><a name="l00951"></a><span class="lineno">  951</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00952"></a><span class="lineno">  952</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#afaee50073b062fcd0481d85db29e7331" title="Emit a reference to a declaration.">AddDeclRef</a>(E-><a class="code" href="classclang_1_1ObjCPropertyRefExpr.html#aa439852d61ae49d46ce7c7c2b8cd1ebd">getExplicitProperty</a>(), Record);</div>
+<div class="line"><a name="l00953"></a><span class="lineno">  953</span>   }</div>
+<div class="line"><a name="l00954"></a><span class="lineno">  954</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1ObjCPropertyRefExpr.html#a7c3103a200c56154d0ca6d8047642c97">getLocation</a>(), Record);</div>
+<div class="line"><a name="l00955"></a><span class="lineno">  955</span>   Writer.<a class="code" href="classclang_1_1ASTWriter.html#a8f926fa75ded3d4fc5eb7e333f76c930" title="Emit a source location.">AddSourceLocation</a>(E-><a class="code" href="classclang_1_1ObjCPropertyRefExpr.html#a7533e39c9e0feff3ab6b2c718f2b75da">getReceiverLocation</a>(), Record);</div>
+<div class="line"><a name="l00956"></a><span class="lineno">  956</span>   <span class="keywordflow">if</span> (E-><a class="code" href="classclang_1_1ObjCPropertyRefExpr.html#ae9afd8d668d1f683be974fde729b0018">isObjectReceiver</a>()) {</div>
+<div class="line"><a name="l00957"></a><span class="lineno">  957</span>     Record.push_back(0);</div>
+<div class="line"><a name="l00958"></a><span class="lineno">  958</span>     Writer.<a class="code" href="classclang_1_1ASTWriter.html#a0bedcdd7eb874d03b81ecae727e53ab7" title="Add the given statement or expression to the queue of statements to emit.">AddStmt</a>(E-><a class="code" href="classcl