[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/PPMacroExpansion_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PPMacroExpansion_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PPMacroExpansion_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PPMacroExpansion_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,1573 @@
+<!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: PPMacroExpansion.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_925be8e1c75f746b0aee1084b3b1a980.html">Lex</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">PPMacroExpansion.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="PPMacroExpansion_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">//===--- MacroExpansion.cpp - Top level Macro Expansion -------------------===//</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">//                     The LLVM Compiler Infrastructure</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment">// This file is distributed under the University of Illinois Open Source</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">// License. See LICENSE.TXT for details.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span> <span class="comment">// This file implements the top level handling of macro expasion for the</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="comment">// preprocessor.</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> <span class="preprocessor">#include "<a class="code" href="Preprocessor_8h.html">clang/Lex/Preprocessor.h</a>"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="preprocessor">#include "<a class="code" href="MacroArgs_8h.html">clang/Lex/MacroArgs.h</a>"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="preprocessor">#include "<a class="code" href="FileManager_8h.html" title="Defines the clang::FileManager interface and associated types.">clang/Basic/FileManager.h</a>"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</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="l00019"></a><span class="lineno">   19</span> <span class="preprocessor">#include "<a class="code" href="include_2clang_2Basic_2TargetInfo_8h.html" title="Defines the clang::TargetInfo interface.">clang/Basic/TargetInfo.h</a>"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="preprocessor">#include "<a class="code" href="CodeCompletionHandler_8h.html">clang/Lex/CodeCompletionHandler.h</a>"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="preprocessor">#include "<a class="code" href="ExternalPreprocessorSource_8h.html">clang/Lex/ExternalPreprocessorSource.h</a>"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="preprocessor">#include "<a class="code" href="LexDiagnostic_8h.html">clang/Lex/LexDiagnostic.h</a>"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="preprocessor">#include "<a class="code" href="MacroInfo_8h.html" title="Defines the clang::MacroInfo and clang::MacroDirective classes.">clang/Lex/MacroInfo.h</a>"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="preprocessor">#include "llvm/ADT/STLExtras.h"</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="preprocessor">#include "llvm/ADT/SmallString.h"</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="preprocessor">#include "llvm/ADT/StringSwitch.h"</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="preprocessor">#include "llvm/Config/llvm-config.h"</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="preprocessor">#include "llvm/Support/ErrorHandling.h"</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="preprocessor">#include "llvm/Support/Format.h"</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="preprocessor">#include "llvm/Support/raw_ostream.h"</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span> <span class="preprocessor">#include <cstdio></span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span> <span class="preprocessor">#include <ctime></span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span> <span class="keyword">using namespace </span>clang;</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span> </div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span> <a class="code" href="classclang_1_1MacroDirective.html" title="Encapsulates changes to the "macros namespace" (the location where the macro name became active...">MacroDirective</a> *</div>
+<div class="line"><a name="l00036"></a><span class="lineno"><a class="code" href="classclang_1_1Preprocessor.html#a5ddfa2be3b0fd4cdf82e45034da6f35a">   36</a></span> <a class="code" href="classclang_1_1Preprocessor.html#a5ddfa2be3b0fd4cdf82e45034da6f35a" title="Given an identifier, return the (probably #undef'd) MacroInfo representing the most recent macro defi...">Preprocessor::getMacroDirectiveHistory</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *II)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>   assert(II-><a class="code" href="classclang_1_1IdentifierInfo.html#aec139c9a39e529ba15c88efdb4152758" title="Returns true if this identifier was #defined to some value at any moment. In this case there should b...">hadMacroDefinition</a>() && <span class="stringliteral">"Identifier has not been not a macro!"</span>);</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span> </div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>   <a class="code" href="classclang_1_1Preprocessor.html#a7a56501d62045ff4543c2ec39bc18a36">macro_iterator</a> Pos = Macros.find(II);</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>   assert(Pos != Macros.end() && <span class="stringliteral">"Identifier macro info is missing!"</span>);</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>   <span class="keywordflow">return</span> Pos->second;</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span> }</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span> </div>
+<div class="line"><a name="l00044"></a><span class="lineno"><a class="code" href="classclang_1_1Preprocessor.html#aff92a28cdfbaae74c5669b8eb5af7004">   44</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1Preprocessor.html#aff92a28cdfbaae74c5669b8eb5af7004" title="Add a directive to the macro directive history for this identifier.">Preprocessor::appendMacroDirective</a>(<a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *II, <a class="code" href="classclang_1_1MacroDirective.html" title="Encapsulates changes to the "macros namespace" (the location where the macro name became active...">MacroDirective</a> *MD){</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>   assert(MD && <span class="stringliteral">"MacroDirective should be non-zero!"</span>);</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>   assert(!MD-><a class="code" href="classclang_1_1MacroDirective.html#a070eb21f41b137f73f0c034e4f48426f" title="Get previous definition of the macro with the same name.">getPrevious</a>() && <span class="stringliteral">"Already attached to a MacroDirective history."</span>);</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span> </div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>   <a class="code" href="classclang_1_1MacroDirective.html" title="Encapsulates changes to the "macros namespace" (the location where the macro name became active...">MacroDirective</a> *&StoredMD = Macros[II];</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>   MD-><a class="code" href="classclang_1_1MacroDirective.html#a4e616bdbfc4a44f9abeb7a6b0d95dfca" title="Set previous definition of the macro with the same name.">setPrevious</a>(StoredMD);</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>   StoredMD = MD;</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>   II-><a class="code" href="classclang_1_1IdentifierInfo.html#aa49abd4f96aa46197651bfca7b5fdd96">setHasMacroDefinition</a>(MD-><a class="code" href="classclang_1_1MacroDirective.html#a1d55ed8c4309f608cfa1461f2c259e97">isDefined</a>());</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>   <span class="keywordtype">bool</span> isImportedMacro = isa<DefMacroDirective>(MD) &&</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>                          cast<DefMacroDirective>(MD)->isImported();</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>   <span class="keywordflow">if</span> (II-><a class="code" href="classclang_1_1IdentifierInfo.html#a531b4f970808ca7228c5dd63e3af57ad" title="Return true if the identifier in its current state was loaded from an AST file.">isFromAST</a>() && !isImportedMacro)</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>     II-><a class="code" href="classclang_1_1IdentifierInfo.html#ad6acea339268ccdbf24fad254b7f1524" title="Note that this identifier has changed since it was loaded from an AST file.">setChangedSinceDeserialization</a>();</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span> }</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span> </div>
+<div class="line"><a name="l00058"></a><span class="lineno"><a class="code" href="classclang_1_1Preprocessor.html#ad47b2fce7b7ae11feee6ec9e603f0b8a">   58</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1Preprocessor.html#ad47b2fce7b7ae11feee6ec9e603f0b8a" title="Set a MacroDirective that was loaded from a PCH file.">Preprocessor::setLoadedMacroDirective</a>(<a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *II,</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>                                            <a class="code" href="classclang_1_1MacroDirective.html" title="Encapsulates changes to the "macros namespace" (the location where the macro name became active...">MacroDirective</a> *MD) {</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>   assert(II && MD);</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>   <a class="code" href="classclang_1_1MacroDirective.html" title="Encapsulates changes to the "macros namespace" (the location where the macro name became active...">MacroDirective</a> *&StoredMD = Macros[II];</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>   assert(!StoredMD &&</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>          <span class="stringliteral">"the macro history was modified before initializing it from a pch"</span>);</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>   StoredMD = MD;</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>   <span class="comment">// Setup the identifier as having associated macro history.</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>   II-><a class="code" href="classclang_1_1IdentifierInfo.html#aa49abd4f96aa46197651bfca7b5fdd96">setHasMacroDefinition</a>(<span class="keyword">true</span>);</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>   <span class="keywordflow">if</span> (!MD-><a class="code" href="classclang_1_1MacroDirective.html#a1d55ed8c4309f608cfa1461f2c259e97">isDefined</a>())</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>     II-><a class="code" href="classclang_1_1IdentifierInfo.html#aa49abd4f96aa46197651bfca7b5fdd96">setHasMacroDefinition</a>(<span class="keyword">false</span>);</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span> }</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span> <span class="comment"></span></div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span> <span class="comment">/// RegisterBuiltinMacro - Register the specified identifier in the identifier</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span> <span class="comment">/// table and mark it as a builtin macro to be expanded.</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno"><a class="code" href="PPMacroExpansion_8cpp.html#a7cc7428b007ac64d9be3c0388223d2b8">   73</a></span> <span class="comment"></span><span class="keyword">static</span> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *<a class="code" href="PPMacroExpansion_8cpp.html#a7cc7428b007ac64d9be3c0388223d2b8">RegisterBuiltinMacro</a>(<a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP, <span class="keyword">const</span> <span class="keywordtype">char</span> *Name){</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>   <span class="comment">// Get the identifier.</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>   <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *Id = PP.<a class="code" href="classclang_1_1Preprocessor.html#acbacad0c69321bd63102c7697a95b67d">getIdentifierInfo</a>(Name);</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span> </div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>   <span class="comment">// Mark it as being a macro that is builtin.</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>   <a class="code" href="classclang_1_1MacroInfo.html" title="Encapsulates the data about a macro definition (e.g. its tokens).">MacroInfo</a> *MI = PP.<a class="code" href="classclang_1_1Preprocessor.html#aa61d27c61e53b8c69549fedcd8baa5ef" title="Allocate a new MacroInfo object with the provided SourceLocation.">AllocateMacroInfo</a>(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a>());</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>   MI-><a class="code" href="classclang_1_1MacroInfo.html#af6d3b5806e2bf117d557d5d4df86606d" title="Set or clear the isBuiltinMacro flag.">setIsBuiltinMacro</a>();</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>   PP.<a class="code" href="classclang_1_1Preprocessor.html#afc410b9870f9ee069b69be52e845e82f">appendDefMacroDirective</a>(Id, MI);</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>   <span class="keywordflow">return</span> Id;</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span> }</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span> </div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span> <span class="comment"></span></div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span> <span class="comment">/// RegisterBuiltinMacros - Register builtin macros, such as __LINE__ with the</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span> <span class="comment">/// identifier table.</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span> <span class="comment"></span><span class="keywordtype">void</span> Preprocessor::RegisterBuiltinMacros() {</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>   Ident__LINE__ = <a class="code" href="PPMacroExpansion_8cpp.html#a7cc7428b007ac64d9be3c0388223d2b8">RegisterBuiltinMacro</a>(*<span class="keyword">this</span>, <span class="stringliteral">"__LINE__"</span>);</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>   Ident__FILE__ = <a class="code" href="PPMacroExpansion_8cpp.html#a7cc7428b007ac64d9be3c0388223d2b8">RegisterBuiltinMacro</a>(*<span class="keyword">this</span>, <span class="stringliteral">"__FILE__"</span>);</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>   Ident__DATE__ = <a class="code" href="PPMacroExpansion_8cpp.html#a7cc7428b007ac64d9be3c0388223d2b8">RegisterBuiltinMacro</a>(*<span class="keyword">this</span>, <span class="stringliteral">"__DATE__"</span>);</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>   Ident__TIME__ = <a class="code" href="PPMacroExpansion_8cpp.html#a7cc7428b007ac64d9be3c0388223d2b8">RegisterBuiltinMacro</a>(*<span class="keyword">this</span>, <span class="stringliteral">"__TIME__"</span>);</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>   Ident__COUNTER__ = <a class="code" href="PPMacroExpansion_8cpp.html#a7cc7428b007ac64d9be3c0388223d2b8">RegisterBuiltinMacro</a>(*<span class="keyword">this</span>, <span class="stringliteral">"__COUNTER__"</span>);</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>   Ident_Pragma  = <a class="code" href="PPMacroExpansion_8cpp.html#a7cc7428b007ac64d9be3c0388223d2b8">RegisterBuiltinMacro</a>(*<span class="keyword">this</span>, <span class="stringliteral">"_Pragma"</span>);</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span> </div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>   <span class="comment">// GCC Extensions.</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>   Ident__BASE_FILE__     = <a class="code" href="PPMacroExpansion_8cpp.html#a7cc7428b007ac64d9be3c0388223d2b8">RegisterBuiltinMacro</a>(*<span class="keyword">this</span>, <span class="stringliteral">"__BASE_FILE__"</span>);</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>   Ident__INCLUDE_LEVEL__ = <a class="code" href="PPMacroExpansion_8cpp.html#a7cc7428b007ac64d9be3c0388223d2b8">RegisterBuiltinMacro</a>(*<span class="keyword">this</span>, <span class="stringliteral">"__INCLUDE_LEVEL__"</span>);</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>   Ident__TIMESTAMP__     = <a class="code" href="PPMacroExpansion_8cpp.html#a7cc7428b007ac64d9be3c0388223d2b8">RegisterBuiltinMacro</a>(*<span class="keyword">this</span>, <span class="stringliteral">"__TIMESTAMP__"</span>);</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span> </div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>   <span class="comment">// Clang Extensions.</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>   Ident__has_feature      = <a class="code" href="PPMacroExpansion_8cpp.html#a7cc7428b007ac64d9be3c0388223d2b8">RegisterBuiltinMacro</a>(*<span class="keyword">this</span>, <span class="stringliteral">"__has_feature"</span>);</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>   Ident__has_extension    = <a class="code" href="PPMacroExpansion_8cpp.html#a7cc7428b007ac64d9be3c0388223d2b8">RegisterBuiltinMacro</a>(*<span class="keyword">this</span>, <span class="stringliteral">"__has_extension"</span>);</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>   Ident__has_builtin      = <a class="code" href="PPMacroExpansion_8cpp.html#a7cc7428b007ac64d9be3c0388223d2b8">RegisterBuiltinMacro</a>(*<span class="keyword">this</span>, <span class="stringliteral">"__has_builtin"</span>);</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>   Ident__has_attribute    = <a class="code" href="PPMacroExpansion_8cpp.html#a7cc7428b007ac64d9be3c0388223d2b8">RegisterBuiltinMacro</a>(*<span class="keyword">this</span>, <span class="stringliteral">"__has_attribute"</span>);</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>   Ident__has_include      = <a class="code" href="PPMacroExpansion_8cpp.html#a7cc7428b007ac64d9be3c0388223d2b8">RegisterBuiltinMacro</a>(*<span class="keyword">this</span>, <span class="stringliteral">"__has_include"</span>);</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>   Ident__has_include_next = <a class="code" href="PPMacroExpansion_8cpp.html#a7cc7428b007ac64d9be3c0388223d2b8">RegisterBuiltinMacro</a>(*<span class="keyword">this</span>, <span class="stringliteral">"__has_include_next"</span>);</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>   Ident__has_warning      = <a class="code" href="PPMacroExpansion_8cpp.html#a7cc7428b007ac64d9be3c0388223d2b8">RegisterBuiltinMacro</a>(*<span class="keyword">this</span>, <span class="stringliteral">"__has_warning"</span>);</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span> </div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>   <span class="comment">// Modules.</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>   <span class="keywordflow">if</span> (LangOpts.Modules) {</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>     Ident__building_module  = <a class="code" href="PPMacroExpansion_8cpp.html#a7cc7428b007ac64d9be3c0388223d2b8">RegisterBuiltinMacro</a>(*<span class="keyword">this</span>, <span class="stringliteral">"__building_module"</span>);</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span> </div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>     <span class="comment">// __MODULE__</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>     <span class="keywordflow">if</span> (!LangOpts.<a class="code" href="classclang_1_1LangOptions.html#afd139a4fe76990c1c01e77ae67cd1310" title="The name of the current module.">CurrentModule</a>.empty())</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>       Ident__MODULE__ = <a class="code" href="PPMacroExpansion_8cpp.html#a7cc7428b007ac64d9be3c0388223d2b8">RegisterBuiltinMacro</a>(*<span class="keyword">this</span>, <span class="stringliteral">"__MODULE__"</span>);</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>     <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>       Ident__MODULE__ = 0;</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>     Ident__building_module = 0;</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>     Ident__MODULE__ = 0;</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>   }</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>   </div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>   <span class="comment">// Microsoft Extensions.</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>   <span class="keywordflow">if</span> (LangOpts.MicrosoftExt) </div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>     Ident__pragma = <a class="code" href="PPMacroExpansion_8cpp.html#a7cc7428b007ac64d9be3c0388223d2b8">RegisterBuiltinMacro</a>(*<span class="keyword">this</span>, <span class="stringliteral">"__pragma"</span>);</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>   <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>     Ident__pragma = 0;</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span> }</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span> <span class="comment"></span></div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span> <span class="comment">/// isTrivialSingleTokenExpansion - Return true if MI, which has a single token</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span> <span class="comment">/// in its expansion, currently expands to that token literally.</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno"><a class="code" href="PPMacroExpansion_8cpp.html#a7dbb245df8ed58096590883b044070b8">  132</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="PPMacroExpansion_8cpp.html#a7dbb245df8ed58096590883b044070b8">isTrivialSingleTokenExpansion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1MacroInfo.html" title="Encapsulates the data about a macro definition (e.g. its tokens).">MacroInfo</a> *MI,</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>                                           <span class="keyword">const</span> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *MacroIdent,</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>                                           <a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP) {</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>   <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *II = MI-><a class="code" href="classclang_1_1MacroInfo.html#a3a7a58bd12a2c8a9dc2f7574a07f5133">getReplacementToken</a>(0).<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</a>();</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span> </div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>   <span class="comment">// If the token isn't an identifier, it's always literally expanded.</span></div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>   <span class="keywordflow">if</span> (II == 0) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span> </div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>   <span class="comment">// If the information about this identifier is out of date, update it from</span></div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>   <span class="comment">// the external source.</span></div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>   <span class="keywordflow">if</span> (II-><a class="code" href="classclang_1_1IdentifierInfo.html#a3163e8b0a84559ac33732cd46ad082ef" title="Determine whether the information for this identifier is out of date with respect to the external sou...">isOutOfDate</a>())</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#a48984ee59fb4772066034e1e547caa66">getExternalSource</a>()-><a class="code" href="classclang_1_1ExternalPreprocessorSource.html#aa2c691e71f32dac58cd2752bdc32b30e" title="Update an out-of-date identifier.">updateOutOfDateIdentifier</a>(*II);</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="comment">// If the identifier is a macro, and if that macro is enabled, it may be</span></div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>   <span class="comment">// expanded so it's not a trivial expansion.</span></div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>   <span class="keywordflow">if</span> (II-><a class="code" href="classclang_1_1IdentifierInfo.html#a34cb7627ed0055795b041425667ee8a8" title="Return true if this identifier is #defined to some other value.">hasMacroDefinition</a>() && PP.<a class="code" href="classclang_1_1Preprocessor.html#aae0ad9f63f31eda09f5c5c2eac0cb307">getMacroInfo</a>(II)-><a class="code" href="classclang_1_1MacroInfo.html#a4bbb60a0a242bd0c07662c41c46ea75c" title="Return true if this macro is enabled.">isEnabled</a>() &&</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>       <span class="comment">// Fast expanding "#define X X" is ok, because X would be disabled.</span></div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>       II != MacroIdent)</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span> </div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>   <span class="comment">// If this is an object-like macro invocation, it is safe to trivially expand</span></div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>   <span class="comment">// it.</span></div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>   <span class="keywordflow">if</span> (MI-><a class="code" href="classclang_1_1MacroInfo.html#acf9efae22d2becd90755c62bad279613">isObjectLike</a>()) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span> </div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>   <span class="comment">// If this is a function-like macro invocation, it's safe to trivially expand</span></div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>   <span class="comment">// as long as the identifier is not a macro argument.</span></div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>   <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1MacroInfo.html#aadf9f13edc8699efade9b9fc56b07753">MacroInfo::arg_iterator</a> I = MI-><a class="code" href="classclang_1_1MacroInfo.html#a22c2da5f8c160e2b074e82d3d51abb74">arg_begin</a>(), E = MI-><a class="code" href="classclang_1_1MacroInfo.html#af01ddc21005daf7e24f466b21832013e">arg_end</a>();</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>        I != E; ++I)</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>     <span class="keywordflow">if</span> (*I == II)</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>       <span class="keywordflow">return</span> <span class="keyword">false</span>;   <span class="comment">// Identifier is a macro argument.</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span> </div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>   <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span> }</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span> </div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span> <span class="comment"></span></div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span> <span class="comment">/// isNextPPTokenLParen - Determine whether the next preprocessor token to be</span></div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span> <span class="comment">/// lexed is a '('.  If so, consume the token and return true, if not, this</span></div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span> <span class="comment">/// method should have no observable side-effect on the lexed tokens.</span></div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span> <span class="comment"></span><span class="keywordtype">bool</span> Preprocessor::isNextPPTokenLParen() {</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>   <span class="comment">// Do some quick tests for rejection cases.</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>   <span class="keywordtype">unsigned</span> Val;</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>   <span class="keywordflow">if</span> (CurLexer)</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>     Val = CurLexer->isNextPPTokenLParen();</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>   <span class="keywordflow">else</span> <span class="keywordflow">if</span> (CurPTHLexer)</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>     Val = CurPTHLexer->isNextPPTokenLParen();</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>   <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>     Val = CurTokenLexer->isNextTokenLParen();</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span> </div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>   <span class="keywordflow">if</span> (Val == 2) {</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>     <span class="comment">// We have run off the end.  If it's a source file we don't</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>     <span class="comment">// examine enclosing ones (C99 5.1.1.2p4).  Otherwise walk up the</span></div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>     <span class="comment">// macro stack.</span></div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>     <span class="keywordflow">if</span> (CurPPLexer)</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>       <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = IncludeMacroStack.size(); i != 0; --i) {</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>       IncludeStackInfo &Entry = IncludeMacroStack[i-1];</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>       <span class="keywordflow">if</span> (Entry.TheLexer)</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>         Val = Entry.TheLexer->isNextPPTokenLParen();</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>       <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Entry.ThePTHLexer)</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>         Val = Entry.ThePTHLexer->isNextPPTokenLParen();</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>       <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span>         Val = Entry.TheTokenLexer->isNextTokenLParen();</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>       <span class="keywordflow">if</span> (Val != 2)</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span> </div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>       <span class="comment">// Ran off the end of a source file?</span></div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>       <span class="keywordflow">if</span> (Entry.ThePPLexer)</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>         <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>     }</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>   }</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span> </div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>   <span class="comment">// Okay, if we know that the token is a '(', lex it and return.  Otherwise we</span></div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>   <span class="comment">// have found something that isn't a '(' or we found the end of the</span></div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>   <span class="comment">// translation unit.  In either case, return false.</span></div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span>   <span class="keywordflow">return</span> Val == 1;</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> <span class="comment"></span></div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span> <span class="comment">/// HandleMacroExpandedIdentifier - If an identifier token is read that is to be</span></div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span> <span class="comment">/// expanded as a macro, handle it and return the next token as 'Identifier'.</span></div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span> <span class="comment"></span><span class="keywordtype">bool</span> Preprocessor::HandleMacroExpandedIdentifier(<a class="code" href="classclang_1_1Token.html">Token</a> &Identifier,</div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span>                                                  <a class="code" href="classclang_1_1MacroDirective.html" title="Encapsulates changes to the "macros namespace" (the location where the macro name became active...">MacroDirective</a> *MD) {</div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>   <a class="code" href="classclang_1_1MacroDirective_1_1DefInfo.html">MacroDirective::DefInfo</a> Def = MD-><a class="code" href="classclang_1_1MacroDirective.html#ac3062e528778a25dc02f7d007b96114e" title="Traverses the macro directives history and returns the next macro definition directive along with inf...">getDefinition</a>();</div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span>   assert(Def.<a class="code" href="classclang_1_1MacroDirective_1_1DefInfo.html#afcf1d6418f843bcb36b835d2685b4109">isValid</a>());</div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span>   <a class="code" href="classclang_1_1MacroInfo.html" title="Encapsulates the data about a macro definition (e.g. its tokens).">MacroInfo</a> *MI = Def.<a class="code" href="classclang_1_1MacroDirective_1_1DefInfo.html#a5b4f67b9ad7af09e7e7d91c089ffe28b">getMacroInfo</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>   <span class="comment">// If this is a macro expansion in the "#if !defined(x)" line for the file,</span></div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>   <span class="comment">// then the macro could expand to different things in other contexts, we need</span></div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>   <span class="comment">// to disable the optimization in this case.</span></div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span>   <span class="keywordflow">if</span> (CurPPLexer) CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a76b00d43f7518b466f922843f6fbb138" title="A state machine that detects the #ifndef-wrapping a file idiom for the multiple-include optimization...">MIOpt</a>.<a class="code" href="classclang_1_1MultipleIncludeOpt.html#af86888809694748a1f511cefcf63cc91">ExpandedMacro</a>();</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="comment">// If this is a builtin macro, like __LINE__ or _Pragma, handle it specially.</span></div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>   <span class="keywordflow">if</span> (MI->isBuiltinMacro()) {</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>     <span class="keywordflow">if</span> (Callbacks) Callbacks-><a class="code" href="classclang_1_1PPCallbacks.html#a9bc725209d3a071ea649144ab996d515" title="Called by Preprocessor::HandleMacroExpandedIdentifier when a macro invocation is found.">MacroExpands</a>(Identifier, MD,</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>                                            Identifier.<a class="code" href="classclang_1_1Token.html#a6f28cdecdecc3f19f8e7c976a044ebf8" title="Return a source location identifier for the specified offset in the current file.">getLocation</a>(),<span class="comment">/*Args=*/</span>0);</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>     ExpandBuiltinMacro(Identifier);</div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span>     <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span>   }</div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span> <span class="comment"></span></div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span> <span class="comment">  /// Args - If this is a function-like macro expansion, this contains,</span></div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span> <span class="comment">  /// for each macro argument, the list of tokens that were provided to the</span></div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span> <span class="comment">  /// invocation.</span></div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span> <span class="comment"></span>  <a class="code" href="classclang_1_1MacroArgs.html">MacroArgs</a> *<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a> = 0;</div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span> </div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span>   <span class="comment">// Remember where the end of the expansion occurred.  For an object-like</span></div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span>   <span class="comment">// macro, this is the identifier.  For a function-like macro, this is the ')'.</span></div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</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> ExpansionEnd = Identifier.<a class="code" href="classclang_1_1Token.html#a6f28cdecdecc3f19f8e7c976a044ebf8" title="Return a source location identifier for the specified offset in the current file.">getLocation</a>();</div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span> </div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span>   <span class="comment">// If this is a function-like macro, read the arguments.</span></div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span>   <span class="keywordflow">if</span> (MI->isFunctionLike()) {</div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span>     <span class="comment">// Remember that we are now parsing the arguments to a macro invocation.</span></div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span>     <span class="comment">// Preprocessor directives used inside macro arguments are not portable, and</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span>     <span class="comment">// this enables the warning.</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span>     InMacroArgs = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span>     Args = ReadFunctionLikeMacroArgs(Identifier, MI, ExpansionEnd);</div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span> </div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span>     <span class="comment">// Finished parsing args.</span></div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span>     InMacroArgs = <span class="keyword">false</span>;</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>     <span class="comment">// If there was an error parsing the arguments, bail out.</span></div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span>     <span class="keywordflow">if</span> (Args == 0) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span> </div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span>     ++NumFnMacroExpanded;</div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span>     ++NumMacroExpanded;</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="comment">// Notice that this macro has been used.</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span>   <a class="code" href="classclang_1_1Preprocessor.html#a374054b25f5e05212201b1357b5cd62b" title="A macro is used, update information about macros that need unused warnings.">markMacroAsUsed</a>(MI);</div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span> </div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span>   <span class="comment">// Remember where the token is expanded.</span></div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</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> ExpandLoc = Identifier.<a class="code" href="classclang_1_1Token.html#a6f28cdecdecc3f19f8e7c976a044ebf8" title="Return a source location identifier for the specified offset in the current file.">getLocation</a>();</div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span>   <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> ExpansionRange(ExpandLoc, ExpansionEnd);</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="keywordflow">if</span> (Callbacks) {</div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span>     <span class="keywordflow">if</span> (InMacroArgs) {</div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span>       <span class="comment">// We can have macro expansion inside a conditional directive while</span></div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span>       <span class="comment">// reading the function macro arguments. To ensure, in that case, that</span></div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span>       <span class="comment">// MacroExpands callbacks still happen in source order, queue this</span></div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span>       <span class="comment">// callback to have it happen after the function macro callback.</span></div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span>       DelayedMacroExpandsCallbacks.push_back(</div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span>                               MacroExpandsInfo(Identifier, MD, ExpansionRange));</div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span>       Callbacks-><a class="code" href="classclang_1_1PPCallbacks.html#a9bc725209d3a071ea649144ab996d515" title="Called by Preprocessor::HandleMacroExpandedIdentifier when a macro invocation is found.">MacroExpands</a>(Identifier, MD, ExpansionRange, Args);</div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span>       <span class="keywordflow">if</span> (!DelayedMacroExpandsCallbacks.empty()) {</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, e = DelayedMacroExpandsCallbacks.size(); i!=e; ++i) {</div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span>           MacroExpandsInfo &Info = DelayedMacroExpandsCallbacks[i];</div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span>           <span class="comment">// FIXME: We lose macro args info with delayed callback.</span></div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span>           Callbacks-><a class="code" href="classclang_1_1PPCallbacks.html#a9bc725209d3a071ea649144ab996d515" title="Called by Preprocessor::HandleMacroExpandedIdentifier when a macro invocation is found.">MacroExpands</a>(Info.Tok, Info.MD, Info.Range, <span class="comment">/*Args=*/</span>0);</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>         DelayedMacroExpandsCallbacks.clear();</div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span>       }</div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span>     }</div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span>   }</div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span> </div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span>   <span class="comment">// If the macro definition is ambiguous, complain.</span></div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span>   <span class="keywordflow">if</span> (Def.<a class="code" href="classclang_1_1MacroDirective_1_1DefInfo.html#a04a29e2ce1637087be5844c2ccc3dbe2">getDirective</a>()-><a class="code" href="classclang_1_1DefMacroDirective.html#a1042b4bfdb2d9fc40c65b6cb0dc29e53" title="Determine whether this macro definition is ambiguous with other macro definitions.">isAmbiguous</a>()) {</div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span>     <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Identifier, diag::warn_pp_ambiguous_macro)</div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span>       << Identifier.<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</a>();</div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span>     <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(MI->getDefinitionLoc(), diag::note_pp_ambiguous_macro_chosen)</div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span>       << Identifier.<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</a>();</div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span>     <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1MacroDirective_1_1DefInfo.html">MacroDirective::DefInfo</a> PrevDef = Def.<a class="code" href="classclang_1_1MacroDirective_1_1DefInfo.html#a3c9e47f42ead9a1bb1f415323a730a52">getPreviousDefinition</a>();</div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span>          PrevDef && !PrevDef.<a class="code" href="classclang_1_1MacroDirective_1_1DefInfo.html#a9d1bcee0786df50e90dcb43792a8be6a">isUndefined</a>();</div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span>          PrevDef = PrevDef.getPreviousDefinition()) {</div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span>       <span class="keywordflow">if</span> (PrevDef.getDirective()->isAmbiguous()) {</div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span>         <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(PrevDef.getMacroInfo()->getDefinitionLoc(),</div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span>              diag::note_pp_ambiguous_macro_other)</div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span>           << Identifier.<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</a>();</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>     }</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> </div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span>   <span class="comment">// If we started lexing a macro, enter the macro expansion body.</span></div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span> </div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span>   <span class="comment">// If this macro expands to no tokens, don't bother to push it onto the</span></div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span>   <span class="comment">// expansion stack, only to take it right back off.</span></div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span>   <span class="keywordflow">if</span> (MI->getNumTokens() == 0) {</div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span>     <span class="comment">// No need for arg info.</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span>     <span class="keywordflow">if</span> (Args) Args-><a class="code" href="classclang_1_1MacroArgs.html#af89692ad84459436db0afa06bc9e3587">destroy</a>(*<span class="keyword">this</span>);</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>     <span class="comment">// Propagate whitespace info as if we had pushed, then popped,</span></div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span>     <span class="comment">// a macro context.</span></div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span>     Identifier.<a class="code" href="classclang_1_1Token.html#afb82493d321db8d89b0a989eec2b1d36" title="Set the specified flag.">setFlag</a>(<a class="code" href="classclang_1_1Token.html#a9757e958209e601e408feda04be60db5aafd6b464fc8f01c2193104048f6a26a9">Token::LeadingEmptyMacro</a>);</div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span>     PropagateLineStartLeadingSpaceInfo(Identifier);</div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span>     ++NumFastMacroExpanded;</div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (MI->getNumTokens() == 1 &&</div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span>              <a class="code" href="PPMacroExpansion_8cpp.html#a7dbb245df8ed58096590883b044070b8">isTrivialSingleTokenExpansion</a>(MI, Identifier.<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</a>(),</div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span>                                            *<span class="keyword">this</span>)) {</div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span>     <span class="comment">// Otherwise, if this macro expands into a single trivially-expanded</span></div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span>     <span class="comment">// token: expand it now.  This handles common cases like</span></div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span>     <span class="comment">// "#define VAL 42".</span></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>     <span class="comment">// No need for arg info.</span></div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span>     <span class="keywordflow">if</span> (Args) Args-><a class="code" href="classclang_1_1MacroArgs.html#af89692ad84459436db0afa06bc9e3587">destroy</a>(*<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span> </div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span>     <span class="comment">// Propagate the isAtStartOfLine/hasLeadingSpace markers of the macro</span></div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span>     <span class="comment">// identifier to the expanded token.</span></div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span>     <span class="keywordtype">bool</span> isAtStartOfLine = Identifier.<a class="code" href="classclang_1_1Token.html#a895009ede74790b61cf636fd7e498d44">isAtStartOfLine</a>();</div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span>     <span class="keywordtype">bool</span> hasLeadingSpace = Identifier.<a class="code" href="classclang_1_1Token.html#aa83b4bb0309d617e936a122e85958b22" title="Return true if this token has whitespace before it.">hasLeadingSpace</a>();</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>     <span class="comment">// Replace the result token.</span></div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span>     Identifier = MI->getReplacementToken(0);</div>
+<div class="line"><a name="l00335"></a><span class="lineno">  335</span> </div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span>     <span class="comment">// Restore the StartOfLine/LeadingSpace markers.</span></div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span>     Identifier.<a class="code" href="classclang_1_1Token.html#aed4a5a844b57f2706143db5737265dc7" title="Set a flag to either true or false.">setFlagValue</a>(<a class="code" href="classclang_1_1Token.html#a9757e958209e601e408feda04be60db5abae95495f486499bdedf8d66b9d3d0bf">Token::StartOfLine</a> , isAtStartOfLine);</div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span>     Identifier.<a class="code" href="classclang_1_1Token.html#aed4a5a844b57f2706143db5737265dc7" title="Set a flag to either true or false.">setFlagValue</a>(<a class="code" href="classclang_1_1Token.html#a9757e958209e601e408feda04be60db5ab8a948482f9e8ad5043072f7752768c9">Token::LeadingSpace</a>, hasLeadingSpace);</div>
+<div class="line"><a name="l00339"></a><span class="lineno">  339</span> </div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span>     <span class="comment">// Update the tokens location to include both its expansion and physical</span></div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span>     <span class="comment">// locations.</span></div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span>     <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc =</div>
+<div class="line"><a name="l00343"></a><span class="lineno">  343</span>       SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#a2b7a4407834ab69d127968813cb33111" title="Return a new SourceLocation that encodes the fact that a token from SpellingLoc should actually be re...">createExpansionLoc</a>(Identifier.<a class="code" href="classclang_1_1Token.html#a6f28cdecdecc3f19f8e7c976a044ebf8" title="Return a source location identifier for the specified offset in the current file.">getLocation</a>(), ExpandLoc,</div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span>                                    ExpansionEnd,Identifier.<a class="code" href="classclang_1_1Token.html#ada56747093e2043afd6a497d1714332d">getLength</a>());</div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span>     Identifier.<a class="code" href="classclang_1_1Token.html#ab52b4059e1b2e648c78b7c326190d2ce">setLocation</a>(Loc);</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>     <span class="comment">// If this is a disabled macro or #define X X, we must mark the result as</span></div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span>     <span class="comment">// unexpandable.</span></div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *NewII = Identifier.<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</a>()) {</div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span>       <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1MacroInfo.html" title="Encapsulates the data about a macro definition (e.g. its tokens).">MacroInfo</a> *NewMI = <a class="code" href="classclang_1_1Preprocessor.html#aae0ad9f63f31eda09f5c5c2eac0cb307">getMacroInfo</a>(NewII))</div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span>         <span class="keywordflow">if</span> (!NewMI->isEnabled() || NewMI == MI) {</div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span>           Identifier.<a class="code" href="classclang_1_1Token.html#afb82493d321db8d89b0a989eec2b1d36" title="Set the specified flag.">setFlag</a>(<a class="code" href="classclang_1_1Token.html#a9757e958209e601e408feda04be60db5a0dd1ddcb65273511a70dd68f3abd20b7">Token::DisableExpand</a>);</div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span>           <span class="comment">// Don't warn for "#define X X" like "#define bool bool" from</span></div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span>           <span class="comment">// stdbool.h.</span></div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span>           <span class="keywordflow">if</span> (NewMI != MI || MI->isFunctionLike())</div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span>             <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Identifier, diag::pp_disabled_macro_expansion);</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>     }</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="comment">// Since this is not an identifier token, it can't be macro expanded, so</span></div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span>     <span class="comment">// we're done.</span></div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span>     ++NumFastMacroExpanded;</div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span>     <span class="keywordflow">return</span> <span class="keyword">true</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> </div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span>   <span class="comment">// Start expanding the macro.</span></div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span>   <a class="code" href="classclang_1_1Preprocessor.html#a1f329511955dcb01878235bd511954a3">EnterMacro</a>(Identifier, ExpansionEnd, MI, Args);</div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span>   <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span> }</div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span> </div>
+<div class="line"><a name="l00371"></a><span class="lineno"><a class="code" href="PPMacroExpansion_8cpp.html#a6a0f90793bb0a61bf701ad3cccc529cc">  371</a></span> <span class="keyword">enum</span> <a class="code" href="PPMacroExpansion_8cpp.html#a6a0f90793bb0a61bf701ad3cccc529cc">Bracket</a> {</div>
+<div class="line"><a name="l00372"></a><span class="lineno"><a class="code" href="PPMacroExpansion_8cpp.html#a6a0f90793bb0a61bf701ad3cccc529cca64a5440b2f27524578a4e0a328924dc1">  372</a></span>   <a class="code" href="PPMacroExpansion_8cpp.html#a6a0f90793bb0a61bf701ad3cccc529cca64a5440b2f27524578a4e0a328924dc1">Brace</a>,</div>
+<div class="line"><a name="l00373"></a><span class="lineno"><a class="code" href="PPMacroExpansion_8cpp.html#a6a0f90793bb0a61bf701ad3cccc529cca05a296c2c11a24f2a5a52620d2dae620">  373</a></span>   <a class="code" href="PPMacroExpansion_8cpp.html#a6a0f90793bb0a61bf701ad3cccc529cca05a296c2c11a24f2a5a52620d2dae620">Paren</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> <span class="comment"></span></div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span> <span class="comment">/// CheckMatchedBrackets - Returns true if the braces and parentheses in the</span></div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span> <span class="comment">/// token vector are properly nested.</span></div>
+<div class="line"><a name="l00378"></a><span class="lineno"><a class="code" href="PPMacroExpansion_8cpp.html#a25b11ea75c789800df1993b581732816">  378</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="PPMacroExpansion_8cpp.html#a25b11ea75c789800df1993b581732816">CheckMatchedBrackets</a>(<span class="keyword">const</span> <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<Token></a> &<a class="code" href="Format_8cpp.html#ad41a4805c2afafefced9cd28d505075b">Tokens</a>) {</div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span>   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<Bracket, 8></a> Brackets;</div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span>   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<Token>::const_iterator</a> I = Tokens.begin(),</div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span>                                               E = Tokens.end();</div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span>        I != E; ++I) {</div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span>     <span class="keywordflow">if</span> (I->is(tok::l_paren)) {</div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span>       Brackets.push_back(<a class="code" href="PPMacroExpansion_8cpp.html#a6a0f90793bb0a61bf701ad3cccc529cca05a296c2c11a24f2a5a52620d2dae620">Paren</a>);</div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (I->is(tok::r_paren)) {</div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span>       <span class="keywordflow">if</span> (Brackets.empty() || Brackets.back() == <a class="code" href="PPMacroExpansion_8cpp.html#a6a0f90793bb0a61bf701ad3cccc529cca64a5440b2f27524578a4e0a328924dc1">Brace</a>)</div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span>         <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span>       Brackets.pop_back();</div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (I->is(tok::l_brace)) {</div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span>       Brackets.push_back(<a class="code" href="PPMacroExpansion_8cpp.html#a6a0f90793bb0a61bf701ad3cccc529cca64a5440b2f27524578a4e0a328924dc1">Brace</a>);</div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (I->is(tok::r_brace)) {</div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span>       <span class="keywordflow">if</span> (Brackets.empty() || Brackets.back() == <a class="code" href="PPMacroExpansion_8cpp.html#a6a0f90793bb0a61bf701ad3cccc529cca05a296c2c11a24f2a5a52620d2dae620">Paren</a>)</div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span>         <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span>       Brackets.pop_back();</div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span>     }</div>
+<div class="line"><a name="l00396"></a><span class="lineno">  396</span>   }</div>
+<div class="line"><a name="l00397"></a><span class="lineno">  397</span>   <span class="keywordflow">if</span> (!Brackets.empty())</div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00399"></a><span class="lineno">  399</span>   <span class="keywordflow">return</span> <span class="keyword">true</span>;</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"></span></div>
+<div class="line"><a name="l00402"></a><span class="lineno">  402</span> <span class="comment">/// GenerateNewArgTokens - Returns true if OldTokens can be converted to a new</span></div>
+<div class="line"><a name="l00403"></a><span class="lineno">  403</span> <span class="comment">/// vector of tokens in NewTokens.  The new number of arguments will be placed</span></div>
+<div class="line"><a name="l00404"></a><span class="lineno">  404</span> <span class="comment">/// in NumArgs and the ranges which need to surrounded in parentheses will be</span></div>
+<div class="line"><a name="l00405"></a><span class="lineno">  405</span> <span class="comment">/// in ParenHints.</span></div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span> <span class="comment">/// Returns false if the token stream cannot be changed.  If this is because</span></div>
+<div class="line"><a name="l00407"></a><span class="lineno">  407</span> <span class="comment">/// of an initializer list starting a macro argument, the range of those</span></div>
+<div class="line"><a name="l00408"></a><span class="lineno">  408</span> <span class="comment">/// initializer lists will be place in InitLists.</span></div>
+<div class="line"><a name="l00409"></a><span class="lineno"><a class="code" href="PPMacroExpansion_8cpp.html#a70044b26e2be114c6e78060dc00ced81">  409</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="PPMacroExpansion_8cpp.html#a70044b26e2be114c6e78060dc00ced81">GenerateNewArgTokens</a>(<a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP,</div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span>                                  <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<Token></a> &OldTokens,</div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span>                                  <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<Token></a> &NewTokens,</div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span>                                  <span class="keywordtype">unsigned</span> &NumArgs,</div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</span>                                  <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<SourceRange></a> &ParenHints,</div>
+<div class="line"><a name="l00414"></a><span class="lineno">  414</span>                                  <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<SourceRange></a> &InitLists) {</div>
+<div class="line"><a name="l00415"></a><span class="lineno">  415</span>   <span class="keywordflow">if</span> (!<a class="code" href="PPMacroExpansion_8cpp.html#a25b11ea75c789800df1993b581732816">CheckMatchedBrackets</a>(OldTokens))</div>
+<div class="line"><a name="l00416"></a><span class="lineno">  416</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00417"></a><span class="lineno">  417</span> </div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span>   <span class="comment">// Once it is known that the brackets are matched, only a simple count of the</span></div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span>   <span class="comment">// braces is needed.</span></div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span>   <span class="keywordtype">unsigned</span> Braces = 0;</div>
+<div class="line"><a name="l00421"></a><span class="lineno">  421</span> </div>
+<div class="line"><a name="l00422"></a><span class="lineno">  422</span>   <span class="comment">// First token of a new macro argument.</span></div>
+<div class="line"><a name="l00423"></a><span class="lineno">  423</span>   <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<Token>::iterator</a> ArgStartIterator = OldTokens.begin();</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>   <span class="comment">// First closing brace in a new macro argument.  Used to generate</span></div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span>   <span class="comment">// SourceRanges for InitLists.</span></div>
+<div class="line"><a name="l00427"></a><span class="lineno">  427</span>   <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<Token>::iterator</a> ClosingBrace = OldTokens.end();</div>
+<div class="line"><a name="l00428"></a><span class="lineno">  428</span>   NumArgs = 0;</div>
+<div class="line"><a name="l00429"></a><span class="lineno">  429</span>   <a class="code" href="classclang_1_1Token.html">Token</a> TempToken;</div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span>   <span class="comment">// Set to true when a macro separator token is found inside a braced list.</span></div>
+<div class="line"><a name="l00431"></a><span class="lineno">  431</span>   <span class="comment">// If true, the fixed argument spans multiple old arguments and ParenHints</span></div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span>   <span class="comment">// will be updated.</span></div>
+<div class="line"><a name="l00433"></a><span class="lineno">  433</span>   <span class="keywordtype">bool</span> FoundSeparatorToken = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00434"></a><span class="lineno">  434</span>   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<Token>::iterator</a> I = OldTokens.begin(),</div>
+<div class="line"><a name="l00435"></a><span class="lineno">  435</span>                                         E = OldTokens.end();</div>
+<div class="line"><a name="l00436"></a><span class="lineno">  436</span>        I != E; ++I) {</div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span>     <span class="keywordflow">if</span> (I->is(tok::l_brace)) {</div>
+<div class="line"><a name="l00438"></a><span class="lineno">  438</span>       ++Braces;</div>
+<div class="line"><a name="l00439"></a><span class="lineno">  439</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (I->is(tok::r_brace)) {</div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span>       --Braces;</div>
+<div class="line"><a name="l00441"></a><span class="lineno">  441</span>       <span class="keywordflow">if</span> (Braces == 0 && ClosingBrace == E && FoundSeparatorToken)</div>
+<div class="line"><a name="l00442"></a><span class="lineno">  442</span>         ClosingBrace = I;</div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (I->is(<a class="code" href="namespaceclang_1_1comments_1_1tok.html#af269e1299a7e813dd4471ab24630e01aac4904dc9309fe9cf0fe76ff45d54f265">tok::eof</a>)) {</div>
+<div class="line"><a name="l00444"></a><span class="lineno">  444</span>       <span class="comment">// EOF token is used to separate macro arguments</span></div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span>       <span class="keywordflow">if</span> (Braces != 0) {</div>
+<div class="line"><a name="l00446"></a><span class="lineno">  446</span>         <span class="comment">// Assume comma separator is actually braced list separator and change</span></div>
+<div class="line"><a name="l00447"></a><span class="lineno">  447</span>         <span class="comment">// it back to a comma.</span></div>
+<div class="line"><a name="l00448"></a><span class="lineno">  448</span>         FoundSeparatorToken = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00449"></a><span class="lineno">  449</span>         I->setKind(tok::comma);</div>
+<div class="line"><a name="l00450"></a><span class="lineno">  450</span>         I->setLength(1);</div>
+<div class="line"><a name="l00451"></a><span class="lineno">  451</span>       } <span class="keywordflow">else</span> { <span class="comment">// Braces == 0</span></div>
+<div class="line"><a name="l00452"></a><span class="lineno">  452</span>         <span class="comment">// Separator token still separates arguments.</span></div>
+<div class="line"><a name="l00453"></a><span class="lineno">  453</span>         ++NumArgs;</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>         <span class="comment">// If the argument starts with a brace, it can't be fixed with</span></div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span>         <span class="comment">// parentheses.  A different diagnostic will be given.</span></div>
+<div class="line"><a name="l00457"></a><span class="lineno">  457</span>         <span class="keywordflow">if</span> (FoundSeparatorToken && ArgStartIterator->is(tok::l_brace)) {</div>
+<div class="line"><a name="l00458"></a><span class="lineno">  458</span>           InitLists.push_back(</div>
+<div class="line"><a name="l00459"></a><span class="lineno">  459</span>               <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a>(ArgStartIterator->getLocation(),</div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span>                           PP.<a class="code" href="classclang_1_1Preprocessor.html#aef7193e9d262ea6852d666beb28dc1a0" title="Computes the source location just past the end of the token at this source location.">getLocForEndOfToken</a>(ClosingBrace->getLocation())));</div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span>           ClosingBrace = E;</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> </div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</span>         <span class="comment">// Add left paren</span></div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span>         <span class="keywordflow">if</span> (FoundSeparatorToken) {</div>
+<div class="line"><a name="l00466"></a><span class="lineno">  466</span>           TempToken.<a class="code" href="classclang_1_1Token.html#ae1e49685acde6208c1c83f38540832c1" title="Reset all flags to cleared.">startToken</a>();</div>
+<div class="line"><a name="l00467"></a><span class="lineno">  467</span>           TempToken.<a class="code" href="classclang_1_1Token.html#a44b757baba649ad00b79f78671a8a2aa">setKind</a>(tok::l_paren);</div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span>           TempToken.<a class="code" href="classclang_1_1Token.html#ab52b4059e1b2e648c78b7c326190d2ce">setLocation</a>(ArgStartIterator->getLocation());</div>
+<div class="line"><a name="l00469"></a><span class="lineno">  469</span>           TempToken.<a class="code" href="classclang_1_1Token.html#a2cd7bd0075db58067b69368ec471aaf5">setLength</a>(0);</div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span>           NewTokens.push_back(TempToken);</div>
+<div class="line"><a name="l00471"></a><span class="lineno">  471</span>         }</div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span> </div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span>         <span class="comment">// Copy over argument tokens</span></div>
+<div class="line"><a name="l00474"></a><span class="lineno">  474</span>         NewTokens.insert(NewTokens.end(), ArgStartIterator, I);</div>
+<div class="line"><a name="l00475"></a><span class="lineno">  475</span> </div>
+<div class="line"><a name="l00476"></a><span class="lineno">  476</span>         <span class="comment">// Add right paren and store the paren locations in ParenHints</span></div>
+<div class="line"><a name="l00477"></a><span class="lineno">  477</span>         <span class="keywordflow">if</span> (FoundSeparatorToken) {</div>
+<div class="line"><a name="l00478"></a><span class="lineno">  478</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 = PP.<a class="code" href="classclang_1_1Preprocessor.html#aef7193e9d262ea6852d666beb28dc1a0" title="Computes the source location just past the end of the token at this source location.">getLocForEndOfToken</a>((I - 1)->getLocation());</div>
+<div class="line"><a name="l00479"></a><span class="lineno">  479</span>           TempToken.<a class="code" href="classclang_1_1Token.html#ae1e49685acde6208c1c83f38540832c1" title="Reset all flags to cleared.">startToken</a>();</div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span>           TempToken.<a class="code" href="classclang_1_1Token.html#a44b757baba649ad00b79f78671a8a2aa">setKind</a>(tok::r_paren);</div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span>           TempToken.<a class="code" href="classclang_1_1Token.html#ab52b4059e1b2e648c78b7c326190d2ce">setLocation</a>(Loc);</div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span>           TempToken.<a class="code" href="classclang_1_1Token.html#a2cd7bd0075db58067b69368ec471aaf5">setLength</a>(0);</div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span>           NewTokens.push_back(TempToken);</div>
+<div class="line"><a name="l00484"></a><span class="lineno">  484</span>           ParenHints.push_back(<a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a>(ArgStartIterator->getLocation(),</div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span>                                            Loc));</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> </div>
+<div class="line"><a name="l00488"></a><span class="lineno">  488</span>         <span class="comment">// Copy separator token</span></div>
+<div class="line"><a name="l00489"></a><span class="lineno">  489</span>         NewTokens.push_back(*I);</div>
+<div class="line"><a name="l00490"></a><span class="lineno">  490</span> </div>
+<div class="line"><a name="l00491"></a><span class="lineno">  491</span>         <span class="comment">// Reset values</span></div>
+<div class="line"><a name="l00492"></a><span class="lineno">  492</span>         ArgStartIterator = I + 1;</div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span>         FoundSeparatorToken = <span class="keyword">false</span>;</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>   }</div>
+<div class="line"><a name="l00497"></a><span class="lineno">  497</span> </div>
+<div class="line"><a name="l00498"></a><span class="lineno">  498</span>   <span class="keywordflow">return</span> !ParenHints.empty() && InitLists.empty();</div>
+<div class="line"><a name="l00499"></a><span class="lineno">  499</span> }</div>
+<div class="line"><a name="l00500"></a><span class="lineno">  500</span> <span class="comment"></span></div>
+<div class="line"><a name="l00501"></a><span class="lineno">  501</span> <span class="comment">/// ReadFunctionLikeMacroArgs - After reading "MACRO" and knowing that the next</span></div>
+<div class="line"><a name="l00502"></a><span class="lineno">  502</span> <span class="comment">/// token is the '(' of the macro, this method is invoked to read all of the</span></div>
+<div class="line"><a name="l00503"></a><span class="lineno">  503</span> <span class="comment">/// actual arguments specified for the macro invocation.  This returns null on</span></div>
+<div class="line"><a name="l00504"></a><span class="lineno">  504</span> <span class="comment">/// error.</span></div>
+<div class="line"><a name="l00505"></a><span class="lineno">  505</span> <span class="comment"></span><a class="code" href="classclang_1_1MacroArgs.html">MacroArgs</a> *Preprocessor::ReadFunctionLikeMacroArgs(<a class="code" href="classclang_1_1Token.html">Token</a> &MacroName,</div>
+<div class="line"><a name="l00506"></a><span class="lineno">  506</span>                                                    <a class="code" href="classclang_1_1MacroInfo.html" title="Encapsulates the data about a macro definition (e.g. its tokens).">MacroInfo</a> *MI,</div>
+<div class="line"><a name="l00507"></a><span class="lineno">  507</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> &MacroEnd) {</div>
+<div class="line"><a name="l00508"></a><span class="lineno">  508</span>   <span class="comment">// The number of fixed arguments to parse.</span></div>
+<div class="line"><a name="l00509"></a><span class="lineno">  509</span>   <span class="keywordtype">unsigned</span> NumFixedArgsLeft = MI-><a class="code" href="classclang_1_1MacroInfo.html#a0a9f2bfdc7e64284273208aec6138160">getNumArgs</a>();</div>
+<div class="line"><a name="l00510"></a><span class="lineno">  510</span>   <span class="keywordtype">bool</span> isVariadic = MI-><a class="code" href="classclang_1_1MacroInfo.html#a856ff1a4cdf5ddf44455252a4a4467c1">isVariadic</a>();</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>   <span class="comment">// Outer loop, while there are more arguments, keep reading them.</span></div>
+<div class="line"><a name="l00513"></a><span class="lineno">  513</span>   <a class="code" href="classclang_1_1Token.html">Token</a> Tok;</div>
+<div class="line"><a name="l00514"></a><span class="lineno">  514</span> </div>
+<div class="line"><a name="l00515"></a><span class="lineno">  515</span>   <span class="comment">// Read arguments as unexpanded tokens.  This avoids issues, e.g., where</span></div>
+<div class="line"><a name="l00516"></a><span class="lineno">  516</span>   <span class="comment">// an argument value in a macro could expand to ',' or '(' or ')'.</span></div>
+<div class="line"><a name="l00517"></a><span class="lineno">  517</span>   <a class="code" href="classclang_1_1Preprocessor.html#aaaf1f5cefe79d0f9da0637c5a3d4e7dc">LexUnexpandedToken</a>(Tok);</div>
+<div class="line"><a name="l00518"></a><span class="lineno">  518</span>   assert(Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::l_paren) && <span class="stringliteral">"Error computing l-paren-ness?"</span>);</div>
+<div class="line"><a name="l00519"></a><span class="lineno">  519</span> </div>
+<div class="line"><a name="l00520"></a><span class="lineno">  520</span>   <span class="comment">// ArgTokens - Build up a list of tokens that make up each argument.  Each</span></div>
+<div class="line"><a name="l00521"></a><span class="lineno">  521</span>   <span class="comment">// argument is separated by an EOF token.  Use a SmallVector so we can avoid</span></div>
+<div class="line"><a name="l00522"></a><span class="lineno">  522</span>   <span class="comment">// heap allocations in the common case.</span></div>
+<div class="line"><a name="l00523"></a><span class="lineno">  523</span>   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<Token, 64></a> ArgTokens;</div>
+<div class="line"><a name="l00524"></a><span class="lineno">  524</span>   <span class="keywordtype">bool</span> ContainsCodeCompletionTok = <span class="keyword">false</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">  526</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> TooManyArgsLoc;</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>   <span class="keywordtype">unsigned</span> NumActuals = 0;</div>
+<div class="line"><a name="l00529"></a><span class="lineno">  529</span>   <span class="keywordflow">while</span> (Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::r_paren)) {</div>
+<div class="line"><a name="l00530"></a><span class="lineno">  530</span>     <span class="keywordflow">if</span> (ContainsCodeCompletionTok && (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(<a class="code" href="namespaceclang_1_1comments_1_1tok.html#af269e1299a7e813dd4471ab24630e01aac4904dc9309fe9cf0fe76ff45d54f265">tok::eof</a>) || Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::eod)))</div>
+<div class="line"><a name="l00531"></a><span class="lineno">  531</span>       <span class="keywordflow">break</span>;</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>     assert((Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::l_paren) || Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::comma)) &&</div>
+<div class="line"><a name="l00534"></a><span class="lineno">  534</span>            <span class="stringliteral">"only expect argument separators here"</span>);</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>     <span class="keywordtype">unsigned</span> ArgTokenStart = ArgTokens.size();</div>
+<div class="line"><a name="l00537"></a><span class="lineno">  537</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> ArgStartLoc = Tok.<a class="code" href="classclang_1_1Token.html#a6f28cdecdecc3f19f8e7c976a044ebf8" title="Return a source location identifier for the specified offset in the current file.">getLocation</a>();</div>
+<div class="line"><a name="l00538"></a><span class="lineno">  538</span> </div>
+<div class="line"><a name="l00539"></a><span class="lineno">  539</span>     <span class="comment">// C99 6.10.3p11: Keep track of the number of l_parens we have seen.  Note</span></div>
+<div class="line"><a name="l00540"></a><span class="lineno">  540</span>     <span class="comment">// that we already consumed the first one.</span></div>
+<div class="line"><a name="l00541"></a><span class="lineno">  541</span>     <span class="keywordtype">unsigned</span> NumParens = 0;</div>
+<div class="line"><a name="l00542"></a><span class="lineno">  542</span> </div>
+<div class="line"><a name="l00543"></a><span class="lineno">  543</span>     <span class="keywordflow">while</span> (1) {</div>
+<div class="line"><a name="l00544"></a><span class="lineno">  544</span>       <span class="comment">// Read arguments as unexpanded tokens.  This avoids issues, e.g., where</span></div>
+<div class="line"><a name="l00545"></a><span class="lineno">  545</span>       <span class="comment">// an argument value in a macro could expand to ',' or '(' or ')'.</span></div>
+<div class="line"><a name="l00546"></a><span class="lineno">  546</span>       <a class="code" href="classclang_1_1Preprocessor.html#aaaf1f5cefe79d0f9da0637c5a3d4e7dc">LexUnexpandedToken</a>(Tok);</div>
+<div class="line"><a name="l00547"></a><span class="lineno">  547</span> </div>
+<div class="line"><a name="l00548"></a><span class="lineno">  548</span>       <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(<a class="code" href="namespaceclang_1_1comments_1_1tok.html#af269e1299a7e813dd4471ab24630e01aac4904dc9309fe9cf0fe76ff45d54f265">tok::eof</a>) || Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::eod)) { <span class="comment">// "#if f(<eof>" & "#if f(\n"</span></div>
+<div class="line"><a name="l00549"></a><span class="lineno">  549</span>         <span class="keywordflow">if</span> (!ContainsCodeCompletionTok) {</div>
+<div class="line"><a name="l00550"></a><span class="lineno">  550</span>           <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(MacroName, diag::err_unterm_macro_invoc);</div>
+<div class="line"><a name="l00551"></a><span class="lineno">  551</span>           <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(MI-><a class="code" href="classclang_1_1MacroInfo.html#a24668f58f405f65ea486b4214e13b641" title="Return the location that the macro was defined at.">getDefinitionLoc</a>(), diag::note_macro_here)</div>
+<div class="line"><a name="l00552"></a><span class="lineno">  552</span>             << MacroName.<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</a>();</div>
+<div class="line"><a name="l00553"></a><span class="lineno">  553</span>           <span class="comment">// Do not lose the EOF/EOD.  Return it to the client.</span></div>
+<div class="line"><a name="l00554"></a><span class="lineno">  554</span>           MacroName = Tok;</div>
+<div class="line"><a name="l00555"></a><span class="lineno">  555</span>           <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00556"></a><span class="lineno">  556</span>         } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00557"></a><span class="lineno">  557</span>           <span class="comment">// Do not lose the EOF/EOD.</span></div>
+<div class="line"><a name="l00558"></a><span class="lineno">  558</span>           <a class="code" href="classclang_1_1Token.html">Token</a> *Toks = <span class="keyword">new</span> <a class="code" href="classclang_1_1Token.html">Token</a>[1];</div>
+<div class="line"><a name="l00559"></a><span class="lineno">  559</span>           Toks[0] = Tok;</div>
+<div class="line"><a name="l00560"></a><span class="lineno">  560</span>           <a class="code" href="classclang_1_1Preprocessor.html#a4869ffa7c1268e6e7cbd8fd5b7b0364d">EnterTokenStream</a>(Toks, 1, <span class="keyword">true</span>, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00561"></a><span class="lineno">  561</span>           <span class="keywordflow">break</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>       } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::r_paren)) {</div>
+<div class="line"><a name="l00564"></a><span class="lineno">  564</span>         <span class="comment">// If we found the ) token, the macro arg list is done.</span></div>
+<div class="line"><a name="l00565"></a><span class="lineno">  565</span>         <span class="keywordflow">if</span> (NumParens-- == 0) {</div>
+<div class="line"><a name="l00566"></a><span class="lineno">  566</span>           MacroEnd = Tok.<a class="code" href="classclang_1_1Token.html#a6f28cdecdecc3f19f8e7c976a044ebf8" title="Return a source location identifier for the specified offset in the current file.">getLocation</a>();</div>
+<div class="line"><a name="l00567"></a><span class="lineno">  567</span>           <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00568"></a><span class="lineno">  568</span>         }</div>
+<div class="line"><a name="l00569"></a><span class="lineno">  569</span>       } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::l_paren)) {</div>
+<div class="line"><a name="l00570"></a><span class="lineno">  570</span>         ++NumParens;</div>
+<div class="line"><a name="l00571"></a><span class="lineno">  571</span>       } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::comma) && NumParens == 0 &&</div>
+<div class="line"><a name="l00572"></a><span class="lineno">  572</span>                  !(Tok.<a class="code" href="classclang_1_1Token.html#aa6196030a0eb17ea342ac6300d6d5889" title="Return the internal represtation of the flags.">getFlags</a>() & <a class="code" href="classclang_1_1Token.html#a9757e958209e601e408feda04be60db5a456aea5f968ca0d8f2bacaba2834ba8e">Token::IgnoredComma</a>)) {</div>
+<div class="line"><a name="l00573"></a><span class="lineno">  573</span>         <span class="comment">// In Microsoft-compatibility mode, single commas from nested macro</span></div>
+<div class="line"><a name="l00574"></a><span class="lineno">  574</span>         <span class="comment">// expansions should not be considered as argument separators. We test</span></div>
+<div class="line"><a name="l00575"></a><span class="lineno">  575</span>         <span class="comment">// for this with the IgnoredComma token flag above.</span></div>
+<div class="line"><a name="l00576"></a><span class="lineno">  576</span> </div>
+<div class="line"><a name="l00577"></a><span class="lineno">  577</span>         <span class="comment">// Comma ends this argument if there are more fixed arguments expected.</span></div>
+<div class="line"><a name="l00578"></a><span class="lineno">  578</span>         <span class="comment">// However, if this is a variadic macro, and this is part of the</span></div>
+<div class="line"><a name="l00579"></a><span class="lineno">  579</span>         <span class="comment">// variadic part, then the comma is just an argument token.</span></div>
+<div class="line"><a name="l00580"></a><span class="lineno">  580</span>         <span class="keywordflow">if</span> (!isVariadic) <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00581"></a><span class="lineno">  581</span>         <span class="keywordflow">if</span> (NumFixedArgsLeft > 1)</div>
+<div class="line"><a name="l00582"></a><span class="lineno">  582</span>           <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00583"></a><span class="lineno">  583</span>       } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::comment) && !KeepMacroComments) {</div>
+<div class="line"><a name="l00584"></a><span class="lineno">  584</span>         <span class="comment">// If this is a comment token in the argument list and we're just in</span></div>
+<div class="line"><a name="l00585"></a><span class="lineno">  585</span>         <span class="comment">// -C mode (not -CC mode), discard the comment.</span></div>
+<div class="line"><a name="l00586"></a><span class="lineno">  586</span>         <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00587"></a><span class="lineno">  587</span>       } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</a>() != 0) {</div>
+<div class="line"><a name="l00588"></a><span class="lineno">  588</span>         <span class="comment">// Reading macro arguments can cause macros that we are currently</span></div>
+<div class="line"><a name="l00589"></a><span class="lineno">  589</span>         <span class="comment">// expanding from to be popped off the expansion stack.  Doing so causes</span></div>
+<div class="line"><a name="l00590"></a><span class="lineno">  590</span>         <span class="comment">// them to be reenabled for expansion.  Here we record whether any</span></div>
+<div class="line"><a name="l00591"></a><span class="lineno">  591</span>         <span class="comment">// identifiers we lex as macro arguments correspond to disabled macros.</span></div>
+<div class="line"><a name="l00592"></a><span class="lineno">  592</span>         <span class="comment">// If so, we mark the token as noexpand.  This is a subtle aspect of</span></div>
+<div class="line"><a name="l00593"></a><span class="lineno">  593</span>         <span class="comment">// C99 6.10.3.4p2.</span></div>
+<div class="line"><a name="l00594"></a><span class="lineno">  594</span>         <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1MacroInfo.html" title="Encapsulates the data about a macro definition (e.g. its tokens).">MacroInfo</a> *MI = <a class="code" href="classclang_1_1Preprocessor.html#aae0ad9f63f31eda09f5c5c2eac0cb307">getMacroInfo</a>(Tok.<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</a>()))</div>
+<div class="line"><a name="l00595"></a><span class="lineno">  595</span>           <span class="keywordflow">if</span> (!MI-><a class="code" href="classclang_1_1MacroInfo.html#a4bbb60a0a242bd0c07662c41c46ea75c" title="Return true if this macro is enabled.">isEnabled</a>())</div>
+<div class="line"><a name="l00596"></a><span class="lineno">  596</span>             Tok.<a class="code" href="classclang_1_1Token.html#afb82493d321db8d89b0a989eec2b1d36" title="Set the specified flag.">setFlag</a>(<a class="code" href="classclang_1_1Token.html#a9757e958209e601e408feda04be60db5a0dd1ddcb65273511a70dd68f3abd20b7">Token::DisableExpand</a>);</div>
+<div class="line"><a name="l00597"></a><span class="lineno">  597</span>       } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::code_completion)) {</div>
+<div class="line"><a name="l00598"></a><span class="lineno">  598</span>         ContainsCodeCompletionTok = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00599"></a><span class="lineno">  599</span>         <span class="keywordflow">if</span> (CodeComplete)</div>
+<div class="line"><a name="l00600"></a><span class="lineno">  600</span>           CodeComplete-><a class="code" href="classclang_1_1CodeCompletionHandler.html#a4575bb3706b7af534dda13fabe5e5e0b" title="Callback invoked when performing code completion inside a function-like macro argument.">CodeCompleteMacroArgument</a>(MacroName.<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</a>(),</div>
+<div class="line"><a name="l00601"></a><span class="lineno">  601</span>                                                   MI, NumActuals);</div>
+<div class="line"><a name="l00602"></a><span class="lineno">  602</span>         <span class="comment">// Don't mark that we reached the code-completion point because the</span></div>
+<div class="line"><a name="l00603"></a><span class="lineno">  603</span>         <span class="comment">// parser is going to handle the token and there will be another</span></div>
+<div class="line"><a name="l00604"></a><span class="lineno">  604</span>         <span class="comment">// code-completion callback.</span></div>
+<div class="line"><a name="l00605"></a><span class="lineno">  605</span>       }</div>
+<div class="line"><a name="l00606"></a><span class="lineno">  606</span> </div>
+<div class="line"><a name="l00607"></a><span class="lineno">  607</span>       ArgTokens.push_back(Tok);</div>
+<div class="line"><a name="l00608"></a><span class="lineno">  608</span>     }</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>     <span class="comment">// If this was an empty argument list foo(), don't add this as an empty</span></div>
+<div class="line"><a name="l00611"></a><span class="lineno">  611</span>     <span class="comment">// argument.</span></div>
+<div class="line"><a name="l00612"></a><span class="lineno">  612</span>     <span class="keywordflow">if</span> (ArgTokens.empty() && Tok.<a class="code" href="classclang_1_1Token.html#a84a069f6887b650763e640eeabfeebe4">getKind</a>() == tok::r_paren)</div>
+<div class="line"><a name="l00613"></a><span class="lineno">  613</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00614"></a><span class="lineno">  614</span> </div>
+<div class="line"><a name="l00615"></a><span class="lineno">  615</span>     <span class="comment">// If this is not a variadic macro, and too many args were specified, emit</span></div>
+<div class="line"><a name="l00616"></a><span class="lineno">  616</span>     <span class="comment">// an error.</span></div>
+<div class="line"><a name="l00617"></a><span class="lineno">  617</span>     <span class="keywordflow">if</span> (!isVariadic && NumFixedArgsLeft == 0 && TooManyArgsLoc.<a class="code" href="classclang_1_1SourceLocation.html#a1936fc09837ff8a195fa63e29f05796f">isInvalid</a>()) {</div>
+<div class="line"><a name="l00618"></a><span class="lineno">  618</span>       <span class="keywordflow">if</span> (ArgTokens.size() != ArgTokenStart)</div>
+<div class="line"><a name="l00619"></a><span class="lineno">  619</span>         TooManyArgsLoc = ArgTokens[ArgTokenStart].getLocation();</div>
+<div class="line"><a name="l00620"></a><span class="lineno">  620</span>       <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00621"></a><span class="lineno">  621</span>         TooManyArgsLoc = ArgStartLoc;</div>
+<div class="line"><a name="l00622"></a><span class="lineno">  622</span>     }</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>     <span class="comment">// Empty arguments are standard in C99 and C++0x, and are supported as an</span></div>
+<div class="line"><a name="l00625"></a><span class="lineno">  625</span>     <span class="comment">// extension in other modes.</span></div>
+<div class="line"><a name="l00626"></a><span class="lineno">  626</span>     <span class="keywordflow">if</span> (ArgTokens.size() == ArgTokenStart && !LangOpts.C99)</div>
+<div class="line"><a name="l00627"></a><span class="lineno">  627</span>       <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, LangOpts.CPlusPlus11 ?</div>
+<div class="line"><a name="l00628"></a><span class="lineno">  628</span>            diag::warn_cxx98_compat_empty_fnmacro_arg :</div>
+<div class="line"><a name="l00629"></a><span class="lineno">  629</span>            diag::ext_empty_fnmacro_arg);</div>
+<div class="line"><a name="l00630"></a><span class="lineno">  630</span> </div>
+<div class="line"><a name="l00631"></a><span class="lineno">  631</span>     <span class="comment">// Add a marker EOF token to the end of the token list for this argument.</span></div>
+<div class="line"><a name="l00632"></a><span class="lineno">  632</span>     <a class="code" href="classclang_1_1Token.html">Token</a> EOFTok;</div>
+<div class="line"><a name="l00633"></a><span class="lineno">  633</span>     EOFTok.<a class="code" href="classclang_1_1Token.html#ae1e49685acde6208c1c83f38540832c1" title="Reset all flags to cleared.">startToken</a>();</div>
+<div class="line"><a name="l00634"></a><span class="lineno">  634</span>     EOFTok.<a class="code" href="classclang_1_1Token.html#a44b757baba649ad00b79f78671a8a2aa">setKind</a>(<a class="code" href="namespaceclang_1_1comments_1_1tok.html#af269e1299a7e813dd4471ab24630e01aac4904dc9309fe9cf0fe76ff45d54f265">tok::eof</a>);</div>
+<div class="line"><a name="l00635"></a><span class="lineno">  635</span>     EOFTok.<a class="code" href="classclang_1_1Token.html#ab52b4059e1b2e648c78b7c326190d2ce">setLocation</a>(Tok.<a class="code" href="classclang_1_1Token.html#a6f28cdecdecc3f19f8e7c976a044ebf8" title="Return a source location identifier for the specified offset in the current file.">getLocation</a>());</div>
+<div class="line"><a name="l00636"></a><span class="lineno">  636</span>     EOFTok.<a class="code" href="classclang_1_1Token.html#a2cd7bd0075db58067b69368ec471aaf5">setLength</a>(0);</div>
+<div class="line"><a name="l00637"></a><span class="lineno">  637</span>     ArgTokens.push_back(EOFTok);</div>
+<div class="line"><a name="l00638"></a><span class="lineno">  638</span>     ++NumActuals;</div>
+<div class="line"><a name="l00639"></a><span class="lineno">  639</span>     <span class="keywordflow">if</span> (!ContainsCodeCompletionTok && NumFixedArgsLeft != 0)</div>
+<div class="line"><a name="l00640"></a><span class="lineno">  640</span>       --NumFixedArgsLeft;</div>
+<div class="line"><a name="l00641"></a><span class="lineno">  641</span>   }</div>
+<div class="line"><a name="l00642"></a><span class="lineno">  642</span> </div>
+<div class="line"><a name="l00643"></a><span class="lineno">  643</span>   <span class="comment">// Okay, we either found the r_paren.  Check to see if we parsed too few</span></div>
+<div class="line"><a name="l00644"></a><span class="lineno">  644</span>   <span class="comment">// arguments.</span></div>
+<div class="line"><a name="l00645"></a><span class="lineno">  645</span>   <span class="keywordtype">unsigned</span> MinArgsExpected = MI-><a class="code" href="classclang_1_1MacroInfo.html#a0a9f2bfdc7e64284273208aec6138160">getNumArgs</a>();</div>
+<div class="line"><a name="l00646"></a><span class="lineno">  646</span> </div>
+<div class="line"><a name="l00647"></a><span class="lineno">  647</span>   <span class="comment">// If this is not a variadic macro, and too many args were specified, emit</span></div>
+<div class="line"><a name="l00648"></a><span class="lineno">  648</span>   <span class="comment">// an error.</span></div>
+<div class="line"><a name="l00649"></a><span class="lineno">  649</span>   <span class="keywordflow">if</span> (!isVariadic && NumActuals > MinArgsExpected &&</div>
+<div class="line"><a name="l00650"></a><span class="lineno">  650</span>       !ContainsCodeCompletionTok) {</div>
+<div class="line"><a name="l00651"></a><span class="lineno">  651</span>     <span class="comment">// Emit the diagnostic at the macro name in case there is a missing ).</span></div>
+<div class="line"><a name="l00652"></a><span class="lineno">  652</span>     <span class="comment">// Emitting it at the , could be far away from the macro name.</span></div>
+<div class="line"><a name="l00653"></a><span class="lineno">  653</span>     <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(TooManyArgsLoc, diag::err_too_many_args_in_macro_invoc);</div>
+<div class="line"><a name="l00654"></a><span class="lineno">  654</span>     <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(MI-><a class="code" href="classclang_1_1MacroInfo.html#a24668f58f405f65ea486b4214e13b641" title="Return the location that the macro was defined at.">getDefinitionLoc</a>(), diag::note_macro_here)</div>
+<div class="line"><a name="l00655"></a><span class="lineno">  655</span>       << MacroName.<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</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>     <span class="comment">// Commas from braced initializer lists will be treated as argument</span></div>
+<div class="line"><a name="l00658"></a><span class="lineno">  658</span>     <span class="comment">// separators inside macros.  Attempt to correct for this with parentheses.</span></div>
+<div class="line"><a name="l00659"></a><span class="lineno">  659</span>     <span class="comment">// TODO: See if this can be generalized to angle brackets for templates</span></div>
+<div class="line"><a name="l00660"></a><span class="lineno">  660</span>     <span class="comment">// inside macro arguments.</span></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>     <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<Token, 4></a> FixedArgTokens;</div>
+<div class="line"><a name="l00663"></a><span class="lineno">  663</span>     <span class="keywordtype">unsigned</span> FixedNumArgs = 0;</div>
+<div class="line"><a name="l00664"></a><span class="lineno">  664</span>     <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<SourceRange, 4></a> ParenHints, InitLists;</div>
+<div class="line"><a name="l00665"></a><span class="lineno">  665</span>     <span class="keywordflow">if</span> (!<a class="code" href="PPMacroExpansion_8cpp.html#a70044b26e2be114c6e78060dc00ced81">GenerateNewArgTokens</a>(*<span class="keyword">this</span>, ArgTokens, FixedArgTokens, FixedNumArgs,</div>
+<div class="line"><a name="l00666"></a><span class="lineno">  666</span>                               ParenHints, InitLists)) {</div>
+<div class="line"><a name="l00667"></a><span class="lineno">  667</span>       <span class="keywordflow">if</span> (!InitLists.empty()) {</div>
+<div class="line"><a name="l00668"></a><span class="lineno">  668</span>         <a class="code" href="classclang_1_1DiagnosticBuilder.html" title="A little helper class used to produce diagnostics.">DiagnosticBuilder</a> DB =</div>
+<div class="line"><a name="l00669"></a><span class="lineno">  669</span>             <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(MacroName,</div>
+<div class="line"><a name="l00670"></a><span class="lineno">  670</span>                  diag::note_init_list_at_beginning_of_macro_argument);</div>
+<div class="line"><a name="l00671"></a><span class="lineno">  671</span>         <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1SmallVector.html">SmallVector<SourceRange, 4>::iterator</a></div>
+<div class="line"><a name="l00672"></a><span class="lineno">  672</span>                  Range = InitLists.begin(), RangeEnd = InitLists.end();</div>
+<div class="line"><a name="l00673"></a><span class="lineno">  673</span>                  Range != RangeEnd; ++Range) {</div>
+<div class="line"><a name="l00674"></a><span class="lineno">  674</span>           <span class="keywordflow">if</span> (DB.<a class="code" href="classclang_1_1DiagnosticBuilder.html#a4715555c09f758da42f5279ea56de261">hasMaxRanges</a>())</div>
+<div class="line"><a name="l00675"></a><span class="lineno">  675</span>             <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00676"></a><span class="lineno">  676</span>           DB << *Range;</div>
+<div class="line"><a name="l00677"></a><span class="lineno">  677</span>         }</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>       <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00680"></a><span class="lineno">  680</span>     }</div>
+<div class="line"><a name="l00681"></a><span class="lineno">  681</span>     <span class="keywordflow">if</span> (FixedNumArgs != MinArgsExpected)</div>
+<div class="line"><a name="l00682"></a><span class="lineno">  682</span>       <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00683"></a><span class="lineno">  683</span> </div>
+<div class="line"><a name="l00684"></a><span class="lineno">  684</span>     <a class="code" href="classclang_1_1DiagnosticBuilder.html" title="A little helper class used to produce diagnostics.">DiagnosticBuilder</a> DB = <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(MacroName, diag::note_suggest_parens_for_macro);</div>
+<div class="line"><a name="l00685"></a><span class="lineno">  685</span>     <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1SmallVector.html">SmallVector<SourceRange, 4>::iterator</a></div>
+<div class="line"><a name="l00686"></a><span class="lineno">  686</span>              ParenLocation = ParenHints.begin(), ParenEnd = ParenHints.end();</div>
+<div class="line"><a name="l00687"></a><span class="lineno">  687</span>          ParenLocation != ParenEnd; ++ParenLocation) {</div>
+<div class="line"><a name="l00688"></a><span class="lineno">  688</span>       <span class="keywordflow">if</span> (DB.<a class="code" href="classclang_1_1DiagnosticBuilder.html#a62fd52c57e9058f1a6973cde8f10b873">hasMaxFixItHints</a>())</div>
+<div class="line"><a name="l00689"></a><span class="lineno">  689</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00690"></a><span class="lineno">  690</span>       DB << <a class="code" href="classclang_1_1FixItHint.html#afd481d826e9ddaa39fc82a698a810246" title="Create a code modification hint that inserts the given code string at a specific location.">FixItHint::CreateInsertion</a>(ParenLocation->getBegin(), <span class="stringliteral">"("</span>);</div>
+<div class="line"><a name="l00691"></a><span class="lineno">  691</span>       <span class="keywordflow">if</span> (DB.<a class="code" href="classclang_1_1DiagnosticBuilder.html#a62fd52c57e9058f1a6973cde8f10b873">hasMaxFixItHints</a>())</div>
+<div class="line"><a name="l00692"></a><span class="lineno">  692</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00693"></a><span class="lineno">  693</span>       DB << <a class="code" href="classclang_1_1FixItHint.html#afd481d826e9ddaa39fc82a698a810246" title="Create a code modification hint that inserts the given code string at a specific location.">FixItHint::CreateInsertion</a>(ParenLocation->getEnd(), <span class="stringliteral">")"</span>);</div>
+<div class="line"><a name="l00694"></a><span class="lineno">  694</span>     }</div>
+<div class="line"><a name="l00695"></a><span class="lineno">  695</span>     ArgTokens.swap(FixedArgTokens);</div>
+<div class="line"><a name="l00696"></a><span class="lineno">  696</span>     NumActuals = FixedNumArgs;</div>
+<div class="line"><a name="l00697"></a><span class="lineno">  697</span>   }</div>
+<div class="line"><a name="l00698"></a><span class="lineno">  698</span> </div>
+<div class="line"><a name="l00699"></a><span class="lineno">  699</span>   <span class="comment">// See MacroArgs instance var for description of this.</span></div>
+<div class="line"><a name="l00700"></a><span class="lineno">  700</span>   <span class="keywordtype">bool</span> isVarargsElided = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00701"></a><span class="lineno">  701</span> </div>
+<div class="line"><a name="l00702"></a><span class="lineno">  702</span>   <span class="keywordflow">if</span> (ContainsCodeCompletionTok) {</div>
+<div class="line"><a name="l00703"></a><span class="lineno">  703</span>     <span class="comment">// Recover from not-fully-formed macro invocation during code-completion.</span></div>
+<div class="line"><a name="l00704"></a><span class="lineno">  704</span>     <a class="code" href="classclang_1_1Token.html">Token</a> EOFTok;</div>
+<div class="line"><a name="l00705"></a><span class="lineno">  705</span>     EOFTok.<a class="code" href="classclang_1_1Token.html#ae1e49685acde6208c1c83f38540832c1" title="Reset all flags to cleared.">startToken</a>();</div>
+<div class="line"><a name="l00706"></a><span class="lineno">  706</span>     EOFTok.<a class="code" href="classclang_1_1Token.html#a44b757baba649ad00b79f78671a8a2aa">setKind</a>(<a class="code" href="namespaceclang_1_1comments_1_1tok.html#af269e1299a7e813dd4471ab24630e01aac4904dc9309fe9cf0fe76ff45d54f265">tok::eof</a>);</div>
+<div class="line"><a name="l00707"></a><span class="lineno">  707</span>     EOFTok.<a class="code" href="classclang_1_1Token.html#ab52b4059e1b2e648c78b7c326190d2ce">setLocation</a>(Tok.<a class="code" href="classclang_1_1Token.html#a6f28cdecdecc3f19f8e7c976a044ebf8" title="Return a source location identifier for the specified offset in the current file.">getLocation</a>());</div>
+<div class="line"><a name="l00708"></a><span class="lineno">  708</span>     EOFTok.<a class="code" href="classclang_1_1Token.html#a2cd7bd0075db58067b69368ec471aaf5">setLength</a>(0);</div>
+<div class="line"><a name="l00709"></a><span class="lineno">  709</span>     <span class="keywordflow">for</span> (; NumActuals < MinArgsExpected; ++NumActuals)</div>
+<div class="line"><a name="l00710"></a><span class="lineno">  710</span>       ArgTokens.push_back(EOFTok);</div>
+<div class="line"><a name="l00711"></a><span class="lineno">  711</span>   }</div>
+<div class="line"><a name="l00712"></a><span class="lineno">  712</span> </div>
+<div class="line"><a name="l00713"></a><span class="lineno">  713</span>   <span class="keywordflow">if</span> (NumActuals < MinArgsExpected) {</div>
+<div class="line"><a name="l00714"></a><span class="lineno">  714</span>     <span class="comment">// There are several cases where too few arguments is ok, handle them now.</span></div>
+<div class="line"><a name="l00715"></a><span class="lineno">  715</span>     <span class="keywordflow">if</span> (NumActuals == 0 && MinArgsExpected == 1) {</div>
+<div class="line"><a name="l00716"></a><span class="lineno">  716</span>       <span class="comment">// #define A(X)  or  #define A(...)   ---> A()</span></div>
+<div class="line"><a name="l00717"></a><span class="lineno">  717</span> </div>
+<div class="line"><a name="l00718"></a><span class="lineno">  718</span>       <span class="comment">// If there is exactly one argument, and that argument is missing,</span></div>
+<div class="line"><a name="l00719"></a><span class="lineno">  719</span>       <span class="comment">// then we have an empty "()" argument empty list.  This is fine, even if</span></div>
+<div class="line"><a name="l00720"></a><span class="lineno">  720</span>       <span class="comment">// the macro expects one argument (the argument is just empty).</span></div>
+<div class="line"><a name="l00721"></a><span class="lineno">  721</span>       isVarargsElided = MI-><a class="code" href="classclang_1_1MacroInfo.html#a856ff1a4cdf5ddf44455252a4a4467c1">isVariadic</a>();</div>
+<div class="line"><a name="l00722"></a><span class="lineno">  722</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (MI-><a class="code" href="classclang_1_1MacroInfo.html#a856ff1a4cdf5ddf44455252a4a4467c1">isVariadic</a>() &&</div>
+<div class="line"><a name="l00723"></a><span class="lineno">  723</span>                (NumActuals+1 == MinArgsExpected ||  <span class="comment">// A(x, ...) -> A(X)</span></div>
+<div class="line"><a name="l00724"></a><span class="lineno">  724</span>                 (NumActuals == 0 && MinArgsExpected == 2))) {<span class="comment">// A(x,...) -> A()</span></div>
+<div class="line"><a name="l00725"></a><span class="lineno">  725</span>       <span class="comment">// Varargs where the named vararg parameter is missing: OK as extension.</span></div>
+<div class="line"><a name="l00726"></a><span class="lineno">  726</span>       <span class="comment">//   #define A(x, ...)</span></div>
+<div class="line"><a name="l00727"></a><span class="lineno">  727</span>       <span class="comment">//   A("blah")</span></div>
+<div class="line"><a name="l00728"></a><span class="lineno">  728</span>       <span class="comment">//</span></div>
+<div class="line"><a name="l00729"></a><span class="lineno">  729</span>       <span class="comment">// If the macro contains the comma pasting extension, the diagnostic</span></div>
+<div class="line"><a name="l00730"></a><span class="lineno">  730</span>       <span class="comment">// is suppressed; we know we'll get another diagnostic later.</span></div>
+<div class="line"><a name="l00731"></a><span class="lineno">  731</span>       <span class="keywordflow">if</span> (!MI-><a class="code" href="classclang_1_1MacroInfo.html#ac1e88c35c4c564c8b4c88239b54637d8">hasCommaPasting</a>()) {</div>
+<div class="line"><a name="l00732"></a><span class="lineno">  732</span>         <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::ext_missing_varargs_arg);</div>
+<div class="line"><a name="l00733"></a><span class="lineno">  733</span>         <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(MI-><a class="code" href="classclang_1_1MacroInfo.html#a24668f58f405f65ea486b4214e13b641" title="Return the location that the macro was defined at.">getDefinitionLoc</a>(), diag::note_macro_here)</div>
+<div class="line"><a name="l00734"></a><span class="lineno">  734</span>           << MacroName.<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</a>();</div>
+<div class="line"><a name="l00735"></a><span class="lineno">  735</span>       }</div>
+<div class="line"><a name="l00736"></a><span class="lineno">  736</span> </div>
+<div class="line"><a name="l00737"></a><span class="lineno">  737</span>       <span class="comment">// Remember this occurred, allowing us to elide the comma when used for</span></div>
+<div class="line"><a name="l00738"></a><span class="lineno">  738</span>       <span class="comment">// cases like:</span></div>
+<div class="line"><a name="l00739"></a><span class="lineno">  739</span>       <span class="comment">//   #define A(x, foo...) blah(a, ## foo)</span></div>
+<div class="line"><a name="l00740"></a><span class="lineno">  740</span>       <span class="comment">//   #define B(x, ...) blah(a, ## __VA_ARGS__)</span></div>
+<div class="line"><a name="l00741"></a><span class="lineno">  741</span>       <span class="comment">//   #define C(...) blah(a, ## __VA_ARGS__)</span></div>
+<div class="line"><a name="l00742"></a><span class="lineno">  742</span>       <span class="comment">//  A(x) B(x) C()</span></div>
+<div class="line"><a name="l00743"></a><span class="lineno">  743</span>       isVarargsElided = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00744"></a><span class="lineno">  744</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!ContainsCodeCompletionTok) {</div>
+<div class="line"><a name="l00745"></a><span class="lineno">  745</span>       <span class="comment">// Otherwise, emit the error.</span></div>
+<div class="line"><a name="l00746"></a><span class="lineno">  746</span>       <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::err_too_few_args_in_macro_invoc);</div>
+<div class="line"><a name="l00747"></a><span class="lineno">  747</span>       <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(MI-><a class="code" href="classclang_1_1MacroInfo.html#a24668f58f405f65ea486b4214e13b641" title="Return the location that the macro was defined at.">getDefinitionLoc</a>(), diag::note_macro_here)</div>
+<div class="line"><a name="l00748"></a><span class="lineno">  748</span>         << MacroName.<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</a>();</div>
+<div class="line"><a name="l00749"></a><span class="lineno">  749</span>       <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00750"></a><span class="lineno">  750</span>     }</div>
+<div class="line"><a name="l00751"></a><span class="lineno">  751</span> </div>
+<div class="line"><a name="l00752"></a><span class="lineno">  752</span>     <span class="comment">// Add a marker EOF token to the end of the token list for this argument.</span></div>
+<div class="line"><a name="l00753"></a><span class="lineno">  753</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> EndLoc = Tok.<a class="code" href="classclang_1_1Token.html#a6f28cdecdecc3f19f8e7c976a044ebf8" title="Return a source location identifier for the specified offset in the current file.">getLocation</a>();</div>
+<div class="line"><a name="l00754"></a><span class="lineno">  754</span>     Tok.<a class="code" href="classclang_1_1Token.html#ae1e49685acde6208c1c83f38540832c1" title="Reset all flags to cleared.">startToken</a>();</div>
+<div class="line"><a name="l00755"></a><span class="lineno">  755</span>     Tok.<a class="code" href="classclang_1_1Token.html#a44b757baba649ad00b79f78671a8a2aa">setKind</a>(<a class="code" href="namespaceclang_1_1comments_1_1tok.html#af269e1299a7e813dd4471ab24630e01aac4904dc9309fe9cf0fe76ff45d54f265">tok::eof</a>);</div>
+<div class="line"><a name="l00756"></a><span class="lineno">  756</span>     Tok.<a class="code" href="classclang_1_1Token.html#ab52b4059e1b2e648c78b7c326190d2ce">setLocation</a>(EndLoc);</div>
+<div class="line"><a name="l00757"></a><span class="lineno">  757</span>     Tok.<a class="code" href="classclang_1_1Token.html#a2cd7bd0075db58067b69368ec471aaf5">setLength</a>(0);</div>
+<div class="line"><a name="l00758"></a><span class="lineno">  758</span>     ArgTokens.push_back(Tok);</div>
+<div class="line"><a name="l00759"></a><span class="lineno">  759</span> </div>
+<div class="line"><a name="l00760"></a><span class="lineno">  760</span>     <span class="comment">// If we expect two arguments, add both as empty.</span></div>
+<div class="line"><a name="l00761"></a><span class="lineno">  761</span>     <span class="keywordflow">if</span> (NumActuals == 0 && MinArgsExpected == 2)</div>
+<div class="line"><a name="l00762"></a><span class="lineno">  762</span>       ArgTokens.push_back(Tok);</div>
+<div class="line"><a name="l00763"></a><span class="lineno">  763</span> </div>
+<div class="line"><a name="l00764"></a><span class="lineno">  764</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (NumActuals > MinArgsExpected && !MI-><a class="code" href="classclang_1_1MacroInfo.html#a856ff1a4cdf5ddf44455252a4a4467c1">isVariadic</a>() &&</div>
+<div class="line"><a name="l00765"></a><span class="lineno">  765</span>              !ContainsCodeCompletionTok) {</div>
+<div class="line"><a name="l00766"></a><span class="lineno">  766</span>     <span class="comment">// Emit the diagnostic at the macro name in case there is a missing ).</span></div>
+<div class="line"><a name="l00767"></a><span class="lineno">  767</span>     <span class="comment">// Emitting it at the , could be far away from the macro name.</span></div>
+<div class="line"><a name="l00768"></a><span class="lineno">  768</span>     <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(MacroName, diag::err_too_many_args_in_macro_invoc);</div>
+<div class="line"><a name="l00769"></a><span class="lineno">  769</span>     <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(MI-><a class="code" href="classclang_1_1MacroInfo.html#a24668f58f405f65ea486b4214e13b641" title="Return the location that the macro was defined at.">getDefinitionLoc</a>(), diag::note_macro_here)</div>
+<div class="line"><a name="l00770"></a><span class="lineno">  770</span>       << MacroName.<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</a>();</div>
+<div class="line"><a name="l00771"></a><span class="lineno">  771</span>     <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00772"></a><span class="lineno">  772</span>   }</div>
+<div class="line"><a name="l00773"></a><span class="lineno">  773</span> </div>
+<div class="line"><a name="l00774"></a><span class="lineno">  774</span>   <span class="keywordflow">return</span> <a class="code" href="classclang_1_1MacroArgs.html#a69120f6d9809257fbdbdde744a4e96b7" title="MacroArgs ctor function - This destroys the vector passed in.">MacroArgs::create</a>(MI, ArgTokens, isVarargsElided, *<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00775"></a><span class="lineno">  775</span> }</div>
+<div class="line"><a name="l00776"></a><span class="lineno">  776</span> <span class="comment"></span></div>
+<div class="line"><a name="l00777"></a><span class="lineno">  777</span> <span class="comment">/// \brief Keeps macro expanded tokens for TokenLexers.</span></div>
+<div class="line"><a name="l00778"></a><span class="lineno">  778</span> <span class="comment"></span><span class="comment">//</span><span class="comment"></span></div>
+<div class="line"><a name="l00779"></a><span class="lineno">  779</span> <span class="comment">/// Works like a stack; a TokenLexer adds the macro expanded tokens that is</span></div>
+<div class="line"><a name="l00780"></a><span class="lineno">  780</span> <span class="comment">/// going to lex in the cache and when it finishes the tokens are removed</span></div>
+<div class="line"><a name="l00781"></a><span class="lineno">  781</span> <span class="comment">/// from the end of the cache.</span></div>
+<div class="line"><a name="l00782"></a><span class="lineno">  782</span> <span class="comment"></span><a class="code" href="classclang_1_1Token.html">Token</a> *Preprocessor::cacheMacroExpandedTokens(<a class="code" href="classclang_1_1TokenLexer.html">TokenLexer</a> *tokLexer,</div>
+<div class="line"><a name="l00783"></a><span class="lineno">  783</span>                                               <a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<Token></a> tokens) {</div>
+<div class="line"><a name="l00784"></a><span class="lineno">  784</span>   assert(tokLexer);</div>
+<div class="line"><a name="l00785"></a><span class="lineno">  785</span>   <span class="keywordflow">if</span> (tokens.empty())</div>
+<div class="line"><a name="l00786"></a><span class="lineno">  786</span>     <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00787"></a><span class="lineno">  787</span> </div>
+<div class="line"><a name="l00788"></a><span class="lineno">  788</span>   <span class="keywordtype">size_t</span> newIndex = MacroExpandedTokens.size();</div>
+<div class="line"><a name="l00789"></a><span class="lineno">  789</span>   <span class="keywordtype">bool</span> cacheNeedsToGrow = tokens.size() ></div>
+<div class="line"><a name="l00790"></a><span class="lineno">  790</span>                       MacroExpandedTokens.capacity()-MacroExpandedTokens.size(); </div>
+<div class="line"><a name="l00791"></a><span class="lineno">  791</span>   MacroExpandedTokens.append(tokens.begin(), tokens.end());</div>
+<div class="line"><a name="l00792"></a><span class="lineno">  792</span> </div>
+<div class="line"><a name="l00793"></a><span class="lineno">  793</span>   <span class="keywordflow">if</span> (cacheNeedsToGrow) {</div>
+<div class="line"><a name="l00794"></a><span class="lineno">  794</span>     <span class="comment">// Go through all the TokenLexers whose 'Tokens' pointer points in the</span></div>
+<div class="line"><a name="l00795"></a><span class="lineno">  795</span>     <span class="comment">// buffer and update the pointers to the (potential) new buffer array.</span></div>
+<div class="line"><a name="l00796"></a><span class="lineno">  796</span>     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = MacroExpandingLexersStack.size(); i != e; ++i) {</div>
+<div class="line"><a name="l00797"></a><span class="lineno">  797</span>       <a class="code" href="classclang_1_1TokenLexer.html">TokenLexer</a> *prevLexer;</div>
+<div class="line"><a name="l00798"></a><span class="lineno">  798</span>       <span class="keywordtype">size_t</span> tokIndex;</div>
+<div class="line"><a name="l00799"></a><span class="lineno">  799</span>       llvm::tie(prevLexer, tokIndex) = MacroExpandingLexersStack[i];</div>
+<div class="line"><a name="l00800"></a><span class="lineno">  800</span>       prevLexer->Tokens = MacroExpandedTokens.data() + tokIndex;</div>
+<div class="line"><a name="l00801"></a><span class="lineno">  801</span>     }</div>
+<div class="line"><a name="l00802"></a><span class="lineno">  802</span>   }</div>
+<div class="line"><a name="l00803"></a><span class="lineno">  803</span> </div>
+<div class="line"><a name="l00804"></a><span class="lineno">  804</span>   MacroExpandingLexersStack.push_back(std::make_pair(tokLexer, newIndex));</div>
+<div class="line"><a name="l00805"></a><span class="lineno">  805</span>   <span class="keywordflow">return</span> MacroExpandedTokens.data() + newIndex;</div>
+<div class="line"><a name="l00806"></a><span class="lineno">  806</span> }</div>
+<div class="line"><a name="l00807"></a><span class="lineno">  807</span> </div>
+<div class="line"><a name="l00808"></a><span class="lineno">  808</span> <span class="keywordtype">void</span> Preprocessor::removeCachedMacroExpandedTokensOfLastLexer() {</div>
+<div class="line"><a name="l00809"></a><span class="lineno">  809</span>   assert(!MacroExpandingLexersStack.empty());</div>
+<div class="line"><a name="l00810"></a><span class="lineno">  810</span>   <span class="keywordtype">size_t</span> tokIndex = MacroExpandingLexersStack.back().second;</div>
+<div class="line"><a name="l00811"></a><span class="lineno">  811</span>   assert(tokIndex < MacroExpandedTokens.size());</div>
+<div class="line"><a name="l00812"></a><span class="lineno">  812</span>   <span class="comment">// Pop the cached macro expanded tokens from the end.</span></div>
+<div class="line"><a name="l00813"></a><span class="lineno">  813</span>   MacroExpandedTokens.resize(tokIndex);</div>
+<div class="line"><a name="l00814"></a><span class="lineno">  814</span>   MacroExpandingLexersStack.pop_back();</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> <span class="comment"></span></div>
+<div class="line"><a name="l00817"></a><span class="lineno">  817</span> <span class="comment">/// ComputeDATE_TIME - Compute the current time, enter it into the specified</span></div>
+<div class="line"><a name="l00818"></a><span class="lineno">  818</span> <span class="comment">/// scratch buffer, then return DATELoc/TIMELoc locations with the position of</span></div>
+<div class="line"><a name="l00819"></a><span class="lineno">  819</span> <span class="comment">/// the identifier tokens inserted.</span></div>
+<div class="line"><a name="l00820"></a><span class="lineno"><a class="code" href="PPMacroExpansion_8cpp.html#a8693dd236bf60c5efaf1fb0c3dd30f43">  820</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="PPMacroExpansion_8cpp.html#a8693dd236bf60c5efaf1fb0c3dd30f43">ComputeDATE_TIME</a>(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> &DATELoc, <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> &TIMELoc,</div>
+<div class="line"><a name="l00821"></a><span class="lineno">  821</span>                              <a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP) {</div>
+<div class="line"><a name="l00822"></a><span class="lineno">  822</span>   time_t TT = time(0);</div>
+<div class="line"><a name="l00823"></a><span class="lineno">  823</span>   <span class="keyword">struct </span>tm *TM = localtime(&TT);</div>
+<div class="line"><a name="l00824"></a><span class="lineno">  824</span> </div>
+<div class="line"><a name="l00825"></a><span class="lineno">  825</span>   <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span> Months[] = {</div>
+<div class="line"><a name="l00826"></a><span class="lineno">  826</span>     <span class="stringliteral">"Jan"</span>,<span class="stringliteral">"Feb"</span>,<span class="stringliteral">"Mar"</span>,<span class="stringliteral">"Apr"</span>,<span class="stringliteral">"May"</span>,<span class="stringliteral">"Jun"</span>,<span class="stringliteral">"Jul"</span>,<span class="stringliteral">"Aug"</span>,<span class="stringliteral">"Sep"</span>,<span class="stringliteral">"Oct"</span>,<span class="stringliteral">"Nov"</span>,<span class="stringliteral">"Dec"</span></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>   {</div>
+<div class="line"><a name="l00830"></a><span class="lineno">  830</span>     <a class="code" href="classllvm_1_1SmallString.html">SmallString<32></a> TmpBuffer;</div>
+<div class="line"><a name="l00831"></a><span class="lineno">  831</span>     llvm::raw_svector_ostream TmpStream(TmpBuffer);</div>
+<div class="line"><a name="l00832"></a><span class="lineno">  832</span>     TmpStream << llvm::format(<span class="stringliteral">"\"%s %2d %4d\""</span>, Months[TM->tm_mon],</div>
+<div class="line"><a name="l00833"></a><span class="lineno">  833</span>                               TM->tm_mday, TM->tm_year + 1900);</div>
+<div class="line"><a name="l00834"></a><span class="lineno">  834</span>     <a class="code" href="classclang_1_1Token.html">Token</a> TmpTok;</div>
+<div class="line"><a name="l00835"></a><span class="lineno">  835</span>     TmpTok.<a class="code" href="classclang_1_1Token.html#ae1e49685acde6208c1c83f38540832c1" title="Reset all flags to cleared.">startToken</a>();</div>
+<div class="line"><a name="l00836"></a><span class="lineno">  836</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#a36cc89be41795959b90bf2e77b836742">CreateString</a>(TmpStream.str(), TmpTok);</div>
+<div class="line"><a name="l00837"></a><span class="lineno">  837</span>     DATELoc = TmpTok.<a class="code" href="classclang_1_1Token.html#a6f28cdecdecc3f19f8e7c976a044ebf8" title="Return a source location identifier for the specified offset in the current file.">getLocation</a>();</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> </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>     <a class="code" href="classllvm_1_1SmallString.html">SmallString<32></a> TmpBuffer;</div>
+<div class="line"><a name="l00842"></a><span class="lineno">  842</span>     llvm::raw_svector_ostream TmpStream(TmpBuffer);</div>
+<div class="line"><a name="l00843"></a><span class="lineno">  843</span>     TmpStream << llvm::format(<span class="stringliteral">"\"%02d:%02d:%02d\""</span>,</div>
+<div class="line"><a name="l00844"></a><span class="lineno">  844</span>                               TM->tm_hour, TM->tm_min, TM->tm_sec);</div>
+<div class="line"><a name="l00845"></a><span class="lineno">  845</span>     <a class="code" href="classclang_1_1Token.html">Token</a> TmpTok;</div>
+<div class="line"><a name="l00846"></a><span class="lineno">  846</span>     TmpTok.<a class="code" href="classclang_1_1Token.html#ae1e49685acde6208c1c83f38540832c1" title="Reset all flags to cleared.">startToken</a>();</div>
+<div class="line"><a name="l00847"></a><span class="lineno">  847</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#a36cc89be41795959b90bf2e77b836742">CreateString</a>(TmpStream.str(), TmpTok);</div>
+<div class="line"><a name="l00848"></a><span class="lineno">  848</span>     TIMELoc = TmpTok.<a class="code" href="classclang_1_1Token.html#a6f28cdecdecc3f19f8e7c976a044ebf8" title="Return a source location identifier for the specified offset in the current file.">getLocation</a>();</div>
+<div class="line"><a name="l00849"></a><span class="lineno">  849</span>   }</div>
+<div class="line"><a name="l00850"></a><span class="lineno">  850</span> }</div>
+<div class="line"><a name="l00851"></a><span class="lineno">  851</span> </div>
+<div class="line"><a name="l00852"></a><span class="lineno">  852</span> <span class="comment"></span></div>
+<div class="line"><a name="l00853"></a><span class="lineno">  853</span> <span class="comment">/// HasFeature - Return true if we recognize and implement the feature</span></div>
+<div class="line"><a name="l00854"></a><span class="lineno">  854</span> <span class="comment">/// specified by the identifier as a standard language feature.</span></div>
+<div class="line"><a name="l00855"></a><span class="lineno"><a class="code" href="PPMacroExpansion_8cpp.html#a7646e76e07fdc88740a5f61f65639491">  855</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="PPMacroExpansion_8cpp.html#a7646e76e07fdc88740a5f61f65639491">HasFeature</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP, <span class="keyword">const</span> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *II) {</div>
+<div class="line"><a name="l00856"></a><span class="lineno">  856</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1LangOptions.html" title="Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...">LangOptions</a> &LangOpts = PP.<a class="code" href="classclang_1_1Preprocessor.html#a0c1874f57abd66b9fa0d282e6cab5cd6">getLangOpts</a>();</div>
+<div class="line"><a name="l00857"></a><span class="lineno">  857</span>   StringRef Feature = II-><a class="code" href="classclang_1_1IdentifierInfo.html#a94caec6a16e508e8ca39eacd278bd2c5" title="Return the actual identifier string.">getName</a>();</div>
+<div class="line"><a name="l00858"></a><span class="lineno">  858</span> </div>
+<div class="line"><a name="l00859"></a><span class="lineno">  859</span>   <span class="comment">// Normalize the feature name, __foo__ becomes foo.</span></div>
+<div class="line"><a name="l00860"></a><span class="lineno">  860</span>   <span class="keywordflow">if</span> (Feature.startswith(<span class="stringliteral">"__"</span>) && Feature.endswith(<span class="stringliteral">"__"</span>) && Feature.size() >= 4)</div>
+<div class="line"><a name="l00861"></a><span class="lineno">  861</span>     Feature = Feature.substr(2, Feature.size() - 4);</div>
+<div class="line"><a name="l00862"></a><span class="lineno">  862</span> </div>
+<div class="line"><a name="l00863"></a><span class="lineno">  863</span>   <span class="keywordflow">return</span> llvm::StringSwitch<bool>(Feature)</div>
+<div class="line"><a name="l00864"></a><span class="lineno">  864</span>            .Case(<span class="stringliteral">"address_sanitizer"</span>, LangOpts.<a class="code" href="classclang_1_1LangOptionsBase.html#abaa9d961f88353f1b13edc1be202e559">Sanitize</a>.Address)</div>
+<div class="line"><a name="l00865"></a><span class="lineno">  865</span>            .Case(<span class="stringliteral">"attribute_analyzer_noreturn"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00866"></a><span class="lineno">  866</span>            .Case(<span class="stringliteral">"attribute_availability"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00867"></a><span class="lineno">  867</span>            .Case(<span class="stringliteral">"attribute_availability_with_message"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00868"></a><span class="lineno">  868</span>            .Case(<span class="stringliteral">"attribute_cf_returns_not_retained"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00869"></a><span class="lineno">  869</span>            .Case(<span class="stringliteral">"attribute_cf_returns_retained"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00870"></a><span class="lineno">  870</span>            .Case(<span class="stringliteral">"attribute_deprecated_with_message"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00871"></a><span class="lineno">  871</span>            .Case(<span class="stringliteral">"attribute_ext_vector_type"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00872"></a><span class="lineno">  872</span>            .Case(<span class="stringliteral">"attribute_ns_returns_not_retained"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00873"></a><span class="lineno">  873</span>            .Case(<span class="stringliteral">"attribute_ns_returns_retained"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00874"></a><span class="lineno">  874</span>            .Case(<span class="stringliteral">"attribute_ns_consumes_self"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00875"></a><span class="lineno">  875</span>            .Case(<span class="stringliteral">"attribute_ns_consumed"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00876"></a><span class="lineno">  876</span>            .Case(<span class="stringliteral">"attribute_cf_consumed"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00877"></a><span class="lineno">  877</span>            .Case(<span class="stringliteral">"attribute_objc_ivar_unused"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00878"></a><span class="lineno">  878</span>            .Case(<span class="stringliteral">"attribute_objc_method_family"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00879"></a><span class="lineno">  879</span>            .Case(<span class="stringliteral">"attribute_overloadable"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00880"></a><span class="lineno">  880</span>            .Case(<span class="stringliteral">"attribute_unavailable_with_message"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00881"></a><span class="lineno">  881</span>            .Case(<span class="stringliteral">"attribute_unused_on_fields"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00882"></a><span class="lineno">  882</span>            .Case(<span class="stringliteral">"blocks"</span>, LangOpts.Blocks)</div>
+<div class="line"><a name="l00883"></a><span class="lineno">  883</span>            .Case(<span class="stringliteral">"c_thread_safety_attributes"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00884"></a><span class="lineno">  884</span>            .Case(<span class="stringliteral">"cxx_exceptions"</span>, LangOpts.Exceptions)</div>
+<div class="line"><a name="l00885"></a><span class="lineno">  885</span>            .Case(<span class="stringliteral">"cxx_rtti"</span>, LangOpts.RTTI)</div>
+<div class="line"><a name="l00886"></a><span class="lineno">  886</span>            .Case(<span class="stringliteral">"enumerator_attributes"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00887"></a><span class="lineno">  887</span>            .Case(<span class="stringliteral">"memory_sanitizer"</span>, LangOpts.<a class="code" href="classclang_1_1LangOptionsBase.html#abaa9d961f88353f1b13edc1be202e559">Sanitize</a>.Memory)</div>
+<div class="line"><a name="l00888"></a><span class="lineno">  888</span>            .Case(<span class="stringliteral">"thread_sanitizer"</span>, LangOpts.<a class="code" href="classclang_1_1LangOptionsBase.html#abaa9d961f88353f1b13edc1be202e559">Sanitize</a>.Thread)</div>
+<div class="line"><a name="l00889"></a><span class="lineno">  889</span>            .Case(<span class="stringliteral">"dataflow_sanitizer"</span>, LangOpts.<a class="code" href="classclang_1_1LangOptionsBase.html#abaa9d961f88353f1b13edc1be202e559">Sanitize</a>.DataFlow)</div>
+<div class="line"><a name="l00890"></a><span class="lineno">  890</span>            <span class="comment">// Objective-C features</span></div>
+<div class="line"><a name="l00891"></a><span class="lineno">  891</span>            .Case(<span class="stringliteral">"objc_arr"</span>, LangOpts.ObjCAutoRefCount) <span class="comment">// FIXME: REMOVE?</span></div>
+<div class="line"><a name="l00892"></a><span class="lineno">  892</span>            .Case(<span class="stringliteral">"objc_arc"</span>, LangOpts.ObjCAutoRefCount)</div>
+<div class="line"><a name="l00893"></a><span class="lineno">  893</span>            .Case(<span class="stringliteral">"objc_arc_weak"</span>, LangOpts.ObjCARCWeak)</div>
+<div class="line"><a name="l00894"></a><span class="lineno">  894</span>            .Case(<span class="stringliteral">"objc_default_synthesize_properties"</span>, LangOpts.ObjC2)</div>
+<div class="line"><a name="l00895"></a><span class="lineno">  895</span>            .Case(<span class="stringliteral">"objc_fixed_enum"</span>, LangOpts.ObjC2)</div>
+<div class="line"><a name="l00896"></a><span class="lineno">  896</span>            .Case(<span class="stringliteral">"objc_instancetype"</span>, LangOpts.ObjC2)</div>
+<div class="line"><a name="l00897"></a><span class="lineno">  897</span>            .Case(<span class="stringliteral">"objc_modules"</span>, LangOpts.ObjC2 && LangOpts.Modules)</div>
+<div class="line"><a name="l00898"></a><span class="lineno">  898</span>            .Case(<span class="stringliteral">"objc_nonfragile_abi"</span>, LangOpts.<a class="code" href="classclang_1_1LangOptions.html#a34a8b84f730051971c84c36daa84dda7">ObjCRuntime</a>.<a class="code" href="classclang_1_1ObjCRuntime.html#a5523ca4491b7915e32c02d98a491505e" title="Does this runtime follow the set of implied behaviors for a "non-fragile" ABI?">isNonFragile</a>())</div>
+<div class="line"><a name="l00899"></a><span class="lineno">  899</span>            .Case(<span class="stringliteral">"objc_property_explicit_atomic"</span>, <span class="keyword">true</span>) <span class="comment">// Does clang support explicit "atomic" keyword?</span></div>
+<div class="line"><a name="l00900"></a><span class="lineno">  900</span>            .Case(<span class="stringliteral">"objc_protocol_qualifier_mangling"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00901"></a><span class="lineno">  901</span>            .Case(<span class="stringliteral">"objc_weak_class"</span>, LangOpts.<a class="code" href="classclang_1_1LangOptions.html#a34a8b84f730051971c84c36daa84dda7">ObjCRuntime</a>.<a class="code" href="classclang_1_1ObjCRuntime.html#a50d0396656ad23f070b175bf68e89cf0" title="Does this runtime support weakly importing classes?">hasWeakClassImport</a>())</div>
+<div class="line"><a name="l00902"></a><span class="lineno">  902</span>            .Case(<span class="stringliteral">"ownership_holds"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00903"></a><span class="lineno">  903</span>            .Case(<span class="stringliteral">"ownership_returns"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00904"></a><span class="lineno">  904</span>            .Case(<span class="stringliteral">"ownership_takes"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00905"></a><span class="lineno">  905</span>            .Case(<span class="stringliteral">"objc_bool"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00906"></a><span class="lineno">  906</span>            .Case(<span class="stringliteral">"objc_subscripting"</span>, LangOpts.<a class="code" href="classclang_1_1LangOptions.html#a34a8b84f730051971c84c36daa84dda7">ObjCRuntime</a>.<a class="code" href="classclang_1_1ObjCRuntime.html#a5523ca4491b7915e32c02d98a491505e" title="Does this runtime follow the set of implied behaviors for a "non-fragile" ABI?">isNonFragile</a>())</div>
+<div class="line"><a name="l00907"></a><span class="lineno">  907</span>            .Case(<span class="stringliteral">"objc_array_literals"</span>, LangOpts.ObjC2)</div>
+<div class="line"><a name="l00908"></a><span class="lineno">  908</span>            .Case(<span class="stringliteral">"objc_dictionary_literals"</span>, LangOpts.ObjC2)</div>
+<div class="line"><a name="l00909"></a><span class="lineno">  909</span>            .Case(<span class="stringliteral">"objc_boxed_expressions"</span>, LangOpts.ObjC2)</div>
+<div class="line"><a name="l00910"></a><span class="lineno">  910</span>            .Case(<span class="stringliteral">"arc_cf_code_audited"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00911"></a><span class="lineno">  911</span>            <span class="comment">// C11 features</span></div>
+<div class="line"><a name="l00912"></a><span class="lineno">  912</span>            .Case(<span class="stringliteral">"c_alignas"</span>, LangOpts.C11)</div>
+<div class="line"><a name="l00913"></a><span class="lineno">  913</span>            .Case(<span class="stringliteral">"c_atomic"</span>, LangOpts.C11)</div>
+<div class="line"><a name="l00914"></a><span class="lineno">  914</span>            .Case(<span class="stringliteral">"c_generic_selections"</span>, LangOpts.C11)</div>
+<div class="line"><a name="l00915"></a><span class="lineno">  915</span>            .Case(<span class="stringliteral">"c_static_assert"</span>, LangOpts.C11)</div>
+<div class="line"><a name="l00916"></a><span class="lineno">  916</span>            .Case(<span class="stringliteral">"c_thread_local"</span>, </div>
+<div class="line"><a name="l00917"></a><span class="lineno">  917</span>                  LangOpts.C11 && PP.<a class="code" href="classclang_1_1Preprocessor.html#ac6865d870ca2177999249afe34042082">getTargetInfo</a>().<a class="code" href="classclang_1_1TargetInfo.html#aa7d979d5f58c3f36a7272e09904dd2d9" title="Whether the target supports thread-local storage.">isTLSSupported</a>())</div>
+<div class="line"><a name="l00918"></a><span class="lineno">  918</span>            <span class="comment">// C++11 features</span></div>
+<div class="line"><a name="l00919"></a><span class="lineno">  919</span>            .Case(<span class="stringliteral">"cxx_access_control_sfinae"</span>, LangOpts.CPlusPlus11)</div>
+<div class="line"><a name="l00920"></a><span class="lineno">  920</span>            .Case(<span class="stringliteral">"cxx_alias_templates"</span>, LangOpts.CPlusPlus11)</div>
+<div class="line"><a name="l00921"></a><span class="lineno">  921</span>            .Case(<span class="stringliteral">"cxx_alignas"</span>, LangOpts.CPlusPlus11)</div>
+<div class="line"><a name="l00922"></a><span class="lineno">  922</span>            .Case(<span class="stringliteral">"cxx_atomic"</span>, LangOpts.CPlusPlus11)</div>
+<div class="line"><a name="l00923"></a><span class="lineno">  923</span>            .Case(<span class="stringliteral">"cxx_attributes"</span>, LangOpts.CPlusPlus11)</div>
+<div class="line"><a name="l00924"></a><span class="lineno">  924</span>            .Case(<span class="stringliteral">"cxx_auto_type"</span>, LangOpts.CPlusPlus11)</div>
+<div class="line"><a name="l00925"></a><span class="lineno">  925</span>            .Case(<span class="stringliteral">"cxx_constexpr"</span>, LangOpts.CPlusPlus11)</div>
+<div class="line"><a name="l00926"></a><span class="lineno">  926</span>            .Case(<span class="stringliteral">"cxx_decltype"</span>, LangOpts.CPlusPlus11)</div>
+<div class="line"><a name="l00927"></a><span class="lineno">  927</span>            .Case(<span class="stringliteral">"cxx_decltype_incomplete_return_types"</span>, LangOpts.CPlusPlus11)</div>
+<div class="line"><a name="l00928"></a><span class="lineno">  928</span>            .Case(<span class="stringliteral">"cxx_default_function_template_args"</span>, LangOpts.CPlusPlus11)</div>
+<div class="line"><a name="l00929"></a><span class="lineno">  929</span>            .Case(<span class="stringliteral">"cxx_defaulted_functions"</span>, LangOpts.CPlusPlus11)</div>
+<div class="line"><a name="l00930"></a><span class="lineno">  930</span>            .Case(<span class="stringliteral">"cxx_delegating_constructors"</span>, LangOpts.CPlusPlus11)</div>
+<div class="line"><a name="l00931"></a><span class="lineno">  931</span>            .Case(<span class="stringliteral">"cxx_deleted_functions"</span>, LangOpts.CPlusPlus11)</div>
+<div class="line"><a name="l00932"></a><span class="lineno">  932</span>            .Case(<span class="stringliteral">"cxx_explicit_conversions"</span>, LangOpts.CPlusPlus11)</div>
+<div class="line"><a name="l00933"></a><span class="lineno">  933</span>            .Case(<span class="stringliteral">"cxx_generalized_initializers"</span>, LangOpts.CPlusPlus11)</div>
+<div class="line"><a name="l00934"></a><span class="lineno">  934</span>            .Case(<span class="stringliteral">"cxx_implicit_moves"</span>, LangOpts.CPlusPlus11)</div>
+<div class="line"><a name="l00935"></a><span class="lineno">  935</span>            .Case(<span class="stringliteral">"cxx_inheriting_constructors"</span>, LangOpts.CPlusPlus11)</div>
+<div class="line"><a name="l00936"></a><span class="lineno">  936</span>            .Case(<span class="stringliteral">"cxx_inline_namespaces"</span>, LangOpts.CPlusPlus11)</div>
+<div class="line"><a name="l00937"></a><span class="lineno">  937</span>            .Case(<span class="stringliteral">"cxx_lambdas"</span>, LangOpts.CPlusPlus11)</div>
+<div class="line"><a name="l00938"></a><span class="lineno">  938</span>            .Case(<span class="stringliteral">"cxx_local_type_template_args"</span>, LangOpts.CPlusPlus11)</div>
+<div class="line"><a name="l00939"></a><span class="lineno">  939</span>            .Case(<span class="stringliteral">"cxx_nonstatic_member_init"</span>, LangOpts.CPlusPlus11)</div>
+<div class="line"><a name="l00940"></a><span class="lineno">  940</span>            .Case(<span class="stringliteral">"cxx_noexcept"</span>, LangOpts.CPlusPlus11)</div>
+<div class="line"><a name="l00941"></a><span class="lineno">  941</span>            .Case(<span class="stringliteral">"cxx_nullptr"</span>, LangOpts.CPlusPlus11)</div>
+<div class="line"><a name="l00942"></a><span class="lineno">  942</span>            .Case(<span class="stringliteral">"cxx_override_control"</span>, LangOpts.CPlusPlus11)</div>
+<div class="line"><a name="l00943"></a><span class="lineno">  943</span>            .Case(<span class="stringliteral">"cxx_range_for"</span>, LangOpts.CPlusPlus11)</div>
+<div class="line"><a name="l00944"></a><span class="lineno">  944</span>            .Case(<span class="stringliteral">"cxx_raw_string_literals"</span>, LangOpts.CPlusPlus11)</div>
+<div class="line"><a name="l00945"></a><span class="lineno">  945</span>            .Case(<span class="stringliteral">"cxx_reference_qualified_functions"</span>, LangOpts.CPlusPlus11)</div>
+<div class="line"><a name="l00946"></a><span class="lineno">  946</span>            .Case(<span class="stringliteral">"cxx_rvalue_references"</span>, LangOpts.CPlusPlus11)</div>
+<div class="line"><a name="l00947"></a><span class="lineno">  947</span>            .Case(<span class="stringliteral">"cxx_strong_enums"</span>, LangOpts.CPlusPlus11)</div>
+<div class="line"><a name="l00948"></a><span class="lineno">  948</span>            .Case(<span class="stringliteral">"cxx_static_assert"</span>, LangOpts.CPlusPlus11)</div>
+<div class="line"><a name="l00949"></a><span class="lineno">  949</span>            .Case(<span class="stringliteral">"cxx_thread_local"</span>,</div>
+<div class="line"><a name="l00950"></a><span class="lineno">  950</span>                  LangOpts.CPlusPlus11 && PP.<a class="code" href="classclang_1_1Preprocessor.html#ac6865d870ca2177999249afe34042082">getTargetInfo</a>().<a class="code" href="classclang_1_1TargetInfo.html#aa7d979d5f58c3f36a7272e09904dd2d9" title="Whether the target supports thread-local storage.">isTLSSupported</a>())</div>
+<div class="line"><a name="l00951"></a><span class="lineno">  951</span>            .Case(<span class="stringliteral">"cxx_trailing_return"</span>, LangOpts.CPlusPlus11)</div>
+<div class="line"><a name="l00952"></a><span class="lineno">  952</span>            .Case(<span class="stringliteral">"cxx_unicode_literals"</span>, LangOpts.CPlusPlus11)</div>
+<div class="line"><a name="l00953"></a><span class="lineno">  953</span>            .Case(<span class="stringliteral">"cxx_unrestricted_unions"</span>, LangOpts.CPlusPlus11)</div>
+<div class="line"><a name="l00954"></a><span class="lineno">  954</span>            .Case(<span class="stringliteral">"cxx_user_literals"</span>, LangOpts.CPlusPlus11)</div>
+<div class="line"><a name="l00955"></a><span class="lineno">  955</span>            .Case(<span class="stringliteral">"cxx_variadic_templates"</span>, LangOpts.CPlusPlus11)</div>
+<div class="line"><a name="l00956"></a><span class="lineno">  956</span>            <span class="comment">// C++1y features</span></div>
+<div class="line"><a name="l00957"></a><span class="lineno">  957</span>            .Case(<span class="stringliteral">"cxx_aggregate_nsdmi"</span>, LangOpts.CPlusPlus1y)</div>
+<div class="line"><a name="l00958"></a><span class="lineno">  958</span>            .Case(<span class="stringliteral">"cxx_binary_literals"</span>, LangOpts.CPlusPlus1y)</div>
+<div class="line"><a name="l00959"></a><span class="lineno">  959</span>            .Case(<span class="stringliteral">"cxx_contextual_conversions"</span>, LangOpts.CPlusPlus1y)</div>
+<div class="line"><a name="l00960"></a><span class="lineno">  960</span>            <span class="comment">//.Case("cxx_generic_lambdas", LangOpts.CPlusPlus1y)</span></div>
+<div class="line"><a name="l00961"></a><span class="lineno">  961</span>            .Case(<span class="stringliteral">"cxx_init_captures"</span>, LangOpts.CPlusPlus1y)</div>
+<div class="line"><a name="l00962"></a><span class="lineno">  962</span>            .Case(<span class="stringliteral">"cxx_relaxed_constexpr"</span>, LangOpts.CPlusPlus1y)</div>
+<div class="line"><a name="l00963"></a><span class="lineno">  963</span>            .Case(<span class="stringliteral">"cxx_return_type_deduction"</span>, LangOpts.CPlusPlus1y)</div>
+<div class="line"><a name="l00964"></a><span class="lineno">  964</span>            <span class="comment">//.Case("cxx_runtime_arrays", LangOpts.CPlusPlus1y)</span></div>
+<div class="line"><a name="l00965"></a><span class="lineno">  965</span>            .Case(<span class="stringliteral">"cxx_variable_templates"</span>, LangOpts.CPlusPlus1y)</div>
+<div class="line"><a name="l00966"></a><span class="lineno">  966</span>            <span class="comment">// Type traits</span></div>
+<div class="line"><a name="l00967"></a><span class="lineno">  967</span>            .Case(<span class="stringliteral">"has_nothrow_assign"</span>, LangOpts.CPlusPlus)</div>
+<div class="line"><a name="l00968"></a><span class="lineno">  968</span>            .Case(<span class="stringliteral">"has_nothrow_copy"</span>, LangOpts.CPlusPlus)</div>
+<div class="line"><a name="l00969"></a><span class="lineno">  969</span>            .Case(<span class="stringliteral">"has_nothrow_constructor"</span>, LangOpts.CPlusPlus)</div>
+<div class="line"><a name="l00970"></a><span class="lineno">  970</span>            .Case(<span class="stringliteral">"has_trivial_assign"</span>, LangOpts.CPlusPlus)</div>
+<div class="line"><a name="l00971"></a><span class="lineno">  971</span>            .Case(<span class="stringliteral">"has_trivial_copy"</span>, LangOpts.CPlusPlus)</div>
+<div class="line"><a name="l00972"></a><span class="lineno">  972</span>            .Case(<span class="stringliteral">"has_trivial_constructor"</span>, LangOpts.CPlusPlus)</div>
+<div class="line"><a name="l00973"></a><span class="lineno">  973</span>            .Case(<span class="stringliteral">"has_trivial_destructor"</span>, LangOpts.CPlusPlus)</div>
+<div class="line"><a name="l00974"></a><span class="lineno">  974</span>            .Case(<span class="stringliteral">"has_virtual_destructor"</span>, LangOpts.CPlusPlus)</div>
+<div class="line"><a name="l00975"></a><span class="lineno">  975</span>            .Case(<span class="stringliteral">"is_abstract"</span>, LangOpts.CPlusPlus)</div>
+<div class="line"><a name="l00976"></a><span class="lineno">  976</span>            .Case(<span class="stringliteral">"is_base_of"</span>, LangOpts.CPlusPlus)</div>
+<div class="line"><a name="l00977"></a><span class="lineno">  977</span>            .Case(<span class="stringliteral">"is_class"</span>, LangOpts.CPlusPlus)</div>
+<div class="line"><a name="l00978"></a><span class="lineno">  978</span>            .Case(<span class="stringliteral">"is_convertible_to"</span>, LangOpts.CPlusPlus)</div>
+<div class="line"><a name="l00979"></a><span class="lineno">  979</span>            .Case(<span class="stringliteral">"is_empty"</span>, LangOpts.CPlusPlus)</div>
+<div class="line"><a name="l00980"></a><span class="lineno">  980</span>            .Case(<span class="stringliteral">"is_enum"</span>, LangOpts.CPlusPlus)</div>
+<div class="line"><a name="l00981"></a><span class="lineno">  981</span>            .Case(<span class="stringliteral">"is_final"</span>, LangOpts.CPlusPlus)</div>
+<div class="line"><a name="l00982"></a><span class="lineno">  982</span>            .Case(<span class="stringliteral">"is_literal"</span>, LangOpts.CPlusPlus)</div>
+<div class="line"><a name="l00983"></a><span class="lineno">  983</span>            .Case(<span class="stringliteral">"is_standard_layout"</span>, LangOpts.CPlusPlus)</div>
+<div class="line"><a name="l00984"></a><span class="lineno">  984</span>            .Case(<span class="stringliteral">"is_pod"</span>, LangOpts.CPlusPlus)</div>
+<div class="line"><a name="l00985"></a><span class="lineno">  985</span>            .Case(<span class="stringliteral">"is_polymorphic"</span>, LangOpts.CPlusPlus)</div>
+<div class="line"><a name="l00986"></a><span class="lineno">  986</span>            .Case(<span class="stringliteral">"is_sealed"</span>, LangOpts.MicrosoftExt)</div>
+<div class="line"><a name="l00987"></a><span class="lineno">  987</span>            .Case(<span class="stringliteral">"is_trivial"</span>, LangOpts.CPlusPlus)</div>
+<div class="line"><a name="l00988"></a><span class="lineno">  988</span>            .Case(<span class="stringliteral">"is_trivially_assignable"</span>, LangOpts.CPlusPlus)</div>
+<div class="line"><a name="l00989"></a><span class="lineno">  989</span>            .Case(<span class="stringliteral">"is_trivially_constructible"</span>, LangOpts.CPlusPlus)</div>
+<div class="line"><a name="l00990"></a><span class="lineno">  990</span>            .Case(<span class="stringliteral">"is_trivially_copyable"</span>, LangOpts.CPlusPlus)</div>
+<div class="line"><a name="l00991"></a><span class="lineno">  991</span>            .Case(<span class="stringliteral">"is_union"</span>, LangOpts.CPlusPlus)</div>
+<div class="line"><a name="l00992"></a><span class="lineno">  992</span>            .Case(<span class="stringliteral">"modules"</span>, LangOpts.Modules)</div>
+<div class="line"><a name="l00993"></a><span class="lineno">  993</span>            .Case(<span class="stringliteral">"tls"</span>, PP.<a class="code" href="classclang_1_1Preprocessor.html#ac6865d870ca2177999249afe34042082">getTargetInfo</a>().<a class="code" href="classclang_1_1TargetInfo.html#aa7d979d5f58c3f36a7272e09904dd2d9" title="Whether the target supports thread-local storage.">isTLSSupported</a>())</div>
+<div class="line"><a name="l00994"></a><span class="lineno">  994</span>            .Case(<span class="stringliteral">"underlying_type"</span>, LangOpts.CPlusPlus)</div>
+<div class="line"><a name="l00995"></a><span class="lineno">  995</span>            .Default(<span class="keyword">false</span>);</div>
+<div class="line"><a name="l00996"></a><span class="lineno">  996</span> }</div>
+<div class="line"><a name="l00997"></a><span class="lineno">  997</span> <span class="comment"></span></div>
+<div class="line"><a name="l00998"></a><span class="lineno">  998</span> <span class="comment">/// HasExtension - Return true if we recognize and implement the feature</span></div>
+<div class="line"><a name="l00999"></a><span class="lineno">  999</span> <span class="comment">/// specified by the identifier, either as an extension or a standard language</span></div>
+<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span> <span class="comment">/// feature.</span></div>
+<div class="line"><a name="l01001"></a><span class="lineno"><a class="code" href="PPMacroExpansion_8cpp.html#a3ed456c30eb260ab7999fcf570e0b80f"> 1001</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="PPMacroExpansion_8cpp.html#a3ed456c30eb260ab7999fcf570e0b80f">HasExtension</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP, <span class="keyword">const</span> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *II) {</div>
+<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>   <span class="keywordflow">if</span> (<a class="code" href="PPMacroExpansion_8cpp.html#a7646e76e07fdc88740a5f61f65639491">HasFeature</a>(PP, II))</div>
+<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>     <span class="keywordflow">return</span> <span class="keyword">true</span>;</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>   <span class="comment">// If the use of an extension results in an error diagnostic, extensions are</span></div>
+<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>   <span class="comment">// effectively unavailable, so just return false here.</span></div>
+<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>   <span class="keywordflow">if</span> (PP.<a class="code" href="classclang_1_1Preprocessor.html#a663f9d8c8151906a9bf39954f3d15c60">getDiagnostics</a>().<a class="code" href="classclang_1_1DiagnosticsEngine.html#afd0c5679e1212f6d48ed6a1be93a2dbf">getExtensionHandlingBehavior</a>() ==</div>
+<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>       <a class="code" href="classclang_1_1DiagnosticsEngine.html#a76c5a2e75d01ba9721dad754de420163a9a1e1784ce6d681802fd38f670327c53">DiagnosticsEngine::Ext_Error</a>)</div>
+<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span> </div>
+<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1LangOptions.html" title="Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...">LangOptions</a> &LangOpts = PP.<a class="code" href="classclang_1_1Preprocessor.html#a0c1874f57abd66b9fa0d282e6cab5cd6">getLangOpts</a>();</div>
+<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>   StringRef Extension = II-><a class="code" href="classclang_1_1IdentifierInfo.html#a94caec6a16e508e8ca39eacd278bd2c5" title="Return the actual identifier string.">getName</a>();</div>
+<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span> </div>
+<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>   <span class="comment">// Normalize the extension name, __foo__ becomes foo.</span></div>
+<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>   <span class="keywordflow">if</span> (Extension.startswith(<span class="stringliteral">"__"</span>) && Extension.endswith(<span class="stringliteral">"__"</span>) &&</div>
+<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>       Extension.size() >= 4)</div>
+<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>     Extension = Extension.substr(2, Extension.size() - 4);</div>
+<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span> </div>
+<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>   <span class="comment">// Because we inherit the feature list from HasFeature, this string switch</span></div>
+<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>   <span class="comment">// must be less restrictive than HasFeature's.</span></div>
+<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>   <span class="keywordflow">return</span> llvm::StringSwitch<bool>(Extension)</div>
+<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>            <span class="comment">// C11 features supported by other languages as extensions.</span></div>
+<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>            .Case(<span class="stringliteral">"c_alignas"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>            .Case(<span class="stringliteral">"c_atomic"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>            .Case(<span class="stringliteral">"c_generic_selections"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>            .Case(<span class="stringliteral">"c_static_assert"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>            .Case(<span class="stringliteral">"c_thread_local"</span>, PP.<a class="code" href="classclang_1_1Preprocessor.html#ac6865d870ca2177999249afe34042082">getTargetInfo</a>().<a class="code" href="classclang_1_1TargetInfo.html#aa7d979d5f58c3f36a7272e09904dd2d9" title="Whether the target supports thread-local storage.">isTLSSupported</a>())</div>
+<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>            <span class="comment">// C++11 features supported by other languages as extensions.</span></div>
+<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>            .Case(<span class="stringliteral">"cxx_atomic"</span>, LangOpts.CPlusPlus)</div>
+<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>            .Case(<span class="stringliteral">"cxx_deleted_functions"</span>, LangOpts.CPlusPlus)</div>
+<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>            .Case(<span class="stringliteral">"cxx_explicit_conversions"</span>, LangOpts.CPlusPlus)</div>
+<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>            .Case(<span class="stringliteral">"cxx_inline_namespaces"</span>, LangOpts.CPlusPlus)</div>
+<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>            .Case(<span class="stringliteral">"cxx_local_type_template_args"</span>, LangOpts.CPlusPlus)</div>
+<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>            .Case(<span class="stringliteral">"cxx_nonstatic_member_init"</span>, LangOpts.CPlusPlus)</div>
+<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>            .Case(<span class="stringliteral">"cxx_override_control"</span>, LangOpts.CPlusPlus)</div>
+<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>            .Case(<span class="stringliteral">"cxx_range_for"</span>, LangOpts.CPlusPlus)</div>
+<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>            .Case(<span class="stringliteral">"cxx_reference_qualified_functions"</span>, LangOpts.CPlusPlus)</div>
+<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>            .Case(<span class="stringliteral">"cxx_rvalue_references"</span>, LangOpts.CPlusPlus)</div>
+<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>            <span class="comment">// C++1y features supported by other languages as extensions.</span></div>
+<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>            .Case(<span class="stringliteral">"cxx_binary_literals"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>            .Case(<span class="stringliteral">"cxx_init_captures"</span>, LangOpts.CPlusPlus11)</div>
+<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>            .Case(<span class="stringliteral">"cxx_variable_templates"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>            .Default(<span class="keyword">false</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"> 1045</span> <span class="comment"></span></div>
+<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span> <span class="comment">/// HasAttribute -  Return true if we recognize and implement the attribute</span></div>
+<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span> <span class="comment">/// specified by the given identifier.</span></div>
+<div class="line"><a name="l01048"></a><span class="lineno"><a class="code" href="PPMacroExpansion_8cpp.html#aa5f6d5ec1416770d5940cfbb0a4b1a62"> 1048</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="PPMacroExpansion_8cpp.html#aa5f6d5ec1416770d5940cfbb0a4b1a62">HasAttribute</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *II) {</div>
+<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>   StringRef Name = II-><a class="code" href="classclang_1_1IdentifierInfo.html#a94caec6a16e508e8ca39eacd278bd2c5" title="Return the actual identifier string.">getName</a>();</div>
+<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>   <span class="comment">// Normalize the attribute name, __foo__ becomes foo.</span></div>
+<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>   <span class="keywordflow">if</span> (Name.startswith(<span class="stringliteral">"__"</span>) && Name.endswith(<span class="stringliteral">"__"</span>) && Name.size() >= 4)</div>
+<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>     Name = Name.substr(2, Name.size() - 4);</div>
+<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span> </div>
+<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>   <span class="comment">// FIXME: Do we need to handle namespaces here?</span></div>
+<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>   <span class="keywordflow">return</span> llvm::StringSwitch<bool>(Name)</div>
+<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span> #include <span class="stringliteral">"clang/Lex/AttrSpellings.inc"</span></div>
+<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>         .Default(<span class="keyword">false</span>);</div>
+<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span> }</div>
+<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span> <span class="comment"></span></div>
+<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span> <span class="comment">/// EvaluateHasIncludeCommon - Process a '__has_include("path")'</span></div>
+<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span> <span class="comment">/// or '__has_include_next("path")' expression.</span></div>
+<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span> <span class="comment">/// Returns true if successful.</span></div>
+<div class="line"><a name="l01063"></a><span class="lineno"><a class="code" href="PPMacroExpansion_8cpp.html#ad98b3ed4f630b0f8888e9e6849c33daa"> 1063</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="PPMacroExpansion_8cpp.html#ad98b3ed4f630b0f8888e9e6849c33daa">EvaluateHasIncludeCommon</a>(<a class="code" href="classclang_1_1Token.html">Token</a> &Tok,</div>
+<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>                                      <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *II, <a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP,</div>
+<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>                                      <span class="keyword">const</span> <a class="code" href="classclang_1_1DirectoryLookup.html">DirectoryLookup</a> *LookupFrom) {</div>
+<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>   <span class="comment">// Save the location of the current token.  If a '(' is later found, use</span></div>
+<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>   <span class="comment">// that location.  If not, use the end of this location instead.</span></div>
+<div class="line"><a name="l01068"></a><span class="lineno"> 1068</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> LParenLoc = Tok.<a class="code" href="classclang_1_1Token.html#a6f28cdecdecc3f19f8e7c976a044ebf8" title="Return a source location identifier for the specified offset in the current file.">getLocation</a>();</div>
+<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span> </div>
+<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>   <span class="comment">// These expressions are only allowed within a preprocessor directive.</span></div>
+<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>   <span class="keywordflow">if</span> (!PP.<a class="code" href="classclang_1_1Preprocessor.html#a860e58e98757a798384772b9ef7ee5d7" title="True if we are currently preprocessing a if or #elif directive.">isParsingIfOrElifDirective</a>()) {</div>
+<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(LParenLoc, diag::err_pp_directive_required) << II-><a class="code" href="classclang_1_1IdentifierInfo.html#a94caec6a16e508e8ca39eacd278bd2c5" title="Return the actual identifier string.">getName</a>();</div>
+<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>   }</div>
+<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span> </div>
+<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>   <span class="comment">// Get '('.</span></div>
+<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>   PP.<a class="code" href="classclang_1_1Preprocessor.html#a55c5283893995acf8e2879bc2ddfce9f">LexNonComment</a>(Tok);</div>
+<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span> </div>
+<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>   <span class="comment">// Ensure we have a '('.</span></div>
+<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>   <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::l_paren)) {</div>
+<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>     <span class="comment">// No '(', use end of last token.</span></div>
+<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>     LParenLoc = PP.<a class="code" href="classclang_1_1Preprocessor.html#aef7193e9d262ea6852d666beb28dc1a0" title="Computes the source location just past the end of the token at this source location.">getLocForEndOfToken</a>(LParenLoc);</div>
+<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(LParenLoc, diag::err_pp_missing_lparen) << II-><a class="code" href="classclang_1_1IdentifierInfo.html#a94caec6a16e508e8ca39eacd278bd2c5" title="Return the actual identifier string.">getName</a>();</div>
+<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>     <span class="comment">// If the next token looks like a filename or the start of one,</span></div>
+<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>     <span class="comment">// assume it is and process it as such.</span></div>
+<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>     <span class="keywordflow">if</span> (!Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::angle_string_literal) && !Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::string_literal) &&</div>
+<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>         !Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::less))</div>
+<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>       <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>     <span class="comment">// Save '(' location for possible missing ')' message.</span></div>
+<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>     LParenLoc = Tok.<a class="code" href="classclang_1_1Token.html#a6f28cdecdecc3f19f8e7c976a044ebf8" title="Return a source location identifier for the specified offset in the current file.">getLocation</a>();</div>
+<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span> </div>
+<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>     <span class="keywordflow">if</span> (PP.<a class="code" href="classclang_1_1Preprocessor.html#aa9f11496e8424f067b261a7d4e1f8662">getCurrentLexer</a>()) {</div>
+<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>       <span class="comment">// Get the file name.</span></div>
+<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>       PP.<a class="code" href="classclang_1_1Preprocessor.html#aa9f11496e8424f067b261a7d4e1f8662">getCurrentLexer</a>()-><a class="code" href="classclang_1_1PreprocessorLexer.html#a0c0bbb460799347ef2b9a1b92fd8524a" title="After the preprocessor has parsed a #include, lex and (potentially) macro expand the filename...">LexIncludeFilename</a>(Tok);</div>
+<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>       <span class="comment">// We're in a macro, so we can't use LexIncludeFilename; just</span></div>
+<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>       <span class="comment">// grab the next token.</span></div>
+<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>       PP.<a class="code" href="classclang_1_1Preprocessor.html#a4c7cf0c496e4a7744bc1731d92a4431e" title="Lex - Lex the next token for this preprocessor.">Lex</a>(Tok);</div>
+<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>     }</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"> 1103</span>   <span class="comment">// Reserve a buffer to get the spelling.</span></div>
+<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>   <a class="code" href="classllvm_1_1SmallString.html">SmallString<128></a> FilenameBuffer;</div>
+<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>   StringRef Filename;</div>
+<div class="line"><a name="l01106"></a><span class="lineno"> 1106</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> EndLoc;</div>
+<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>   </div>
+<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>   <span class="keywordflow">switch</span> (Tok.<a class="code" href="classclang_1_1Token.html#a84a069f6887b650763e640eeabfeebe4">getKind</a>()) {</div>
+<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>   <span class="keywordflow">case</span> tok::eod:</div>
+<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>     <span class="comment">// If the token kind is EOD, the error has already been diagnosed.</span></div>
+<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</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="keywordflow">case</span> tok::angle_string_literal:</div>
+<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>   <span class="keywordflow">case</span> tok::string_literal: {</div>
+<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>     <span class="keywordtype">bool</span> Invalid = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>     Filename = PP.<a class="code" href="classclang_1_1Preprocessor.html#a000147976c13c269dd82ef645fa3fe35">getSpelling</a>(Tok, FilenameBuffer, &Invalid);</div>
+<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>     <span class="keywordflow">if</span> (Invalid)</div>
+<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>       <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>     <span class="keywordflow">break</span>;</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>   <span class="keywordflow">case</span> tok::less:</div>
+<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>     <span class="comment">// This could be a <foo/bar.h> file coming from a macro expansion.  In this</span></div>
+<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>     <span class="comment">// case, glue the tokens together into FilenameBuffer and interpret those.</span></div>
+<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>     FilenameBuffer.push_back(<span class="charliteral">'<'</span>);</div>
+<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>     <span class="keywordflow">if</span> (PP.<a class="code" href="classclang_1_1Preprocessor.html#a0d02b408c3b83f24306e3ef44a1f798b" title="Handle cases where the #include name is expanded from a macro as multiple tokens, which need to be gl...">ConcatenateIncludeName</a>(FilenameBuffer, EndLoc)) {</div>
+<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>       <span class="comment">// Let the caller know a <eod> was found by changing the Token kind.</span></div>
+<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>       Tok.<a class="code" href="classclang_1_1Token.html#a44b757baba649ad00b79f78671a8a2aa">setKind</a>(tok::eod);</div>
+<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>       <span class="keywordflow">return</span> <span class="keyword">false</span>;   <span class="comment">// Found <eod> but no ">"?  Diagnostic already emitted.</span></div>
+<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>     }</div>
+<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>     Filename = FilenameBuffer.str();</div>
+<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>   <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok.<a class="code" href="classclang_1_1Token.html#a6f28cdecdecc3f19f8e7c976a044ebf8" title="Return a source location identifier for the specified offset in the current file.">getLocation</a>(), diag::err_pp_expects_filename);</div>
+<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</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>   <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> FilenameLoc = Tok.<a class="code" href="classclang_1_1Token.html#a6f28cdecdecc3f19f8e7c976a044ebf8" title="Return a source location identifier for the specified offset in the current file.">getLocation</a>();</div>
+<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span> </div>
+<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>   <span class="comment">// Get ')'.</span></div>
+<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>   PP.<a class="code" href="classclang_1_1Preprocessor.html#a55c5283893995acf8e2879bc2ddfce9f">LexNonComment</a>(Tok);</div>
+<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span> </div>
+<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>   <span class="comment">// Ensure we have a trailing ).</span></div>
+<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>   <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::r_paren)) {</div>
+<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(PP.<a class="code" href="classclang_1_1Preprocessor.html#aef7193e9d262ea6852d666beb28dc1a0" title="Computes the source location just past the end of the token at this source location.">getLocForEndOfToken</a>(FilenameLoc), diag::err_pp_missing_rparen)</div>
+<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>         << II-><a class="code" href="classclang_1_1IdentifierInfo.html#a94caec6a16e508e8ca39eacd278bd2c5" title="Return the actual identifier string.">getName</a>();</div>
+<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(LParenLoc, diag::note_matching) << <span class="stringliteral">"("</span>;</div>
+<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>   }</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>   <span class="keywordtype">bool</span> isAngled = PP.<a class="code" href="classclang_1_1Preprocessor.html#a231c406d19ba3f00b27fec221dc23932" title="Turn the specified lexer token into a fully checked and spelled filename, e.g. as an operand of #incl...">GetIncludeFilenameSpelling</a>(Tok.<a class="code" href="classclang_1_1Token.html#a6f28cdecdecc3f19f8e7c976a044ebf8" title="Return a source location identifier for the specified offset in the current file.">getLocation</a>(), Filename);</div>
+<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>   <span class="comment">// If GetIncludeFilenameSpelling set the start ptr to null, there was an</span></div>
+<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>   <span class="comment">// error.</span></div>
+<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>   <span class="keywordflow">if</span> (Filename.empty())</div>
+<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span> </div>
+<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>   <span class="comment">// Search include directories.</span></div>
+<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1DirectoryLookup.html">DirectoryLookup</a> *CurDir;</div>
+<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a> *File =</div>
+<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>       PP.<a class="code" href="classclang_1_1Preprocessor.html#abaaffb22cc7abb1535773930ec1e5cfb" title="Given a "foo" or <foo> reference, look up the indicated file.">LookupFile</a>(FilenameLoc, Filename, isAngled, LookupFrom, CurDir, <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>,</div>
+<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>                     <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>);</div>
+<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span> </div>
+<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>   <span class="comment">// Get the result value.  A result of true means the file exists.</span></div>
+<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>   <span class="keywordflow">return</span> File != 0;</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> <span class="comment"></span></div>
+<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span> <span class="comment">/// EvaluateHasInclude - Process a '__has_include("path")' expression.</span></div>
+<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span> <span class="comment">/// Returns true if successful.</span></div>
+<div class="line"><a name="l01169"></a><span class="lineno"><a class="code" href="PPMacroExpansion_8cpp.html#aab281f44ec823e004f47c80a685587d4"> 1169</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="PPMacroExpansion_8cpp.html#aab281f44ec823e004f47c80a685587d4">EvaluateHasInclude</a>(<a class="code" href="classclang_1_1Token.html">Token</a> &Tok, <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *II,</div>
+<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>                                <a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP) {</div>
+<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>   <span class="keywordflow">return</span> <a class="code" href="PPMacroExpansion_8cpp.html#ad98b3ed4f630b0f8888e9e6849c33daa">EvaluateHasIncludeCommon</a>(Tok, II, PP, <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>);</div>
+<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span> }</div>
+<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span> <span class="comment"></span></div>
+<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span> <span class="comment">/// EvaluateHasIncludeNext - Process '__has_include_next("path")' expression.</span></div>
+<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span> <span class="comment">/// Returns true if successful.</span></div>
+<div class="line"><a name="l01176"></a><span class="lineno"><a class="code" href="PPMacroExpansion_8cpp.html#a9def2c6b2250bff1ede0981587481831"> 1176</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="PPMacroExpansion_8cpp.html#a9def2c6b2250bff1ede0981587481831">EvaluateHasIncludeNext</a>(<a class="code" href="classclang_1_1Token.html">Token</a> &Tok,</div>
+<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>                                    <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *II, <a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP) {</div>
+<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>   <span class="comment">// __has_include_next is like __has_include, except that we start</span></div>
+<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>   <span class="comment">// searching after the current found directory.  If we can't do this,</span></div>
+<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>   <span class="comment">// issue a diagnostic.</span></div>
+<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1DirectoryLookup.html">DirectoryLookup</a> *Lookup = PP.<a class="code" href="classclang_1_1Preprocessor.html#a2b162da770d4e31967da87cf778c6f3f">GetCurDirLookup</a>();</div>
+<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>   <span class="keywordflow">if</span> (PP.<a class="code" href="classclang_1_1Preprocessor.html#ab581c0e71888401a14771ca1d5c70612" title="Return true if we're in the top-level file, not in a #include.">isInPrimaryFile</a>()) {</div>
+<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>     Lookup = 0;</div>
+<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::pp_include_next_in_primary);</div>
+<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Lookup == 0) {</div>
+<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::pp_include_next_absolute_path);</div>
+<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>     <span class="comment">// Start looking up in the next directory.</span></div>
+<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>     ++Lookup;</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> </div>
+<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>   <span class="keywordflow">return</span> <a class="code" href="PPMacroExpansion_8cpp.html#ad98b3ed4f630b0f8888e9e6849c33daa">EvaluateHasIncludeCommon</a>(Tok, II, PP, Lookup);</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"></span></div>
+<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span> <span class="comment">/// \brief Process __building_module(identifier) expression.</span></div>
+<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span> <span class="comment">/// \returns true if we are building the named module, false otherwise.</span></div>
+<div class="line"><a name="l01197"></a><span class="lineno"><a class="code" href="PPMacroExpansion_8cpp.html#a81a0f7c8dbc3fe1b1858f37c26b80a03"> 1197</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="PPMacroExpansion_8cpp.html#a81a0f7c8dbc3fe1b1858f37c26b80a03" title="Process __building_module(identifier) expression.">EvaluateBuildingModule</a>(<a class="code" href="classclang_1_1Token.html">Token</a> &Tok,</div>
+<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>                                    <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *II, <a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP) {</div>
+<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>   <span class="comment">// Get '('.</span></div>
+<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>   PP.<a class="code" href="classclang_1_1Preprocessor.html#a55c5283893995acf8e2879bc2ddfce9f">LexNonComment</a>(Tok);</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>   <span class="comment">// Ensure we have a '('.</span></div>
+<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>   <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::l_paren)) {</div>
+<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok.<a class="code" href="classclang_1_1Token.html#a6f28cdecdecc3f19f8e7c976a044ebf8" title="Return a source location identifier for the specified offset in the current file.">getLocation</a>(), diag::err_pp_missing_lparen) << II-><a class="code" href="classclang_1_1IdentifierInfo.html#a94caec6a16e508e8ca39eacd278bd2c5" title="Return the actual identifier string.">getName</a>();</div>
+<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>   }</div>
+<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span> </div>
+<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>   <span class="comment">// Save '(' location for possible missing ')' message.</span></div>
+<div class="line"><a name="l01209"></a><span class="lineno"> 1209</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> LParenLoc = Tok.<a class="code" href="classclang_1_1Token.html#a6f28cdecdecc3f19f8e7c976a044ebf8" title="Return a source location identifier for the specified offset in the current file.">getLocation</a>();</div>
+<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span> </div>
+<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>   <span class="comment">// Get the module name.</span></div>
+<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>   PP.<a class="code" href="classclang_1_1Preprocessor.html#a55c5283893995acf8e2879bc2ddfce9f">LexNonComment</a>(Tok);</div>
+<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span> </div>
+<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>   <span class="comment">// Ensure that we have an identifier.</span></div>
+<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>   <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::identifier)) {</div>
+<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok.<a class="code" href="classclang_1_1Token.html#a6f28cdecdecc3f19f8e7c976a044ebf8" title="Return a source location identifier for the specified offset in the current file.">getLocation</a>(), diag::err_expected_id_building_module);</div>
+<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>   }</div>
+<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span> </div>
+<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>   <span class="keywordtype">bool</span> Result</div>
+<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>     = Tok.<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</a>()-><a class="code" href="classclang_1_1IdentifierInfo.html#a94caec6a16e508e8ca39eacd278bd2c5" title="Return the actual identifier string.">getName</a>() == PP.<a class="code" href="classclang_1_1Preprocessor.html#a0c1874f57abd66b9fa0d282e6cab5cd6">getLangOpts</a>().<a class="code" href="classclang_1_1LangOptions.html#afd139a4fe76990c1c01e77ae67cd1310" title="The name of the current module.">CurrentModule</a>;</div>
+<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span> </div>
+<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>   <span class="comment">// Get ')'.</span></div>
+<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>   PP.<a class="code" href="classclang_1_1Preprocessor.html#a55c5283893995acf8e2879bc2ddfce9f">LexNonComment</a>(Tok);</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>   <span class="comment">// Ensure we have a trailing ).</span></div>
+<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>   <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::r_paren)) {</div>
+<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok.<a class="code" href="classclang_1_1Token.html#a6f28cdecdecc3f19f8e7c976a044ebf8" title="Return a source location identifier for the specified offset in the current file.">getLocation</a>(), diag::err_pp_missing_rparen) << II-><a class="code" href="classclang_1_1IdentifierInfo.html#a94caec6a16e508e8ca39eacd278bd2c5" title="Return the actual identifier string.">getName</a>();</div>
+<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(LParenLoc, diag::note_matching) << <span class="stringliteral">"("</span>;</div>
+<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>   }</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>   <span class="keywordflow">return</span> Result;</div>
+<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span> }</div>
+<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span> <span class="comment"></span></div>
+<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span> <span class="comment">/// ExpandBuiltinMacro - If an identifier token is read that is to be expanded</span></div>
+<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span> <span class="comment">/// as a builtin macro, handle it and return the next token as 'Tok'.</span></div>
+<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span> <span class="comment"></span><span class="keywordtype">void</span> Preprocessor::ExpandBuiltinMacro(<a class="code" href="classclang_1_1Token.html">Token</a> &Tok) {</div>
+<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>   <span class="comment">// Figure out which token this is.</span></div>
+<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>   <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *II = Tok.<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</a>();</div>
+<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>   assert(II && <span class="stringliteral">"Can't be a macro without id info!"</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">// If this is an _Pragma or Microsoft __pragma directive, expand it,</span></div>
+<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>   <span class="comment">// invoke the pragma handler, then lex the token after it.</span></div>
+<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>   <span class="keywordflow">if</span> (II == Ident_Pragma)</div>
+<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>     <span class="keywordflow">return</span> Handle_Pragma(Tok);</div>
+<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>   <span class="keywordflow">else</span> <span class="keywordflow">if</span> (II == Ident__pragma) <span class="comment">// in non-MS mode this is null</span></div>
+<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>     <span class="keywordflow">return</span> HandleMicrosoft__pragma(Tok);</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>   ++NumBuiltinMacroExpanded;</div>
+<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span> </div>
+<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>   <a class="code" href="classllvm_1_1SmallString.html">SmallString<128></a> TmpBuffer;</div>
+<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>   llvm::raw_svector_ostream OS(TmpBuffer);</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="comment">// Set up the return result.</span></div>
+<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>   Tok.<a class="code" href="classclang_1_1Token.html#ae603a1243f89a7aeeabcb4d467c474ff">setIdentifierInfo</a>(0);</div>
+<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>   Tok.<a class="code" href="classclang_1_1Token.html#a0fd0124681c9b16609144e78ff5dcbb1" title="Unset the specified flag.">clearFlag</a>(<a class="code" href="classclang_1_1Token.html#a9757e958209e601e408feda04be60db5af8f952e881c9fbc7b07bdbb5acdec8a2">Token::NeedsCleaning</a>);</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>   <span class="keywordflow">if</span> (II == Ident__LINE__) {</div>
+<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>     <span class="comment">// C99 6.10.8: "__LINE__: The presumed line number (within the current</span></div>
+<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>     <span class="comment">// source file) of the current source line (an integer constant)".  This can</span></div>
+<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>     <span class="comment">// be affected by #line.</span></div>
+<div class="line"><a name="l01263"></a><span class="lineno"> 1263</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 = Tok.<a class="code" href="classclang_1_1Token.html#a6f28cdecdecc3f19f8e7c976a044ebf8" title="Return a source location identifier for the specified offset in the current file.">getLocation</a>();</div>
+<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span> </div>
+<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>     <span class="comment">// Advance to the location of the first _, this might not be the first byte</span></div>
+<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>     <span class="comment">// of the token if it starts with an escaped newline.</span></div>
+<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>     Loc = <a class="code" href="classclang_1_1Preprocessor.html#a1c2402f6b2e6d81788d7c8c445f8e62f">AdvanceToTokenCharacter</a>(Loc, 0);</div>
+<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span> </div>
+<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>     <span class="comment">// One wrinkle here is that GCC expands __LINE__ to location of the *end* of</span></div>
+<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>     <span class="comment">// a macro expansion.  This doesn't matter for object-like macros, but</span></div>
+<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>     <span class="comment">// can matter for a function-like macro that expands to contain __LINE__.</span></div>
+<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>     <span class="comment">// Skip down through expansion points until we find a file loc for the</span></div>
+<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>     <span class="comment">// end of the expansion history.</span></div>
+<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>     Loc = <a class="code" href="Format_8cpp.html#a8b28f9f83ac8256fbde7e45b0f874f27">SourceMgr</a>.<a class="code" href="classclang_1_1SourceManager.html#a532619980c29dd7590f84a8abc8dcfcc" title="Given a SourceLocation object, return the range of tokens covered by the expansion the ultimate file...">getExpansionRange</a>(Loc).second;</div>
+<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>     <a class="code" href="classclang_1_1PresumedLoc.html" title="Represents an unpacked "presumed" location which can be presented to the user.">PresumedLoc</a> PLoc = <a class="code" href="Format_8cpp.html#a8b28f9f83ac8256fbde7e45b0f874f27">SourceMgr</a>.<a class="code" href="classclang_1_1SourceManager.html#a28f3fe716f6b9c504beb968f0eb8c17d" title="Returns the "presumed" location of a SourceLocation specifies.">getPresumedLoc</a>(Loc);</div>
+<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span> </div>
+<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>     <span class="comment">// __LINE__ expands to a simple numeric value.</span></div>
+<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>     OS << (PLoc.<a class="code" href="classclang_1_1PresumedLoc.html#a507bb1ade126b405a32b69d19c5cc4fa">isValid</a>()? PLoc.<a class="code" href="classclang_1_1PresumedLoc.html#acfc1284e86ca48cdfcaf5d118c6abb30" title="Return the presumed line number of this location.">getLine</a>() : 1);</div>
+<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>     Tok.<a class="code" href="classclang_1_1Token.html#a44b757baba649ad00b79f78671a8a2aa">setKind</a>(tok::numeric_constant);</div>
+<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (II == Ident__FILE__ || II == Ident__BASE_FILE__) {</div>
+<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>     <span class="comment">// C99 6.10.8: "__FILE__: The presumed name of the current source file (a</span></div>
+<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>     <span class="comment">// character string literal)". This can be affected by #line.</span></div>
+<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>     <a class="code" href="classclang_1_1PresumedLoc.html" title="Represents an unpacked "presumed" location which can be presented to the user.">PresumedLoc</a> PLoc = <a class="code" href="Format_8cpp.html#a8b28f9f83ac8256fbde7e45b0f874f27">SourceMgr</a>.<a class="code" href="classclang_1_1SourceManager.html#a28f3fe716f6b9c504beb968f0eb8c17d" title="Returns the "presumed" location of a SourceLocation specifies.">getPresumedLoc</a>(Tok.<a class="code" href="classclang_1_1Token.html#a6f28cdecdecc3f19f8e7c976a044ebf8" title="Return a source location identifier for the specified offset in the current file.">getLocation</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>     <span class="comment">// __BASE_FILE__ is a GNU extension that returns the top of the presumed</span></div>
+<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>     <span class="comment">// #include stack instead of the current file.</span></div>
+<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>     <span class="keywordflow">if</span> (II == Ident__BASE_FILE__ && PLoc.<a class="code" href="classclang_1_1PresumedLoc.html#a507bb1ade126b405a32b69d19c5cc4fa">isValid</a>()) {</div>
+<div class="line"><a name="l01288"></a><span class="lineno"> 1288</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> NextLoc = PLoc.<a class="code" href="classclang_1_1PresumedLoc.html#a49a829eb782c4ad756c4131fd138b914" title="Return the presumed include location of this location.">getIncludeLoc</a>();</div>
+<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>       <span class="keywordflow">while</span> (NextLoc.<a class="code" href="classclang_1_1SourceLocation.html#ad504978d83973770506b6ddb1d7b48f9" title="Return true if this is a valid SourceLocation object.">isValid</a>()) {</div>
+<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>         PLoc = <a class="code" href="Format_8cpp.html#a8b28f9f83ac8256fbde7e45b0f874f27">SourceMgr</a>.<a class="code" href="classclang_1_1SourceManager.html#a28f3fe716f6b9c504beb968f0eb8c17d" title="Returns the "presumed" location of a SourceLocation specifies.">getPresumedLoc</a>(NextLoc);</div>
+<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>         <span class="keywordflow">if</span> (PLoc.<a class="code" href="classclang_1_1PresumedLoc.html#a1a38ca2e240338cca1b26dc06245f92c" title="Return true if this object is invalid or uninitialized.">isInvalid</a>())</div>
+<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>           <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>         </div>
+<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>         NextLoc = PLoc.<a class="code" href="classclang_1_1PresumedLoc.html#a49a829eb782c4ad756c4131fd138b914" title="Return the presumed include location of this location.">getIncludeLoc</a>();</div>
+<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>       }</div>
+<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>     }</div>
+<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span> </div>
+<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>     <span class="comment">// Escape this filename.  Turn '\' -> '\\' '"' -> '\"'</span></div>
+<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>     <a class="code" href="classllvm_1_1SmallString.html">SmallString<128></a> FN;</div>
+<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>     <span class="keywordflow">if</span> (PLoc.<a class="code" href="classclang_1_1PresumedLoc.html#a507bb1ade126b405a32b69d19c5cc4fa">isValid</a>()) {</div>
+<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>       FN += PLoc.<a class="code" href="classclang_1_1PresumedLoc.html#ad7b3e219f0b8f103d47bdb2516502298" title="Return the presumed filename of this location.">getFilename</a>();</div>
+<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>       <a class="code" href="classclang_1_1Lexer.html#ac12d3e6342e5fc9f93c4c7b66e38119c">Lexer::Stringify</a>(FN);</div>
+<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>       OS << <span class="charliteral">'"'</span> << FN.str() << <span class="charliteral">'"'</span>;</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>     Tok.<a class="code" href="classclang_1_1Token.html#a44b757baba649ad00b79f78671a8a2aa">setKind</a>(tok::string_literal);</div>
+<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (II == Ident__DATE__) {</div>
+<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>     <span class="keywordflow">if</span> (!DATELoc.<a class="code" href="classclang_1_1SourceLocation.html#ad504978d83973770506b6ddb1d7b48f9" title="Return true if this is a valid SourceLocation object.">isValid</a>())</div>
+<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>       <a class="code" href="PPMacroExpansion_8cpp.html#a8693dd236bf60c5efaf1fb0c3dd30f43">ComputeDATE_TIME</a>(DATELoc, TIMELoc, *<span class="keyword">this</span>);</div>
+<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>     Tok.<a class="code" href="classclang_1_1Token.html#a44b757baba649ad00b79f78671a8a2aa">setKind</a>(tok::string_literal);</div>
+<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>     Tok.<a class="code" href="classclang_1_1Token.html#a2cd7bd0075db58067b69368ec471aaf5">setLength</a>(strlen(<span class="stringliteral">"\"Mmm dd yyyy\""</span>));</div>
+<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>     Tok.<a class="code" href="classclang_1_1Token.html#ab52b4059e1b2e648c78b7c326190d2ce">setLocation</a>(<a class="code" href="Format_8cpp.html#a8b28f9f83ac8256fbde7e45b0f874f27">SourceMgr</a>.<a class="code" href="classclang_1_1SourceManager.html#a2b7a4407834ab69d127968813cb33111" title="Return a new SourceLocation that encodes the fact that a token from SpellingLoc should actually be re...">createExpansionLoc</a>(DATELoc, Tok.<a class="code" href="classclang_1_1Token.html#a6f28cdecdecc3f19f8e7c976a044ebf8" title="Return a source location identifier for the specified offset in the current file.">getLocation</a>(),</div>
+<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>                                                  Tok.<a class="code" href="classclang_1_1Token.html#a6f28cdecdecc3f19f8e7c976a044ebf8" title="Return a source location identifier for the specified offset in the current file.">getLocation</a>(),</div>
+<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>                                                  Tok.<a class="code" href="classclang_1_1Token.html#ada56747093e2043afd6a497d1714332d">getLength</a>()));</div>
+<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (II == Ident__TIME__) {</div>
+<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>     <span class="keywordflow">if</span> (!TIMELoc.<a class="code" href="classclang_1_1SourceLocation.html#ad504978d83973770506b6ddb1d7b48f9" title="Return true if this is a valid SourceLocation object.">isValid</a>())</div>
+<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>       <a class="code" href="PPMacroExpansion_8cpp.html#a8693dd236bf60c5efaf1fb0c3dd30f43">ComputeDATE_TIME</a>(DATELoc, TIMELoc, *<span class="keyword">this</span>);</div>
+<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>     Tok.<a class="code" href="classclang_1_1Token.html#a44b757baba649ad00b79f78671a8a2aa">setKind</a>(tok::string_literal);</div>
+<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>     Tok.<a class="code" href="classclang_1_1Token.html#a2cd7bd0075db58067b69368ec471aaf5">setLength</a>(strlen(<span class="stringliteral">"\"hh:mm:ss\""</span>));</div>
+<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>     Tok.<a class="code" href="classclang_1_1Token.html#ab52b4059e1b2e648c78b7c326190d2ce">setLocation</a>(<a class="code" href="Format_8cpp.html#a8b28f9f83ac8256fbde7e45b0f874f27">SourceMgr</a>.<a class="code" href="classclang_1_1SourceManager.html#a2b7a4407834ab69d127968813cb33111" title="Return a new SourceLocation that encodes the fact that a token from SpellingLoc should actually be re...">createExpansionLoc</a>(TIMELoc, Tok.<a class="code" href="classclang_1_1Token.html#a6f28cdecdecc3f19f8e7c976a044ebf8" title="Return a source location identifier for the specified offset in the current file.">getLocation</a>(),</div>
+<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>                                                  Tok.<a class="code" href="classclang_1_1Token.html#a6f28cdecdecc3f19f8e7c976a044ebf8" title="Return a source location identifier for the specified offset in the current file.">getLocation</a>(),</div>
+<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>                                                  Tok.<a class="code" href="classclang_1_1Token.html#ada56747093e2043afd6a497d1714332d">getLength</a>()));</div>
+<div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (II == Ident__INCLUDE_LEVEL__) {</div>
+<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>     <span class="comment">// Compute the presumed include depth of this token.  This can be affected</span></div>
+<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>     <span class="comment">// by GNU line markers.</span></div>
+<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>     <span class="keywordtype">unsigned</span> <a class="code" href="ASTMatchFinder_8cpp.html#a770e10d3d091ec85cafce08832ae2e87">Depth</a> = 0;</div>
+<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span> </div>
+<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>     <a class="code" href="classclang_1_1PresumedLoc.html" title="Represents an unpacked "presumed" location which can be presented to the user.">PresumedLoc</a> PLoc = <a class="code" href="Format_8cpp.html#a8b28f9f83ac8256fbde7e45b0f874f27">SourceMgr</a>.<a class="code" href="classclang_1_1SourceManager.html#a28f3fe716f6b9c504beb968f0eb8c17d" title="Returns the "presumed" location of a SourceLocation specifies.">getPresumedLoc</a>(Tok.<a class="code" href="classclang_1_1Token.html#a6f28cdecdecc3f19f8e7c976a044ebf8" title="Return a source location identifier for the specified offset in the current file.">getLocation</a>());</div>
+<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>     <span class="keywordflow">if</span> (PLoc.<a class="code" href="classclang_1_1PresumedLoc.html#a507bb1ade126b405a32b69d19c5cc4fa">isValid</a>()) {</div>
+<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>       PLoc = <a class="code" href="Format_8cpp.html#a8b28f9f83ac8256fbde7e45b0f874f27">SourceMgr</a>.<a class="code" href="classclang_1_1SourceManager.html#a28f3fe716f6b9c504beb968f0eb8c17d" title="Returns the "presumed" location of a SourceLocation specifies.">getPresumedLoc</a>(PLoc.<a class="code" href="classclang_1_1PresumedLoc.html#a49a829eb782c4ad756c4131fd138b914" title="Return the presumed include location of this location.">getIncludeLoc</a>());</div>
+<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>       <span class="keywordflow">for</span> (; PLoc.<a class="code" href="classclang_1_1PresumedLoc.html#a507bb1ade126b405a32b69d19c5cc4fa">isValid</a>(); ++<a class="code" href="ASTMatchFinder_8cpp.html#a770e10d3d091ec85cafce08832ae2e87">Depth</a>)</div>
+<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>         PLoc = <a class="code" href="Format_8cpp.html#a8b28f9f83ac8256fbde7e45b0f874f27">SourceMgr</a>.<a class="code" href="classclang_1_1SourceManager.html#a28f3fe716f6b9c504beb968f0eb8c17d" title="Returns the "presumed" location of a SourceLocation specifies.">getPresumedLoc</a>(PLoc.<a class="code" href="classclang_1_1PresumedLoc.html#a49a829eb782c4ad756c4131fd138b914" title="Return the presumed include location of this location.">getIncludeLoc</a>());</div>
+<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>     }</div>
+<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span> </div>
+<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>     <span class="comment">// __INCLUDE_LEVEL__ expands to a simple numeric value.</span></div>
+<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>     OS << <a class="code" href="ASTMatchFinder_8cpp.html#a770e10d3d091ec85cafce08832ae2e87">Depth</a>;</div>
+<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>     Tok.<a class="code" href="classclang_1_1Token.html#a44b757baba649ad00b79f78671a8a2aa">setKind</a>(tok::numeric_constant);</div>
+<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (II == Ident__TIMESTAMP__) {</div>
+<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>     <span class="comment">// MSVC, ICC, GCC, VisualAge C++ extension.  The generated string should be</span></div>
+<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>     <span class="comment">// of the form "Ddd Mmm dd hh::mm::ss yyyy", which is returned by asctime.</span></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>     <span class="comment">// Get the file that we are lexing out of.  If we're currently lexing from</span></div>
+<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>     <span class="comment">// a macro, dig into the include stack.</span></div>
+<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a> *CurFile = 0;</div>
+<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>     <a class="code" href="classclang_1_1PreprocessorLexer.html">PreprocessorLexer</a> *TheLexer = <a class="code" href="classclang_1_1Preprocessor.html#a11a6206e7d47ca4d8509b97e3a0da167">getCurrentFileLexer</a>();</div>
+<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span> </div>
+<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>     <span class="keywordflow">if</span> (TheLexer)</div>
+<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>       CurFile = <a class="code" href="Format_8cpp.html#a8b28f9f83ac8256fbde7e45b0f874f27">SourceMgr</a>.<a class="code" href="classclang_1_1SourceManager.html#a89a4d1fa8ccc458bce84b0d72b4545db" title="Returns the FileEntry record for the provided FileID.">getFileEntryForID</a>(TheLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a3c74055525c62d0053fec3c0084abca8">getFileID</a>());</div>
+<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span> </div>
+<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>     <span class="keyword">const</span> <span class="keywordtype">char</span> *Result;</div>
+<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>     <span class="keywordflow">if</span> (CurFile) {</div>
+<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>       time_t TT = CurFile-><a class="code" href="classclang_1_1FileEntry.html#a2df68d04c7f85abdcf5075db7778e033">getModificationTime</a>();</div>
+<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>       <span class="keyword">struct </span>tm *TM = localtime(&TT);</div>
+<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>       Result = asctime(TM);</div>
+<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>       Result = <span class="stringliteral">"??? ??? ?? ??:??:?? ????\n"</span>;</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="comment">// Surround the string with " and strip the trailing newline.</span></div>
+<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>     OS << <span class="charliteral">'"'</span> << StringRef(Result, strlen(Result)-1) << <span class="charliteral">'"'</span>;</div>
+<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>     Tok.<a class="code" href="classclang_1_1Token.html#a44b757baba649ad00b79f78671a8a2aa">setKind</a>(tok::string_literal);</div>
+<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (II == Ident__COUNTER__) {</div>
+<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>     <span class="comment">// __COUNTER__ expands to a simple numeric value.</span></div>
+<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>     OS << CounterValue++;</div>
+<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>     Tok.<a class="code" href="classclang_1_1Token.html#a44b757baba649ad00b79f78671a8a2aa">setKind</a>(tok::numeric_constant);</div>
+<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (II == Ident__has_feature   ||</div>
+<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>              II == Ident__has_extension ||</div>
+<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>              II == Ident__has_builtin   ||</div>
+<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>              II == Ident__has_attribute) {</div>
+<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>     <span class="comment">// The argument to these builtins should be a parenthesized identifier.</span></div>
+<div class="line"><a name="l01371"></a><span class="lineno"> 1371</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> StartLoc = Tok.<a class="code" href="classclang_1_1Token.html#a6f28cdecdecc3f19f8e7c976a044ebf8" title="Return a source location identifier for the specified offset in the current file.">getLocation</a>();</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>     <span class="keywordtype">bool</span> IsValid = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>     <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *FeatureII = 0;</div>
+<div class="line"><a name="l01375"></a><span class="lineno"> 1375</span> </div>
+<div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>     <span class="comment">// Read the '('.</span></div>
+<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>     <a class="code" href="classclang_1_1Preprocessor.html#aaaf1f5cefe79d0f9da0637c5a3d4e7dc">LexUnexpandedToken</a>(Tok);</div>
+<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>     <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::l_paren)) {</div>
+<div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>       <span class="comment">// Read the identifier</span></div>
+<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>       <a class="code" href="classclang_1_1Preprocessor.html#aaaf1f5cefe79d0f9da0637c5a3d4e7dc">LexUnexpandedToken</a>(Tok);</div>
+<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>       <span class="keywordflow">if</span> ((FeatureII = Tok.<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</a>())) {</div>
+<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>         <span class="comment">// Read the ')'.</span></div>
+<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>         <a class="code" href="classclang_1_1Preprocessor.html#aaaf1f5cefe79d0f9da0637c5a3d4e7dc">LexUnexpandedToken</a>(Tok);</div>
+<div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>         <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::r_paren))</div>
+<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>           IsValid = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>       }</div>
+<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>     }</div>
+<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span> </div>
+<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>     <span class="keywordtype">bool</span> <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>     <span class="keywordflow">if</span> (!IsValid)</div>
+<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>       <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(StartLoc, diag::err_feature_check_malformed);</div>
+<div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (II == Ident__has_builtin) {</div>
+<div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>       <span class="comment">// Check for a builtin is trivial.</span></div>
+<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>       Value = FeatureII-><a class="code" href="classclang_1_1IdentifierInfo.html#a9ccc5a2b6343bb5ceb2b3d533ecf8332" title="Return a value indicating whether this is a builtin function.">getBuiltinID</a>() != 0;</div>
+<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (II == Ident__has_attribute)</div>
+<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>       Value = <a class="code" href="PPMacroExpansion_8cpp.html#aa5f6d5ec1416770d5940cfbb0a4b1a62">HasAttribute</a>(FeatureII);</div>
+<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (II == Ident__has_extension)</div>
+<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>       Value = <a class="code" href="PPMacroExpansion_8cpp.html#a3ed456c30eb260ab7999fcf570e0b80f">HasExtension</a>(*<span class="keyword">this</span>, FeatureII);</div>
+<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>     <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>       assert(II == Ident__has_feature && <span class="stringliteral">"Must be feature check"</span>);</div>
+<div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>       Value = <a class="code" href="PPMacroExpansion_8cpp.html#a7646e76e07fdc88740a5f61f65639491">HasFeature</a>(*<span class="keyword">this</span>, FeatureII);</div>
+<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>     }</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>     OS << (int)Value;</div>
+<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>     <span class="keywordflow">if</span> (IsValid)</div>
+<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>       Tok.<a class="code" href="classclang_1_1Token.html#a44b757baba649ad00b79f78671a8a2aa">setKind</a>(tok::numeric_constant);</div>
+<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (II == Ident__has_include ||</div>
+<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>              II == Ident__has_include_next) {</div>
+<div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>     <span class="comment">// The argument to these two builtins should be a parenthesized</span></div>
+<div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>     <span class="comment">// file name string literal using angle brackets (<>) or</span></div>
+<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>     <span class="comment">// double-quotes ("").</span></div>
+<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>     <span class="keywordtype">bool</span> <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>;</div>
+<div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>     <span class="keywordflow">if</span> (II == Ident__has_include)</div>
+<div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>       Value = <a class="code" href="PPMacroExpansion_8cpp.html#aab281f44ec823e004f47c80a685587d4">EvaluateHasInclude</a>(Tok, II, *<span class="keyword">this</span>);</div>
+<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>     <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>       Value = <a class="code" href="PPMacroExpansion_8cpp.html#a9def2c6b2250bff1ede0981587481831">EvaluateHasIncludeNext</a>(Tok, II, *<span class="keyword">this</span>);</div>
+<div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>     OS << (int)Value;</div>
+<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>     <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::r_paren))</div>
+<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>       Tok.<a class="code" href="classclang_1_1Token.html#a44b757baba649ad00b79f78671a8a2aa">setKind</a>(tok::numeric_constant);</div>
+<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (II == Ident__has_warning) {</div>
+<div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>     <span class="comment">// The argument should be a parenthesized string literal.</span></div>
+<div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>     <span class="comment">// The argument to these builtins should be a parenthesized identifier.</span></div>
+<div class="line"><a name="l01423"></a><span class="lineno"> 1423</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> StartLoc = Tok.<a class="code" href="classclang_1_1Token.html#a6f28cdecdecc3f19f8e7c976a044ebf8" title="Return a source location identifier for the specified offset in the current file.">getLocation</a>();    </div>
+<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>     <span class="keywordtype">bool</span> IsValid = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>     <span class="keywordtype">bool</span> Value = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>     <span class="comment">// Read the '('.</span></div>
+<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>     <a class="code" href="classclang_1_1Preprocessor.html#aaaf1f5cefe79d0f9da0637c5a3d4e7dc">LexUnexpandedToken</a>(Tok);</div>
+<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>     <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>       <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::l_paren)) {</div>
+<div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>         <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(StartLoc, diag::err_warning_check_malformed);</div>
+<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>       }</div>
+<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span> </div>
+<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>       <a class="code" href="classclang_1_1Preprocessor.html#aaaf1f5cefe79d0f9da0637c5a3d4e7dc">LexUnexpandedToken</a>(Tok);</div>
+<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>       std::string WarningName;</div>
+<div class="line"><a name="l01436"></a><span class="lineno"> 1436</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> StrStartLoc = Tok.<a class="code" href="classclang_1_1Token.html#a6f28cdecdecc3f19f8e7c976a044ebf8" title="Return a source location identifier for the specified offset in the current file.">getLocation</a>();</div>
+<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>       <span class="keywordflow">if</span> (!<a class="code" href="classclang_1_1Preprocessor.html#a0762dbde48e00bbecbb30b9c97b97452" title="Complete the lexing of a string literal where the first token has already been lexed (see LexStringLi...">FinishLexStringLiteral</a>(Tok, WarningName, <span class="stringliteral">"'__has_warning'"</span>,</div>
+<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>                                   <span class="comment">/*MacroExpansion=*/</span><span class="keyword">false</span>)) {</div>
+<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>         <span class="comment">// Eat tokens until ')'.</span></div>
+<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>         <span class="keywordflow">while</span> (Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::r_paren) && Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::eod) &&</div>
+<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>                Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(<a class="code" href="namespaceclang_1_1comments_1_1tok.html#af269e1299a7e813dd4471ab24630e01aac4904dc9309fe9cf0fe76ff45d54f265">tok::eof</a>))</div>
+<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>           <a class="code" href="classclang_1_1Preprocessor.html#aaaf1f5cefe79d0f9da0637c5a3d4e7dc">LexUnexpandedToken</a>(Tok);</div>
+<div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>       }</div>
+<div class="line"><a name="l01445"></a><span class="lineno"> 1445</span> </div>
+<div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>       <span class="comment">// Is the end a ')'?</span></div>
+<div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>       <span class="keywordflow">if</span> (!(IsValid = Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::r_paren))) {</div>
+<div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>         <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(StartLoc, diag::err_warning_check_malformed);</div>
+<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>       }</div>
+<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span> </div>
+<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>       <span class="keywordflow">if</span> (WarningName.size() < 3 || WarningName[0] != <span class="charliteral">'-'</span> ||</div>
+<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>           WarningName[1] != <span class="charliteral">'W'</span>) {</div>
+<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>         <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(StrStartLoc, diag::warn_has_warning_invalid_option);</div>
+<div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>       }</div>
+<div class="line"><a name="l01457"></a><span class="lineno"> 1457</span> </div>
+<div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>       <span class="comment">// Finally, check if the warning flags maps to a diagnostic group.</span></div>
+<div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>       <span class="comment">// We construct a SmallVector here to talk to getDiagnosticIDs().</span></div>
+<div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>       <span class="comment">// Although we don't use the result, this isn't a hot path, and not</span></div>
+<div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>       <span class="comment">// worth special casing.</span></div>
+<div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>       <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<diag::kind, 10></a> Diags;</div>
+<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>       Value = !<a class="code" href="classclang_1_1Preprocessor.html#a663f9d8c8151906a9bf39954f3d15c60">getDiagnostics</a>().<a class="code" href="classclang_1_1DiagnosticsEngine.html#a98e64a993447cd51d3efb722d0d11eab">getDiagnosticIDs</a>()-></div>
+<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>         <a class="code" href="DiagnosticIDs_8cpp.html#a31fa741b6859de3b486025296ee8f167">getDiagnosticsInGroup</a>(WarningName.substr(2), Diags);</div>
+<div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>     } <span class="keywordflow">while</span> (<span class="keyword">false</span>);</div>
+<div class="line"><a name="l01466"></a><span class="lineno"> 1466</span> </div>
+<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>     OS << (int)Value;</div>
+<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>     <span class="keywordflow">if</span> (IsValid)</div>
+<div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>       Tok.<a class="code" href="classclang_1_1Token.html#a44b757baba649ad00b79f78671a8a2aa">setKind</a>(tok::numeric_constant);</div>
+<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (II == Ident__building_module) {</div>
+<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>     <span class="comment">// The argument to this builtin should be an identifier. The</span></div>
+<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>     <span class="comment">// builtin evaluates to 1 when that identifier names the module we are</span></div>
+<div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>     <span class="comment">// currently building.</span></div>
+<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>     OS << (int)<a class="code" href="PPMacroExpansion_8cpp.html#a81a0f7c8dbc3fe1b1858f37c26b80a03" title="Process __building_module(identifier) expression.">EvaluateBuildingModule</a>(Tok, II, *<span class="keyword">this</span>);</div>
+<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>     Tok.<a class="code" href="classclang_1_1Token.html#a44b757baba649ad00b79f78671a8a2aa">setKind</a>(tok::numeric_constant);</div>
+<div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (II == Ident__MODULE__) {</div>
+<div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>     <span class="comment">// The current module as an identifier.</span></div>
+<div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>     OS << <a class="code" href="classclang_1_1Preprocessor.html#a0c1874f57abd66b9fa0d282e6cab5cd6">getLangOpts</a>().<a class="code" href="classclang_1_1LangOptions.html#afd139a4fe76990c1c01e77ae67cd1310" title="The name of the current module.">CurrentModule</a>;</div>
+<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>     <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *ModuleII = <a class="code" href="classclang_1_1Preprocessor.html#acbacad0c69321bd63102c7697a95b67d">getIdentifierInfo</a>(<a class="code" href="classclang_1_1Preprocessor.html#a0c1874f57abd66b9fa0d282e6cab5cd6">getLangOpts</a>().CurrentModule);</div>
+<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>     Tok.<a class="code" href="classclang_1_1Token.html#ae603a1243f89a7aeeabcb4d467c474ff">setIdentifierInfo</a>(ModuleII);</div>
+<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>     Tok.<a class="code" href="classclang_1_1Token.html#a44b757baba649ad00b79f78671a8a2aa">setKind</a>(ModuleII-><a class="code" href="classclang_1_1IdentifierInfo.html#a66ddbfe9f85f24f25fa29d49d773af86">getTokenID</a>());</div>
+<div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>     llvm_unreachable(<span class="stringliteral">"Unknown identifier!"</span>);</div>
+<div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>   }</div>
+<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>   <a class="code" href="classclang_1_1Preprocessor.html#a36cc89be41795959b90bf2e77b836742">CreateString</a>(OS.str(), Tok, Tok.<a class="code" href="classclang_1_1Token.html#a6f28cdecdecc3f19f8e7c976a044ebf8" title="Return a source location identifier for the specified offset in the current file.">getLocation</a>(), Tok.<a class="code" href="classclang_1_1Token.html#a6f28cdecdecc3f19f8e7c976a044ebf8" title="Return a source location identifier for the specified offset in the current file.">getLocation</a>());</div>
+<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span> }</div>
+<div class="line"><a name="l01487"></a><span class="lineno"> 1487</span> </div>
+<div class="line"><a name="l01488"></a><span class="lineno"><a class="code" href="classclang_1_1Preprocessor.html#a374054b25f5e05212201b1357b5cd62b"> 1488</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1Preprocessor.html#a374054b25f5e05212201b1357b5cd62b" title="A macro is used, update information about macros that need unused warnings.">Preprocessor::markMacroAsUsed</a>(<a class="code" href="classclang_1_1MacroInfo.html" title="Encapsulates the data about a macro definition (e.g. its tokens).">MacroInfo</a> *MI) {</div>
+<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>   <span class="comment">// If the 'used' status changed, and the macro requires 'unused' warning,</span></div>
+<div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>   <span class="comment">// remove its SourceLocation from the warn-for-unused-macro locations.</span></div>
+<div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>   <span class="keywordflow">if</span> (MI-><a class="code" href="classclang_1_1MacroInfo.html#a56052fee7a77c6d3e651f12bbe2b174a" title="Return true if we should emit a warning if the macro is unused.">isWarnIfUnused</a>() && !MI-><a class="code" href="classclang_1_1MacroInfo.html#adaa5e481e32f17b953a956d6091ea272" title="Return false if this macro is defined in the main file and has not yet been used.">isUsed</a>())</div>
+<div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>     WarnUnusedMacroLocs.erase(MI-><a class="code" href="classclang_1_1MacroInfo.html#a24668f58f405f65ea486b4214e13b641" title="Return the location that the macro was defined at.">getDefinitionLoc</a>());</div>
+<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>   MI-><a class="code" href="classclang_1_1MacroInfo.html#aecdfeef3939b8fbbe85b21b892fec83d" title="Set the value of the IsUsed flag.">setIsUsed</a>(<span class="keyword">true</span>);</div>
+<div class="line"><a name="l01494"></a><span class="lineno"> 1494</span> }</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:52 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/PPMacroExpansion_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PPMacroExpansion_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PPMacroExpansion_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PPMacroExpansion_8d_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,361 @@
+<!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: PPMacroExpansion.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_925be8e1c75f746b0aee1084b3b1a980.html">Lex</a></li><li class="navelem"><a class="el" href="dir_c266f83cbdf5b0cb8b651438a3cfe616.html">Release+Asserts</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">PPMacroExpansion.d</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="PPMacroExpansion_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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Release+Asserts/PPMacroExpansion.o \</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Release+Asserts/PPMacroExpansion.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>  PPMacroExpansion.cpp \</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Preprocessor.h \</div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Builtins.h \</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/LLVM.h \</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>  /home/tstellar/llvm/include/llvm/Support/Casting.h \</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>  /home/tstellar/llvm/include/llvm/Support/type_traits.h \</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>  /home/tstellar/llvm/include/llvm/Support/DataTypes.h \</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>  /home/tstellar/llvm/include/llvm/ADT/None.h \</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Builtins.def \</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Diagnostic.h \</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticIDs.h \</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>  /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h \</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>  /home/tstellar/llvm/include/llvm/Support/Compiler.h \</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>  /home/tstellar/llvm/include/llvm/Config/llvm-config.h \</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>  /home/tstellar/llvm/include/llvm/ADT/StringRef.h \</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticCommonKinds.inc \</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticOptions.h \</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticOptions.def \</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/SourceLocation.h \</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>  /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h \</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>  /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h \</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>  /home/tstellar/llvm/include/llvm/ADT/SmallVector.h \</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>  /home/tstellar/llvm/include/llvm/Support/AlignOf.h \</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>  /home/tstellar/llvm/include/llvm/Support/MathExtras.h \</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>  /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h \</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMap.h \</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h \</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/IdentifierTable.h \</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/OperatorKinds.h \</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/OperatorKinds.def \</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/TokenKinds.h \</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../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/StringMap.h \</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>  /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h \</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Lexer.h \</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/LangOptions.h \</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/CommentOptions.h \</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/ObjCRuntime.h \</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/VersionTuple.h \</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>  /home/tstellar/llvm/include/llvm/ADT/Optional.h \</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>  /home/tstellar/llvm/include/llvm/ADT/Triple.h \</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>  /home/tstellar/llvm/include/llvm/ADT/Twine.h \</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>  /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h \</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../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="l00048"></a><span class="lineno">   48</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../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="l00049"></a><span class="lineno">   49</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Sanitizers.def \</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/LangOptions.def \</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/OpenCLExtensions.def \</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PreprocessorLexer.h \</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/MultipleIncludeOpt.h \</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../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="l00055"></a><span class="lineno">   55</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/TemplateKinds.h \</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/MacroInfo.h \</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleMap.h \</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Module.h \</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>  /home/tstellar/llvm/include/llvm/ADT/DenseSet.h \</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>  /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h \</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>  /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h \</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>  /home/tstellar/llvm/include/llvm/ADT/SetVector.h \</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>  /home/tstellar/llvm/include/llvm/ADT/SmallSet.h \</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>  /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.h \</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/SourceManager.h \</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/FileManager.h \</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/FileSystemOptions.h \</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>  /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h \</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>  /home/tstellar/llvm/include/llvm/Support/FileSystem.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/include/llvm/Support/MemoryBuffer.h \</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>  /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h \</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>  /home/tstellar/llvm/include/llvm-c/Core.h \</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PPCallbacks.h \</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/DirectoryLookup.h \</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleLoader.h \</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Pragma.h \</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PTHLexer.h \</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PTHManager.h \</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/TokenLexer.h \</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/MacroArgs.h \</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/TargetInfo.h \</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/AddressSpaces.h \</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/TargetCXXABI.h \</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Specifiers.h \</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/TargetOptions.h \</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>  /home/tstellar/llvm/include/llvm/ADT/StringSwitch.h \</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/CodeCompletionHandler.h \</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ExternalPreprocessorSource.h \</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/LexDiagnostic.h \</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticLexKinds.inc \</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>  /home/tstellar/llvm/include/llvm/ADT/STLExtras.h \</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>  /home/tstellar/llvm/include/llvm/Support/Format.h \</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>  /home/tstellar/llvm/include/llvm/Support/raw_ostream.h \</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/AttrSpellings.inc</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> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Preprocessor.h:</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span> </div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Builtins.h:</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span> </div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/LLVM.h:</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> /home/tstellar/llvm/include/llvm/Support/Casting.h:</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span> </div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span> /home/tstellar/llvm/include/llvm/Support/type_traits.h:</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span> </div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span> /home/tstellar/llvm/include/llvm/Support/DataTypes.h:</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span> </div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span> /home/tstellar/llvm/include/llvm/ADT/None.h:</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> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Builtins.def:</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span> </div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Diagnostic.h:</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span> </div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticIDs.h:</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> /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h:</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> /home/tstellar/llvm/include/llvm/Support/Compiler.h:</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span> </div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span> /home/tstellar/llvm/include/llvm/Config/llvm-config.h:</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span> </div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span> /home/tstellar/llvm/include/llvm/ADT/StringRef.h:</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span> </div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticCommonKinds.inc:</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span> </div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticOptions.h:</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span> </div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticOptions.def:</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span> </div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/SourceLocation.h:</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span> </div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span> /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h:</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span> </div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span> /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h:</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span> </div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span> /home/tstellar/llvm/include/llvm/ADT/SmallVector.h:</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span> </div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span> /home/tstellar/llvm/include/llvm/Support/AlignOf.h:</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span> </div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span> /home/tstellar/llvm/include/llvm/Support/MathExtras.h:</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span> </div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span> /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h:</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span> </div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span> /home/tstellar/llvm/include/llvm/ADT/DenseMap.h:</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span> </div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span> /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h:</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span> </div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/IdentifierTable.h:</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span> </div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/OperatorKinds.h:</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span> </div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/OperatorKinds.def:</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span> </div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/TokenKinds.h:</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span> </div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/TokenKinds.def:</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span> </div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span> /home/tstellar/llvm/include/llvm/ADT/SmallString.h:</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span> </div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span> /home/tstellar/llvm/include/llvm/ADT/StringMap.h:</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span> </div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span> /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h:</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span> </div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Lexer.h:</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span> </div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/LangOptions.h:</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span> </div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/CommentOptions.h:</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span> </div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/ObjCRuntime.h:</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span> </div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/VersionTuple.h:</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span> </div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span> /home/tstellar/llvm/include/llvm/ADT/Optional.h:</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span> </div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span> /home/tstellar/llvm/include/llvm/ADT/Triple.h:</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span> </div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span> /home/tstellar/llvm/include/llvm/ADT/Twine.h:</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span> </div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span> /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h:</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span> </div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../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="l00185"></a><span class="lineno">  185</span> </div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../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="l00187"></a><span class="lineno">  187</span> </div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Sanitizers.def:</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span> </div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/LangOptions.def:</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span> </div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/OpenCLExtensions.def:</div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span> </div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PreprocessorLexer.h:</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span> </div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/MultipleIncludeOpt.h:</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span> </div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../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="l00199"></a><span class="lineno">  199</span> </div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/TemplateKinds.h:</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span> </div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/MacroInfo.h:</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span> </div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleMap.h:</div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span> </div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Module.h:</div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span> </div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span> /home/tstellar/llvm/include/llvm/ADT/DenseSet.h:</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span> </div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span> /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h:</div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span> </div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span> /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h:</div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span> </div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span> /home/tstellar/llvm/include/llvm/ADT/SetVector.h:</div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span> </div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span> /home/tstellar/llvm/include/llvm/ADT/SmallSet.h:</div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span> </div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span> /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.h:</div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span> </div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/SourceManager.h:</div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span> </div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/FileManager.h:</div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span> </div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/FileSystemOptions.h:</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span> </div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span> /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h:</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span> </div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span> /home/tstellar/llvm/include/llvm/Support/FileSystem.h:</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span> </div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span> /home/tstellar/llvm/include/llvm/Support/TimeValue.h:</div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span> </div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span> /home/tstellar/llvm/include/llvm/Support/system_error.h:</div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span> </div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span> /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h:</div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span> </div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span> /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h:</div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span> </div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span> /home/tstellar/llvm/include/llvm-c/Core.h:</div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span> </div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PPCallbacks.h:</div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span> </div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/DirectoryLookup.h:</div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span> </div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleLoader.h:</div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span> </div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Pragma.h:</div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span> </div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PTHLexer.h:</div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span> </div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PTHManager.h:</div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span> </div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/TokenLexer.h:</div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span> </div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/MacroArgs.h:</div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span> </div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/TargetInfo.h:</div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span> </div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/AddressSpaces.h:</div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span> </div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/TargetCXXABI.h:</div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span> </div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Specifiers.h:</div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span> </div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/TargetOptions.h:</div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span> </div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span> /home/tstellar/llvm/include/llvm/ADT/StringSwitch.h:</div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span> </div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/CodeCompletionHandler.h:</div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span> </div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ExternalPreprocessorSource.h:</div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span> </div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/LexDiagnostic.h:</div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span> </div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticLexKinds.inc:</div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span> </div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span> /home/tstellar/llvm/include/llvm/ADT/STLExtras.h:</div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span> </div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span> /home/tstellar/llvm/include/llvm/Support/Format.h:</div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span> </div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span> /home/tstellar/llvm/include/llvm/Support/raw_ostream.h:</div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span> </div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/AttrSpellings.inc:</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:52 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/PTHLexer_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PTHLexer_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PTHLexer_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PTHLexer_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,784 @@
+<!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: PTHLexer.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_925be8e1c75f746b0aee1084b3b1a980.html">Lex</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">PTHLexer.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="PTHLexer_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">//===--- PTHLexer.cpp - Lex from a token stream ---------------------------===//</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">//                     The LLVM Compiler Infrastructure</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment">// This file is distributed under the University of Illinois Open Source</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">// License. See LICENSE.TXT for details.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span> <span class="comment">// This file implements the PTHLexer interface.</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="PTHLexer_8h.html">clang/Lex/PTHLexer.h</a>"</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> <span class="preprocessor">#include "<a class="code" href="FileManager_8h.html" title="Defines the clang::FileManager interface and associated types.">clang/Basic/FileManager.h</a>"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="preprocessor">#include "<a class="code" href="FileSystemStatCache_8h.html" title="Defines the FileSystemStatCache interface.">clang/Basic/FileSystemStatCache.h</a>"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="preprocessor">#include "<a class="code" href="IdentifierTable_8h.html" title="Defines the clang::IdentifierInfo, clang::IdentifierTable, and clang::Selector interfaces.">clang/Basic/IdentifierTable.h</a>"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="preprocessor">#include "<a class="code" href="OnDiskHashTable_8h.html" title="Defines facilities for reading and writing on-disk hash tables.">clang/Basic/OnDiskHashTable.h</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="preprocessor">#include "<a class="code" href="TokenKinds_8h.html" title="Defines the clang::TokenKind enum and support functions.">clang/Basic/TokenKinds.h</a>"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="preprocessor">#include "<a class="code" href="LexDiagnostic_8h.html">clang/Lex/LexDiagnostic.h</a>"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="preprocessor">#include "<a class="code" href="PTHManager_8h.html">clang/Lex/PTHManager.h</a>"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="preprocessor">#include "<a class="code" href="Preprocessor_8h.html">clang/Lex/Preprocessor.h</a>"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="preprocessor">#include "<a class="code" href="Token_8h.html">clang/Lex/Token.h</a>"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="preprocessor">#include "llvm/ADT/OwningPtr.h"</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="preprocessor">#include "llvm/ADT/StringExtras.h"</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="preprocessor">#include "llvm/ADT/StringMap.h"</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="preprocessor">#include "llvm/Support/MemoryBuffer.h"</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="preprocessor">#include "llvm/Support/system_error.h"</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="keyword">using namespace </span>clang;</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="keyword">using namespace </span>clang::io;</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span> </div>
+<div class="line"><a name="l00032"></a><span class="lineno"><a class="code" href="PTHLexer_8cpp.html#a561679c6e6a207c67f6702fba0797061">   32</a></span> <span class="preprocessor">#define DISK_TOKEN_SIZE (1+1+2+4+4)</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span> <span class="comment">// PTHLexer methods.</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span> </div>
+<div class="line"><a name="l00038"></a><span class="lineno"><a class="code" href="classclang_1_1PTHLexer.html#aa8cbe80e9d8021223b6a89ce07e38b51">   38</a></span> PTHLexer::PTHLexer(<a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP, <a class="code" href="classclang_1_1FileID.html" title="An opaque identifier used by SourceManager which refers to a source file (MemoryBuffer) along with it...">FileID</a> FID, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *D,</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>                    <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *ppcond, <a class="code" href="classclang_1_1PTHManager.html">PTHManager</a> &PM)</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>   : <a class="code" href="classclang_1_1PreprocessorLexer.html">PreprocessorLexer</a>(&PP, FID), TokBuf(D), CurPtr(D), LastHashTokPtr(0),</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>     PPCond(ppcond), CurPPCondPtr(ppcond), PTHMgr(PM) {</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>   FileStartLoc = PP.<a class="code" href="classclang_1_1Preprocessor.html#afca276c0a87d413e51e8848edf8f911b">getSourceManager</a>().<a class="code" href="classclang_1_1SourceManager.html#ae1f1d6c242c1db7b224a7a6dd35cb82e" title="Return the source location corresponding to the first byte of the specified file.">getLocForStartOfFile</a>(FID);</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> </div>
+<div class="line"><a name="l00046"></a><span class="lineno"><a class="code" href="classclang_1_1PTHLexer.html#ae5785126b7f101295fa268b7bf3af362">   46</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1PTHLexer.html#ae5785126b7f101295fa268b7bf3af362" title="Lex - Return the next token.">PTHLexer::Lex</a>(<a class="code" href="classclang_1_1Token.html">Token</a>& Tok) {</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>   <span class="comment">//===--------------------------------------==//</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>   <span class="comment">// Read the raw token data.</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>   <span class="comment">//===--------------------------------------==//</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span> </div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>   <span class="comment">// Shadow CurPtr into an automatic variable.</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>   <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *CurPtrShadow = CurPtr;</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span> </div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>   <span class="comment">// Read in the data for the token.</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>   <span class="keywordtype">unsigned</span> Word0 = <a class="code" href="namespaceclang_1_1io.html#a2960e9d4bececac450ee1d805e0b2de5">ReadLE32</a>(CurPtrShadow);</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>   uint32_t <a class="code" href="namespaceclang_1_1serialization.html#a787b5f98408ba7a90644a7273cea9b19" title="An ID number that refers to an identifier in an AST file.">IdentifierID</a> = <a class="code" href="namespaceclang_1_1io.html#a2960e9d4bececac450ee1d805e0b2de5">ReadLE32</a>(CurPtrShadow);</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>   uint32_t FileOffset = <a class="code" href="namespaceclang_1_1io.html#a2960e9d4bececac450ee1d805e0b2de5">ReadLE32</a>(CurPtrShadow);</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span> </div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>   <a class="code" href="namespaceclang_1_1tok.html#aca39774690bea476816dc56565cb7cd5" title="Provides a simple uniform namespace for tokens from all C languages.">tok::TokenKind</a> TKind = (<a class="code" href="namespaceclang_1_1tok.html#aca39774690bea476816dc56565cb7cd5" title="Provides a simple uniform namespace for tokens from all C languages.">tok::TokenKind</a>) (Word0 & 0xFF);</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>   <a class="code" href="classclang_1_1Token.html#a9757e958209e601e408feda04be60db5">Token::TokenFlags</a> TFlags = (<a class="code" href="classclang_1_1Token.html#a9757e958209e601e408feda04be60db5">Token::TokenFlags</a>) ((Word0 >> 8) & 0xFF);</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>   uint32_t Len = Word0 >> 16;</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>   CurPtr = CurPtrShadow;</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span> </div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>   <span class="comment">//===--------------------------------------==//</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>   <span class="comment">// Construct the token itself.</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>   <span class="comment">//===--------------------------------------==//</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span> </div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>   Tok.<a class="code" href="classclang_1_1Token.html#ae1e49685acde6208c1c83f38540832c1" title="Reset all flags to cleared.">startToken</a>();</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>   Tok.<a class="code" href="classclang_1_1Token.html#a44b757baba649ad00b79f78671a8a2aa">setKind</a>(TKind);</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>   Tok.<a class="code" href="classclang_1_1Token.html#afb82493d321db8d89b0a989eec2b1d36" title="Set the specified flag.">setFlag</a>(TFlags);</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>   assert(!<a class="code" href="classclang_1_1PreprocessorLexer.html#a4aefb1afcc979348454179d95d28a5ba" title="True if in raw mode.">LexingRawMode</a>);</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>   Tok.<a class="code" href="classclang_1_1Token.html#ab52b4059e1b2e648c78b7c326190d2ce">setLocation</a>(FileStartLoc.<a class="code" href="classclang_1_1SourceLocation.html#a1abf1cac74e512604b1f2c8921a446fa" title="Return a source location with the specified offset from this SourceLocation.">getLocWithOffset</a>(FileOffset));</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>   Tok.<a class="code" href="classclang_1_1Token.html#a2cd7bd0075db58067b69368ec471aaf5">setLength</a>(Len);</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span> </div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>   <span class="comment">// Handle identifiers.</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>   <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#a003824fa2e38e971c5aedc1ddd638aad" title="Return true if this is a "literal", like a numeric constant, string, etc.">isLiteral</a>()) {</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>     Tok.<a class="code" href="classclang_1_1Token.html#a00e6fc66f42969a844ce6816a0db4aa0">setLiteralData</a>((<span class="keyword">const</span> <span class="keywordtype">char</span>*) (PTHMgr.SpellingBase + IdentifierID));</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>   }</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>   <span class="keywordflow">else</span> <span class="keywordflow">if</span> (IdentifierID) {</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>     <a class="code" href="classclang_1_1PreprocessorLexer.html#a76b00d43f7518b466f922843f6fbb138" title="A state machine that detects the #ifndef-wrapping a file idiom for the multiple-include optimization...">MIOpt</a>.<a class="code" href="classclang_1_1MultipleIncludeOpt.html#ac6805e623dcb09dd02f5bf8e0c3f8185">ReadToken</a>();</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>     <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *II = PTHMgr.GetIdentifierInfo(IdentifierID-1);</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span> </div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>     Tok.<a class="code" href="classclang_1_1Token.html#ae603a1243f89a7aeeabcb4d467c474ff">setIdentifierInfo</a>(II);</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span> </div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>     <span class="comment">// Change the kind of this identifier to the appropriate token kind, e.g.</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>     <span class="comment">// turning "for" into a keyword.</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>     Tok.<a class="code" href="classclang_1_1Token.html#a44b757baba649ad00b79f78671a8a2aa">setKind</a>(II-><a class="code" href="classclang_1_1IdentifierInfo.html#a66ddbfe9f85f24f25fa29d49d773af86">getTokenID</a>());</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span> </div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>     <span class="keywordflow">if</span> (II-><a class="code" href="classclang_1_1IdentifierInfo.html#afdb5c217fc3554b6f0538ba245c94974" title="Return true if the Preprocessor::HandleIdentifier must be called on a token of this identifier...">isHandleIdentifierCase</a>())</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>       <span class="keywordflow">return</span> <a class="code" href="classclang_1_1PreprocessorLexer.html#a790cb1b9650fc3ffa24a4af996426e6c">PP</a>-><a class="code" href="classclang_1_1Preprocessor.html#a5f7d6066ed8e07897cc6bf670923da05">HandleIdentifier</a>(Tok);</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span> </div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>     <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>   }</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span> </div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>   <span class="comment">//===--------------------------------------==//</span></div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>   <span class="comment">// Process the token.</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>   <span class="comment">//===--------------------------------------==//</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>   <span class="keywordflow">if</span> (TKind == <a class="code" href="namespaceclang_1_1comments_1_1tok.html#af269e1299a7e813dd4471ab24630e01aac4904dc9309fe9cf0fe76ff45d54f265">tok::eof</a>) {</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>     <span class="comment">// Save the end-of-file token.</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>     EofToken = Tok;</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>     assert(!<a class="code" href="classclang_1_1PreprocessorLexer.html#a6388ce47d19b9f7d0c703c643ab903a5" title="True when parsing #XXX; turns '\n' into a tok::eod token.">ParsingPreprocessorDirective</a>);</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>     assert(!<a class="code" href="classclang_1_1PreprocessorLexer.html#a4aefb1afcc979348454179d95d28a5ba" title="True if in raw mode.">LexingRawMode</a>);</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span> </div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>     <span class="keywordflow">return</span> LexEndOfFile(Tok);</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>   }</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span> </div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>   <span class="keywordflow">if</span> (TKind == tok::hash && Tok.<a class="code" href="classclang_1_1Token.html#a895009ede74790b61cf636fd7e498d44">isAtStartOfLine</a>()) {</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>     LastHashTokPtr = CurPtr - <a class="code" href="PTHLexer_8cpp.html#a561679c6e6a207c67f6702fba0797061">DISK_TOKEN_SIZE</a>;</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>     assert(!<a class="code" href="classclang_1_1PreprocessorLexer.html#a4aefb1afcc979348454179d95d28a5ba" title="True if in raw mode.">LexingRawMode</a>);</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>     <a class="code" href="classclang_1_1PreprocessorLexer.html#a790cb1b9650fc3ffa24a4af996426e6c">PP</a>-><a class="code" href="classclang_1_1Preprocessor.html#ab6cb207d9606e228aac0ed63d529cfa2">HandleDirective</a>(Tok);</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span> </div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>   }</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span> </div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>   <span class="keywordflow">if</span> (TKind == tok::eod) {</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>     assert(<a class="code" href="classclang_1_1PreprocessorLexer.html#a6388ce47d19b9f7d0c703c643ab903a5" title="True when parsing #XXX; turns '\n' into a tok::eod token.">ParsingPreprocessorDirective</a>);</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>     <a class="code" href="classclang_1_1PreprocessorLexer.html#a6388ce47d19b9f7d0c703c643ab903a5" title="True when parsing #XXX; turns '\n' into a tok::eod token.">ParsingPreprocessorDirective</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>     <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>   }</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span> </div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>   <a class="code" href="classclang_1_1PreprocessorLexer.html#a76b00d43f7518b466f922843f6fbb138" title="A state machine that detects the #ifndef-wrapping a file idiom for the multiple-include optimization...">MIOpt</a>.<a class="code" href="classclang_1_1MultipleIncludeOpt.html#ac6805e623dcb09dd02f5bf8e0c3f8185">ReadToken</a>();</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>   <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span> }</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span> </div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span> <span class="keywordtype">bool</span> PTHLexer::LexEndOfFile(<a class="code" href="classclang_1_1Token.html">Token</a> &Result) {</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>   <span class="comment">// If we hit the end of the file while parsing a preprocessor directive,</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>   <span class="comment">// end the preprocessor directive first.  The next token returned will</span></div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>   <span class="comment">// then be the end of file.</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1PreprocessorLexer.html#a6388ce47d19b9f7d0c703c643ab903a5" title="True when parsing #XXX; turns '\n' into a tok::eod token.">ParsingPreprocessorDirective</a>) {</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>     <a class="code" href="classclang_1_1PreprocessorLexer.html#a6388ce47d19b9f7d0c703c643ab903a5" title="True when parsing #XXX; turns '\n' into a tok::eod token.">ParsingPreprocessorDirective</a> = <span class="keyword">false</span>; <span class="comment">// Done parsing the "line".</span></div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>     <span class="keywordflow">return</span> <span class="keyword">true</span>;  <span class="comment">// Have a token.</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">  136</span>   assert(!<a class="code" href="classclang_1_1PreprocessorLexer.html#a4aefb1afcc979348454179d95d28a5ba" title="True if in raw mode.">LexingRawMode</a>);</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span> </div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>   <span class="comment">// If we are in a #if directive, emit an error.</span></div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>   <span class="keywordflow">while</span> (!<a class="code" href="classclang_1_1PreprocessorLexer.html#a61ced6f2bac7be5b564b1329ccc63300" title="Information about the set of #if/#ifdef/#ifndef blocks we are currently in.">ConditionalStack</a>.empty()) {</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1PreprocessorLexer.html#a790cb1b9650fc3ffa24a4af996426e6c">PP</a>-><a class="code" href="classclang_1_1Preprocessor.html#acfeceb05af85a9413ddb708cbc6d089c" title="Returns the start location of the file of code-completion point. Returns an invalid location if code-...">getCodeCompletionFileLoc</a>() != FileStartLoc)</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>       <a class="code" href="classclang_1_1PreprocessorLexer.html#a790cb1b9650fc3ffa24a4af996426e6c">PP</a>-><a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(<a class="code" href="classclang_1_1PreprocessorLexer.html#a61ced6f2bac7be5b564b1329ccc63300" title="Information about the set of #if/#ifdef/#ifndef blocks we are currently in.">ConditionalStack</a>.back().IfLoc,</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>                diag::err_pp_unterminated_conditional);</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>     <a class="code" href="classclang_1_1PreprocessorLexer.html#a61ced6f2bac7be5b564b1329ccc63300" title="Information about the set of #if/#ifdef/#ifndef blocks we are currently in.">ConditionalStack</a>.pop_back();</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">// Finally, let the preprocessor handle this.</span></div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>   <span class="keywordflow">return</span> <a class="code" href="classclang_1_1PreprocessorLexer.html#a790cb1b9650fc3ffa24a4af996426e6c">PP</a>-><a class="code" href="classclang_1_1Preprocessor.html#ade4c21cb35a1ae0db438638e585810c1">HandleEndOfFile</a>(Result);</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span> }</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span> </div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span> <span class="comment">// FIXME: We can just grab the last token instead of storing a copy</span></div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span> <span class="comment">// into EofToken.</span></div>
+<div class="line"><a name="l00152"></a><span class="lineno"><a class="code" href="classclang_1_1PTHLexer.html#a438d9adc8ea8e63c2bb59a3a7f2e963e">  152</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1PTHLexer.html#a438d9adc8ea8e63c2bb59a3a7f2e963e">PTHLexer::getEOF</a>(<a class="code" href="classclang_1_1Token.html">Token</a>& Tok) {</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>   assert(EofToken.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(<a class="code" href="namespaceclang_1_1comments_1_1tok.html#af269e1299a7e813dd4471ab24630e01aac4904dc9309fe9cf0fe76ff45d54f265">tok::eof</a>));</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>   Tok = EofToken;</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span> }</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span> </div>
+<div class="line"><a name="l00157"></a><span class="lineno"><a class="code" href="classclang_1_1PTHLexer.html#acf6408c138231e1715502b3ed42ecf8c">  157</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1PTHLexer.html#acf6408c138231e1715502b3ed42ecf8c">PTHLexer::DiscardToEndOfLine</a>() {</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>   assert(<a class="code" href="classclang_1_1PreprocessorLexer.html#a6388ce47d19b9f7d0c703c643ab903a5" title="True when parsing #XXX; turns '\n' into a tok::eod token.">ParsingPreprocessorDirective</a> && <a class="code" href="classclang_1_1PreprocessorLexer.html#a908e862105c869ab8c205fdd08431b74" title="True after #include; turns <xx> into a tok::angle_string_literal token.">ParsingFilename</a> == <span class="keyword">false</span> &&</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>          <span class="stringliteral">"Must be in a preprocessing directive!"</span>);</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span> </div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>   <span class="comment">// We assume that if the preprocessor wishes to discard to the end of</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>   <span class="comment">// the line that it also means to end the current preprocessor directive.</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>   <a class="code" href="classclang_1_1PreprocessorLexer.html#a6388ce47d19b9f7d0c703c643ab903a5" title="True when parsing #XXX; turns '\n' into a tok::eod token.">ParsingPreprocessorDirective</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span> </div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>   <span class="comment">// Skip tokens by only peeking at their token kind and the flags.</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>   <span class="comment">// We don't need to actually reconstruct full tokens from the token buffer.</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>   <span class="comment">// This saves some copies and it also reduces IdentifierInfo* lookup.</span></div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>   <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* p = CurPtr;</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>   <span class="keywordflow">while</span> (1) {</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>     <span class="comment">// Read the token kind.  Are we at the end of the file?</span></div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>     <a class="code" href="namespaceclang_1_1tok.html#aca39774690bea476816dc56565cb7cd5" title="Provides a simple uniform namespace for tokens from all C languages.">tok::TokenKind</a> x = (<a class="code" href="namespaceclang_1_1tok.html#aca39774690bea476816dc56565cb7cd5" title="Provides a simple uniform namespace for tokens from all C languages.">tok::TokenKind</a>) (uint8_t) *p;</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>     <span class="keywordflow">if</span> (x == <a class="code" href="namespaceclang_1_1comments_1_1tok.html#af269e1299a7e813dd4471ab24630e01aac4904dc9309fe9cf0fe76ff45d54f265">tok::eof</a>) <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span> </div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>     <span class="comment">// Read the token flags.  Are we at the start of the next line?</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>     <a class="code" href="classclang_1_1Token.html#a9757e958209e601e408feda04be60db5">Token::TokenFlags</a> y = (<a class="code" href="classclang_1_1Token.html#a9757e958209e601e408feda04be60db5">Token::TokenFlags</a>) (uint8_t) p[1];</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>     <span class="keywordflow">if</span> (y & <a class="code" href="classclang_1_1Token.html#a9757e958209e601e408feda04be60db5abae95495f486499bdedf8d66b9d3d0bf">Token::StartOfLine</a>) <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span> </div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>     <span class="comment">// Skip to the next token.</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>     p += <a class="code" href="PTHLexer_8cpp.html#a561679c6e6a207c67f6702fba0797061">DISK_TOKEN_SIZE</a>;</div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>   }</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span> </div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>   CurPtr = p;</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span> }</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span> <span class="comment"></span></div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span> <span class="comment">/// SkipBlock - Used by Preprocessor to skip the current conditional block.</span></div>
+<div class="line"><a name="l00186"></a><span class="lineno"><a class="code" href="classclang_1_1PTHLexer.html#a1d3b17f8abf6b3f6846ffb64d8499c8a">  186</a></span> <span class="comment"></span><span class="keywordtype">bool</span> <a class="code" href="classclang_1_1PTHLexer.html#a1d3b17f8abf6b3f6846ffb64d8499c8a" title="SkipBlock - Used by Preprocessor to skip the current conditional block.">PTHLexer::SkipBlock</a>() {</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>   assert(CurPPCondPtr && <span class="stringliteral">"No cached PP conditional information."</span>);</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>   assert(LastHashTokPtr && <span class="stringliteral">"No known '#' token."</span>);</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span> </div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>   <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* HashEntryI = 0;</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>   uint32_t TableIdx;</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="keywordflow">do</span> {</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>     <span class="comment">// Read the token offset from the side-table.</span></div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>     uint32_t <a class="code" href="namespaceclang_1_1io.html#ae0bbdf4a2b076935546931e52d48d29b">Offset</a> = <a class="code" href="namespaceclang_1_1io.html#a2960e9d4bececac450ee1d805e0b2de5">ReadLE32</a>(CurPPCondPtr);</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>     <span class="comment">// Read the target table index from the side-table.</span></div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>     TableIdx = <a class="code" href="namespaceclang_1_1io.html#a2960e9d4bececac450ee1d805e0b2de5">ReadLE32</a>(CurPPCondPtr);</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span> </div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>     <span class="comment">// Compute the actual memory address of the '#' token data for this entry.</span></div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>     HashEntryI = TokBuf + <a class="code" href="namespaceclang_1_1io.html#ae0bbdf4a2b076935546931e52d48d29b">Offset</a>;</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span> </div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>     <span class="comment">// Optmization: "Sibling jumping".  #if...#else...#endif blocks can</span></div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>     <span class="comment">//  contain nested blocks.  In the side-table we can jump over these</span></div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>     <span class="comment">//  nested blocks instead of doing a linear search if the next "sibling"</span></div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>     <span class="comment">//  entry is not at a location greater than LastHashTokPtr.</span></div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span>     <span class="keywordflow">if</span> (HashEntryI < LastHashTokPtr && TableIdx) {</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span>       <span class="comment">// In the side-table we are still at an entry for a '#' token that</span></div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>       <span class="comment">// is earlier than the last one we saw.  Check if the location we would</span></div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>       <span class="comment">// stride gets us closer.</span></div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>       <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* NextPPCondPtr =</div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span>         PPCond + TableIdx*(<span class="keyword">sizeof</span>(uint32_t)*2);</div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span>       assert(NextPPCondPtr >= CurPPCondPtr);</div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>       <span class="comment">// Read where we should jump to.</span></div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span>       <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* HashEntryJ = TokBuf + <a class="code" href="namespaceclang_1_1io.html#a2960e9d4bececac450ee1d805e0b2de5">ReadLE32</a>(NextPPCondPtr);</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>       <span class="keywordflow">if</span> (HashEntryJ <= LastHashTokPtr) {</div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>         <span class="comment">// Jump directly to the next entry in the side table.</span></div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>         HashEntryI = HashEntryJ;</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>         TableIdx = <a class="code" href="namespaceclang_1_1io.html#a2960e9d4bececac450ee1d805e0b2de5">ReadLE32</a>(NextPPCondPtr);</div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span>         CurPPCondPtr = NextPPCondPtr;</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>     }</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>   <span class="keywordflow">while</span> (HashEntryI < LastHashTokPtr);</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>   assert(HashEntryI == LastHashTokPtr && <span class="stringliteral">"No PP-cond entry found for '#'"</span>);</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>   assert(TableIdx && <span class="stringliteral">"No jumping from #endifs."</span>);</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>   <span class="comment">// Update our side-table iterator.</span></div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span>   <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* NextPPCondPtr = PPCond + TableIdx*(<span class="keyword">sizeof</span>(uint32_t)*2);</div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span>   assert(NextPPCondPtr >= CurPPCondPtr);</div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span>   CurPPCondPtr = NextPPCondPtr;</div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span> </div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>   <span class="comment">// Read where we should jump to.</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span>   HashEntryI = TokBuf + <a class="code" href="namespaceclang_1_1io.html#a2960e9d4bececac450ee1d805e0b2de5">ReadLE32</a>(NextPPCondPtr);</div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span>   uint32_t NextIdx = <a class="code" href="namespaceclang_1_1io.html#a2960e9d4bececac450ee1d805e0b2de5">ReadLE32</a>(NextPPCondPtr);</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">// By construction NextIdx will be zero if this is a #endif.  This is useful</span></div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span>   <span class="comment">// to know to obviate lexing another token.</span></div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span>   <span class="keywordtype">bool</span> isEndif = NextIdx == 0;</div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span> </div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span>   <span class="comment">// This case can occur when we see something like this:</span></div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span>   <span class="comment">//</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span>   <span class="comment">//  #if ...</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span>   <span class="comment">//   /* a comment or nothing */</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span>   <span class="comment">//  #elif</span></div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span>   <span class="comment">//</span></div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span>   <span class="comment">// If we are skipping the first #if block it will be the case that CurPtr</span></div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span>   <span class="comment">// already points 'elif'.  Just return.</span></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>   <span class="keywordflow">if</span> (CurPtr > HashEntryI) {</div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span>     assert(CurPtr == HashEntryI + <a class="code" href="PTHLexer_8cpp.html#a561679c6e6a207c67f6702fba0797061">DISK_TOKEN_SIZE</a>);</div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span>     <span class="comment">// Did we reach a #endif?  If so, go ahead and consume that token as well.</span></div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span>     <span class="keywordflow">if</span> (isEndif)</div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span>       CurPtr += <a class="code" href="PTHLexer_8cpp.html#a561679c6e6a207c67f6702fba0797061">DISK_TOKEN_SIZE</a>*2;</div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span>     <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span>       LastHashTokPtr = HashEntryI;</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="keywordflow">return</span> isEndif;</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> </div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span>   <span class="comment">// Otherwise, we need to advance.  Update CurPtr to point to the '#' token.</span></div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span>   CurPtr = HashEntryI;</div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span> </div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span>   <span class="comment">// Update the location of the last observed '#'.  This is useful if we</span></div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span>   <span class="comment">// are skipping multiple blocks.</span></div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span>   LastHashTokPtr = CurPtr;</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>   <span class="comment">// Skip the '#' token.</span></div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span>   assert(((<a class="code" href="namespaceclang_1_1tok.html#aca39774690bea476816dc56565cb7cd5" title="Provides a simple uniform namespace for tokens from all C languages.">tok::TokenKind</a>)*CurPtr) == tok::hash);</div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span>   CurPtr += <a class="code" href="PTHLexer_8cpp.html#a561679c6e6a207c67f6702fba0797061">DISK_TOKEN_SIZE</a>;</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>   <span class="comment">// Did we reach a #endif?  If so, go ahead and consume that token as well.</span></div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span>   <span class="keywordflow">if</span> (isEndif) { CurPtr += <a class="code" href="PTHLexer_8cpp.html#a561679c6e6a207c67f6702fba0797061">DISK_TOKEN_SIZE</a>*2; }</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="keywordflow">return</span> isEndif;</div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span> }</div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span> </div>
+<div class="line"><a name="l00279"></a><span class="lineno"><a class="code" href="classclang_1_1PTHLexer.html#a67f1a63266bc94c89c2c6005f494c6c9">  279</a></span> <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> <a class="code" href="classclang_1_1PTHLexer.html#a67f1a63266bc94c89c2c6005f494c6c9">PTHLexer::getSourceLocation</a>() {</div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span>   <span class="comment">// getSourceLocation is not on the hot path.  It is used to get the location</span></div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span>   <span class="comment">// of the next token when transitioning back to this lexer when done</span></div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span>   <span class="comment">// handling a #included file.  Just read the necessary data from the token</span></div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span>   <span class="comment">// data buffer to construct the SourceLocation object.</span></div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span>   <span class="comment">// NOTE: This is a virtual function; hence it is defined out-of-line.</span></div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span>   <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *OffsetPtr = CurPtr + (<a class="code" href="PTHLexer_8cpp.html#a561679c6e6a207c67f6702fba0797061">DISK_TOKEN_SIZE</a> - 4);</div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span>   uint32_t <a class="code" href="namespaceclang_1_1io.html#ae0bbdf4a2b076935546931e52d48d29b">Offset</a> = <a class="code" href="namespaceclang_1_1io.html#a2960e9d4bececac450ee1d805e0b2de5">ReadLE32</a>(OffsetPtr);</div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span>   <span class="keywordflow">return</span> FileStartLoc.<a class="code" href="classclang_1_1SourceLocation.html#a1abf1cac74e512604b1f2c8921a446fa" title="Return a source location with the specified offset from this SourceLocation.">getLocWithOffset</a>(Offset);</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> </div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span> <span class="comment">// PTH file lookup: map from strings to file data.</span></div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span> <span class="comment"></span></div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span> <span class="comment">/// PTHFileLookup - This internal data structure is used by the PTHManager</span></div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span> <span class="comment">///  to map from FileEntry objects managed by FileManager to offsets within</span></div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span> <span class="comment">///  the PTH file.</span></div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span> <span class="comment"></span><span class="keyword">namespace </span>{</div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span> <span class="keyword">class </span>PTHFileData {</div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span>   <span class="keyword">const</span> uint32_t TokenOff;</div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span>   <span class="keyword">const</span> uint32_t PPCondOff;</div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span>   PTHFileData(uint32_t tokenOff, uint32_t ppCondOff)</div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span>     : TokenOff(tokenOff), PPCondOff(ppCondOff) {}</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>   uint32_t getTokenOffset()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> TokenOff; }</div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span>   uint32_t getPPCondOffset()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> PPCondOff; }</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> </div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span> </div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span> <span class="keyword">class </span>PTHFileLookupCommonTrait {</div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span>   <span class="keyword">typedef</span> std::pair<unsigned char, const char*> internal_key_type;</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>   <span class="keyword">static</span> <span class="keywordtype">unsigned</span> <a class="code" href="namespaceclang_1_1serialization.html#ae67b4ea0ba75813eed18b812020cf52e">ComputeHash</a>(internal_key_type x) {</div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span>     <span class="keywordflow">return</span> llvm::HashString(x.second);</div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span>   }</div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span> </div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span>   <span class="keyword">static</span> std::pair<unsigned, unsigned></div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span>   ReadKeyDataLength(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>*& d) {</div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span>     <span class="keywordtype">unsigned</span> keyLen = (<a class="code" href="classunsigned.html">unsigned</a>) <a class="code" href="namespaceclang_1_1io.html#ac4ebead773acf47c91d23289c243054f">ReadUnalignedLE16</a>(d);</div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span>     <span class="keywordtype">unsigned</span> dataLen = (<a class="code" href="classunsigned.html">unsigned</a>) *(d++);</div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span>     <span class="keywordflow">return</span> std::make_pair(keyLen, dataLen);</div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span>   }</div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span> </div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span>   <span class="keyword">static</span> internal_key_type ReadKey(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* d, <span class="keywordtype">unsigned</span>) {</div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span>     <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> k = *(d++); <span class="comment">// Read the entry kind.</span></div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span>     <span class="keywordflow">return</span> std::make_pair(k, (<span class="keyword">const</span> <span class="keywordtype">char</span>*) d);</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> };</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> <span class="keyword">class </span>PTHFileLookupTrait : <span class="keyword">public</span> PTHFileLookupCommonTrait {</div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span>   <span class="keyword">typedef</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a>* external_key_type;</div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span>   <span class="keyword">typedef</span> PTHFileData      data_type;</div>
+<div class="line"><a name="l00335"></a><span class="lineno">  335</span> </div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span>   <span class="keyword">static</span> internal_key_type GetInternalKey(<span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a>* FE) {</div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span>     <span class="keywordflow">return</span> std::make_pair((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>) 0x1, FE-><a class="code" href="classclang_1_1FileEntry.html#a94ddac74f217c35e19420dd6c419e25f">getName</a>());</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> </div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span>   <span class="keyword">static</span> <span class="keywordtype">bool</span> EqualKey(internal_key_type a, internal_key_type b) {</div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span>     <span class="keywordflow">return</span> a.first == b.first && strcmp(a.second, b.second) == 0;</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="keyword">static</span> PTHFileData ReadData(<span class="keyword">const</span> internal_key_type& k,</div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span>                               <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* d, <span class="keywordtype">unsigned</span>) {</div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span>     assert(k.first == 0x1 && <span class="stringliteral">"Only file lookups can match!"</span>);</div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span>     uint32_t x = <a class="code" href="namespaceclang_1_1io.html#a315b682979b00d33652523b49746a557">::ReadUnalignedLE32</a>(d);</div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span>     uint32_t y = <a class="code" href="namespaceclang_1_1io.html#a315b682979b00d33652523b49746a557">::ReadUnalignedLE32</a>(d);</div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span>     <span class="keywordflow">return</span> PTHFileData(x, y);</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> };</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="keyword">class </span>PTHStringLookupTrait {</div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span>   <span class="keyword">typedef</span> uint32_t</div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span>           data_type;</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>   <span class="keyword">typedef</span> <span class="keyword">const</span> std::pair<const char*, unsigned></div>
+<div class="line"><a name="l00359"></a><span class="lineno">  359</span>           external_key_type;</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>   <span class="keyword">typedef</span> external_key_type internal_key_type;</div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span> </div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span>   <span class="keyword">static</span> <span class="keywordtype">bool</span> EqualKey(<span class="keyword">const</span> internal_key_type& a,</div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span>                        <span class="keyword">const</span> internal_key_type& b) {</div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span>     <span class="keywordflow">return</span> (a.second == b.second) ? memcmp(a.first, b.first, a.second) == 0</div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span>                                   : <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span>   }</div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span> </div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span>   <span class="keyword">static</span> <span class="keywordtype">unsigned</span> <a class="code" href="namespaceclang_1_1serialization.html#ae67b4ea0ba75813eed18b812020cf52e">ComputeHash</a>(<span class="keyword">const</span> internal_key_type& a) {</div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span>     <span class="keywordflow">return</span> llvm::HashString(StringRef(a.first, a.second));</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> </div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span>   <span class="comment">// This hopefully will just get inlined and removed by the optimizer.</span></div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span>   <span class="keyword">static</span> <span class="keyword">const</span> internal_key_type&</div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span>   GetInternalKey(<span class="keyword">const</span> external_key_type& x) { <span class="keywordflow">return</span> x; }</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>   <span class="keyword">static</span> std::pair<unsigned, unsigned></div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span>   ReadKeyDataLength(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>*& d) {</div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span>     <span class="keywordflow">return</span> std::make_pair((<span class="keywordtype">unsigned</span>) <a class="code" href="namespaceclang_1_1io.html#ac4ebead773acf47c91d23289c243054f">ReadUnalignedLE16</a>(d), <span class="keyword">sizeof</span>(uint32_t));</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> </div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span>   <span class="keyword">static</span> std::pair<const char*, unsigned></div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span>   ReadKey(<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* d, <span class="keywordtype">unsigned</span> n) {</div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span>       assert(n >= 2 && d[n-1] == <span class="charliteral">'\0'</span>);</div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span>       <span class="keywordflow">return</span> std::make_pair((<span class="keyword">const</span> <span class="keywordtype">char</span>*) d, n-1);</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>   <span class="keyword">static</span> uint32_t ReadData(<span class="keyword">const</span> internal_key_type& k, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* d,</div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span>                            <span class="keywordtype">unsigned</span>) {</div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span>     <a class="code" href="namespaceclang_1_1io.html#a315b682979b00d33652523b49746a557">return ::ReadUnalignedLE32</a>(d);</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> </div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span> } <span class="comment">// end anonymous namespace</span></div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span> </div>
+<div class="line"><a name="l00396"></a><span class="lineno"><a class="code" href="PTHLexer_8cpp.html#a1d6928b653a86dd69224139fd37da208">  396</a></span> <span class="keyword">typedef</span> <a class="code" href="classclang_1_1OnDiskChainedHashTable.html">OnDiskChainedHashTable<PTHFileLookupTrait></a>   <a class="code" href="PTHLexer_8cpp.html#a1d6928b653a86dd69224139fd37da208">PTHFileLookup</a>;</div>
+<div class="line"><a name="l00397"></a><span class="lineno"><a class="code" href="PTHLexer_8cpp.html#a07b4aee361dd90a14d184cc91106c7b1">  397</a></span> <span class="keyword">typedef</span> <a class="code" href="classclang_1_1OnDiskChainedHashTable.html">OnDiskChainedHashTable<PTHStringLookupTrait></a> <a class="code" href="PTHLexer_8cpp.html#a07b4aee361dd90a14d184cc91106c7b1">PTHStringIdLookup</a>;</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> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span> <span class="comment">// PTHManager methods.</span></div>
+<div class="line"><a name="l00401"></a><span class="lineno">  401</span> <span class="comment">//===----------------------------------------------------------------------===//</span></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> PTHManager::PTHManager(<span class="keyword">const</span> llvm::MemoryBuffer* buf, <span class="keywordtype">void</span>* fileLookup,</div>
+<div class="line"><a name="l00404"></a><span class="lineno">  404</span>                        <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* idDataTable,</div>
+<div class="line"><a name="l00405"></a><span class="lineno">  405</span>                        <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a>** perIDCache,</div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span>                        <span class="keywordtype">void</span>* stringIdLookup, <span class="keywordtype">unsigned</span> numIds,</div>
+<div class="line"><a name="l00407"></a><span class="lineno">  407</span>                        <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* spellingBase,</div>
+<div class="line"><a name="l00408"></a><span class="lineno">  408</span>                        <span class="keyword">const</span> <span class="keywordtype">char</span>* originalSourceFile)</div>
+<div class="line"><a name="l00409"></a><span class="lineno">  409</span> : Buf(buf), PerIDCache(perIDCache), FileLookup(fileLookup),</div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span>   IdDataTable(idDataTable), StringIdLookup(stringIdLookup),</div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span>   NumIds(numIds), PP(0), SpellingBase(spellingBase),</div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span>   OriginalSourceFile(originalSourceFile) {}</div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</span> </div>
+<div class="line"><a name="l00414"></a><span class="lineno"><a class="code" href="classclang_1_1PTHManager.html#a54c11352d709922605c77797e125d1ed">  414</a></span> PTHManager::~PTHManager() {</div>
+<div class="line"><a name="l00415"></a><span class="lineno">  415</span>   <span class="keyword">delete</span> Buf;</div>
+<div class="line"><a name="l00416"></a><span class="lineno">  416</span>   <span class="keyword">delete</span> (<a class="code" href="classclang_1_1OnDiskChainedHashTable.html">PTHFileLookup</a>*) FileLookup;</div>
+<div class="line"><a name="l00417"></a><span class="lineno">  417</span>   <span class="keyword">delete</span> (<a class="code" href="classclang_1_1OnDiskChainedHashTable.html">PTHStringIdLookup</a>*) StringIdLookup;</div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span>   <a class="code" href="namespaceclang_1_1ento.html#a41369c7fcbbfc6d969e262ee946eedf9">free</a>(PerIDCache);</div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span> }</div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span> </div>
+<div class="line"><a name="l00421"></a><span class="lineno"><a class="code" href="PTHLexer_8cpp.html#afe7fbbf73870c9327cb47dae5bb616b5">  421</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="PTHLexer_8cpp.html#afe7fbbf73870c9327cb47dae5bb616b5">InvalidPTH</a>(<a class="code" href="classclang_1_1DiagnosticsEngine.html" title="Concrete class used by the front-end to report problems and issues.">DiagnosticsEngine</a> &Diags, <span class="keyword">const</span> <span class="keywordtype">char</span> *Msg) {</div>
+<div class="line"><a name="l00422"></a><span class="lineno">  422</span>   Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#affbb3c2700bd507e1670a12aa38b554d" title="Return an ID for a diagnostic with the specified message and level.">getCustomDiagID</a>(<a class="code" href="classclang_1_1DiagnosticsEngine.html#a94e5078973aa3a34432e91f3b26263e0a67b5cd51c751720d23bd4ad592252c6e">DiagnosticsEngine::Error</a>, Msg));</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> </div>
+<div class="line"><a name="l00425"></a><span class="lineno"><a class="code" href="classclang_1_1PTHManager.html#aed12bd5f5b8b0c49ed96012ce8743d0a">  425</a></span> <a class="code" href="classclang_1_1PTHManager.html">PTHManager</a> *<a class="code" href="classclang_1_1PTHManager.html#aed12bd5f5b8b0c49ed96012ce8743d0a">PTHManager::Create</a>(<span class="keyword">const</span> std::string &file,</div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span>                                <a class="code" href="classclang_1_1DiagnosticsEngine.html" title="Concrete class used by the front-end to report problems and issues.">DiagnosticsEngine</a> &Diags) {</div>
+<div class="line"><a name="l00427"></a><span class="lineno">  427</span>   <span class="comment">// Memory map the PTH file.</span></div>
+<div class="line"><a name="l00428"></a><span class="lineno">  428</span>   <a class="code" href="classllvm_1_1OwningPtr.html">OwningPtr<llvm::MemoryBuffer></a> File;</div>
+<div class="line"><a name="l00429"></a><span class="lineno">  429</span> </div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span>   <span class="keywordflow">if</span> (llvm::MemoryBuffer::getFile(file, File)) {</div>
+<div class="line"><a name="l00431"></a><span class="lineno">  431</span>     <span class="comment">// FIXME: Add ec.message() to this diag.</span></div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span>     Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::err_invalid_pth_file) << file;</div>
+<div class="line"><a name="l00433"></a><span class="lineno">  433</span>     <span class="keywordflow">return</span> 0;</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> </div>
+<div class="line"><a name="l00436"></a><span class="lineno">  436</span>   <span class="comment">// Get the buffer ranges and check if there are at least three 32-bit</span></div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span>   <span class="comment">// words at the end of the file.</span></div>
+<div class="line"><a name="l00438"></a><span class="lineno">  438</span>   <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *BufBeg = (<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>*)File->getBufferStart();</div>
+<div class="line"><a name="l00439"></a><span class="lineno">  439</span>   <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *BufEnd = (<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>*)File->getBufferEnd();</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>   <span class="comment">// Check the prologue of the file.</span></div>
+<div class="line"><a name="l00442"></a><span class="lineno">  442</span>   <span class="keywordflow">if</span> ((BufEnd - BufBeg) < (<span class="keywordtype">signed</span>)(<span class="keyword">sizeof</span>(<span class="stringliteral">"cfe-pth"</span>) + 4 + 4) ||</div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</span>       memcmp(BufBeg, <span class="stringliteral">"cfe-pth"</span>, <span class="keyword">sizeof</span>(<span class="stringliteral">"cfe-pth"</span>)) != 0) {</div>
+<div class="line"><a name="l00444"></a><span class="lineno">  444</span>     Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::err_invalid_pth_file) << file;</div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span>     <span class="keywordflow">return</span> 0;</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> </div>
+<div class="line"><a name="l00448"></a><span class="lineno">  448</span>   <span class="comment">// Read the PTH version.</span></div>
+<div class="line"><a name="l00449"></a><span class="lineno">  449</span>   <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *p = BufBeg + (<span class="keyword">sizeof</span>(<span class="stringliteral">"cfe-pth"</span>));</div>
+<div class="line"><a name="l00450"></a><span class="lineno">  450</span>   <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1PTHManager.html#a0956cb7c37ec362b6a68768deb979727adc9a868c055ae6c4363eadbdf0a28309">Version</a> = <a class="code" href="namespaceclang_1_1io.html#a2960e9d4bececac450ee1d805e0b2de5">ReadLE32</a>(p);</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>   <span class="keywordflow">if</span> (Version < <a class="code" href="classclang_1_1PTHManager.html#a0956cb7c37ec362b6a68768deb979727adc9a868c055ae6c4363eadbdf0a28309">PTHManager::Version</a>) {</div>
+<div class="line"><a name="l00453"></a><span class="lineno">  453</span>     <a class="code" href="PTHLexer_8cpp.html#afe7fbbf73870c9327cb47dae5bb616b5">InvalidPTH</a>(Diags,</div>
+<div class="line"><a name="l00454"></a><span class="lineno">  454</span>         Version < <a class="code" href="classclang_1_1PTHManager.html#a0956cb7c37ec362b6a68768deb979727adc9a868c055ae6c4363eadbdf0a28309">PTHManager::Version</a></div>
+<div class="line"><a name="l00455"></a><span class="lineno">  455</span>         ? <span class="stringliteral">"PTH file uses an older PTH format that is no longer supported"</span></div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span>         : <span class="stringliteral">"PTH file uses a newer PTH format that cannot be read"</span>);</div>
+<div class="line"><a name="l00457"></a><span class="lineno">  457</span>     <span class="keywordflow">return</span> 0;</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> </div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span>   <span class="comment">// Compute the address of the index table at the end of the PTH file.</span></div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span>   <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *PrologueOffset = p;</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>   <span class="keywordflow">if</span> (PrologueOffset >= BufEnd) {</div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</span>     Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::err_invalid_pth_file) << file;</div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span>     <span class="keywordflow">return</span> 0;</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> </div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span>   <span class="comment">// Construct the file lookup table.  This will be used for mapping from</span></div>
+<div class="line"><a name="l00469"></a><span class="lineno">  469</span>   <span class="comment">// FileEntry*'s to cached tokens.</span></div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span>   <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* FileTableOffset = PrologueOffset + <span class="keyword">sizeof</span>(uint32_t)*2;</div>
+<div class="line"><a name="l00471"></a><span class="lineno">  471</span>   <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* FileTable = BufBeg + <a class="code" href="namespaceclang_1_1io.html#a2960e9d4bececac450ee1d805e0b2de5">ReadLE32</a>(FileTableOffset);</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>   <span class="keywordflow">if</span> (!(FileTable > BufBeg && FileTable < BufEnd)) {</div>
+<div class="line"><a name="l00474"></a><span class="lineno">  474</span>     Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::err_invalid_pth_file) << file;</div>
+<div class="line"><a name="l00475"></a><span class="lineno">  475</span>     <span class="keywordflow">return</span> 0; <span class="comment">// FIXME: Proper error diagnostic?</span></div>
+<div class="line"><a name="l00476"></a><span class="lineno">  476</span>   }</div>
+<div class="line"><a name="l00477"></a><span class="lineno">  477</span> </div>
+<div class="line"><a name="l00478"></a><span class="lineno">  478</span>   <a class="code" href="classllvm_1_1OwningPtr.html">OwningPtr<PTHFileLookup></a> FL(<a class="code" href="classclang_1_1OnDiskChainedHashTable.html#af18e83baa740388bbc8cb562ad575a9a">PTHFileLookup::Create</a>(FileTable, BufBeg));</div>
+<div class="line"><a name="l00479"></a><span class="lineno">  479</span> </div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span>   <span class="comment">// Warn if the PTH file is empty.  We still want to create a PTHManager</span></div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span>   <span class="comment">// as the PTH could be used with -include-pth.</span></div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span>   <span class="keywordflow">if</span> (FL->isEmpty())</div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span>     <a class="code" href="PTHLexer_8cpp.html#afe7fbbf73870c9327cb47dae5bb616b5">InvalidPTH</a>(Diags, <span class="stringliteral">"PTH file contains no cached source data"</span>);</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>   <span class="comment">// Get the location of the table mapping from persistent ids to the</span></div>
+<div class="line"><a name="l00486"></a><span class="lineno">  486</span>   <span class="comment">// data needed to reconstruct identifiers.</span></div>
+<div class="line"><a name="l00487"></a><span class="lineno">  487</span>   <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* IDTableOffset = PrologueOffset + <span class="keyword">sizeof</span>(uint32_t)*0;</div>
+<div class="line"><a name="l00488"></a><span class="lineno">  488</span>   <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* IData = BufBeg + <a class="code" href="namespaceclang_1_1io.html#a2960e9d4bececac450ee1d805e0b2de5">ReadLE32</a>(IDTableOffset);</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>   <span class="keywordflow">if</span> (!(IData >= BufBeg && IData < BufEnd)) {</div>
+<div class="line"><a name="l00491"></a><span class="lineno">  491</span>     Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::err_invalid_pth_file) << file;</div>
+<div class="line"><a name="l00492"></a><span class="lineno">  492</span>     <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span>   }</div>
+<div class="line"><a name="l00494"></a><span class="lineno">  494</span> </div>
+<div class="line"><a name="l00495"></a><span class="lineno">  495</span>   <span class="comment">// Get the location of the hashtable mapping between strings and</span></div>
+<div class="line"><a name="l00496"></a><span class="lineno">  496</span>   <span class="comment">// persistent IDs.</span></div>
+<div class="line"><a name="l00497"></a><span class="lineno">  497</span>   <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* StringIdTableOffset = PrologueOffset + <span class="keyword">sizeof</span>(uint32_t)*1;</div>
+<div class="line"><a name="l00498"></a><span class="lineno">  498</span>   <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* StringIdTable = BufBeg + <a class="code" href="namespaceclang_1_1io.html#a2960e9d4bececac450ee1d805e0b2de5">ReadLE32</a>(StringIdTableOffset);</div>
+<div class="line"><a name="l00499"></a><span class="lineno">  499</span>   <span class="keywordflow">if</span> (!(StringIdTable >= BufBeg && StringIdTable < BufEnd)) {</div>
+<div class="line"><a name="l00500"></a><span class="lineno">  500</span>     Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::err_invalid_pth_file) << file;</div>
+<div class="line"><a name="l00501"></a><span class="lineno">  501</span>     <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00502"></a><span class="lineno">  502</span>   }</div>
+<div class="line"><a name="l00503"></a><span class="lineno">  503</span> </div>
+<div class="line"><a name="l00504"></a><span class="lineno">  504</span>   <a class="code" href="classllvm_1_1OwningPtr.html">OwningPtr<PTHStringIdLookup></a> SL(<a class="code" href="classclang_1_1OnDiskChainedHashTable.html#af18e83baa740388bbc8cb562ad575a9a">PTHStringIdLookup::Create</a>(StringIdTable,</div>
+<div class="line"><a name="l00505"></a><span class="lineno">  505</span>                                                                   BufBeg));</div>
+<div class="line"><a name="l00506"></a><span class="lineno">  506</span> </div>
+<div class="line"><a name="l00507"></a><span class="lineno">  507</span>   <span class="comment">// Get the location of the spelling cache.</span></div>
+<div class="line"><a name="l00508"></a><span class="lineno">  508</span>   <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* spellingBaseOffset = PrologueOffset + <span class="keyword">sizeof</span>(uint32_t)*3;</div>
+<div class="line"><a name="l00509"></a><span class="lineno">  509</span>   <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* spellingBase = BufBeg + <a class="code" href="namespaceclang_1_1io.html#a2960e9d4bececac450ee1d805e0b2de5">ReadLE32</a>(spellingBaseOffset);</div>
+<div class="line"><a name="l00510"></a><span class="lineno">  510</span>   <span class="keywordflow">if</span> (!(spellingBase >= BufBeg && spellingBase < BufEnd)) {</div>
+<div class="line"><a name="l00511"></a><span class="lineno">  511</span>     Diags.<a class="code" href="classclang_1_1DiagnosticsEngine.html#a03686c59442babd725417ff740b397b4" title="Issue the message to the client.">Report</a>(diag::err_invalid_pth_file) << file;</div>
+<div class="line"><a name="l00512"></a><span class="lineno">  512</span>     <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00513"></a><span class="lineno">  513</span>   }</div>
+<div class="line"><a name="l00514"></a><span class="lineno">  514</span> </div>
+<div class="line"><a name="l00515"></a><span class="lineno">  515</span>   <span class="comment">// Get the number of IdentifierInfos and pre-allocate the identifier cache.</span></div>
+<div class="line"><a name="l00516"></a><span class="lineno">  516</span>   uint32_t NumIds = <a class="code" href="namespaceclang_1_1io.html#a2960e9d4bececac450ee1d805e0b2de5">ReadLE32</a>(IData);</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="comment">// Pre-allocate the persistent ID -> IdentifierInfo* cache.  We use calloc()</span></div>
+<div class="line"><a name="l00519"></a><span class="lineno">  519</span>   <span class="comment">// so that we in the best case only zero out memory once when the OS returns</span></div>
+<div class="line"><a name="l00520"></a><span class="lineno">  520</span>   <span class="comment">// us new pages.</span></div>
+<div class="line"><a name="l00521"></a><span class="lineno">  521</span>   <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a>** PerIDCache = 0;</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>   <span class="keywordflow">if</span> (NumIds) {</div>
+<div class="line"><a name="l00524"></a><span class="lineno">  524</span>     PerIDCache = (<a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a>**)calloc(NumIds, <span class="keyword">sizeof</span>(*PerIDCache));</div>
+<div class="line"><a name="l00525"></a><span class="lineno">  525</span>     <span class="keywordflow">if</span> (!PerIDCache) {</div>
+<div class="line"><a name="l00526"></a><span class="lineno">  526</span>       <a class="code" href="PTHLexer_8cpp.html#afe7fbbf73870c9327cb47dae5bb616b5">InvalidPTH</a>(Diags, <span class="stringliteral">"Could not allocate memory for processing PTH file"</span>);</div>
+<div class="line"><a name="l00527"></a><span class="lineno">  527</span>       <span class="keywordflow">return</span> 0;</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>   }</div>
+<div class="line"><a name="l00530"></a><span class="lineno">  530</span> </div>
+<div class="line"><a name="l00531"></a><span class="lineno">  531</span>   <span class="comment">// Compute the address of the original source file.</span></div>
+<div class="line"><a name="l00532"></a><span class="lineno">  532</span>   <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* originalSourceBase = PrologueOffset + <span class="keyword">sizeof</span>(uint32_t)*4;</div>
+<div class="line"><a name="l00533"></a><span class="lineno">  533</span>   <span class="keywordtype">unsigned</span> len = <a class="code" href="namespaceclang_1_1io.html#ac4ebead773acf47c91d23289c243054f">ReadUnalignedLE16</a>(originalSourceBase);</div>
+<div class="line"><a name="l00534"></a><span class="lineno">  534</span>   <span class="keywordflow">if</span> (!len) originalSourceBase = 0;</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>   <span class="comment">// Create the new PTHManager.</span></div>
+<div class="line"><a name="l00537"></a><span class="lineno">  537</span>   <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="classclang_1_1PTHManager.html">PTHManager</a>(File.take(), FL.take(), IData, PerIDCache,</div>
+<div class="line"><a name="l00538"></a><span class="lineno">  538</span>                         SL.take(), NumIds, spellingBase,</div>
+<div class="line"><a name="l00539"></a><span class="lineno">  539</span>                         (<span class="keyword">const</span> <span class="keywordtype">char</span>*) originalSourceBase);</div>
+<div class="line"><a name="l00540"></a><span class="lineno">  540</span> }</div>
+<div class="line"><a name="l00541"></a><span class="lineno">  541</span> </div>
+<div class="line"><a name="l00542"></a><span class="lineno">  542</span> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a>* PTHManager::LazilyCreateIdentifierInfo(<span class="keywordtype">unsigned</span> PersistentID) {</div>
+<div class="line"><a name="l00543"></a><span class="lineno">  543</span>   <span class="comment">// Look in the PTH file for the string data for the IdentifierInfo object.</span></div>
+<div class="line"><a name="l00544"></a><span class="lineno">  544</span>   <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* TableEntry = IdDataTable + <span class="keyword">sizeof</span>(uint32_t)*PersistentID;</div>
+<div class="line"><a name="l00545"></a><span class="lineno">  545</span>   <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* IDData =</div>
+<div class="line"><a name="l00546"></a><span class="lineno">  546</span>     (<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>*)Buf->getBufferStart() + <a class="code" href="namespaceclang_1_1io.html#a2960e9d4bececac450ee1d805e0b2de5">ReadLE32</a>(TableEntry);</div>
+<div class="line"><a name="l00547"></a><span class="lineno">  547</span>   assert(IDData < (<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>*)Buf->getBufferEnd());</div>
+<div class="line"><a name="l00548"></a><span class="lineno">  548</span> </div>
+<div class="line"><a name="l00549"></a><span class="lineno">  549</span>   <span class="comment">// Allocate the object.</span></div>
+<div class="line"><a name="l00550"></a><span class="lineno">  550</span>   std::pair<IdentifierInfo,const unsigned char*> *Mem =</div>
+<div class="line"><a name="l00551"></a><span class="lineno">  551</span>     Alloc.Allocate<std::pair<IdentifierInfo,const unsigned char*> >();</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>   Mem->second = IDData;</div>
+<div class="line"><a name="l00554"></a><span class="lineno">  554</span>   assert(IDData[0] != <span class="charliteral">'\0'</span>);</div>
+<div class="line"><a name="l00555"></a><span class="lineno">  555</span>   <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *II = <span class="keyword">new</span> ((<span class="keywordtype">void</span>*) Mem) <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a>();</div>
+<div class="line"><a name="l00556"></a><span class="lineno">  556</span> </div>
+<div class="line"><a name="l00557"></a><span class="lineno">  557</span>   <span class="comment">// Store the new IdentifierInfo in the cache.</span></div>
+<div class="line"><a name="l00558"></a><span class="lineno">  558</span>   PerIDCache[PersistentID] = II;</div>
+<div class="line"><a name="l00559"></a><span class="lineno">  559</span>   assert(II-><a class="code" href="classclang_1_1IdentifierInfo.html#ae69779507a5e059eecf91dcfcee5d958" title="Return the beginning of the actual null-terminated string for this identifier.">getNameStart</a>() && II-><a class="code" href="classclang_1_1IdentifierInfo.html#ae69779507a5e059eecf91dcfcee5d958" title="Return the beginning of the actual null-terminated string for this identifier.">getNameStart</a>()[0] != <span class="charliteral">'\0'</span>);</div>
+<div class="line"><a name="l00560"></a><span class="lineno">  560</span>   <span class="keywordflow">return</span> II;</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"><a class="code" href="classclang_1_1PTHManager.html#aab8085be0d44cc16f319655321689860">  563</a></span> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a>* <a class="code" href="classclang_1_1PTHManager.html#aab8085be0d44cc16f319655321689860">PTHManager::get</a>(StringRef Name) {</div>
+<div class="line"><a name="l00564"></a><span class="lineno">  564</span>   <a class="code" href="classclang_1_1OnDiskChainedHashTable.html">PTHStringIdLookup</a>& SL = *((<a class="code" href="classclang_1_1OnDiskChainedHashTable.html">PTHStringIdLookup</a>*)StringIdLookup);</div>
+<div class="line"><a name="l00565"></a><span class="lineno">  565</span>   <span class="comment">// Double check our assumption that the last character isn't '\0'.</span></div>
+<div class="line"><a name="l00566"></a><span class="lineno">  566</span>   assert(Name.empty() || Name.back() != <span class="charliteral">'\0'</span>);</div>
+<div class="line"><a name="l00567"></a><span class="lineno">  567</span>   <a class="code" href="classclang_1_1OnDiskChainedHashTable_1_1iterator.html">PTHStringIdLookup::iterator</a> I = SL.<a class="code" href="classclang_1_1OnDiskChainedHashTable.html#ad3ac7a66bbf1aa535d84050d6f45b619">find</a>(std::make_pair(Name.data(),</div>
+<div class="line"><a name="l00568"></a><span class="lineno">  568</span>                                                          Name.size()));</div>
+<div class="line"><a name="l00569"></a><span class="lineno">  569</span>   <span class="keywordflow">if</span> (I == SL.<a class="code" href="classclang_1_1OnDiskChainedHashTable.html#a5c81d6847bc1a46c650e5b733bd64dbd">end</a>()) <span class="comment">// No identifier found?</span></div>
+<div class="line"><a name="l00570"></a><span class="lineno">  570</span>     <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00571"></a><span class="lineno">  571</span> </div>
+<div class="line"><a name="l00572"></a><span class="lineno">  572</span>   <span class="comment">// Match found.  Return the identifier!</span></div>
+<div class="line"><a name="l00573"></a><span class="lineno">  573</span>   assert(*I > 0);</div>
+<div class="line"><a name="l00574"></a><span class="lineno">  574</span>   <span class="keywordflow">return</span> GetIdentifierInfo(*I-1);</div>
+<div class="line"><a name="l00575"></a><span class="lineno">  575</span> }</div>
+<div class="line"><a name="l00576"></a><span class="lineno">  576</span> </div>
+<div class="line"><a name="l00577"></a><span class="lineno"><a class="code" href="classclang_1_1PTHManager.html#adff4180dc5ab4d12e01ec87de5a5bdbb">  577</a></span> <a class="code" href="classclang_1_1PTHLexer.html">PTHLexer</a> *<a class="code" href="classclang_1_1PTHManager.html#adff4180dc5ab4d12e01ec87de5a5bdbb">PTHManager::CreateLexer</a>(<a class="code" href="classclang_1_1FileID.html" title="An opaque identifier used by SourceManager which refers to a source file (MemoryBuffer) along with it...">FileID</a> FID) {</div>
+<div class="line"><a name="l00578"></a><span class="lineno">  578</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a> *FE = PP-><a class="code" href="classclang_1_1Preprocessor.html#afca276c0a87d413e51e8848edf8f911b">getSourceManager</a>().<a class="code" href="classclang_1_1SourceManager.html#a89a4d1fa8ccc458bce84b0d72b4545db" title="Returns the FileEntry record for the provided FileID.">getFileEntryForID</a>(FID);</div>
+<div class="line"><a name="l00579"></a><span class="lineno">  579</span>   <span class="keywordflow">if</span> (!FE)</div>
+<div class="line"><a name="l00580"></a><span class="lineno">  580</span>     <span class="keywordflow">return</span> 0;</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="comment">// Lookup the FileEntry object in our file lookup data structure.  It will</span></div>
+<div class="line"><a name="l00583"></a><span class="lineno">  583</span>   <span class="comment">// return a variant that indicates whether or not there is an offset within</span></div>
+<div class="line"><a name="l00584"></a><span class="lineno">  584</span>   <span class="comment">// the PTH file that contains cached tokens.</span></div>
+<div class="line"><a name="l00585"></a><span class="lineno">  585</span>   <a class="code" href="classclang_1_1OnDiskChainedHashTable.html">PTHFileLookup</a>& PFL = *((<a class="code" href="classclang_1_1OnDiskChainedHashTable.html">PTHFileLookup</a>*)FileLookup);</div>
+<div class="line"><a name="l00586"></a><span class="lineno">  586</span>   <a class="code" href="classclang_1_1OnDiskChainedHashTable_1_1iterator.html">PTHFileLookup::iterator</a> I = PFL.<a class="code" href="classclang_1_1OnDiskChainedHashTable.html#ad3ac7a66bbf1aa535d84050d6f45b619">find</a>(FE);</div>
+<div class="line"><a name="l00587"></a><span class="lineno">  587</span> </div>
+<div class="line"><a name="l00588"></a><span class="lineno">  588</span>   <span class="keywordflow">if</span> (I == PFL.<a class="code" href="classclang_1_1OnDiskChainedHashTable.html#a5c81d6847bc1a46c650e5b733bd64dbd">end</a>()) <span class="comment">// No tokens available?</span></div>
+<div class="line"><a name="l00589"></a><span class="lineno">  589</span>     <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00590"></a><span class="lineno">  590</span> </div>
+<div class="line"><a name="l00591"></a><span class="lineno">  591</span>   <span class="keyword">const</span> PTHFileData& <a class="code" href="structclang_1_1FileData.html">FileData</a> = *I;</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>   <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *BufStart = (<span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *)Buf->getBufferStart();</div>
+<div class="line"><a name="l00594"></a><span class="lineno">  594</span>   <span class="comment">// Compute the offset of the token data within the buffer.</span></div>
+<div class="line"><a name="l00595"></a><span class="lineno">  595</span>   <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* <a class="code" href="ASTWriter_8cpp.html#a5c6341076bde2012a21db25f4e2e3792">data</a> = BufStart + FileData.getTokenOffset();</div>
+<div class="line"><a name="l00596"></a><span class="lineno">  596</span> </div>
+<div class="line"><a name="l00597"></a><span class="lineno">  597</span>   <span class="comment">// Get the location of pp-conditional table.</span></div>
+<div class="line"><a name="l00598"></a><span class="lineno">  598</span>   <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* ppcond = BufStart + FileData.getPPCondOffset();</div>
+<div class="line"><a name="l00599"></a><span class="lineno">  599</span>   uint32_t Len = <a class="code" href="namespaceclang_1_1io.html#a2960e9d4bececac450ee1d805e0b2de5">ReadLE32</a>(ppcond);</div>
+<div class="line"><a name="l00600"></a><span class="lineno">  600</span>   <span class="keywordflow">if</span> (Len == 0) ppcond = 0;</div>
+<div class="line"><a name="l00601"></a><span class="lineno">  601</span> </div>
+<div class="line"><a name="l00602"></a><span class="lineno">  602</span>   assert(PP && <span class="stringliteral">"No preprocessor set yet!"</span>);</div>
+<div class="line"><a name="l00603"></a><span class="lineno">  603</span>   <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="classclang_1_1PTHManager.html#aa5a2a9a246b5b11b0b74ac158843885f">PTHLexer</a>(*PP, FID, data, ppcond, *<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00604"></a><span class="lineno">  604</span> }</div>
+<div class="line"><a name="l00605"></a><span class="lineno">  605</span> </div>
+<div class="line"><a name="l00606"></a><span class="lineno">  606</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00607"></a><span class="lineno">  607</span> <span class="comment">// 'stat' caching.</span></div>
+<div class="line"><a name="l00608"></a><span class="lineno">  608</span> <span class="comment">//===----------------------------------------------------------------------===//</span></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> <span class="keyword">namespace </span>{</div>
+<div class="line"><a name="l00611"></a><span class="lineno">  611</span> <span class="keyword">class </span>PTHStatData {</div>
+<div class="line"><a name="l00612"></a><span class="lineno">  612</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00613"></a><span class="lineno">  613</span>   <span class="keyword">const</span> <span class="keywordtype">bool</span> HasData;</div>
+<div class="line"><a name="l00614"></a><span class="lineno">  614</span>   uint64_t Size;</div>
+<div class="line"><a name="l00615"></a><span class="lineno">  615</span>   time_t ModTime;</div>
+<div class="line"><a name="l00616"></a><span class="lineno">  616</span>   llvm::sys::fs::UniqueID UniqueID;</div>
+<div class="line"><a name="l00617"></a><span class="lineno">  617</span>   <span class="keywordtype">bool</span> IsDirectory;</div>
+<div class="line"><a name="l00618"></a><span class="lineno">  618</span> </div>
+<div class="line"><a name="l00619"></a><span class="lineno">  619</span>   PTHStatData(uint64_t Size, time_t ModTime, llvm::sys::fs::UniqueID UniqueID,</div>
+<div class="line"><a name="l00620"></a><span class="lineno">  620</span>               <span class="keywordtype">bool</span> IsDirectory)</div>
+<div class="line"><a name="l00621"></a><span class="lineno">  621</span>       : HasData(<a class="code" href="stdbool_8h.html#a41f9c5fb8b08eb5dc3edce4dcb37fee7">true</a>), Size(Size), ModTime(ModTime), UniqueID(UniqueID),</div>
+<div class="line"><a name="l00622"></a><span class="lineno">  622</span>         IsDirectory(IsDirectory) {}</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>   PTHStatData() : HasData(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>) {}</div>
+<div class="line"><a name="l00625"></a><span class="lineno">  625</span> };</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> <span class="keyword">class </span>PTHStatLookupTrait : <span class="keyword">public</span> PTHFileLookupCommonTrait {</div>
+<div class="line"><a name="l00628"></a><span class="lineno">  628</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00629"></a><span class="lineno">  629</span>   <span class="keyword">typedef</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* external_key_type;  <span class="comment">// const char*</span></div>
+<div class="line"><a name="l00630"></a><span class="lineno">  630</span>   <span class="keyword">typedef</span> PTHStatData data_type;</div>
+<div class="line"><a name="l00631"></a><span class="lineno">  631</span> </div>
+<div class="line"><a name="l00632"></a><span class="lineno">  632</span>   <span class="keyword">static</span> internal_key_type GetInternalKey(<span class="keyword">const</span> <span class="keywordtype">char</span> *path) {</div>
+<div class="line"><a name="l00633"></a><span class="lineno">  633</span>     <span class="comment">// The key 'kind' doesn't matter here because it is ignored in EqualKey.</span></div>
+<div class="line"><a name="l00634"></a><span class="lineno">  634</span>     <span class="keywordflow">return</span> std::make_pair((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>) 0x0, path);</div>
+<div class="line"><a name="l00635"></a><span class="lineno">  635</span>   }</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>   <span class="keyword">static</span> <span class="keywordtype">bool</span> EqualKey(internal_key_type a, internal_key_type b) {</div>
+<div class="line"><a name="l00638"></a><span class="lineno">  638</span>     <span class="comment">// When doing 'stat' lookups we don't care about the kind of 'a' and 'b',</span></div>
+<div class="line"><a name="l00639"></a><span class="lineno">  639</span>     <span class="comment">// just the paths.</span></div>
+<div class="line"><a name="l00640"></a><span class="lineno">  640</span>     <span class="keywordflow">return</span> strcmp(a.second, b.second) == 0;</div>
+<div class="line"><a name="l00641"></a><span class="lineno">  641</span>   }</div>
+<div class="line"><a name="l00642"></a><span class="lineno">  642</span> </div>
+<div class="line"><a name="l00643"></a><span class="lineno">  643</span>   <span class="keyword">static</span> data_type ReadData(<span class="keyword">const</span> internal_key_type& k, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* d,</div>
+<div class="line"><a name="l00644"></a><span class="lineno">  644</span>                             <span class="keywordtype">unsigned</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="keywordflow">if</span> (k.first <span class="comment">/* File or Directory */</span>) {</div>
+<div class="line"><a name="l00647"></a><span class="lineno">  647</span>       <span class="keywordtype">bool</span> IsDirectory = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00648"></a><span class="lineno">  648</span>       <span class="keywordflow">if</span> (k.first == 0x1 <span class="comment">/* File */</span>) {</div>
+<div class="line"><a name="l00649"></a><span class="lineno">  649</span>         IsDirectory = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00650"></a><span class="lineno">  650</span>         d += 4 * 2; <span class="comment">// Skip the first 2 words.</span></div>
+<div class="line"><a name="l00651"></a><span class="lineno">  651</span>       }</div>
+<div class="line"><a name="l00652"></a><span class="lineno">  652</span> </div>
+<div class="line"><a name="l00653"></a><span class="lineno">  653</span>       uint64_t File = <a class="code" href="namespaceclang_1_1io.html#a31f0e42c297008bc83161cc68967c9e7">ReadUnalignedLE64</a>(d);</div>
+<div class="line"><a name="l00654"></a><span class="lineno">  654</span>       uint64_t Device = <a class="code" href="namespaceclang_1_1io.html#a31f0e42c297008bc83161cc68967c9e7">ReadUnalignedLE64</a>(d);</div>
+<div class="line"><a name="l00655"></a><span class="lineno">  655</span>       llvm::sys::fs::UniqueID UniqueID(File, Device);</div>
+<div class="line"><a name="l00656"></a><span class="lineno">  656</span>       time_t ModTime = <a class="code" href="namespaceclang_1_1io.html#a31f0e42c297008bc83161cc68967c9e7">ReadUnalignedLE64</a>(d);</div>
+<div class="line"><a name="l00657"></a><span class="lineno">  657</span>       uint64_t Size = <a class="code" href="namespaceclang_1_1io.html#a31f0e42c297008bc83161cc68967c9e7">ReadUnalignedLE64</a>(d);</div>
+<div class="line"><a name="l00658"></a><span class="lineno">  658</span>       <span class="keywordflow">return</span> data_type(Size, ModTime, UniqueID, IsDirectory);</div>
+<div class="line"><a name="l00659"></a><span class="lineno">  659</span>     }</div>
+<div class="line"><a name="l00660"></a><span class="lineno">  660</span> </div>
+<div class="line"><a name="l00661"></a><span class="lineno">  661</span>     <span class="comment">// Negative stat.  Don't read anything.</span></div>
+<div class="line"><a name="l00662"></a><span class="lineno">  662</span>     <span class="keywordflow">return</span> data_type();</div>
+<div class="line"><a name="l00663"></a><span class="lineno">  663</span>   }</div>
+<div class="line"><a name="l00664"></a><span class="lineno">  664</span> };</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> <span class="keyword">class </span>PTHStatCache : <span class="keyword">public</span> <a class="code" href="classclang_1_1FileSystemStatCache.html" title="Abstract interface for introducing a FileManager cache for 'stat' system calls, which is used by prec...">FileSystemStatCache</a> {</div>
+<div class="line"><a name="l00667"></a><span class="lineno">  667</span>   <span class="keyword">typedef</span> <a class="code" href="classclang_1_1OnDiskChainedHashTable.html">OnDiskChainedHashTable<PTHStatLookupTrait></a> CacheTy;</div>
+<div class="line"><a name="l00668"></a><span class="lineno">  668</span>   CacheTy <a class="code" href="Type_8cpp.html#ac329dd2e158025c8d6c0bd0d88d845c3">Cache</a>;</div>
+<div class="line"><a name="l00669"></a><span class="lineno">  669</span> </div>
+<div class="line"><a name="l00670"></a><span class="lineno">  670</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00671"></a><span class="lineno">  671</span>   PTHStatCache(<a class="code" href="classclang_1_1OnDiskChainedHashTable.html">PTHFileLookup</a> &FL) :</div>
+<div class="line"><a name="l00672"></a><span class="lineno">  672</span>     <a class="code" href="classclang_1_1TypePropertyCache.html">Cache</a>(FL.getNumBuckets(), FL.getNumEntries(), FL.getBuckets(),</div>
+<div class="line"><a name="l00673"></a><span class="lineno">  673</span>           FL.getBase()) {}</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>   ~PTHStatCache() {}</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>   <a class="code" href="classclang_1_1LookupResult.html" title="Represents the results of name lookup.">LookupResult</a> getStat(<span class="keyword">const</span> <span class="keywordtype">char</span> *Path, <a class="code" href="structclang_1_1FileData.html">FileData</a> &Data, <span class="keywordtype">bool</span> isFile,</div>
+<div class="line"><a name="l00678"></a><span class="lineno">  678</span>                        <span class="keywordtype">int</span> *FileDescriptor) {</div>
+<div class="line"><a name="l00679"></a><span class="lineno">  679</span>     <span class="comment">// Do the lookup for the file's data in the PTH file.</span></div>
+<div class="line"><a name="l00680"></a><span class="lineno">  680</span>     CacheTy::iterator I = <a class="code" href="classclang_1_1TypePropertyCache.html">Cache</a>.find(Path);</div>
+<div class="line"><a name="l00681"></a><span class="lineno">  681</span> </div>
+<div class="line"><a name="l00682"></a><span class="lineno">  682</span>     <span class="comment">// If we don't get a hit in the PTH file just forward to 'stat'.</span></div>
+<div class="line"><a name="l00683"></a><span class="lineno">  683</span>     <span class="keywordflow">if</span> (I == <a class="code" href="classclang_1_1TypePropertyCache.html">Cache</a>.end())</div>
+<div class="line"><a name="l00684"></a><span class="lineno">  684</span>       <span class="keywordflow">return</span> statChained(Path, Data, isFile, FileDescriptor);</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>     <span class="keyword">const</span> PTHStatData &D = *I;</div>
+<div class="line"><a name="l00687"></a><span class="lineno">  687</span> </div>
+<div class="line"><a name="l00688"></a><span class="lineno">  688</span>     <span class="keywordflow">if</span> (!D.HasData)</div>
+<div class="line"><a name="l00689"></a><span class="lineno">  689</span>       <span class="keywordflow">return</span> CacheMissing;</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>     Data.<a class="code" href="structclang_1_1FileData.html#a87a0455abc21dbbd6f7b5a107e3ed357">Size</a> = D.Size;</div>
+<div class="line"><a name="l00692"></a><span class="lineno">  692</span>     Data.<a class="code" href="structclang_1_1FileData.html#ae8fff96b53145306b60317a9d97469db">ModTime</a> = D.ModTime;</div>
+<div class="line"><a name="l00693"></a><span class="lineno">  693</span>     Data.<a class="code" href="structclang_1_1FileData.html#a6f2f7531dfbb6c663815b784701cfc18">UniqueID</a> = D.UniqueID;</div>
+<div class="line"><a name="l00694"></a><span class="lineno">  694</span>     Data.<a class="code" href="structclang_1_1FileData.html#a07710448fecef08ed14f0d897be6b3d8">IsDirectory</a> = D.IsDirectory;</div>
+<div class="line"><a name="l00695"></a><span class="lineno">  695</span>     Data.<a class="code" href="structclang_1_1FileData.html#a94fed4950d824ff952ac7ad5445360cc">IsNamedPipe</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00696"></a><span class="lineno">  696</span>     Data.<a class="code" href="structclang_1_1FileData.html#a55d931c4f6e41897dbbead938a350900">InPCH</a> = <span class="keyword">true</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">  698</span>     <span class="keywordflow">return</span> CacheExists;</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> };</div>
+<div class="line"><a name="l00701"></a><span class="lineno">  701</span> } <span class="comment">// end anonymous namespace</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"><a class="code" href="classclang_1_1PTHManager.html#a4fd655511b173cdc6af3a52880c4aa5d">  703</a></span> <a class="code" href="classclang_1_1FileSystemStatCache.html" title="Abstract interface for introducing a FileManager cache for 'stat' system calls, which is used by prec...">FileSystemStatCache</a> *<a class="code" href="classclang_1_1PTHManager.html#a4fd655511b173cdc6af3a52880c4aa5d">PTHManager::createStatCache</a>() {</div>
+<div class="line"><a name="l00704"></a><span class="lineno">  704</span>   <span class="keywordflow">return</span> <span class="keyword">new</span> PTHStatCache(*((<a class="code" href="classclang_1_1OnDiskChainedHashTable.html">PTHFileLookup</a>*) FileLookup));</div>
+<div class="line"><a name="l00705"></a><span class="lineno">  705</span> }</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:53 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/PTHLexer_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PTHLexer_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PTHLexer_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PTHLexer_8d_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,337 @@
+<!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: PTHLexer.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_925be8e1c75f746b0aee1084b3b1a980.html">Lex</a></li><li class="navelem"><a class="el" href="dir_c266f83cbdf5b0cb8b651438a3cfe616.html">Release+Asserts</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">PTHLexer.d</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="PTHLexer_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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Release+Asserts/PTHLexer.o \</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Release+Asserts/PTHLexer.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>  PTHLexer.cpp \</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PTHLexer.h \</div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PreprocessorLexer.h \</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/MultipleIncludeOpt.h \</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/SourceLocation.h \</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/LLVM.h \</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>  /home/tstellar/llvm/include/llvm/Support/Casting.h \</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>  /home/tstellar/llvm/include/llvm/Support/type_traits.h \</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>  /home/tstellar/llvm/include/llvm/Support/DataTypes.h \</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>  /home/tstellar/llvm/include/llvm/ADT/None.h \</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>  /home/tstellar/llvm/include/llvm/Support/Compiler.h \</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>  /home/tstellar/llvm/include/llvm/Config/llvm-config.h \</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>  /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h \</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../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="l00017"></a><span class="lineno">   17</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/OperatorKinds.h \</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/OperatorKinds.def \</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/TemplateKinds.h \</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/TokenKinds.h \</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/TokenKinds.def \</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>  /home/tstellar/llvm/include/llvm/ADT/SmallVector.h \</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>  /home/tstellar/llvm/include/llvm/Support/AlignOf.h \</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>  /home/tstellar/llvm/include/llvm/Support/MathExtras.h \</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>  /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h \</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/FileManager.h \</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/FileSystemOptions.h \</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMap.h \</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h \</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>  /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h \</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>  /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h \</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>  /home/tstellar/llvm/include/llvm/ADT/StringMap.h \</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>  /home/tstellar/llvm/include/llvm/ADT/StringRef.h \</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>  /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h \</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>  /home/tstellar/llvm/include/llvm/Support/FileSystem.h \</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>  /home/tstellar/llvm/include/llvm/ADT/SmallString.h \</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>  /home/tstellar/llvm/include/llvm/ADT/Twine.h \</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>  /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h \</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>  /home/tstellar/llvm/include/llvm/Support/TimeValue.h \</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>  /home/tstellar/llvm/include/llvm/Support/system_error.h \</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/FileSystemStatCache.h \</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/IdentifierTable.h \</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/OnDiskHashTable.h \</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>  /home/tstellar/llvm/include/llvm/Support/Host.h \</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>  /home/tstellar/llvm/include/llvm/Support/raw_ostream.h \</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/LexDiagnostic.h \</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Diagnostic.h \</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticIDs.h \</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticCommonKinds.inc \</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticOptions.h \</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticOptions.def \</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>  /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h \</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticLexKinds.inc \</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PTHManager.h \</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/LangOptions.h \</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/CommentOptions.h \</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/ObjCRuntime.h \</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/VersionTuple.h \</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>  /home/tstellar/llvm/include/llvm/ADT/Optional.h \</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>  /home/tstellar/llvm/include/llvm/ADT/Triple.h \</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../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/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../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="l00063"></a><span class="lineno">   63</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Sanitizers.def \</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/LangOptions.def \</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/OpenCLExtensions.def \</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Preprocessor.h \</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Builtins.h \</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Builtins.def \</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Lexer.h \</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/MacroInfo.h \</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleMap.h \</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Module.h \</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>  /home/tstellar/llvm/include/llvm/ADT/DenseSet.h \</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>  /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h \</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>  /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h \</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>  /home/tstellar/llvm/include/llvm/ADT/SetVector.h \</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>  /home/tstellar/llvm/include/llvm/ADT/SmallSet.h \</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>  /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.h \</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/SourceManager.h \</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>  /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h \</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>  /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h \</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>  /home/tstellar/llvm/include/llvm-c/Core.h \</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PPCallbacks.h \</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/DirectoryLookup.h \</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleLoader.h \</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Pragma.h \</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>  /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/TokenLexer.h \</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>  /home/tstellar/llvm/include/llvm/ADT/StringExtras.h</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span> </div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PTHLexer.h:</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span> </div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PreprocessorLexer.h:</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span> </div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/MultipleIncludeOpt.h:</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span> </div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/SourceLocation.h:</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> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/LLVM.h:</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span> </div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span> /home/tstellar/llvm/include/llvm/Support/Casting.h:</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span> </div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span> /home/tstellar/llvm/include/llvm/Support/type_traits.h:</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> /home/tstellar/llvm/include/llvm/Support/DataTypes.h:</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span> </div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span> /home/tstellar/llvm/include/llvm/ADT/None.h:</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span> </div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span> /home/tstellar/llvm/include/llvm/Support/Compiler.h:</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span> </div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span> /home/tstellar/llvm/include/llvm/Config/llvm-config.h:</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> /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h:</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span> </div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../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="l00115"></a><span class="lineno">  115</span> </div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/OperatorKinds.h:</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> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/OperatorKinds.def:</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> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/TemplateKinds.h:</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span> </div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/TokenKinds.h:</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span> </div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/TokenKinds.def:</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span> </div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span> /home/tstellar/llvm/include/llvm/ADT/SmallVector.h:</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span> </div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span> /home/tstellar/llvm/include/llvm/Support/AlignOf.h:</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span> </div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span> /home/tstellar/llvm/include/llvm/Support/MathExtras.h:</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span> </div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span> /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h:</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span> </div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/FileManager.h:</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span> </div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/FileSystemOptions.h:</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span> </div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span> /home/tstellar/llvm/include/llvm/ADT/DenseMap.h:</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span> </div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span> /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h:</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span> </div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span> /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h:</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span> </div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span> /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h:</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span> </div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span> /home/tstellar/llvm/include/llvm/ADT/StringMap.h:</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span> </div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span> /home/tstellar/llvm/include/llvm/ADT/StringRef.h:</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span> </div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span> /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h:</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span> </div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span> /home/tstellar/llvm/include/llvm/Support/FileSystem.h:</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span> </div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span> /home/tstellar/llvm/include/llvm/ADT/SmallString.h:</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span> </div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span> /home/tstellar/llvm/include/llvm/ADT/Twine.h:</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span> </div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span> /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h:</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span> </div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span> /home/tstellar/llvm/include/llvm/Support/TimeValue.h:</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span> </div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span> /home/tstellar/llvm/include/llvm/Support/system_error.h:</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span> </div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/FileSystemStatCache.h:</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span> </div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/IdentifierTable.h:</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span> </div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/OnDiskHashTable.h:</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span> </div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span> /home/tstellar/llvm/include/llvm/Support/Host.h:</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span> </div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span> /home/tstellar/llvm/include/llvm/Support/raw_ostream.h:</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span> </div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/LexDiagnostic.h:</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span> </div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Diagnostic.h:</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span> </div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticIDs.h:</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span> </div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticCommonKinds.inc:</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span> </div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticOptions.h:</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span> </div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticOptions.def:</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span> </div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span> /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h:</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span> </div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticLexKinds.inc:</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span> </div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PTHManager.h:</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span> </div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/LangOptions.h:</div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span> </div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/CommentOptions.h:</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span> </div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/ObjCRuntime.h:</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span> </div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/VersionTuple.h:</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span> </div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span> /home/tstellar/llvm/include/llvm/ADT/Optional.h:</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span> </div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span> /home/tstellar/llvm/include/llvm/ADT/Triple.h:</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span> </div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../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="l00205"></a><span class="lineno">  205</span> </div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/<a class="code" href="namespaceclang.html#a78aadfeaf316ded55fdd2d1a9c8815b6" title="Describes the different kinds of linkage (C++ [basic.link], C99 6.2.2) that an entity may have...">Linkage</a>.h:</div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span> </div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Sanitizers.def:</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span> </div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/LangOptions.def:</div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span> </div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/OpenCLExtensions.def:</div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span> </div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Preprocessor.h:</div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span> </div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Builtins.h:</div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span> </div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Builtins.def:</div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span> </div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Lexer.h:</div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span> </div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/MacroInfo.h:</div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span> </div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleMap.h:</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span> </div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Module.h:</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span> </div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span> /home/tstellar/llvm/include/llvm/ADT/DenseSet.h:</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span> </div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span> /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h:</div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span> </div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span> /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h:</div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span> </div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span> /home/tstellar/llvm/include/llvm/ADT/SetVector.h:</div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span> </div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span> /home/tstellar/llvm/include/llvm/ADT/SmallSet.h:</div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span> </div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span> /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.h:</div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span> </div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/SourceManager.h:</div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span> </div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span> /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h:</div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span> </div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span> /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h:</div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span> </div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span> /home/tstellar/llvm/include/llvm-c/Core.h:</div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span> </div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PPCallbacks.h:</div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span> </div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/DirectoryLookup.h:</div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span> </div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleLoader.h:</div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span> </div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Pragma.h:</div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span> </div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/TokenLexer.h:</div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span> </div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span> /home/tstellar/llvm/include/llvm/ADT/StringExtras.h:</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:53 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/PTHLexer_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PTHLexer_8h_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PTHLexer_8h_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PTHLexer_8h_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,184 @@
+<!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: PTHLexer.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_3e61bbac0c8515a3c083eb51d03eb390.html">include</a></li><li class="navelem"><a class="el" href="dir_ee4f288247dc2d9ccd0382aea6916312.html">clang</a></li><li class="navelem"><a class="el" href="dir_49bfb562b5f2c4dac4f33842ea680dda.html">Lex</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">PTHLexer.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="PTHLexer_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> <span class="comment">//===--- PTHLexer.h - Lexer based on Pre-tokenized input --------*- C++ -*-===//</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">//                     The LLVM Compiler Infrastructure</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment">// This file is distributed under the University of Illinois Open Source</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">// License. See LICENSE.TXT for details.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span> <span class="comment">// This file defines the PTHLexer interface.</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> </div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> <span class="preprocessor">#ifndef LLVM_CLANG_PTHLEXER_H</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> <span class="preprocessor"></span><span class="preprocessor">#define LLVM_CLANG_PTHLEXER_H</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="preprocessor">#include "<a class="code" href="PreprocessorLexer_8h.html" title="Defines the PreprocessorLexer interface.">clang/Lex/PreprocessorLexer.h</a>"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> </div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="keyword">namespace </span>clang {</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> </div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="keyword">class </span>PTHManager;</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="keyword">class </span>PTHSpellingSearch;</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> </div>
+<div class="line"><a name="l00024"></a><span class="lineno"><a class="code" href="classclang_1_1PTHLexer.html">   24</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1PTHLexer.html">PTHLexer</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1PreprocessorLexer.html">PreprocessorLexer</a> {</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</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> FileStartLoc;</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="comment"></span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="comment">  /// TokBuf - Buffer from PTH file containing raw token data.</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment"></span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* TokBuf;</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">  /// CurPtr - Pointer into current offset of the token buffer where</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span> <span class="comment">  ///  the next token will be read.</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span> <span class="comment"></span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* CurPtr;</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span> <span class="comment"></span></div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span> <span class="comment">  /// LastHashTokPtr - Pointer into TokBuf of the last processed '#'</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span> <span class="comment">  ///  token that appears at the start of a line.</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span> <span class="comment"></span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* LastHashTokPtr;</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span> <span class="comment"></span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span> <span class="comment">  /// PPCond - Pointer to a side table in the PTH file that provides a</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span> <span class="comment">  ///  a consise summary of the preproccessor conditional block structure.</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span> <span class="comment">  ///  This is used to perform quick skipping of conditional blocks.</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span> <span class="comment"></span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* PPCond;</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span> <span class="comment"></span></div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span> <span class="comment">  /// CurPPCondPtr - Pointer inside PPCond that refers to the next entry</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span> <span class="comment">  ///  to process when doing quick skipping of preprocessor blocks.</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span> <span class="comment"></span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* CurPPCondPtr;</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span> </div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>   <a class="code" href="classclang_1_1PTHLexer.html">PTHLexer</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1PTHLexer.html">PTHLexer</a> &) LLVM_DELETED_FUNCTION;</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>   <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classclang_1_1PTHLexer.html">PTHLexer</a> &) LLVM_DELETED_FUNCTION;</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span> <span class="comment"></span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span> <span class="comment">  /// ReadToken - Used by PTHLexer to read tokens TokBuf.</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span> <span class="comment"></span>  <span class="keywordtype">void</span> ReadToken(<a class="code" href="classclang_1_1Token.html">Token</a>& T);</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>   </div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>   <span class="keywordtype">bool</span> LexEndOfFile(<a class="code" href="classclang_1_1Token.html">Token</a> &Result);</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span> <span class="comment"></span></div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span> <span class="comment">  /// PTHMgr - The PTHManager object that created this PTHLexer.</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span> <span class="comment"></span>  <a class="code" href="classclang_1_1PTHManager.html">PTHManager</a>& PTHMgr;</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span> </div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>   <a class="code" href="classclang_1_1Token.html">Token</a> EofToken;</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> <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00061"></a><span class="lineno"><a class="code" href="classclang_1_1PTHLexer.html#adc4f8aebf9c22b28a5abaa231737ec68">   61</a></span>   <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classclang_1_1PTHManager.html">PTHManager</a>;</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span> <span class="comment"></span></div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span> <span class="comment">  /// Create a PTHLexer for the specified token stream.</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span> <span class="comment"></span>  <a class="code" href="classclang_1_1PTHLexer.html">PTHLexer</a>(<a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a>& pp, <a class="code" href="classclang_1_1FileID.html" title="An opaque identifier used by SourceManager which refers to a source file (MemoryBuffer) along with it...">FileID</a> <a class="code" href="classclang_1_1PreprocessorLexer.html#af4c32e695548ed31f7b8e169aeae405a" title="The SourceManager FileID corresponding to the file being lexed.">FID</a>, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *D,</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>            <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* ppcond, <a class="code" href="classclang_1_1PTHManager.html">PTHManager</a> &PM);</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span> </div>
+<div class="line"><a name="l00068"></a><span class="lineno"><a class="code" href="classclang_1_1PTHLexer.html#ac5961cbcc4884654f15e9f7ded4e1a5c">   68</a></span>   <a class="code" href="classclang_1_1PTHLexer.html#ac5961cbcc4884654f15e9f7ded4e1a5c">~PTHLexer</a>() {}</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span> <span class="comment"></span></div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span> <span class="comment">  /// Lex - Return the next token.</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1PTHLexer.html#ae5785126b7f101295fa268b7bf3af362" title="Lex - Return the next token.">Lex</a>(<a class="code" href="classclang_1_1Token.html">Token</a> &Tok);</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span> </div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1PTHLexer.html#a438d9adc8ea8e63c2bb59a3a7f2e963e">getEOF</a>(<a class="code" href="classclang_1_1Token.html">Token</a> &Tok);</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span> <span class="comment"></span></div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span> <span class="comment">  /// DiscardToEndOfLine - Read the rest of the current preprocessor line as an</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span> <span class="comment">  /// uninterpreted string.  This switches the lexer out of directive mode.</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1PTHLexer.html#acf6408c138231e1715502b3ed42ecf8c">DiscardToEndOfLine</a>();</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span> <span class="comment"></span></div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span> <span class="comment">  /// isNextPPTokenLParen - Return 1 if the next unexpanded token will return a</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span> <span class="comment">  /// tok::l_paren token, 0 if it is something else and 2 if there are no more</span></div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span> <span class="comment">  /// tokens controlled by this lexer.</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno"><a class="code" href="classclang_1_1PTHLexer.html#a7621a0846409bfee0b1c02b2fe197f9b">   82</a></span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1PTHLexer.html#a7621a0846409bfee0b1c02b2fe197f9b">isNextPPTokenLParen</a>() {</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>     <span class="comment">// isNextPPTokenLParen is not on the hot path, and all we care about is</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>     <span class="comment">// whether or not we are at a token with kind tok::eof or tok::l_paren.</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>     <span class="comment">// Just read the first byte from the current token pointer to determine</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>     <span class="comment">// its kind.</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>     <a class="code" href="namespaceclang_1_1tok.html#aca39774690bea476816dc56565cb7cd5" title="Provides a simple uniform namespace for tokens from all C languages.">tok::TokenKind</a> x = (<a class="code" href="namespaceclang_1_1tok.html#aca39774690bea476816dc56565cb7cd5" title="Provides a simple uniform namespace for tokens from all C languages.">tok::TokenKind</a>)*CurPtr;</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>     <span class="keywordflow">return</span> x == <a class="code" href="namespaceclang_1_1comments_1_1tok.html#af269e1299a7e813dd4471ab24630e01aac4904dc9309fe9cf0fe76ff45d54f265">tok::eof</a> ? 2 : x == tok::l_paren;</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>   }</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span> <span class="comment"></span></div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span> <span class="comment">  /// IndirectLex - An indirect call to 'Lex' that can be invoked via</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span> <span class="comment">  ///  the PreprocessorLexer interface.</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno"><a class="code" href="classclang_1_1PTHLexer.html#aaf25dd23f45c313090a4d3b8ed8baa67">   93</a></span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1PTHLexer.html#aaf25dd23f45c313090a4d3b8ed8baa67">IndirectLex</a>(<a class="code" href="classclang_1_1Token.html">Token</a> &Result) { <a class="code" href="classclang_1_1PTHLexer.html#ae5785126b7f101295fa268b7bf3af362" title="Lex - Return the next token.">Lex</a>(Result); }</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span> <span class="comment"></span></div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span> <span class="comment">  /// getSourceLocation - Return a source location for the token in</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span> <span class="comment">  /// the current file.</span></div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span> <span class="comment"></span>  <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> <a class="code" href="classclang_1_1PTHLexer.html#a67f1a63266bc94c89c2c6005f494c6c9">getSourceLocation</a>();</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span> <span class="comment"></span></div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span> <span class="comment">  /// SkipBlock - Used by Preprocessor to skip the current conditional block.</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1PTHLexer.html#a1d3b17f8abf6b3f6846ffb64d8499c8a" title="SkipBlock - Used by Preprocessor to skip the current conditional block.">SkipBlock</a>();</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span> };</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span> </div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span> }  <span class="comment">// end namespace clang</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span> </div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span> <span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:53 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/PTHManager_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PTHManager_8h_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PTHManager_8h_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PTHManager_8h_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,218 @@
+<!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: PTHManager.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_3e61bbac0c8515a3c083eb51d03eb390.html">include</a></li><li class="navelem"><a class="el" href="dir_ee4f288247dc2d9ccd0382aea6916312.html">clang</a></li><li class="navelem"><a class="el" href="dir_49bfb562b5f2c4dac4f33842ea680dda.html">Lex</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">PTHManager.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="PTHManager_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> <span class="comment">//===--- PTHManager.h - Manager object for PTH processing -------*- C++ -*-===//</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">//                     The LLVM Compiler Infrastructure</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment">// This file is distributed under the University of Illinois Open Source</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">// License. See LICENSE.TXT for details.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span> <span class="comment">//  This file defines the PTHManager interface.</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> </div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> <span class="preprocessor">#ifndef LLVM_CLANG_PTHMANAGER_H</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> <span class="preprocessor"></span><span class="preprocessor">#define LLVM_CLANG_PTHMANAGER_H</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="preprocessor">#include "<a class="code" href="Diagnostic_8h.html" title="Defines the Diagnostic-related interfaces.">clang/Basic/Diagnostic.h</a>"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="preprocessor">#include "<a class="code" href="IdentifierTable_8h.html" title="Defines the clang::IdentifierInfo, clang::IdentifierTable, and clang::Selector interfaces.">clang/Basic/IdentifierTable.h</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="preprocessor">#include "<a class="code" href="LangOptions_8h.html" title="Defines the clang::LangOptions interface.">clang/Basic/LangOptions.h</a>"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="preprocessor">#include "<a class="code" href="PTHLexer_8h.html">clang/Lex/PTHLexer.h</a>"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="preprocessor">#include "llvm/ADT/DenseMap.h"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="preprocessor">#include "llvm/Support/Allocator.h"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="preprocessor">#include <string></span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> </div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="keyword">namespace </span>llvm {</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>   <span class="keyword">class </span>MemoryBuffer;</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> }</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> <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">   31</span> <span class="keyword">class </span>FileEntry;</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span> <span class="keyword">class </span>PTHLexer;</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span> <span class="keyword">class </span>DiagnosticsEngine;</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span> <span class="keyword">class </span>FileSystemStatCache;</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span> </div>
+<div class="line"><a name="l00036"></a><span class="lineno"><a class="code" href="classclang_1_1PTHManager.html">   36</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1PTHManager.html">PTHManager</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1IdentifierInfoLookup.html" title="Provides lookups to, and iteration over, IdentiferInfo objects.">IdentifierInfoLookup</a> {</div>
+<div class="line"><a name="l00037"></a><span class="lineno"><a class="code" href="classclang_1_1PTHManager.html#aa5a2a9a246b5b11b0b74ac158843885f">   37</a></span>   <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classclang_1_1PTHLexer.html">PTHLexer</a>;</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span> <span class="comment"></span></div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span> <span class="comment">  /// The memory mapped PTH file.</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span> <span class="comment"></span>  <span class="keyword">const</span> llvm::MemoryBuffer* Buf;</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span> <span class="comment"></span></div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span> <span class="comment">  /// Alloc - Allocator used for IdentifierInfo objects.</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span> <span class="comment"></span>  llvm::BumpPtrAllocator Alloc;</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span> <span class="comment"></span></div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span> <span class="comment">  /// IdMap - A lazily generated cache mapping from persistent identifiers to</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span> <span class="comment">  ///  IdentifierInfo*.</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span> <span class="comment"></span>  <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a>** PerIDCache;</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span> <span class="comment"></span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span> <span class="comment">  /// FileLookup - Abstract data structure used for mapping between files</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span> <span class="comment">  ///  and token data in the PTH file.</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span> <span class="comment"></span>  <span class="keywordtype">void</span>* FileLookup;</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span> <span class="comment"></span></div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span> <span class="comment">  /// IdDataTable - Array representing the mapping from persistent IDs to the</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span> <span class="comment">  ///  data offset within the PTH file containing the information to</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span> <span class="comment">  ///  reconsitute an IdentifierInfo.</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span> <span class="comment"></span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> IdDataTable;</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span> <span class="comment"></span></div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span> <span class="comment">  /// SortedIdTable - Abstract data structure mapping from strings to</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span> <span class="comment">  ///  persistent IDs.  This is used by get().</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span> <span class="comment"></span>  <span class="keywordtype">void</span>* StringIdLookup;</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span> <span class="comment"></span></div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span> <span class="comment">  /// NumIds - The number of identifiers in the PTH file.</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span> <span class="comment"></span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> NumIds;</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span> <span class="comment"></span></div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span> <span class="comment">  /// PP - The Preprocessor object that will use this PTHManager to create</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span> <span class="comment">  ///  PTHLexer objects.</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span> <span class="comment"></span>  <a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a>* PP;</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span> <span class="comment"></span></div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span> <span class="comment">  /// SpellingBase - The base offset within the PTH memory buffer that</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span> <span class="comment">  ///  contains the cached spellings for literals.</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span> <span class="comment"></span>  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* <span class="keyword">const</span> SpellingBase;</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span> <span class="comment"></span></div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span> <span class="comment">  /// OriginalSourceFile - A null-terminated C-string that specifies the name</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span> <span class="comment">  ///  if the file (if any) that was to used to generate the PTH cache.</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span> <span class="comment"></span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* OriginalSourceFile;</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span> <span class="comment"></span></div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span> <span class="comment">  /// This constructor is intended to only be called by the static 'Create'</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span> <span class="comment">  /// method.</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span> <span class="comment"></span>  <a class="code" href="classclang_1_1PTHManager.html">PTHManager</a>(<span class="keyword">const</span> llvm::MemoryBuffer* buf, <span class="keywordtype">void</span>* fileLookup,</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>              <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* idDataTable, <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a>** perIDCache,</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>              <span class="keywordtype">void</span>* stringIdLookup, <span class="keywordtype">unsigned</span> numIds,</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>              <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* spellingBase, <span class="keyword">const</span> <span class="keywordtype">char</span> *originalSourceFile);</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span> </div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>   <a class="code" href="classclang_1_1PTHManager.html">PTHManager</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1PTHManager.html">PTHManager</a> &) LLVM_DELETED_FUNCTION;</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>   <span class="keywordtype">void</span> operator=(const <a class="code" href="classclang_1_1PTHManager.html">PTHManager</a> &) LLVM_DELETED_FUNCTION;</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span> <span class="comment"></span></div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span> <span class="comment">  /// getSpellingAtPTHOffset - Used by PTHLexer classes to get the cached</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span> <span class="comment">  ///  spelling for a token.</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> getSpellingAtPTHOffset(<span class="keywordtype">unsigned</span> PTHOffset, const <span class="keywordtype">char</span>*& Buffer);</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span> <span class="comment"></span></div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span> <span class="comment">  /// GetIdentifierInfo - Used to reconstruct IdentifierInfo objects from the</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span> <span class="comment">  ///  PTH file.</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span> <span class="comment"></span>  inline <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a>* GetIdentifierInfo(<span class="keywordtype">unsigned</span> PersistentID) {</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>     <span class="comment">// Check if the IdentifierInfo has already been resolved.</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a>* II = PerIDCache[PersistentID])</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>       <span class="keywordflow">return</span> II;</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>     <span class="keywordflow">return</span> LazilyCreateIdentifierInfo(PersistentID);</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>   }</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>   <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a>* LazilyCreateIdentifierInfo(<span class="keywordtype">unsigned</span> PersistentID);</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span> </div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>   <span class="comment">// The current PTH version.</span></div>
+<div class="line"><a name="l00103"></a><span class="lineno"><a class="code" href="classclang_1_1PTHManager.html#a0956cb7c37ec362b6a68768deb979727adc9a868c055ae6c4363eadbdf0a28309">  103</a></span>   <span class="keyword">enum</span> { <a class="code" href="classclang_1_1PTHManager.html#a0956cb7c37ec362b6a68768deb979727adc9a868c055ae6c4363eadbdf0a28309">Version</a> = 10 };</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span> </div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>   <a class="code" href="classclang_1_1PTHManager.html#a54c11352d709922605c77797e125d1ed">~PTHManager</a>();</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span> <span class="comment"></span></div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span> <span class="comment">  /// getOriginalSourceFile - Return the full path to the original header</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span> <span class="comment">  ///  file name that was used to generate the PTH cache.</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno"><a class="code" href="classclang_1_1PTHManager.html#a51c4892eaf5cbab904c096d45443ffae">  109</a></span> <span class="comment"></span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classclang_1_1PTHManager.html#a51c4892eaf5cbab904c096d45443ffae">getOriginalSourceFile</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>     <span class="keywordflow">return</span> OriginalSourceFile;</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="comment"></span></div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span> <span class="comment">  /// get - Return the identifier token info for the specified named identifier.</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span> <span class="comment">  ///  Unlike the version in IdentifierTable, this returns a pointer instead</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span> <span class="comment">  ///  of a reference.  If the pointer is NULL then the IdentifierInfo cannot</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span> <span class="comment">  ///  be found.</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span> <span class="comment"></span>  <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *<span class="keyword">get</span>(StringRef Name);</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span> <span class="comment"></span></div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span> <span class="comment">  /// Create - This method creates PTHManager objects.  The 'file' argument</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span> <span class="comment">  ///  is the name of the PTH file.  This method returns NULL upon failure.</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span> <span class="comment"></span>  <span class="keyword">static</span> <a class="code" href="classclang_1_1PTHManager.html">PTHManager</a> *<a class="code" href="classclang_1_1PTHManager.html#aed12bd5f5b8b0c49ed96012ce8743d0a">Create</a>(<span class="keyword">const</span> std::string& file, <a class="code" href="classclang_1_1DiagnosticsEngine.html" title="Concrete class used by the front-end to report problems and issues.">DiagnosticsEngine</a> &Diags);</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span> </div>
+<div class="line"><a name="l00123"></a><span class="lineno"><a class="code" href="classclang_1_1PTHManager.html#a59cd2e920a4018ec6046628dbb5977d4">  123</a></span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1PTHManager.html#a59cd2e920a4018ec6046628dbb5977d4">setPreprocessor</a>(<a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> *pp) { PP = pp; }</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span> <span class="comment"></span></div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span> <span class="comment">  /// CreateLexer - Return a PTHLexer that "lexes" the cached tokens for the</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span> <span class="comment">  ///  specified file.  This method returns NULL if no cached tokens exist.</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span> <span class="comment">  ///  It is the responsibility of the caller to 'delete' the returned object.</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span> <span class="comment"></span>  <a class="code" href="classclang_1_1PTHLexer.html">PTHLexer</a> *<a class="code" href="classclang_1_1PTHManager.html#adff4180dc5ab4d12e01ec87de5a5bdbb">CreateLexer</a>(<a class="code" href="classclang_1_1FileID.html" title="An opaque identifier used by SourceManager which refers to a source file (MemoryBuffer) along with it...">FileID</a> FID);</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span> <span class="comment"></span></div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span> <span class="comment">  /// createStatCache - Returns a FileSystemStatCache object for use with</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span> <span class="comment">  ///  FileManager objects.  These objects use the PTH data to speed up</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span> <span class="comment">  ///  calls to stat by memoizing their results from when the PTH file</span></div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span> <span class="comment">  ///  was generated.</span></div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span> <span class="comment"></span>  <a class="code" href="classclang_1_1FileSystemStatCache.html" title="Abstract interface for introducing a FileManager cache for 'stat' system calls, which is used by prec...">FileSystemStatCache</a> *<a class="code" href="classclang_1_1PTHManager.html#a4fd655511b173cdc6af3a52880c4aa5d">createStatCache</a>();</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span> };</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span> </div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span> }  <span class="comment">// end namespace clang</span></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="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:53 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/ParentMap_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ParentMap_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ParentMap_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ParentMap_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,277 @@
+<!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: ParentMap.cpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_87e2a7550f83bd8cbfc92736891468fc.html">lib</a></li><li class="navelem"><a class="el" href="dir_d3636efc55c6148efe36c59ffa01cb41.html">AST</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">ParentMap.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="ParentMap_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">//===--- ParentMap.cpp - Mappings from Stmts to their Parents ---*- C++ -*-===//</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">//                     The LLVM Compiler Infrastructure</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment">// This file is distributed under the University of Illinois Open Source</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">// License. See LICENSE.TXT for details.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span> <span class="comment">//  This file defines the ParentMap class.</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="ParentMap_8h.html">clang/AST/ParentMap.h</a>"</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> <span class="preprocessor">#include "<a class="code" href="Decl_8h.html">clang/AST/Decl.h</a>"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="preprocessor">#include "<a class="code" href="Expr_8h.html">clang/AST/Expr.h</a>"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="preprocessor">#include "<a class="code" href="ExprCXX_8h.html" title="Defines the clang::Expr interface and subclasses for C++ expressions.">clang/AST/ExprCXX.h</a>"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="preprocessor">#include "llvm/ADT/DenseMap.h"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> </div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="keyword">using namespace </span>clang;</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"><a class="code" href="ParentMap_8cpp.html#a9678f6646317beaaf39f5b01eba500a4">   22</a></span> <span class="keyword">typedef</span> llvm::DenseMap<Stmt*, Stmt*> <a class="code" href="ParentMap_8cpp.html#a9678f6646317beaaf39f5b01eba500a4">MapTy</a>;</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> </div>
+<div class="line"><a name="l00024"></a><span class="lineno"><a class="code" href="ParentMap_8cpp.html#a2d55fac23607db86a1e65d152eeffe3d">   24</a></span> <span class="keyword">enum</span> <a class="code" href="ParentMap_8cpp.html#a2d55fac23607db86a1e65d152eeffe3d">OpaqueValueMode</a> {</div>
+<div class="line"><a name="l00025"></a><span class="lineno"><a class="code" href="ParentMap_8cpp.html#a2d55fac23607db86a1e65d152eeffe3da8cf47ea1820be24b442bf19b98e5cf2b">   25</a></span>   <a class="code" href="ParentMap_8cpp.html#a2d55fac23607db86a1e65d152eeffe3da8cf47ea1820be24b442bf19b98e5cf2b">OV_Transparent</a>,</div>
+<div class="line"><a name="l00026"></a><span class="lineno"><a class="code" href="ParentMap_8cpp.html#a2d55fac23607db86a1e65d152eeffe3da7738408bd86618032dd0ce044164dff8">   26</a></span>   <a class="code" href="ParentMap_8cpp.html#a2d55fac23607db86a1e65d152eeffe3da7738408bd86618032dd0ce044164dff8">OV_Opaque</a></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> };</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"><a class="code" href="ParentMap_8cpp.html#a5b838f58b13603b6d34f35146d8cdb62">   29</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="ParentMap_8cpp.html#a5b838f58b13603b6d34f35146d8cdb62">BuildParentMap</a>(<a class="code" href="ParentMap_8cpp.html#a9678f6646317beaaf39f5b01eba500a4">MapTy</a>& M, <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="l00030"></a><span class="lineno">   30</span>                            <a class="code" href="ParentMap_8cpp.html#a2d55fac23607db86a1e65d152eeffe3d">OpaqueValueMode</a> OVMode = <a class="code" href="ParentMap_8cpp.html#a2d55fac23607db86a1e65d152eeffe3da8cf47ea1820be24b442bf19b98e5cf2b">OV_Transparent</a>) {</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span> </div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>   <span class="keywordflow">switch</span> (S-><a class="code" href="classclang_1_1Stmt.html#ac881a5954ff27d475c1bbab6f5d80150">getStmtClass</a>()) {</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>   <span class="keywordflow">case</span> Stmt::PseudoObjectExprClass: {</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>     assert(OVMode == <a class="code" href="ParentMap_8cpp.html#a2d55fac23607db86a1e65d152eeffe3da8cf47ea1820be24b442bf19b98e5cf2b">OV_Transparent</a> && <span class="stringliteral">"Should not appear alongside OVEs"</span>);</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>     <a class="code" href="classclang_1_1PseudoObjectExpr.html">PseudoObjectExpr</a> *POE = cast<PseudoObjectExpr>(<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>);</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span> </div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>     <span class="comment">// If we are rebuilding the map, clear out any existing state.</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>     <span class="keywordflow">if</span> (M[POE-><a class="code" href="classclang_1_1PseudoObjectExpr.html#a4412c8cea58337229e7b417fec34dbd4">getSyntacticForm</a>()])</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>       <span class="keywordflow">for</span> (<a class="code" href="structclang_1_1StmtRange.html">Stmt::child_range</a> I = S-><a class="code" href="classclang_1_1Stmt.html#a489148e5d234a5a7f00d8b02981bcee5">children</a>(); I; ++I)</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>         M[*I] = 0;</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span> </div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>     M[POE-><a class="code" href="classclang_1_1PseudoObjectExpr.html#a4412c8cea58337229e7b417fec34dbd4">getSyntacticForm</a>()] = <a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>;</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>     <a class="code" href="ParentMap_8cpp.html#a5b838f58b13603b6d34f35146d8cdb62">BuildParentMap</a>(M, POE-><a class="code" href="classclang_1_1PseudoObjectExpr.html#a4412c8cea58337229e7b417fec34dbd4">getSyntacticForm</a>(), <a class="code" href="ParentMap_8cpp.html#a2d55fac23607db86a1e65d152eeffe3da8cf47ea1820be24b442bf19b98e5cf2b">OV_Transparent</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="keywordflow">for</span> (<a class="code" href="classclang_1_1PseudoObjectExpr.html#a4bd00d7e7c8c3c9a2e09210993b3119b">PseudoObjectExpr::semantics_iterator</a> I = POE-><a class="code" href="classclang_1_1PseudoObjectExpr.html#a455ba1c6b83c289e35c00e77add3b4eb">semantics_begin</a>(),</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>                                               E = POE-><a class="code" href="classclang_1_1PseudoObjectExpr.html#a1976b4ff176afbd94577feb75431b1d5">semantics_end</a>();</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>          I != E; ++I) {</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>       M[*I] = <a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>;</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>       <a class="code" href="ParentMap_8cpp.html#a5b838f58b13603b6d34f35146d8cdb62">BuildParentMap</a>(M, *I, <a class="code" href="ParentMap_8cpp.html#a2d55fac23607db86a1e65d152eeffe3da7738408bd86618032dd0ce044164dff8">OV_Opaque</a>);</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="keywordflow">break</span>;</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>   }</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>   <span class="keywordflow">case</span> Stmt::BinaryConditionalOperatorClass: {</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>     assert(OVMode == <a class="code" href="ParentMap_8cpp.html#a2d55fac23607db86a1e65d152eeffe3da8cf47ea1820be24b442bf19b98e5cf2b">OV_Transparent</a> && <span class="stringliteral">"Should not appear alongside OVEs"</span>);</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>     <a class="code" href="classclang_1_1BinaryConditionalOperator.html">BinaryConditionalOperator</a> *BCO = cast<BinaryConditionalOperator>(<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>);</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span> </div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>     M[BCO-><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>()] = <a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>;</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>     <a class="code" href="ParentMap_8cpp.html#a5b838f58b13603b6d34f35146d8cdb62">BuildParentMap</a>(M, BCO-><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>(), <a class="code" href="ParentMap_8cpp.html#a2d55fac23607db86a1e65d152eeffe3da8cf47ea1820be24b442bf19b98e5cf2b">OV_Transparent</a>);</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>     M[BCO-><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>()] = <a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>;</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>     <a class="code" href="ParentMap_8cpp.html#a5b838f58b13603b6d34f35146d8cdb62">BuildParentMap</a>(M, BCO-><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>(), <a class="code" href="ParentMap_8cpp.html#a2d55fac23607db86a1e65d152eeffe3da7738408bd86618032dd0ce044164dff8">OV_Opaque</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>     M[BCO-><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>()] = <a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>;</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>     <a class="code" href="ParentMap_8cpp.html#a5b838f58b13603b6d34f35146d8cdb62">BuildParentMap</a>(M, BCO-><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>(), <a class="code" href="ParentMap_8cpp.html#a2d55fac23607db86a1e65d152eeffe3da7738408bd86618032dd0ce044164dff8">OV_Opaque</a>);</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span> </div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>     M[BCO-><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>()] = <a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>;</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>     <a class="code" href="ParentMap_8cpp.html#a5b838f58b13603b6d34f35146d8cdb62">BuildParentMap</a>(M, BCO-><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>(), <a class="code" href="ParentMap_8cpp.html#a2d55fac23607db86a1e65d152eeffe3da8cf47ea1820be24b442bf19b98e5cf2b">OV_Transparent</a>);</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span> </div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>     <span class="keywordflow">break</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="keywordflow">case</span> Stmt::OpaqueValueExprClass: {</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>     <span class="comment">// FIXME: This isn't correct; it assumes that multiple OpaqueValueExprs</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>     <span class="comment">// share a single source expression, but in the AST a single</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>     <span class="comment">// OpaqueValueExpr is shared among multiple parent expressions.</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>     <span class="comment">// The right thing to do is to give the OpaqueValueExpr its syntactic</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>     <span class="comment">// parent, then not reassign that when traversing the semantic expressions.</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>     <a class="code" href="classclang_1_1OpaqueValueExpr.html">OpaqueValueExpr</a> *OVE = cast<OpaqueValueExpr>(<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>);</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>     <span class="keywordflow">if</span> (OVMode == <a class="code" href="ParentMap_8cpp.html#a2d55fac23607db86a1e65d152eeffe3da8cf47ea1820be24b442bf19b98e5cf2b">OV_Transparent</a> || !M[OVE-><a class="code" href="classclang_1_1OpaqueValueExpr.html#ab105e60e67105a6ea713896d632e9670">getSourceExpr</a>()]) {</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>       M[OVE-><a class="code" href="classclang_1_1OpaqueValueExpr.html#ab105e60e67105a6ea713896d632e9670">getSourceExpr</a>()] = <a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>;</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>       <a class="code" href="ParentMap_8cpp.html#a5b838f58b13603b6d34f35146d8cdb62">BuildParentMap</a>(M, OVE-><a class="code" href="classclang_1_1OpaqueValueExpr.html#ab105e60e67105a6ea713896d632e9670">getSourceExpr</a>(), <a class="code" href="ParentMap_8cpp.html#a2d55fac23607db86a1e65d152eeffe3da8cf47ea1820be24b442bf19b98e5cf2b">OV_Transparent</a>);</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="keywordflow">break</span>;</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>   }</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>   <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>     <span class="keywordflow">for</span> (<a class="code" href="structclang_1_1StmtRange.html">Stmt::child_range</a> I = S-><a class="code" href="classclang_1_1Stmt.html#a489148e5d234a5a7f00d8b02981bcee5">children</a>(); I; ++I) {</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>       <span class="keywordflow">if</span> (*I) {</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>         M[*I] = <a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>;</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>         <a class="code" href="ParentMap_8cpp.html#a5b838f58b13603b6d34f35146d8cdb62">BuildParentMap</a>(M, *I, OVMode);</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>       }</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>     }</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>   }</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span> }</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span> </div>
+<div class="line"><a name="l00095"></a><span class="lineno"><a class="code" href="classclang_1_1ParentMap.html#ae9b6cfd90c2521a5ce7bcb3d33dee002">   95</a></span> <a class="code" href="classclang_1_1ParentMap.html#ae9b6cfd90c2521a5ce7bcb3d33dee002">ParentMap::ParentMap</a>(<a class="code" href="classclang_1_1Stmt.html">Stmt</a>* <a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>) : Impl(0) {</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>   <span class="keywordflow">if</span> (S) {</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>     <a class="code" href="ParentMap_8cpp.html#a9678f6646317beaaf39f5b01eba500a4">MapTy</a> *M = <span class="keyword">new</span> <a class="code" href="ParentMap_8cpp.html#a9678f6646317beaaf39f5b01eba500a4">MapTy</a>();</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>     <a class="code" href="ParentMap_8cpp.html#a5b838f58b13603b6d34f35146d8cdb62">BuildParentMap</a>(*M, S);</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>     Impl = M;</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>   }</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span> }</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span> </div>
+<div class="line"><a name="l00103"></a><span class="lineno"><a class="code" href="classclang_1_1ParentMap.html#a37d9546b9e4218084fb96e60d20b0e27">  103</a></span> <a class="code" href="classclang_1_1ParentMap.html#a37d9546b9e4218084fb96e60d20b0e27">ParentMap::~ParentMap</a>() {</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>   <span class="keyword">delete</span> (<a class="code" href="ParentMap_8cpp.html#a9678f6646317beaaf39f5b01eba500a4">MapTy</a>*) Impl;</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span> }</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span> </div>
+<div class="line"><a name="l00107"></a><span class="lineno"><a class="code" href="classclang_1_1ParentMap.html#a37f5a5eba0633972b341daf4d5938f75">  107</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ParentMap.html#a37f5a5eba0633972b341daf4d5938f75" title="Adds and/or updates the parent/child-relations of the complete stmt tree of S. All children of S incl...">ParentMap::addStmt</a>(<a class="code" href="classclang_1_1Stmt.html">Stmt</a>* <a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>) {</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>   <span class="keywordflow">if</span> (S) {</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>     <a class="code" href="ParentMap_8cpp.html#a5b838f58b13603b6d34f35146d8cdb62">BuildParentMap</a>(*(<a class="code" href="ParentMap_8cpp.html#a9678f6646317beaaf39f5b01eba500a4">MapTy</a>*) Impl, S);</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> </div>
+<div class="line"><a name="l00113"></a><span class="lineno"><a class="code" href="classclang_1_1ParentMap.html#a3fe7fc35bf69ec63f6f1258c1b9e5c9f">  113</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ParentMap.html#a3fe7fc35bf69ec63f6f1258c1b9e5c9f">ParentMap::setParent</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>, <span class="keyword">const</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *Parent) {</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>   assert(S);</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>   assert(Parent);</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>   <a class="code" href="ParentMap_8cpp.html#a9678f6646317beaaf39f5b01eba500a4">MapTy</a> *M = <span class="keyword">reinterpret_cast<</span><a class="code" href="ParentMap_8cpp.html#a9678f6646317beaaf39f5b01eba500a4">MapTy</a> *<span class="keyword">></span>(Impl);</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>   M->insert(std::make_pair(const_cast<Stmt *>(S), const_cast<Stmt *>(Parent)));</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span> }</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span> </div>
+<div class="line"><a name="l00120"></a><span class="lineno"><a class="code" href="classclang_1_1ParentMap.html#a54f199a219ffdf21cee2f782f88e03ca">  120</a></span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a>* <a class="code" href="classclang_1_1ParentMap.html#a54f199a219ffdf21cee2f782f88e03ca">ParentMap::getParent</a>(<a class="code" href="classclang_1_1Stmt.html">Stmt</a>* <a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>   <a class="code" href="ParentMap_8cpp.html#a9678f6646317beaaf39f5b01eba500a4">MapTy</a>* M = (<a class="code" href="ParentMap_8cpp.html#a9678f6646317beaaf39f5b01eba500a4">MapTy</a>*) Impl;</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>   MapTy::iterator I = M->find(S);</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>   <span class="keywordflow">return</span> I == M->end() ? 0 : I->second;</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span> }</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span> </div>
+<div class="line"><a name="l00126"></a><span class="lineno"><a class="code" href="classclang_1_1ParentMap.html#a5d61a895aceac28f6700b6b3e8a53c48">  126</a></span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *<a class="code" href="classclang_1_1ParentMap.html#a5d61a895aceac28f6700b6b3e8a53c48">ParentMap::getParentIgnoreParens</a>(<a class="code" href="classclang_1_1Stmt.html">Stmt</a> *<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>   <span class="keywordflow">do</span> { S = <a class="code" href="classclang_1_1ParentMap.html#a54f199a219ffdf21cee2f782f88e03ca">getParent</a>(S); } <span class="keywordflow">while</span> (S && isa<ParenExpr>(S));</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>   <span class="keywordflow">return</span> <a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>;</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span> }</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span> </div>
+<div class="line"><a name="l00131"></a><span class="lineno"><a class="code" href="classclang_1_1ParentMap.html#acf1f937e56ac02dbdee6e0dc483b2905">  131</a></span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *<a class="code" href="classclang_1_1ParentMap.html#acf1f937e56ac02dbdee6e0dc483b2905">ParentMap::getParentIgnoreParenCasts</a>(<a class="code" href="classclang_1_1Stmt.html">Stmt</a> *<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>   <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>     S = <a class="code" href="classclang_1_1ParentMap.html#a54f199a219ffdf21cee2f782f88e03ca">getParent</a>(S);</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>   <span class="keywordflow">while</span> (S && (isa<ParenExpr>(S) || isa<CastExpr>(S)));</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span> </div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>   <span class="keywordflow">return</span> <a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>;  </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> </div>
+<div class="line"><a name="l00140"></a><span class="lineno"><a class="code" href="classclang_1_1ParentMap.html#a11970f792fac40e01105edf97aa72c50">  140</a></span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *<a class="code" href="classclang_1_1ParentMap.html#a11970f792fac40e01105edf97aa72c50">ParentMap::getParentIgnoreParenImpCasts</a>(<a class="code" href="classclang_1_1Stmt.html">Stmt</a> *<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>   <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>     S = <a class="code" href="classclang_1_1ParentMap.html#a54f199a219ffdf21cee2f782f88e03ca">getParent</a>(S);</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>   } <span class="keywordflow">while</span> (S && isa<Expr>(S) && cast<Expr>(S)->IgnoreParenImpCasts() != S);</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="keywordflow">return</span> <a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>;</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span> }</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span> </div>
+<div class="line"><a name="l00148"></a><span class="lineno"><a class="code" href="classclang_1_1ParentMap.html#a3f9d14fec9c297a2ff9a97ffbb1aae87">  148</a></span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *<a class="code" href="classclang_1_1ParentMap.html#a3f9d14fec9c297a2ff9a97ffbb1aae87">ParentMap::getOuterParenParent</a>(<a class="code" href="classclang_1_1Stmt.html">Stmt</a> *<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>   <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *<a class="code" href="PPMacroExpansion_8cpp.html#a6a0f90793bb0a61bf701ad3cccc529cca05a296c2c11a24f2a5a52620d2dae620">Paren</a> = 0;</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>   <span class="keywordflow">while</span> (isa<ParenExpr>(S)) {</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>     Paren = <a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>;</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>     S = <a class="code" href="classclang_1_1ParentMap.html#a54f199a219ffdf21cee2f782f88e03ca">getParent</a>(S);</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="keywordflow">return</span> <a class="code" href="PPMacroExpansion_8cpp.html#a6a0f90793bb0a61bf701ad3cccc529cca05a296c2c11a24f2a5a52620d2dae620">Paren</a>;</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span> }</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span> </div>
+<div class="line"><a name="l00157"></a><span class="lineno"><a class="code" href="classclang_1_1ParentMap.html#adbbe716ad3d87b9d1e51caa5f9d487e9">  157</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ParentMap.html#adbbe716ad3d87b9d1e51caa5f9d487e9">ParentMap::isConsumedExpr</a>(<a class="code" href="classclang_1_1Expr.html">Expr</a>* E)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>   <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *<a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a> = <a class="code" href="classclang_1_1ParentMap.html#a54f199a219ffdf21cee2f782f88e03ca">getParent</a>(E);</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>   <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *DirectChild = E;</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span> </div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>   <span class="comment">// Ignore parents that don't guarantee consumption.</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>   <span class="keywordflow">while</span> (P && (isa<ParenExpr>(P) || isa<CastExpr>(P) ||</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>                isa<ExprWithCleanups>(P))) {</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>     DirectChild = <a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a>;</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>     P = <a class="code" href="classclang_1_1ParentMap.html#a54f199a219ffdf21cee2f782f88e03ca">getParent</a>(P);</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> </div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>   <span class="keywordflow">if</span> (!P)</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span> </div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>   <span class="keywordflow">switch</span> (P-><a class="code" href="classclang_1_1Stmt.html#ac881a5954ff27d475c1bbab6f5d80150">getStmtClass</a>()) {</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>     <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>       <span class="keywordflow">return</span> isa<Expr>(<a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a>);</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>     <span class="keywordflow">case</span> Stmt::DeclStmtClass:</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>       <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>     <span class="keywordflow">case</span> Stmt::BinaryOperatorClass: {</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>       <a class="code" href="classclang_1_1BinaryOperator.html" title="A builtin binary operation expression such as "x + y" or "x <= y".">BinaryOperator</a> *BE = cast<BinaryOperator>(<a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a>);</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>       <span class="comment">// If it is a comma, only the right side is consumed.</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>       <span class="comment">// If it isn't a comma, both sides are consumed.</span></div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>       <span class="keywordflow">return</span> BE-><a class="code" href="classclang_1_1BinaryOperator.html#a497174c5cc2816aa3a3f29e12dd93165">getOpcode</a>()!=<a class="code" href="namespaceclang.html#a443b552ee80020cfeb2b86c99e7f85e1ae3c9652c3c01080bd794e8e03988e278">BO_Comma</a> ||DirectChild==BE-><a class="code" href="classclang_1_1BinaryOperator.html#a1ab10aae0ffa01be5d1a979e6da285e6">getRHS</a>();</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>     }</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>     <span class="keywordflow">case</span> Stmt::ForStmtClass:</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>       <span class="keywordflow">return</span> DirectChild == cast<ForStmt>(<a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a>)->getCond();</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>     <span class="keywordflow">case</span> Stmt::WhileStmtClass:</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>       <span class="keywordflow">return</span> DirectChild == cast<WhileStmt>(<a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a>)->getCond();</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>     <span class="keywordflow">case</span> Stmt::DoStmtClass:</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>       <span class="keywordflow">return</span> DirectChild == cast<DoStmt>(<a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a>)->getCond();</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>     <span class="keywordflow">case</span> Stmt::IfStmtClass:</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>       <span class="keywordflow">return</span> DirectChild == cast<IfStmt>(<a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a>)->getCond();</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>     <span class="keywordflow">case</span> Stmt::IndirectGotoStmtClass:</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>       <span class="keywordflow">return</span> DirectChild == cast<IndirectGotoStmt>(<a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a>)->getTarget();</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>     <span class="keywordflow">case</span> Stmt::SwitchStmtClass:</div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span>       <span class="keywordflow">return</span> DirectChild == cast<SwitchStmt>(<a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a>)->getCond();</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>     <span class="keywordflow">case</span> Stmt::ReturnStmtClass:</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>       <span class="keywordflow">return</span> <span class="keyword">true</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">  197</span> }</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span> </div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:47 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/ParentMap_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ParentMap_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ParentMap_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ParentMap_8d_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,334 @@
+<!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: ParentMap.d Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_87e2a7550f83bd8cbfc92736891468fc.html">lib</a></li><li class="navelem"><a class="el" href="dir_d3636efc55c6148efe36c59ffa01cb41.html">AST</a></li><li class="navelem"><a class="el" href="dir_e796beea07674cb14e7827e2d3a82e85.html">Release+Asserts</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">ParentMap.d</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="ParentMap_8d.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> /home/tstellar/llvm/tools/clang/lib/AST/Release+Asserts/ParentMap.o \</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>  /home/tstellar/llvm/tools/clang/lib/AST/Release+Asserts/ParentMap.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>  ParentMap.cpp \</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/ParentMap.h \</div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/Decl.h \</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/APValue.h \</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../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/ADT/APFloat.h \</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>  /home/tstellar/llvm/include/llvm/ADT/APInt.h \</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>  /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h \</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>  /home/tstellar/llvm/include/llvm/ADT/SmallVector.h \</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>  /home/tstellar/llvm/include/llvm/Support/AlignOf.h \</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>  /home/tstellar/llvm/include/llvm/Support/Compiler.h \</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>  /home/tstellar/llvm/include/llvm/Config/llvm-config.h \</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>  /home/tstellar/llvm/include/llvm/Support/MathExtras.h \</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>  /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h \</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>  /home/tstellar/llvm/include/llvm/ADT/APSInt.h \</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>  /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h \</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>  /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h \</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>  /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h \</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclBase.h \</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/AttrIterator.h \</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclarationName.h \</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/IdentifierTable.h \</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/OperatorKinds.h \</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/OperatorKinds.def \</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/TokenKinds.h \</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/TokenKinds.def \</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>  /home/tstellar/llvm/include/llvm/ADT/SmallString.h \</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>  /home/tstellar/llvm/include/llvm/ADT/StringRef.h \</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>  /home/tstellar/llvm/include/llvm/ADT/StringMap.h \</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>  /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h \</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/PartialDiagnostic.h \</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/Diagnostic.h \</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/DiagnosticIDs.h \</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>  /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h \</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/DiagnosticCommonKinds.inc \</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/DiagnosticOptions.h \</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/DiagnosticOptions.def \</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/SourceLocation.h \</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMap.h \</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h \</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>  /home/tstellar/llvm/include/llvm/ADT/STLExtras.h \</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/<a class="code" href="namespaceclang.html#a78aadfeaf316ded55fdd2d1a9c8815b6" title="Describes the different kinds of linkage (C++ [basic.link], C99 6.2.2) that an entity may have...">Linkage</a>.h \</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/Specifiers.h \</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>  /home/tstellar/llvm/include/llvm/Support/PrettyStackTrace.h \</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclNodes.inc \</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/ExternalASTSource.h \</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/CharUnits.h \</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/Redeclarable.h \</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/Type.h \</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/NestedNameSpecifier.h \</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>  /home/tstellar/llvm/include/llvm/ADT/FoldingSet.h \</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/TemplateName.h \</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/<a class="code" href="namespaceclang.html#af8a91eed04532d5da41ef08e7c9c081e" title="The various types of exception specifications that exist in C++11.">ExceptionSpecificationType</a>.h \</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/<a class="code" href="namespaceclang.html#afbab15cd4aa598c4e6d9192f7ac4f102" title="Describes the different kinds of visibility that a declaration may have.">Visibility</a>.h \</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>  /home/tstellar/llvm/include/llvm/ADT/Optional.h \</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>  /home/tstellar/llvm/include/llvm/ADT/Twine.h \</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>  /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h \</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/TypeNodes.def \</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/BuiltinTypes.def \</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>  /home/tstellar/llvm/include/llvm/Support/raw_ostream.h \</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>  /home/tstellar/llvm/include/llvm/Support/FileSystem.h \</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>  /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h \</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>  /home/tstellar/llvm/include/llvm/Support/TimeValue.h \</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>  /home/tstellar/llvm/include/llvm/Support/system_error.h \</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/Expr.h \</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/ASTVector.h \</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclAccessPair.h \</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/OperationKinds.h \</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/Stmt.h \</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclGroup.h \</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/StmtIterator.h \</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/CapturedStmt.h \</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/StmtNodes.inc \</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/TemplateBase.h \</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/CharInfo.h \</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/TypeTraits.h \</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/Builtins.def \</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/ExprCXX.h \</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/UnresolvedSet.h \</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/ExpressionTraits.h \</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>  /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/Lambda.h</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> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/ParentMap.h:</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span> </div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/Decl.h:</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span> </div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/APValue.h:</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span> </div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/LLVM.h:</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> /home/tstellar/llvm/include/llvm/Support/Casting.h:</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span> </div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span> /home/tstellar/llvm/include/llvm/Support/type_traits.h:</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span> </div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span> /home/tstellar/llvm/include/llvm/Support/DataTypes.h:</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> /home/tstellar/llvm/include/llvm/ADT/None.h:</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span> </div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span> /home/tstellar/llvm/include/llvm/ADT/APFloat.h:</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span> </div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span> /home/tstellar/llvm/include/llvm/ADT/APInt.h:</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span> </div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span> /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h:</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> /home/tstellar/llvm/include/llvm/ADT/SmallVector.h:</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> /home/tstellar/llvm/include/llvm/Support/AlignOf.h:</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span> </div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span> /home/tstellar/llvm/include/llvm/Support/Compiler.h:</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> /home/tstellar/llvm/include/llvm/Config/llvm-config.h:</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span> </div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span> /home/tstellar/llvm/include/llvm/Support/MathExtras.h:</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> /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h:</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span> </div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span> /home/tstellar/llvm/include/llvm/ADT/APSInt.h:</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span> </div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span> /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h:</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span> </div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span> /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h:</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span> </div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span> /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h:</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> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclBase.h:</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span> </div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/AttrIterator.h:</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> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclarationName.h:</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span> </div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/IdentifierTable.h:</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> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/OperatorKinds.h:</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span> </div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/OperatorKinds.def:</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span> </div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/TokenKinds.h:</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> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/TokenKinds.def:</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span> </div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span> /home/tstellar/llvm/include/llvm/ADT/SmallString.h:</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span> </div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span> /home/tstellar/llvm/include/llvm/ADT/StringRef.h:</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span> </div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span> /home/tstellar/llvm/include/llvm/ADT/StringMap.h:</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> /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h:</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> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/PartialDiagnostic.h:</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span> </div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/Diagnostic.h:</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span> </div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/DiagnosticIDs.h:</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span> </div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span> /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h:</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> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/DiagnosticCommonKinds.inc:</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span> </div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/DiagnosticOptions.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/AST/../../include/clang/Basic/DiagnosticOptions.def:</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/AST/../../include/clang/Basic/SourceLocation.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/include/llvm/ADT/DenseMap.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/include/llvm/ADT/DenseMapInfo.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/ADT/STLExtras.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/tools/clang/lib/AST/../../include/clang/Basic/<a class="code" href="namespaceclang.html#a78aadfeaf316ded55fdd2d1a9c8815b6" title="Describes the different kinds of linkage (C++ [basic.link], C99 6.2.2) that an entity may have...">Linkage</a>.h:</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span> </div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/Specifiers.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/Support/PrettyStackTrace.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/tools/clang/lib/AST/../../include/clang/AST/DeclNodes.inc:</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/tools/clang/lib/AST/../../include/clang/AST/ExternalASTSource.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/tools/clang/lib/AST/../../include/clang/AST/CharUnits.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/AST/../../include/clang/AST/Redeclarable.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/AST/../../include/clang/AST/Type.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/tools/clang/lib/AST/../../include/clang/AST/NestedNameSpecifier.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/FoldingSet.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/tools/clang/lib/AST/../../include/clang/AST/TemplateName.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/tools/clang/lib/AST/../../include/clang/Basic/<a class="code" href="namespaceclang.html#af8a91eed04532d5da41ef08e7c9c081e" title="The various types of exception specifications that exist in C++11.">ExceptionSpecificationType</a>.h:</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span> </div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/<a class="code" href="namespaceclang.html#afbab15cd4aa598c4e6d9192f7ac4f102" title="Describes the different kinds of visibility that a declaration may have.">Visibility</a>.h:</div>
+<div class="line"><a name="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/ADT/Optional.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/ADT/Twine.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/Support/ErrorHandling.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/tools/clang/lib/AST/../../include/clang/AST/TypeNodes.def:</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/tools/clang/lib/AST/../../include/clang/AST/BuiltinTypes.def:</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/include/llvm/Support/raw_ostream.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/include/llvm/Support/FileSystem.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/include/llvm/ADT/OwningPtr.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/include/llvm/Support/TimeValue.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/include/llvm/Support/system_error.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/AST/../../include/clang/AST/Expr.h:</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/AST/../../include/clang/AST/ASTVector.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/AST/../../include/clang/AST/DeclAccessPair.h:</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/tools/clang/lib/AST/../../include/clang/AST/OperationKinds.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/tools/clang/lib/AST/../../include/clang/AST/Stmt.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/tools/clang/lib/AST/../../include/clang/AST/DeclGroup.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/tools/clang/lib/AST/../../include/clang/AST/StmtIterator.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/AST/../../include/clang/Basic/CapturedStmt.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/AST/../../include/clang/AST/StmtNodes.inc:</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/AST/../../include/clang/AST/TemplateBase.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/tools/clang/lib/AST/../../include/clang/Basic/CharInfo.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/AST/../../include/clang/Basic/TypeTraits.h:</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/AST/../../include/clang/Basic/Builtins.def:</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/AST/../../include/clang/AST/ExprCXX.h:</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/tools/clang/lib/AST/../../include/clang/AST/UnresolvedSet.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/tools/clang/lib/AST/../../include/clang/Basic/ExpressionTraits.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/tools/clang/lib/AST/../../include/clang/Basic/Lambda.h:</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:47 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/ParentMap_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ParentMap_8h_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ParentMap_8h_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ParentMap_8h_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,146 @@
+<!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: ParentMap.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_3e61bbac0c8515a3c083eb51d03eb390.html">include</a></li><li class="navelem"><a class="el" href="dir_ee4f288247dc2d9ccd0382aea6916312.html">clang</a></li><li class="navelem"><a class="el" href="dir_6152e82a4845f7e2a2888050f43c34d1.html">AST</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">ParentMap.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="ParentMap_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> <span class="comment">//===--- ParentMap.h - Mappings from Stmts to their Parents -----*- C++ -*-===//</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">//                     The LLVM Compiler Infrastructure</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment">// This file is distributed under the University of Illinois Open Source</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">// License. See LICENSE.TXT for details.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span> <span class="comment">//  This file defines the ParentMap class.</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> </div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> <span class="preprocessor">#ifndef LLVM_CLANG_PARENTMAP_H</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> <span class="preprocessor"></span><span class="preprocessor">#define LLVM_CLANG_PARENTMAP_H</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="keyword">namespace </span>clang {</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="keyword">class </span>Stmt;</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="keyword">class </span>Expr;</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> </div>
+<div class="line"><a name="l00021"></a><span class="lineno"><a class="code" href="classclang_1_1ParentMap.html">   21</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1ParentMap.html">ParentMap</a> {</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>   <span class="keywordtype">void</span>* Impl;</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>   <a class="code" href="classclang_1_1ParentMap.html#ae9b6cfd90c2521a5ce7bcb3d33dee002">ParentMap</a>(<a class="code" href="classclang_1_1Stmt.html">Stmt</a>* ASTRoot);</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>   <a class="code" href="classclang_1_1ParentMap.html#a37d9546b9e4218084fb96e60d20b0e27">~ParentMap</a>();</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="comment"></span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="comment">  /// \brief Adds and/or updates the parent/child-relations of the complete</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">  /// stmt tree of S. All children of S including indirect descendants are</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="comment">  /// visited and updated or inserted but not the parents of S.</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ParentMap.html#a37f5a5eba0633972b341daf4d5938f75" title="Adds and/or updates the parent/child-relations of the complete stmt tree of S. All children of S incl...">addStmt</a>(<a class="code" href="classclang_1_1Stmt.html">Stmt</a>* <a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>);</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span> <span class="comment"></span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span> <span class="comment">  /// Manually sets the parent of \p S to \p Parent.</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span> <span class="comment">  /// If \p S is already in the map, this method will update the mapping.</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ParentMap.html#a3fe7fc35bf69ec63f6f1258c1b9e5c9f">setParent</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *S, <span class="keyword">const</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *Parent);</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span> </div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>   <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *<a class="code" href="classclang_1_1ParentMap.html#a54f199a219ffdf21cee2f782f88e03ca">getParent</a>(<a class="code" href="classclang_1_1Stmt.html">Stmt</a>*) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>   <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *<a class="code" href="classclang_1_1ParentMap.html#a5d61a895aceac28f6700b6b3e8a53c48">getParentIgnoreParens</a>(<a class="code" href="classclang_1_1Stmt.html">Stmt</a> *) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>   <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *<a class="code" href="classclang_1_1ParentMap.html#acf1f937e56ac02dbdee6e0dc483b2905">getParentIgnoreParenCasts</a>(<a class="code" href="classclang_1_1Stmt.html">Stmt</a> *) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>   <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *<a class="code" href="classclang_1_1ParentMap.html#a11970f792fac40e01105edf97aa72c50">getParentIgnoreParenImpCasts</a>(<a class="code" href="classclang_1_1Stmt.html">Stmt</a> *) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>   <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *<a class="code" href="classclang_1_1ParentMap.html#a3f9d14fec9c297a2ff9a97ffbb1aae87">getOuterParenParent</a>(<a class="code" href="classclang_1_1Stmt.html">Stmt</a> *) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span> </div>
+<div class="line"><a name="l00043"></a><span class="lineno"><a class="code" href="classclang_1_1ParentMap.html#ac405a644694f225613fd1e57e18b8040">   43</a></span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *<a class="code" href="classclang_1_1ParentMap.html#ac405a644694f225613fd1e57e18b8040">getParent</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a>* S)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ParentMap.html#a54f199a219ffdf21cee2f782f88e03ca">getParent</a>(const_cast<Stmt*>(S));</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>   }</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span> </div>
+<div class="line"><a name="l00047"></a><span class="lineno"><a class="code" href="classclang_1_1ParentMap.html#a4d712c3acfc08f1d02f0d86e0212e01c">   47</a></span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *<a class="code" href="classclang_1_1ParentMap.html#a4d712c3acfc08f1d02f0d86e0212e01c">getParentIgnoreParens</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *S)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ParentMap.html#a5d61a895aceac28f6700b6b3e8a53c48">getParentIgnoreParens</a>(const_cast<Stmt*>(S));</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"><a class="code" href="classclang_1_1ParentMap.html#a61689234c52216ae0af40e56147605aa">   51</a></span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *<a class="code" href="classclang_1_1ParentMap.html#a61689234c52216ae0af40e56147605aa">getParentIgnoreParenCasts</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *S)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ParentMap.html#acf1f937e56ac02dbdee6e0dc483b2905">getParentIgnoreParenCasts</a>(const_cast<Stmt*>(S));</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>   }</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span> </div>
+<div class="line"><a name="l00055"></a><span class="lineno"><a class="code" href="classclang_1_1ParentMap.html#ac7578992535eb4e4c8bea8650b04736d">   55</a></span>   <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ParentMap.html#ac7578992535eb4e4c8bea8650b04736d">hasParent</a>(<a class="code" href="classclang_1_1Stmt.html">Stmt</a>* S)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ParentMap.html#a54f199a219ffdf21cee2f782f88e03ca">getParent</a>(S) != 0;</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>   }</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span> </div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>   <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ParentMap.html#adbbe716ad3d87b9d1e51caa5f9d487e9">isConsumedExpr</a>(<a class="code" href="classclang_1_1Expr.html">Expr</a> *E) <span class="keyword">const</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_1ParentMap.html#a8d4f7fcbd26886ed752db2063c40858a">   61</a></span>   <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ParentMap.html#a8d4f7fcbd26886ed752db2063c40858a">isConsumedExpr</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *E)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ParentMap.html#adbbe716ad3d87b9d1e51caa5f9d487e9">isConsumedExpr</a>(const_cast<Expr*>(E));</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>   }</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span> };</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span> </div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span> } <span class="comment">// end clang namespace</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span> <span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:47 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/ParseAST_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ParseAST_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ParseAST_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/ParseAST_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,243 @@
+<!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 Leve