[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/Pragma_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Pragma_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Pragma_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Pragma_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,1482 @@
+<!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: Pragma.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">Pragma.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="Pragma_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">//===--- Pragma.cpp - Pragma registration and handling --------------------===//</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 PragmaHandler/PragmaTable interfaces and implements</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="comment">// pragma related methods of the Preprocessor class.</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="Pragma_8h.html">clang/Lex/Pragma.h</a>"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</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="l00017"></a><span class="lineno">   17</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="l00018"></a><span class="lineno">   18</span> <span class="preprocessor">#include "<a class="code" href="HeaderSearch_8h.html">clang/Lex/HeaderSearch.h</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="preprocessor">#include "<a class="code" href="LexDiagnostic_8h.html">clang/Lex/LexDiagnostic.h</a>"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="preprocessor">#include "<a class="code" href="LiteralSupport_8h.html">clang/Lex/LiteralSupport.h</a>"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</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="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 "llvm/ADT/STLExtras.h"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="preprocessor">#include "llvm/ADT/StringSwitch.h"</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="preprocessor">#include "llvm/Support/CrashRecoveryContext.h"</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="preprocessor">#include "llvm/Support/ErrorHandling.h"</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="preprocessor">#include <algorithm></span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="keyword">using namespace </span>clang;</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="preprocessor">#include "llvm/Support/raw_ostream.h"</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span> </div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span> <span class="comment">// Out-of-line destructor to provide a home for the class.</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"><a class="code" href="classclang_1_1PragmaHandler.html#a7133a49ab64ae1acc207fee7667088dc">   33</a></span> <a class="code" href="classclang_1_1PragmaHandler.html#a7133a49ab64ae1acc207fee7667088dc">PragmaHandler::~PragmaHandler</a>() {</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> </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> <span class="comment">// EmptyPragmaHandler Implementation.</span></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> </div>
+<div class="line"><a name="l00040"></a><span class="lineno"><a class="code" href="classclang_1_1EmptyPragmaHandler.html#a7bf32698bc265f4e29f66cf737a5031e">   40</a></span> <a class="code" href="classclang_1_1EmptyPragmaHandler.html#a7bf32698bc265f4e29f66cf737a5031e">EmptyPragmaHandler::EmptyPragmaHandler</a>() {}</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span> </div>
+<div class="line"><a name="l00042"></a><span class="lineno"><a class="code" href="classclang_1_1EmptyPragmaHandler.html#a4ebbcea0cbb60527cfc7652afd7278bd">   42</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1EmptyPragmaHandler.html#a4ebbcea0cbb60527cfc7652afd7278bd">EmptyPragmaHandler::HandlePragma</a>(<a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP, </div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>                                       <a class="code" href="namespaceclang.html#abad0c9179d409d68fce8917ebd5276ed" title="Describes how the pragma was introduced, e.g., with #pragma, _Pragma, or __pragma.">PragmaIntroducerKind</a> Introducer,</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>                                       <a class="code" href="classclang_1_1Token.html">Token</a> &FirstToken) {}</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> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span> <span class="comment">// PragmaNamespace Implementation.</span></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> </div>
+<div class="line"><a name="l00050"></a><span class="lineno"><a class="code" href="classclang_1_1PragmaNamespace.html#a4148b1f21dd7469e0f74c727f2411a25">   50</a></span> <a class="code" href="classclang_1_1PragmaNamespace.html#a4148b1f21dd7469e0f74c727f2411a25">PragmaNamespace::~PragmaNamespace</a>() {</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>   <span class="keywordflow">for</span> (llvm::StringMap<PragmaHandler*>::iterator</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>          I = Handlers.begin(), E = Handlers.end(); I != E; ++I)</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>     <span class="keyword">delete</span> I->second;</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span> }</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span> <span class="comment"></span></div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span> <span class="comment">/// FindHandler - Check to see if there is already a handler for the</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span> <span class="comment">/// specified name.  If not, return the handler for the null identifier if it</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span> <span class="comment">/// exists, otherwise return null.  If IgnoreNull is true (the default) then</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span> <span class="comment">/// the null handler isn't returned on failure to match.</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"><a class="code" href="classclang_1_1PragmaNamespace.html#a7af0a145912714f18ad78ba146403893">   60</a></span> <span class="comment"></span><a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a> *<a class="code" href="classclang_1_1PragmaNamespace.html#a7af0a145912714f18ad78ba146403893">PragmaNamespace::FindHandler</a>(StringRef Name,</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>                                             <span class="keywordtype">bool</span> IgnoreNull)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a> *Handler = Handlers.lookup(Name))</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>     <span class="keywordflow">return</span> Handler;</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>   <span class="keywordflow">return</span> IgnoreNull ? 0 : Handlers.lookup(StringRef());</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span> }</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span> </div>
+<div class="line"><a name="l00067"></a><span class="lineno"><a class="code" href="classclang_1_1PragmaNamespace.html#a0599fb5c095626a167128eaee48d6282">   67</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1PragmaNamespace.html#a0599fb5c095626a167128eaee48d6282">PragmaNamespace::AddPragma</a>(<a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a> *Handler) {</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>   assert(!Handlers.lookup(Handler-><a class="code" href="classclang_1_1PragmaHandler.html#a514849d5710b59edf14834a6312303e5">getName</a>()) &&</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>          <span class="stringliteral">"A handler with this name is already registered in this namespace"</span>);</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>   llvm::StringMapEntry<PragmaHandler *> &Entry =</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>     Handlers.GetOrCreateValue(Handler-><a class="code" href="classclang_1_1PragmaHandler.html#a514849d5710b59edf14834a6312303e5">getName</a>());</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>   Entry.setValue(Handler);</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span> }</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span> </div>
+<div class="line"><a name="l00075"></a><span class="lineno"><a class="code" href="classclang_1_1PragmaNamespace.html#a75e12bc28dabe97a8954f5bebb656d59">   75</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1PragmaNamespace.html#a75e12bc28dabe97a8954f5bebb656d59">PragmaNamespace::RemovePragmaHandler</a>(<a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a> *Handler) {</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>   assert(Handlers.lookup(Handler-><a class="code" href="classclang_1_1PragmaHandler.html#a514849d5710b59edf14834a6312303e5">getName</a>()) &&</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>          <span class="stringliteral">"Handler not registered in this namespace"</span>);</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>   Handlers.erase(Handler-><a class="code" href="classclang_1_1PragmaHandler.html#a514849d5710b59edf14834a6312303e5">getName</a>());</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span> }</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span> </div>
+<div class="line"><a name="l00081"></a><span class="lineno"><a class="code" href="classclang_1_1PragmaNamespace.html#a85400685c7416df64b5809b1ac689bdb">   81</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1PragmaNamespace.html#a85400685c7416df64b5809b1ac689bdb">PragmaNamespace::HandlePragma</a>(<a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP, </div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>                                    <a class="code" href="namespaceclang.html#abad0c9179d409d68fce8917ebd5276ed" title="Describes how the pragma was introduced, e.g., with #pragma, _Pragma, or __pragma.">PragmaIntroducerKind</a> Introducer,</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>                                    <a class="code" href="classclang_1_1Token.html">Token</a> &Tok) {</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>   <span class="comment">// Read the 'namespace' that the directive is in, e.g. STDC.  Do not macro</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>   <span class="comment">// expand it, the user can have a STDC #define, that should not affect this.</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>   PP.<a class="code" href="classclang_1_1Preprocessor.html#aaaf1f5cefe79d0f9da0637c5a3d4e7dc">LexUnexpandedToken</a>(Tok);</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span> </div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>   <span class="comment">// Get the handler for this token.  If there is no handler, ignore the pragma.</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>   <a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a> *Handler</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>     = <a class="code" href="classclang_1_1PragmaNamespace.html#a7af0a145912714f18ad78ba146403893">FindHandler</a>(Tok.<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</a>() ? 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>()</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>                                           : StringRef(),</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>                   <span class="comment">/*IgnoreNull=*/</span><span class="keyword">false</span>);</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>   <span class="keywordflow">if</span> (Handler == 0) {</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::warn_pragma_ignored);</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>   }</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span> </div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>   <span class="comment">// Otherwise, pass it down.</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>   Handler-><a class="code" href="classclang_1_1PragmaHandler.html#a0a3aa2d8ee2401d02100e857670f31b0">HandlePragma</a>(PP, Introducer, Tok);</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> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span> <span class="comment">// Preprocessor Pragma Directive Handling.</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span> <span class="comment"></span></div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span> <span class="comment">/// HandlePragmaDirective - The "\#pragma" directive has been parsed.  Lex the</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span> <span class="comment">/// rest of the pragma, passing it to the registered pragma handlers.</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span> <span class="comment"></span><span class="keywordtype">void</span> Preprocessor::HandlePragmaDirective(<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> IntroducerLoc,</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>                                          <a class="code" href="namespaceclang.html#abad0c9179d409d68fce8917ebd5276ed" title="Describes how the pragma was introduced, e.g., with #pragma, _Pragma, or __pragma.">PragmaIntroducerKind</a> Introducer) {</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>   <span class="keywordflow">if</span> (Callbacks)</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>     Callbacks-><a class="code" href="classclang_1_1PPCallbacks.html#a0a2d7a72c62184b3cbde31fb62c6f2f7" title="Callback invoked when start reading any pragma directive.">PragmaDirective</a>(IntroducerLoc, Introducer);</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="keywordflow">if</span> (!PragmasEnabled)</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>     <span class="keywordflow">return</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>   ++NumPragma;</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span> </div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>   <span class="comment">// Invoke the first level of pragma handlers which reads the namespace id.</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>   <a class="code" href="classclang_1_1Token.html">Token</a> Tok;</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>   PragmaHandlers-><a class="code" href="classclang_1_1PragmaNamespace.html#a85400685c7416df64b5809b1ac689bdb">HandlePragma</a>(*<span class="keyword">this</span>, Introducer, Tok);</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span> </div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>   <span class="comment">// If the pragma handler didn't read the rest of the line, consume it now.</span></div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>   <span class="keywordflow">if</span> ((CurTokenLexer && CurTokenLexer->isParsingPreprocessorDirective()) </div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>    || (CurPPLexer && CurPPLexer-><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="l00125"></a><span class="lineno">  125</span>     <a class="code" href="classclang_1_1Preprocessor.html#a6b3db8d7e3a4ccee19feae41bec91c70" title="Read and discard all tokens remaining on the current line until the tok::eod token is found...">DiscardUntilEndOfDirective</a>();</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span> }</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span> </div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span> <span class="keyword">namespace </span>{<span class="comment"></span></div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span> <span class="comment">/// \brief Helper class for \see Preprocessor::Handle_Pragma.</span></div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span> <span class="comment"></span><span class="keyword">class </span>LexingFor_PragmaRAII {</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>   <a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP;</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>   <span class="keywordtype">bool</span> InMacroArgPreExpansion;</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>   <span class="keywordtype">bool</span> Failed;</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>   <a class="code" href="classclang_1_1Token.html">Token</a> &OutTok;</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>   <a class="code" href="classclang_1_1Token.html">Token</a> PragmaTok;</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="keyword">public</span>:</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>   LexingFor_PragmaRAII(<a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP, <span class="keywordtype">bool</span> InMacroArgPreExpansion,</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>                        <a class="code" href="classclang_1_1Token.html">Token</a> &Tok)</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>     : PP(PP), InMacroArgPreExpansion(InMacroArgPreExpansion),</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>       Failed(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>), OutTok(Tok) {</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>     <span class="keywordflow">if</span> (InMacroArgPreExpansion) {</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>       PragmaTok = OutTok;</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>       PP.<a class="code" href="classclang_1_1Preprocessor.html#afa4aaaefb369a00dd40bd059e7fda084">EnableBacktrackAtThisPos</a>();</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>     }</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>   }</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span> </div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>   ~LexingFor_PragmaRAII() {</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>     <span class="keywordflow">if</span> (InMacroArgPreExpansion) {</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>       <span class="keywordflow">if</span> (Failed) {</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>         PP.<a class="code" href="classclang_1_1Preprocessor.html#a3ec89a4f3d7146a57f0c4ea07b0da2c9" title="CommitBacktrackedTokens - Disable the last EnableBacktrackAtThisPos call.">CommitBacktrackedTokens</a>();</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>       } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>         PP.<a class="code" href="classclang_1_1Preprocessor.html#a5e263c94b29afb735c7f6491a37e1b46">Backtrack</a>();</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>         OutTok = PragmaTok;</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">  157</span>   }</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span> </div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>   <span class="keywordtype">void</span> failed() {</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>     Failed = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>   }</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span> };</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span> }</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span> <span class="comment"></span></div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span> <span class="comment">/// Handle_Pragma - Read a _Pragma directive, slice it up, process it, then</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span> <span class="comment">/// return the first token after the directive.  The _Pragma token has just</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span> <span class="comment">/// been read into 'Tok'.</span></div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span> <span class="comment"></span><span class="keywordtype">void</span> Preprocessor::Handle_Pragma(<a class="code" href="classclang_1_1Token.html">Token</a> &Tok) {</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>   <span class="comment">// This works differently if we are pre-expanding a macro argument.</span></div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>   <span class="comment">// In that case we don't actually "activate" the pragma now, we only lex it</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>   <span class="comment">// until we are sure it is lexically correct and then we backtrack so that</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>   <span class="comment">// we activate the pragma whenever we encounter the tokens again in the token</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>   <span class="comment">// stream. This ensures that we will activate it in the correct location</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>   <span class="comment">// or that we will ignore it if it never enters the token stream, e.g:</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>   <span class="comment">//</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>   <span class="comment">//     #define EMPTY(x)</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>   <span class="comment">//     #define INACTIVE(x) EMPTY(x)</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>   <span class="comment">//     INACTIVE(_Pragma("clang diagnostic ignored \"-Wconversion\""))</span></div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span> </div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>   LexingFor_PragmaRAII _PragmaLexing(*<span class="keyword">this</span>, InMacroArgPreExpansion, Tok);</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span> </div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>   <span class="comment">// Remember the pragma token location.</span></div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</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> PragmaLoc = 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="l00185"></a><span class="lineno">  185</span> </div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>   <span class="comment">// Read the '('.</span></div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>   <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="l00188"></a><span class="lineno">  188</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="l00189"></a><span class="lineno">  189</span>     <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(PragmaLoc, diag::err__Pragma_malformed);</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>     <span class="keywordflow">return</span> _PragmaLexing.failed();</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>   }</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span> </div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span>   <span class="comment">// Read the '"..."'.</span></div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>   <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="l00195"></a><span class="lineno">  195</span>   <span class="keywordflow">if</span> (!<a class="code" href="namespaceclang_1_1tok.html#a04d17ed5152815cfd7af9f9a9df32f12" title="Return true if this is a C or C++ string-literal (or C++11 user-defined-string-literal) token...">tok::isStringLiteral</a>(Tok.<a class="code" href="classclang_1_1Token.html#a84a069f6887b650763e640eeabfeebe4">getKind</a>())) {</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>     <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(PragmaLoc, diag::err__Pragma_malformed);</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span>     <span class="comment">// Skip this token, and the ')', if present.</span></div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</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="l00199"></a><span class="lineno">  199</span>       <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="l00200"></a><span class="lineno">  200</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="l00201"></a><span class="lineno">  201</span>       <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="l00202"></a><span class="lineno">  202</span>     <span class="keywordflow">return</span> _PragmaLexing.failed();</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>   }</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span> </div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>   <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#a0a2223e4b9c06ce5b651ec8bd830dedd" title="Return true if this token is a string or character literal which has a ud-suffix.">hasUDSuffix</a>()) {</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>     <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::err_invalid_string_udl);</div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span>     <span class="comment">// Skip this token, and the ')', if present.</span></div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span>     <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="l00209"></a><span class="lineno">  209</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="l00210"></a><span class="lineno">  210</span>       <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="l00211"></a><span class="lineno">  211</span>     <span class="keywordflow">return</span> _PragmaLexing.failed();</div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span>   }</div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span> </div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>   <span class="comment">// Remember the string.</span></div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span>   <a class="code" href="classclang_1_1Token.html">Token</a> StrTok = Tok;</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="comment">// Read the ')'.</span></div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>   <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="l00219"></a><span class="lineno">  219</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="l00220"></a><span class="lineno">  220</span>     <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(PragmaLoc, diag::err__Pragma_malformed);</div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span>     <span class="keywordflow">return</span> _PragmaLexing.failed();</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>   <span class="keywordflow">if</span> (InMacroArgPreExpansion)</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>     <span class="keywordflow">return</span>;</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>   <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> RParenLoc = 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="l00228"></a><span class="lineno">  228</span>   std::string StrVal = <a class="code" href="classclang_1_1Preprocessor.html#a000147976c13c269dd82ef645fa3fe35">getSpelling</a>(StrTok);</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">// The _Pragma is lexically sound.  Destringize according to C11 6.10.9.1:</span></div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span>   <span class="comment">// "The string literal is destringized by deleting any encoding prefix,</span></div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span>   <span class="comment">// deleting the leading and trailing double-quotes, replacing each escape</span></div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span>   <span class="comment">// sequence \" by a double-quote, and replacing each escape sequence \\ by a</span></div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>   <span class="comment">// single backslash."</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span>   <span class="keywordflow">if</span> (StrVal[0] == <span class="charliteral">'L'</span> || StrVal[0] == <span class="charliteral">'U'</span> ||</div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span>       (StrVal[0] == <span class="charliteral">'u'</span> && StrVal[1] != <span class="charliteral">'8'</span>))</div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span>     StrVal.erase(StrVal.begin());</div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span>   <span class="keywordflow">else</span> <span class="keywordflow">if</span> (StrVal[0] == <span class="charliteral">'u'</span>)</div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span>     StrVal.erase(StrVal.begin(), StrVal.begin() + 2);</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>   <span class="keywordflow">if</span> (StrVal[0] == <span class="charliteral">'R'</span>) {</div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span>     <span class="comment">// FIXME: C++11 does not specify how to handle raw-string-literals here.</span></div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span>     <span class="comment">// We strip off the 'R', the quotes, the d-char-sequences, and the parens.</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span>     assert(StrVal[1] == <span class="charliteral">'"'</span> && StrVal[StrVal.size() - 1] == <span class="charliteral">'"'</span> &&</div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span>            <span class="stringliteral">"Invalid raw string token!"</span>);</div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span> </div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span>     <span class="comment">// Measure the length of the d-char-sequence.</span></div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span>     <span class="keywordtype">unsigned</span> NumDChars = 0;</div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span>     <span class="keywordflow">while</span> (StrVal[2 + NumDChars] != <span class="charliteral">'('</span>) {</div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span>       assert(NumDChars < (StrVal.size() - 5) / 2 &&</div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span>              <span class="stringliteral">"Invalid raw string token!"</span>);</div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span>       ++NumDChars;</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>     assert(StrVal[StrVal.size() - 2 - NumDChars] == <span class="charliteral">')'</span>);</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>     <span class="comment">// Remove 'R " d-char-sequence' and 'd-char-sequence "'. We'll replace the</span></div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span>     <span class="comment">// parens below.</span></div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span>     StrVal.erase(0, 2 + NumDChars);</div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span>     StrVal.erase(StrVal.size() - 1 - NumDChars);</div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span>     assert(StrVal[0] == <span class="charliteral">'"'</span> && StrVal[StrVal.size()-1] == <span class="charliteral">'"'</span> &&</div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span>            <span class="stringliteral">"Invalid string token!"</span>);</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>     <span class="comment">// Remove escaped quotes and escapes.</span></div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span>     <span class="keywordtype">unsigned</span> ResultPos = 1;</div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span>     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 1, e = StrVal.size() - 1; i != e; ++i) {</div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span>       <span class="comment">// Skip escapes.  \\ -> '\' and \" -> '"'.</span></div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span>       <span class="keywordflow">if</span> (StrVal[i] == <span class="charliteral">'\\'</span> && i + 1 < e &&</div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span>           (StrVal[i + 1] == <span class="charliteral">'\\'</span> || StrVal[i + 1] == <span class="charliteral">'"'</span>))</div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span>         ++i;</div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span>       StrVal[ResultPos++] = StrVal[i];</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>     StrVal.erase(StrVal.begin() + ResultPos, StrVal.end() - 1);</div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span>   }</div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span> </div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span>   <span class="comment">// Remove the front quote, replacing it with a space, so that the pragma</span></div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span>   <span class="comment">// contents appear to have a space before them.</span></div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span>   StrVal[0] = <span class="charliteral">' '</span>;</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>   <span class="comment">// Replace the terminating quote with a \n.</span></div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span>   StrVal[StrVal.size()-1] = <span class="charliteral">'\n'</span>;</div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span> </div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span>   <span class="comment">// Plop the string (including the newline and trailing null) into a buffer</span></div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span>   <span class="comment">// where we can lex it.</span></div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span>   <a class="code" href="classclang_1_1Token.html">Token</a> TmpTok;</div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</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="l00287"></a><span class="lineno">  287</span>   <a class="code" href="classclang_1_1Preprocessor.html#a36cc89be41795959b90bf2e77b836742">CreateString</a>(StrVal, TmpTok);</div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</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> TokLoc = 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="l00289"></a><span class="lineno">  289</span> </div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span>   <span class="comment">// Make and enter a lexer object so that we lex and expand the tokens just</span></div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span>   <span class="comment">// like any others.</span></div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span>   <a class="code" href="classclang_1_1Lexer.html">Lexer</a> *TL = <a class="code" href="classclang_1_1Lexer.html#ac7f3b1ce4f2eeaec8d787d22bf197cd0">Lexer::Create_PragmaLexer</a>(TokLoc, PragmaLoc, RParenLoc,</div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span>                                         StrVal.size(), *<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span> </div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span>   EnterSourceFileWithLexer(TL, 0);</div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span> </div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span>   <span class="comment">// With everything set up, lex this as a #pragma directive.</span></div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span>   HandlePragmaDirective(PragmaLoc, <a class="code" href="namespaceclang.html#abad0c9179d409d68fce8917ebd5276eda45f7c48f6e3870f1dbdce97300cfaa20" title="The pragma was introduced via the C99 _Pragma(string-literal).">PIK__Pragma</a>);</div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span> </div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span>   <span class="comment">// Finally, return whatever came after the pragma directive.</span></div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span>   <span class="keywordflow">return</span> <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="l00302"></a><span class="lineno">  302</span> }</div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span> <span class="comment"></span></div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span> <span class="comment">/// HandleMicrosoft__pragma - Like Handle_Pragma except the pragma text</span></div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span> <span class="comment">/// is not enclosed within a string literal.</span></div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span> <span class="comment"></span><span class="keywordtype">void</span> Preprocessor::HandleMicrosoft__pragma(<a class="code" href="classclang_1_1Token.html">Token</a> &Tok) {</div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span>   <span class="comment">// Remember the pragma token location.</span></div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</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> PragmaLoc = 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="l00309"></a><span class="lineno">  309</span> </div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span>   <span class="comment">// Read the '('.</span></div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span>   <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="l00312"></a><span class="lineno">  312</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="l00313"></a><span class="lineno">  313</span>     <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(PragmaLoc, diag::err__Pragma_malformed);</div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span>   }</div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span> </div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span>   <span class="comment">// Get the tokens enclosed within the __pragma(), as well as the final ')'.</span></div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span>   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<Token, 32></a> PragmaToks;</div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span>   <span class="keywordtype">int</span> NumParens = 0;</div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span>   <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="l00321"></a><span class="lineno">  321</span>   <span class="keywordflow">while</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="l00322"></a><span class="lineno">  322</span>     PragmaToks.push_back(Tok);</div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</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="l00324"></a><span class="lineno">  324</span>       NumParens++;</div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</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) && NumParens-- == 0)</div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span>     <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="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>   <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>)) {</div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span>     <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(PragmaLoc, diag::err_unterminated___pragma);</div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span>   }</div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span> </div>
+<div class="line"><a name="l00335"></a><span class="lineno">  335</span>   PragmaToks.front().setFlag(<a class="code" href="classclang_1_1Token.html#a9757e958209e601e408feda04be60db5ab8a948482f9e8ad5043072f7752768c9">Token::LeadingSpace</a>);</div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span> </div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span>   <span class="comment">// Replace the ')' with an EOD to mark the end of the pragma.</span></div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span>   PragmaToks.back().setKind(tok::eod);</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>   <a class="code" href="classclang_1_1Token.html">Token</a> *TokArray = <span class="keyword">new</span> <a class="code" href="classclang_1_1Token.html">Token</a>[PragmaToks.size()];</div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span>   std::copy(PragmaToks.begin(), PragmaToks.end(), TokArray);</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>   <span class="comment">// Push the tokens onto the stack.</span></div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span>   <a class="code" href="classclang_1_1Preprocessor.html#a4869ffa7c1268e6e7cbd8fd5b7b0364d">EnterTokenStream</a>(TokArray, PragmaToks.size(), <span class="keyword">true</span>, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span> </div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span>   <span class="comment">// With everything set up, lex this as a #pragma directive.</span></div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span>   HandlePragmaDirective(PragmaLoc, <a class="code" href="namespaceclang.html#abad0c9179d409d68fce8917ebd5276edaa4092b328f6f0e340a99df2e08435f6e" title="The pragma was introduced via the Microsoft __pragma(token-string).">PIK___pragma</a>);</div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span> </div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span>   <span class="comment">// Finally, return whatever came after the pragma directive.</span></div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span>   <span class="keywordflow">return</span> <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="l00351"></a><span class="lineno">  351</span> }</div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span> <span class="comment"></span></div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span> <span class="comment">/// HandlePragmaOnce - Handle \#pragma once.  OnceTok is the 'once'.</span></div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00355"></a><span class="lineno"><a class="code" href="classclang_1_1Preprocessor.html#a79c836c269d26280f300a82824cde7b4">  355</a></span> <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="classclang_1_1Preprocessor.html#a79c836c269d26280f300a82824cde7b4">Preprocessor::HandlePragmaOnce</a>(<a class="code" href="classclang_1_1Token.html">Token</a> &OnceTok) {</div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span>   <span class="keywordflow">if</span> (<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="l00357"></a><span class="lineno">  357</span>     <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(OnceTok, diag::pp_pragma_once_in_main_file);</div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span>     <span class="keywordflow">return</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> </div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span>   <span class="comment">// Get the current file lexer we're looking at.  Ignore _Pragma 'files' etc.</span></div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span>   <span class="comment">// Mark the file as a once-only file now.</span></div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span>   HeaderInfo.<a class="code" href="classclang_1_1HeaderSearch.html#a44f43c40fda80d25b632e2a1384a04c9" title="Mark the specified file as a "once only" file, e.g. due to #pragma once.">MarkFileIncludeOnce</a>(<a class="code" href="classclang_1_1Preprocessor.html#a11a6206e7d47ca4d8509b97e3a0da167">getCurrentFileLexer</a>()->getFileEntry());</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"><a class="code" href="classclang_1_1Preprocessor.html#aba128c330bf759bd6b7f4b26b228f4c3">  366</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1Preprocessor.html#aba128c330bf759bd6b7f4b26b228f4c3">Preprocessor::HandlePragmaMark</a>() {</div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span>   assert(CurPPLexer && <span class="stringliteral">"No current lexer?"</span>);</div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span>   <span class="keywordflow">if</span> (CurLexer)</div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span>     CurLexer->ReadToEndOfLine();</div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span>   <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span>     CurPTHLexer->DiscardToEndOfLine();</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> </div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span> <span class="comment"></span></div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span> <span class="comment">/// HandlePragmaPoison - Handle \#pragma GCC poison.  PoisonTok is the 'poison'.</span></div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00377"></a><span class="lineno"><a class="code" href="classclang_1_1Preprocessor.html#a97b9741ea0a15fc4c1b559c870394a90">  377</a></span> <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="classclang_1_1Preprocessor.html#a97b9741ea0a15fc4c1b559c870394a90">Preprocessor::HandlePragmaPoison</a>(<a class="code" href="classclang_1_1Token.html">Token</a> &PoisonTok) {</div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span>   <a class="code" href="classclang_1_1Token.html">Token</a> Tok;</div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span> </div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span>   <span class="keywordflow">while</span> (1) {</div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span>     <span class="comment">// Read the next token to poison.  While doing this, pretend that we are</span></div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span>     <span class="comment">// skipping while reading the identifier to poison.</span></div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span>     <span class="comment">// This avoids errors on code like:</span></div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span>     <span class="comment">//   #pragma GCC poison X</span></div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span>     <span class="comment">//   #pragma GCC poison X</span></div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span>     <span class="keywordflow">if</span> (CurPPLexer) CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a4aefb1afcc979348454179d95d28a5ba" title="True if in raw mode.">LexingRawMode</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span>     <a class="code" href="classclang_1_1Preprocessor.html#aaaf1f5cefe79d0f9da0637c5a3d4e7dc">LexUnexpandedToken</a>(Tok);</div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span>     <span class="keywordflow">if</span> (CurPPLexer) CurPPLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a4aefb1afcc979348454179d95d28a5ba" title="True if in raw mode.">LexingRawMode</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span> </div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span>     <span class="comment">// If we reached the end of line, we're done.</span></div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span>     <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::eod)) <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span> </div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span>     <span class="comment">// Can only poison identifiers.</span></div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span>     <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::raw_identifier)) {</div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span>       <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::err_pp_invalid_poison);</div>
+<div class="line"><a name="l00396"></a><span class="lineno">  396</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00397"></a><span class="lineno">  397</span>     }</div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span> </div>
+<div class="line"><a name="l00399"></a><span class="lineno">  399</span>     <span class="comment">// Look up the identifier info for the token.  We disabled identifier lookup</span></div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span>     <span class="comment">// by saying we're skipping contents, so we need to do this manually.</span></div>
+<div class="line"><a name="l00401"></a><span class="lineno">  401</span>     <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *II = <a class="code" href="classclang_1_1Preprocessor.html#aaee39a31bf11d26f89bf4879a6004cfc">LookUpIdentifierInfo</a>(Tok);</div>
+<div class="line"><a name="l00402"></a><span class="lineno">  402</span> </div>
+<div class="line"><a name="l00403"></a><span class="lineno">  403</span>     <span class="comment">// Already poisoned.</span></div>
+<div class="line"><a name="l00404"></a><span class="lineno">  404</span>     <span class="keywordflow">if</span> (II-><a class="code" href="classclang_1_1IdentifierInfo.html#a01f4ca68b921105e106245db58477858" title="Return true if this token has been poisoned.">isPoisoned</a>()) <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00405"></a><span class="lineno">  405</span> </div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span>     <span class="comment">// If this is a macro identifier, emit a warning.</span></div>
+<div class="line"><a name="l00407"></a><span class="lineno">  407</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>())</div>
+<div class="line"><a name="l00408"></a><span class="lineno">  408</span>       <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::pp_poisoning_existing_macro);</div>
+<div class="line"><a name="l00409"></a><span class="lineno">  409</span> </div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span>     <span class="comment">// Finally, poison it!</span></div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span>     II-><a class="code" href="classclang_1_1IdentifierInfo.html#a653348c67e7bac7d9e7308ebf53606ff">setIsPoisoned</a>();</div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</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>())</div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</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="l00414"></a><span class="lineno">  414</span>   }</div>
+<div class="line"><a name="l00415"></a><span class="lineno">  415</span> }</div>
+<div class="line"><a name="l00416"></a><span class="lineno">  416</span> <span class="comment"></span></div>
+<div class="line"><a name="l00417"></a><span class="lineno">  417</span> <span class="comment">/// HandlePragmaSystemHeader - Implement \#pragma GCC system_header.  We know</span></div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span> <span class="comment">/// that the whole directive has been parsed.</span></div>
+<div class="line"><a name="l00419"></a><span class="lineno"><a class="code" href="classclang_1_1Preprocessor.html#a09969bb061c57b1252cfdd11645d6801">  419</a></span> <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="classclang_1_1Preprocessor.html#a09969bb061c57b1252cfdd11645d6801">Preprocessor::HandlePragmaSystemHeader</a>(<a class="code" href="classclang_1_1Token.html">Token</a> &SysHeaderTok) {</div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span>   <span class="keywordflow">if</span> (<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="l00421"></a><span class="lineno">  421</span>     <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(SysHeaderTok, diag::pp_pragma_sysheader_in_main_file);</div>
+<div class="line"><a name="l00422"></a><span class="lineno">  422</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00423"></a><span class="lineno">  423</span>   }</div>
+<div class="line"><a name="l00424"></a><span class="lineno">  424</span> </div>
+<div class="line"><a name="l00425"></a><span class="lineno">  425</span>   <span class="comment">// Get the current file lexer we're looking at.  Ignore _Pragma 'files' etc.</span></div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</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="l00427"></a><span class="lineno">  427</span> </div>
+<div class="line"><a name="l00428"></a><span class="lineno">  428</span>   <span class="comment">// Mark the file as a system header.</span></div>
+<div class="line"><a name="l00429"></a><span class="lineno">  429</span>   HeaderInfo.<a class="code" href="classclang_1_1HeaderSearch.html#a9084aa19c65ab6a05280ba32668cf474" title="Mark the specified file as a system header, e.g. due to #pragma GCC system_header.">MarkFileSystemHeader</a>(TheLexer-><a class="code" href="classclang_1_1PreprocessorLexer.html#a422d0d7c1a03b38d7589792ef711a945">getFileEntry</a>());</div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span> </div>
+<div class="line"><a name="l00431"></a><span class="lineno">  431</span> </div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</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 = SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#a28f3fe716f6b9c504beb968f0eb8c17d" title="Returns the "presumed" location of a SourceLocation specifies.">getPresumedLoc</a>(SysHeaderTok.<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="l00433"></a><span class="lineno">  433</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="l00434"></a><span class="lineno">  434</span>     <span class="keywordflow">return</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="keywordtype">unsigned</span> FilenameID = SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#aa55166cfda7909fca46877f4c85580ec" title="Return the uniqued ID for the specified filename.">getLineTableFilenameID</a>(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="l00437"></a><span class="lineno">  437</span> </div>
+<div class="line"><a name="l00438"></a><span class="lineno">  438</span>   <span class="comment">// Notify the client, if desired, that we are in a new source file.</span></div>
+<div class="line"><a name="l00439"></a><span class="lineno">  439</span>   <span class="keywordflow">if</span> (Callbacks)</div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span>     Callbacks-><a class="code" href="classclang_1_1PPCallbacks.html#a78301b4ade3244c79b9731a58f115934" title="Callback invoked whenever a source file is entered or exited.">FileChanged</a>(SysHeaderTok.<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="l00441"></a><span class="lineno">  441</span>                            <a class="code" href="classclang_1_1PPCallbacks.html#a7cc8cfaf34114fc65e92af621cd6464ea892840a98b4b106228f14dbd365cd26f">PPCallbacks::SystemHeaderPragma</a>, <a class="code" href="namespaceclang_1_1SrcMgr.html#a27297b3568f189486de6df08a8cba35dac3b930a303c855d8864c56fcc992074e">SrcMgr::C_System</a>);</div>
+<div class="line"><a name="l00442"></a><span class="lineno">  442</span> </div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</span>   <span class="comment">// Emit a line marker.  This will change any source locations from this point</span></div>
+<div class="line"><a name="l00444"></a><span class="lineno">  444</span>   <span class="comment">// forward to realize they are in a system header.</span></div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span>   <span class="comment">// Create a line note with this information.</span></div>
+<div class="line"><a name="l00446"></a><span class="lineno">  446</span>   SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#a040ac45727775e7bf14d8bfca2c5677e" title="Add a line note to the line table for the FileID and offset specified by Loc.">AddLineNote</a>(SysHeaderTok.<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>(), 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="l00447"></a><span class="lineno">  447</span>                         FilenameID, <span class="comment">/*IsEntry=*/</span><span class="keyword">false</span>, <span class="comment">/*IsExit=*/</span><span class="keyword">false</span>,</div>
+<div class="line"><a name="l00448"></a><span class="lineno">  448</span>                         <span class="comment">/*IsSystem=*/</span><span class="keyword">true</span>, <span class="comment">/*IsExternC=*/</span><span class="keyword">false</span>);</div>
+<div class="line"><a name="l00449"></a><span class="lineno">  449</span> }</div>
+<div class="line"><a name="l00450"></a><span class="lineno">  450</span> <span class="comment"></span></div>
+<div class="line"><a name="l00451"></a><span class="lineno">  451</span> <span class="comment">/// HandlePragmaDependency - Handle \#pragma GCC dependency "foo" blah.</span></div>
+<div class="line"><a name="l00452"></a><span class="lineno">  452</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00453"></a><span class="lineno"><a class="code" href="classclang_1_1Preprocessor.html#a5ba69647492bdc122d9d7e63253dd571">  453</a></span> <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="classclang_1_1Preprocessor.html#a5ba69647492bdc122d9d7e63253dd571">Preprocessor::HandlePragmaDependency</a>(<a class="code" href="classclang_1_1Token.html">Token</a> &DependencyTok) {</div>
+<div class="line"><a name="l00454"></a><span class="lineno">  454</span>   <a class="code" href="classclang_1_1Token.html">Token</a> FilenameTok;</div>
+<div class="line"><a name="l00455"></a><span class="lineno">  455</span>   CurPPLexer-><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>(FilenameTok);</div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span> </div>
+<div class="line"><a name="l00457"></a><span class="lineno">  457</span>   <span class="comment">// If the token kind is EOD, the error has already been diagnosed.</span></div>
+<div class="line"><a name="l00458"></a><span class="lineno">  458</span>   <span class="keywordflow">if</span> (FilenameTok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::eod))</div>
+<div class="line"><a name="l00459"></a><span class="lineno">  459</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span> </div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span>   <span class="comment">// Reserve a buffer to get the spelling.</span></div>
+<div class="line"><a name="l00462"></a><span class="lineno">  462</span>   <a class="code" href="classllvm_1_1SmallString.html">SmallString<128></a> FilenameBuffer;</div>
+<div class="line"><a name="l00463"></a><span class="lineno">  463</span>   <span class="keywordtype">bool</span> Invalid = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</span>   StringRef Filename = <a class="code" href="classclang_1_1Preprocessor.html#a000147976c13c269dd82ef645fa3fe35">getSpelling</a>(FilenameTok, FilenameBuffer, &Invalid);</div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span>   <span class="keywordflow">if</span> (Invalid)</div>
+<div class="line"><a name="l00466"></a><span class="lineno">  466</span>     <span class="keywordflow">return</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="keywordtype">bool</span> isAngled =</div>
+<div class="line"><a name="l00469"></a><span class="lineno">  469</span>     <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>(FilenameTok.<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="l00470"></a><span class="lineno">  470</span>   <span class="comment">// If GetIncludeFilenameSpelling set the start ptr to null, there was an</span></div>
+<div class="line"><a name="l00471"></a><span class="lineno">  471</span>   <span class="comment">// error.</span></div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span>   <span class="keywordflow">if</span> (Filename.empty())</div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00474"></a><span class="lineno">  474</span> </div>
+<div class="line"><a name="l00475"></a><span class="lineno">  475</span>   <span class="comment">// Search include directories for this file.</span></div>
+<div class="line"><a name="l00476"></a><span class="lineno">  476</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1DirectoryLookup.html">DirectoryLookup</a> *CurDir;</div>
+<div class="line"><a name="l00477"></a><span class="lineno">  477</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 = <a class="code" href="classclang_1_1Preprocessor.html#abaaffb22cc7abb1535773930ec1e5cfb" title="Given a "foo" or <foo> reference, look up the indicated file.">LookupFile</a>(FilenameTok.<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="l00478"></a><span class="lineno">  478</span>                                      isAngled, 0, CurDir, <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <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="l00479"></a><span class="lineno">  479</span>   <span class="keywordflow">if</span> (File == 0) {</div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span>     <span class="keywordflow">if</span> (!SuppressIncludeNotFoundError)</div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span>       <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(FilenameTok, diag::err_pp_file_not_found) << Filename;</div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span>   }</div>
+<div class="line"><a name="l00484"></a><span class="lineno">  484</span> </div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</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 = <a class="code" href="classclang_1_1Preprocessor.html#a11a6206e7d47ca4d8509b97e3a0da167">getCurrentFileLexer</a>()-><a class="code" href="classclang_1_1PreprocessorLexer.html#a422d0d7c1a03b38d7589792ef711a945">getFileEntry</a>();</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>   <span class="comment">// If this file is older than the file it depends on, emit a diagnostic.</span></div>
+<div class="line"><a name="l00488"></a><span class="lineno">  488</span>   <span class="keywordflow">if</span> (CurFile && CurFile-><a class="code" href="classclang_1_1FileEntry.html#a2df68d04c7f85abdcf5075db7778e033">getModificationTime</a>() < File-><a class="code" href="classclang_1_1FileEntry.html#a2df68d04c7f85abdcf5075db7778e033">getModificationTime</a>()) {</div>
+<div class="line"><a name="l00489"></a><span class="lineno">  489</span>     <span class="comment">// Lex tokens at the end of the message and include them in the message.</span></div>
+<div class="line"><a name="l00490"></a><span class="lineno">  490</span>     std::string Message;</div>
+<div class="line"><a name="l00491"></a><span class="lineno">  491</span>     <a class="code" href="classclang_1_1Preprocessor.html#a4c7cf0c496e4a7744bc1731d92a4431e" title="Lex - Lex the next token for this preprocessor.">Lex</a>(DependencyTok);</div>
+<div class="line"><a name="l00492"></a><span class="lineno">  492</span>     <span class="keywordflow">while</span> (DependencyTok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::eod)) {</div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span>       Message += <a class="code" href="classclang_1_1Preprocessor.html#a000147976c13c269dd82ef645fa3fe35">getSpelling</a>(DependencyTok) + <span class="stringliteral">" "</span>;</div>
+<div class="line"><a name="l00494"></a><span class="lineno">  494</span>       <a class="code" href="classclang_1_1Preprocessor.html#a4c7cf0c496e4a7744bc1731d92a4431e" title="Lex - Lex the next token for this preprocessor.">Lex</a>(DependencyTok);</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>     <span class="comment">// Remove the trailing ' ' if present.</span></div>
+<div class="line"><a name="l00498"></a><span class="lineno">  498</span>     <span class="keywordflow">if</span> (!Message.empty())</div>
+<div class="line"><a name="l00499"></a><span class="lineno">  499</span>       Message.erase(Message.end()-1);</div>
+<div class="line"><a name="l00500"></a><span class="lineno">  500</span>     <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(FilenameTok, diag::pp_out_of_date_dependency) << Message;</div>
+<div class="line"><a name="l00501"></a><span class="lineno">  501</span>   }</div>
+<div class="line"><a name="l00502"></a><span class="lineno">  502</span> }</div>
+<div class="line"><a name="l00503"></a><span class="lineno">  503</span> <span class="comment"></span></div>
+<div class="line"><a name="l00504"></a><span class="lineno">  504</span> <span class="comment">/// ParsePragmaPushOrPopMacro - Handle parsing of pragma push_macro/pop_macro.</span></div>
+<div class="line"><a name="l00505"></a><span class="lineno">  505</span> <span class="comment">/// Return the IdentifierInfo* associated with the macro to push or pop.</span></div>
+<div class="line"><a name="l00506"></a><span class="lineno"><a class="code" href="classclang_1_1Preprocessor.html#ad99fdc1a379d68b5741b718cc65b0d67">  506</a></span> <span class="comment"></span><a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *<a class="code" href="classclang_1_1Preprocessor.html#ad99fdc1a379d68b5741b718cc65b0d67">Preprocessor::ParsePragmaPushOrPopMacro</a>(<a class="code" href="classclang_1_1Token.html">Token</a> &Tok) {</div>
+<div class="line"><a name="l00507"></a><span class="lineno">  507</span>   <span class="comment">// Remember the pragma token location.</span></div>
+<div class="line"><a name="l00508"></a><span class="lineno">  508</span>   <a class="code" href="classclang_1_1Token.html">Token</a> PragmaTok = Tok;</div>
+<div class="line"><a name="l00509"></a><span class="lineno">  509</span> </div>
+<div class="line"><a name="l00510"></a><span class="lineno">  510</span>   <span class="comment">// Read the '('.</span></div>
+<div class="line"><a name="l00511"></a><span class="lineno">  511</span>   <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="l00512"></a><span class="lineno">  512</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="l00513"></a><span class="lineno">  513</span>     <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(PragmaTok.<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_pragma_push_pop_macro_malformed)</div>
+<div class="line"><a name="l00514"></a><span class="lineno">  514</span>       << <a class="code" href="classclang_1_1Preprocessor.html#a000147976c13c269dd82ef645fa3fe35">getSpelling</a>(PragmaTok);</div>
+<div class="line"><a name="l00515"></a><span class="lineno">  515</span>     <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00516"></a><span class="lineno">  516</span>   }</div>
+<div class="line"><a name="l00517"></a><span class="lineno">  517</span> </div>
+<div class="line"><a name="l00518"></a><span class="lineno">  518</span>   <span class="comment">// Read the macro name string.</span></div>
+<div class="line"><a name="l00519"></a><span class="lineno">  519</span>   <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="l00520"></a><span class="lineno">  520</span>   <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::string_literal)) {</div>
+<div class="line"><a name="l00521"></a><span class="lineno">  521</span>     <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(PragmaTok.<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_pragma_push_pop_macro_malformed)</div>
+<div class="line"><a name="l00522"></a><span class="lineno">  522</span>       << <a class="code" href="classclang_1_1Preprocessor.html#a000147976c13c269dd82ef645fa3fe35">getSpelling</a>(PragmaTok);</div>
+<div class="line"><a name="l00523"></a><span class="lineno">  523</span>     <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00524"></a><span class="lineno">  524</span>   }</div>
+<div class="line"><a name="l00525"></a><span class="lineno">  525</span> </div>
+<div class="line"><a name="l00526"></a><span class="lineno">  526</span>   <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#a0a2223e4b9c06ce5b651ec8bd830dedd" title="Return true if this token is a string or character literal which has a ud-suffix.">hasUDSuffix</a>()) {</div>
+<div class="line"><a name="l00527"></a><span class="lineno">  527</span>     <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::err_invalid_string_udl);</div>
+<div class="line"><a name="l00528"></a><span class="lineno">  528</span>     <span class="keywordflow">return</span> 0;</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">// Remember the macro string.</span></div>
+<div class="line"><a name="l00532"></a><span class="lineno">  532</span>   std::string StrVal = <a class="code" href="classclang_1_1Preprocessor.html#a000147976c13c269dd82ef645fa3fe35">getSpelling</a>(Tok);</div>
+<div class="line"><a name="l00533"></a><span class="lineno">  533</span> </div>
+<div class="line"><a name="l00534"></a><span class="lineno">  534</span>   <span class="comment">// Read the ')'.</span></div>
+<div class="line"><a name="l00535"></a><span class="lineno">  535</span>   <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="l00536"></a><span class="lineno">  536</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="l00537"></a><span class="lineno">  537</span>     <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(PragmaTok.<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_pragma_push_pop_macro_malformed)</div>
+<div class="line"><a name="l00538"></a><span class="lineno">  538</span>       << <a class="code" href="classclang_1_1Preprocessor.html#a000147976c13c269dd82ef645fa3fe35">getSpelling</a>(PragmaTok);</div>
+<div class="line"><a name="l00539"></a><span class="lineno">  539</span>     <span class="keywordflow">return</span> 0;</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>   assert(StrVal[0] == <span class="charliteral">'"'</span> && StrVal[StrVal.size()-1] == <span class="charliteral">'"'</span> &&</div>
+<div class="line"><a name="l00543"></a><span class="lineno">  543</span>          <span class="stringliteral">"Invalid string token!"</span>);</div>
+<div class="line"><a name="l00544"></a><span class="lineno">  544</span> </div>
+<div class="line"><a name="l00545"></a><span class="lineno">  545</span>   <span class="comment">// Create a Token from the string.</span></div>
+<div class="line"><a name="l00546"></a><span class="lineno">  546</span>   <a class="code" href="classclang_1_1Token.html">Token</a> MacroTok;</div>
+<div class="line"><a name="l00547"></a><span class="lineno">  547</span>   MacroTok.<a class="code" href="classclang_1_1Token.html#ae1e49685acde6208c1c83f38540832c1" title="Reset all flags to cleared.">startToken</a>();</div>
+<div class="line"><a name="l00548"></a><span class="lineno">  548</span>   MacroTok.setKind(tok::raw_identifier);</div>
+<div class="line"><a name="l00549"></a><span class="lineno">  549</span>   <a class="code" href="classclang_1_1Preprocessor.html#a36cc89be41795959b90bf2e77b836742">CreateString</a>(StringRef(&StrVal[1], StrVal.size() - 2), MacroTok);</div>
+<div class="line"><a name="l00550"></a><span class="lineno">  550</span> </div>
+<div class="line"><a name="l00551"></a><span class="lineno">  551</span>   <span class="comment">// Get the IdentifierInfo of MacroToPushTok.</span></div>
+<div class="line"><a name="l00552"></a><span class="lineno">  552</span>   <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Preprocessor.html#aaee39a31bf11d26f89bf4879a6004cfc">LookUpIdentifierInfo</a>(MacroTok);</div>
+<div class="line"><a name="l00553"></a><span class="lineno">  553</span> }</div>
+<div class="line"><a name="l00554"></a><span class="lineno">  554</span> <span class="comment"></span></div>
+<div class="line"><a name="l00555"></a><span class="lineno">  555</span> <span class="comment">/// \brief Handle \#pragma push_macro.</span></div>
+<div class="line"><a name="l00556"></a><span class="lineno">  556</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00557"></a><span class="lineno">  557</span> <span class="comment">/// The syntax is:</span></div>
+<div class="line"><a name="l00558"></a><span class="lineno">  558</span> <span class="comment">/// \code</span></div>
+<div class="line"><a name="l00559"></a><span class="lineno">  559</span> <span class="comment">///   #pragma push_macro("macro")</span></div>
+<div class="line"><a name="l00560"></a><span class="lineno">  560</span> <span class="comment">/// \endcode</span></div>
+<div class="line"><a name="l00561"></a><span class="lineno"><a class="code" href="classclang_1_1Preprocessor.html#a04dec9fbfa220dfea433bcbeffa270c3">  561</a></span> <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="classclang_1_1Preprocessor.html#a04dec9fbfa220dfea433bcbeffa270c3" title="Handle #pragma push_macro.">Preprocessor::HandlePragmaPushMacro</a>(<a class="code" href="classclang_1_1Token.html">Token</a> &PushMacroTok) {</div>
+<div class="line"><a name="l00562"></a><span class="lineno">  562</span>   <span class="comment">// Parse the pragma directive and get the macro IdentifierInfo*.</span></div>
+<div class="line"><a name="l00563"></a><span class="lineno">  563</span>   <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *IdentInfo = <a class="code" href="classclang_1_1Preprocessor.html#ad99fdc1a379d68b5741b718cc65b0d67">ParsePragmaPushOrPopMacro</a>(PushMacroTok);</div>
+<div class="line"><a name="l00564"></a><span class="lineno">  564</span>   <span class="keywordflow">if</span> (!IdentInfo) <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00565"></a><span class="lineno">  565</span> </div>
+<div class="line"><a name="l00566"></a><span class="lineno">  566</span>   <span class="comment">// Get the MacroInfo associated with IdentInfo.</span></div>
+<div class="line"><a name="l00567"></a><span class="lineno">  567</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>(IdentInfo);</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">if</span> (MI) {</div>
+<div class="line"><a name="l00570"></a><span class="lineno">  570</span>     <span class="comment">// Allow the original MacroInfo to be redefined later.</span></div>
+<div class="line"><a name="l00571"></a><span class="lineno">  571</span>     MI-><a class="code" href="classclang_1_1MacroInfo.html#a05bff0a353d64e9c5fd735533d2575e0" title="Set the value of the IsAllowRedefinitionsWithoutWarning flag.">setIsAllowRedefinitionsWithoutWarning</a>(<span class="keyword">true</span>);</div>
+<div class="line"><a name="l00572"></a><span class="lineno">  572</span>   }</div>
+<div class="line"><a name="l00573"></a><span class="lineno">  573</span> </div>
+<div class="line"><a name="l00574"></a><span class="lineno">  574</span>   <span class="comment">// Push the cloned MacroInfo so we can retrieve it later.</span></div>
+<div class="line"><a name="l00575"></a><span class="lineno">  575</span>   PragmaPushMacroInfo[IdentInfo].push_back(MI);</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"></span></div>
+<div class="line"><a name="l00578"></a><span class="lineno">  578</span> <span class="comment">/// \brief Handle \#pragma pop_macro.</span></div>
+<div class="line"><a name="l00579"></a><span class="lineno">  579</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00580"></a><span class="lineno">  580</span> <span class="comment">/// The syntax is:</span></div>
+<div class="line"><a name="l00581"></a><span class="lineno">  581</span> <span class="comment">/// \code</span></div>
+<div class="line"><a name="l00582"></a><span class="lineno">  582</span> <span class="comment">///   #pragma pop_macro("macro")</span></div>
+<div class="line"><a name="l00583"></a><span class="lineno">  583</span> <span class="comment">/// \endcode</span></div>
+<div class="line"><a name="l00584"></a><span class="lineno"><a class="code" href="classclang_1_1Preprocessor.html#ab5060882691a2f36ff14cc39c8ee6456">  584</a></span> <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="classclang_1_1Preprocessor.html#ab5060882691a2f36ff14cc39c8ee6456" title="Handle #pragma pop_macro.">Preprocessor::HandlePragmaPopMacro</a>(<a class="code" href="classclang_1_1Token.html">Token</a> &PopMacroTok) {</div>
+<div class="line"><a name="l00585"></a><span class="lineno">  585</span>   <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> MessageLoc = PopMacroTok.<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="l00586"></a><span class="lineno">  586</span> </div>
+<div class="line"><a name="l00587"></a><span class="lineno">  587</span>   <span class="comment">// Parse the pragma directive and get the macro IdentifierInfo*.</span></div>
+<div class="line"><a name="l00588"></a><span class="lineno">  588</span>   <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *IdentInfo = <a class="code" href="classclang_1_1Preprocessor.html#ad99fdc1a379d68b5741b718cc65b0d67">ParsePragmaPushOrPopMacro</a>(PopMacroTok);</div>
+<div class="line"><a name="l00589"></a><span class="lineno">  589</span>   <span class="keywordflow">if</span> (!IdentInfo) <span class="keywordflow">return</span>;</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="comment">// Find the vector<MacroInfo*> associated with the macro.</span></div>
+<div class="line"><a name="l00592"></a><span class="lineno">  592</span>   llvm::DenseMap<IdentifierInfo*, std::vector<MacroInfo*> >::iterator iter =</div>
+<div class="line"><a name="l00593"></a><span class="lineno">  593</span>     PragmaPushMacroInfo.find(IdentInfo);</div>
+<div class="line"><a name="l00594"></a><span class="lineno">  594</span>   <span class="keywordflow">if</span> (iter != PragmaPushMacroInfo.end()) {</div>
+<div class="line"><a name="l00595"></a><span class="lineno">  595</span>     <span class="comment">// Forget the MacroInfo currently associated with IdentInfo.</span></div>
+<div class="line"><a name="l00596"></a><span class="lineno">  596</span>     <span class="keywordflow">if</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> *CurrentMD = <a class="code" href="classclang_1_1Preprocessor.html#a23a93e29cd30864017b909e27875390d" title="Given an identifier, return its latest MacroDirective if it is.">getMacroDirective</a>(IdentInfo)) {</div>
+<div class="line"><a name="l00597"></a><span class="lineno">  597</span>       <a class="code" href="classclang_1_1MacroInfo.html" title="Encapsulates the data about a macro definition (e.g. its tokens).">MacroInfo</a> *MI = CurrentMD->getMacroInfo();</div>
+<div class="line"><a name="l00598"></a><span class="lineno">  598</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>())</div>
+<div class="line"><a name="l00599"></a><span class="lineno">  599</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="l00600"></a><span class="lineno">  600</span>       <a class="code" href="classclang_1_1Preprocessor.html#aff92a28cdfbaae74c5669b8eb5af7004" title="Add a directive to the macro directive history for this identifier.">appendMacroDirective</a>(IdentInfo, AllocateUndefMacroDirective(MessageLoc));</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> </div>
+<div class="line"><a name="l00603"></a><span class="lineno">  603</span>     <span class="comment">// Get the MacroInfo we want to reinstall.</span></div>
+<div class="line"><a name="l00604"></a><span class="lineno">  604</span>     <a class="code" href="classclang_1_1MacroInfo.html" title="Encapsulates the data about a macro definition (e.g. its tokens).">MacroInfo</a> *MacroToReInstall = iter->second.back();</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="keywordflow">if</span> (MacroToReInstall) {</div>
+<div class="line"><a name="l00607"></a><span class="lineno">  607</span>       <span class="comment">// Reinstall the previously pushed macro.</span></div>
+<div class="line"><a name="l00608"></a><span class="lineno">  608</span>       <a class="code" href="classclang_1_1Preprocessor.html#afc410b9870f9ee069b69be52e845e82f">appendDefMacroDirective</a>(IdentInfo, MacroToReInstall, MessageLoc,</div>
+<div class="line"><a name="l00609"></a><span class="lineno">  609</span>                               <span class="comment">/*isImported=*/</span><span class="keyword">false</span>);</div>
+<div class="line"><a name="l00610"></a><span class="lineno">  610</span>     }</div>
+<div class="line"><a name="l00611"></a><span class="lineno">  611</span> </div>
+<div class="line"><a name="l00612"></a><span class="lineno">  612</span>     <span class="comment">// Pop PragmaPushMacroInfo stack.</span></div>
+<div class="line"><a name="l00613"></a><span class="lineno">  613</span>     iter->second.pop_back();</div>
+<div class="line"><a name="l00614"></a><span class="lineno">  614</span>     <span class="keywordflow">if</span> (iter->second.size() == 0)</div>
+<div class="line"><a name="l00615"></a><span class="lineno">  615</span>       PragmaPushMacroInfo.erase(iter);</div>
+<div class="line"><a name="l00616"></a><span class="lineno">  616</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00617"></a><span class="lineno">  617</span>     <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(MessageLoc, diag::warn_pragma_pop_macro_no_push)</div>
+<div class="line"><a name="l00618"></a><span class="lineno">  618</span>       << IdentInfo-><a class="code" href="classclang_1_1IdentifierInfo.html#a94caec6a16e508e8ca39eacd278bd2c5" title="Return the actual identifier string.">getName</a>();</div>
+<div class="line"><a name="l00619"></a><span class="lineno">  619</span>   }</div>
+<div class="line"><a name="l00620"></a><span class="lineno">  620</span> }</div>
+<div class="line"><a name="l00621"></a><span class="lineno">  621</span> </div>
+<div class="line"><a name="l00622"></a><span class="lineno"><a class="code" href="classclang_1_1Preprocessor.html#af4e4b511bd2a53aaad3c24a5f7b2cd94">  622</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1Preprocessor.html#af4e4b511bd2a53aaad3c24a5f7b2cd94">Preprocessor::HandlePragmaIncludeAlias</a>(<a class="code" href="classclang_1_1Token.html">Token</a> &Tok) {</div>
+<div class="line"><a name="l00623"></a><span class="lineno">  623</span>   <span class="comment">// We will either get a quoted filename or a bracketed filename, and we </span></div>
+<div class="line"><a name="l00624"></a><span class="lineno">  624</span>   <span class="comment">// have to track which we got.  The first filename is the source name,</span></div>
+<div class="line"><a name="l00625"></a><span class="lineno">  625</span>   <span class="comment">// and the second name is the mapped filename.  If the first is quoted,</span></div>
+<div class="line"><a name="l00626"></a><span class="lineno">  626</span>   <span class="comment">// the second must be as well (cannot mix and match quotes and brackets).</span></div>
+<div class="line"><a name="l00627"></a><span class="lineno">  627</span> </div>
+<div class="line"><a name="l00628"></a><span class="lineno">  628</span>   <span class="comment">// Get the open paren</span></div>
+<div class="line"><a name="l00629"></a><span class="lineno">  629</span>   <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="l00630"></a><span class="lineno">  630</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="l00631"></a><span class="lineno">  631</span>     <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::warn_pragma_include_alias_expected) << <span class="stringliteral">"("</span>;</div>
+<div class="line"><a name="l00632"></a><span class="lineno">  632</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00633"></a><span class="lineno">  633</span>   }</div>
+<div class="line"><a name="l00634"></a><span class="lineno">  634</span> </div>
+<div class="line"><a name="l00635"></a><span class="lineno">  635</span>   <span class="comment">// We expect either a quoted string literal, or a bracketed name</span></div>
+<div class="line"><a name="l00636"></a><span class="lineno">  636</span>   <a class="code" href="classclang_1_1Token.html">Token</a> SourceFilenameTok;</div>
+<div class="line"><a name="l00637"></a><span class="lineno">  637</span>   CurPPLexer-><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>(SourceFilenameTok);</div>
+<div class="line"><a name="l00638"></a><span class="lineno">  638</span>   <span class="keywordflow">if</span> (SourceFilenameTok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::eod)) {</div>
+<div class="line"><a name="l00639"></a><span class="lineno">  639</span>     <span class="comment">// The diagnostic has already been handled</span></div>
+<div class="line"><a name="l00640"></a><span class="lineno">  640</span>     <span class="keywordflow">return</span>;</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>   StringRef SourceFileName;</div>
+<div class="line"><a name="l00644"></a><span class="lineno">  644</span>   <a class="code" href="classllvm_1_1SmallString.html">SmallString<128></a> FileNameBuffer;</div>
+<div class="line"><a name="l00645"></a><span class="lineno">  645</span>   <span class="keywordflow">if</span> (SourceFilenameTok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::string_literal) || </div>
+<div class="line"><a name="l00646"></a><span class="lineno">  646</span>       SourceFilenameTok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::angle_string_literal)) {</div>
+<div class="line"><a name="l00647"></a><span class="lineno">  647</span>     SourceFileName = <a class="code" href="classclang_1_1Preprocessor.html#a000147976c13c269dd82ef645fa3fe35">getSpelling</a>(SourceFilenameTok, FileNameBuffer);</div>
+<div class="line"><a name="l00648"></a><span class="lineno">  648</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SourceFilenameTok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::less)) {</div>
+<div class="line"><a name="l00649"></a><span class="lineno">  649</span>     <span class="comment">// This could be a path instead of just a name</span></div>
+<div class="line"><a name="l00650"></a><span class="lineno">  650</span>     FileNameBuffer.push_back(<span class="charliteral">'<'</span>);</div>
+<div class="line"><a name="l00651"></a><span class="lineno">  651</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> End;</div>
+<div class="line"><a name="l00652"></a><span class="lineno">  652</span>     <span class="keywordflow">if</span> (<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, End))</div>
+<div class="line"><a name="l00653"></a><span class="lineno">  653</span>       <span class="keywordflow">return</span>; <span class="comment">// Diagnostic already emitted</span></div>
+<div class="line"><a name="l00654"></a><span class="lineno">  654</span>     SourceFileName = FileNameBuffer.str();</div>
+<div class="line"><a name="l00655"></a><span class="lineno">  655</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00656"></a><span class="lineno">  656</span>     <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::warn_pragma_include_alias_expected_filename);</div>
+<div class="line"><a name="l00657"></a><span class="lineno">  657</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00658"></a><span class="lineno">  658</span>   }</div>
+<div class="line"><a name="l00659"></a><span class="lineno">  659</span>   FileNameBuffer.clear();</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">// Now we expect a comma, followed by another include name</span></div>
+<div class="line"><a name="l00662"></a><span class="lineno">  662</span>   <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="l00663"></a><span class="lineno">  663</span>   <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::comma)) {</div>
+<div class="line"><a name="l00664"></a><span class="lineno">  664</span>     <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::warn_pragma_include_alias_expected) << <span class="stringliteral">","</span>;</div>
+<div class="line"><a name="l00665"></a><span class="lineno">  665</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00666"></a><span class="lineno">  666</span>   }</div>
+<div class="line"><a name="l00667"></a><span class="lineno">  667</span> </div>
+<div class="line"><a name="l00668"></a><span class="lineno">  668</span>   <a class="code" href="classclang_1_1Token.html">Token</a> ReplaceFilenameTok;</div>
+<div class="line"><a name="l00669"></a><span class="lineno">  669</span>   CurPPLexer-><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>(ReplaceFilenameTok);</div>
+<div class="line"><a name="l00670"></a><span class="lineno">  670</span>   <span class="keywordflow">if</span> (ReplaceFilenameTok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::eod)) {</div>
+<div class="line"><a name="l00671"></a><span class="lineno">  671</span>     <span class="comment">// The diagnostic has already been handled</span></div>
+<div class="line"><a name="l00672"></a><span class="lineno">  672</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00673"></a><span class="lineno">  673</span>   }</div>
+<div class="line"><a name="l00674"></a><span class="lineno">  674</span> </div>
+<div class="line"><a name="l00675"></a><span class="lineno">  675</span>   StringRef ReplaceFileName;</div>
+<div class="line"><a name="l00676"></a><span class="lineno">  676</span>   <span class="keywordflow">if</span> (ReplaceFilenameTok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::string_literal) || </div>
+<div class="line"><a name="l00677"></a><span class="lineno">  677</span>       ReplaceFilenameTok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::angle_string_literal)) {</div>
+<div class="line"><a name="l00678"></a><span class="lineno">  678</span>     ReplaceFileName = <a class="code" href="classclang_1_1Preprocessor.html#a000147976c13c269dd82ef645fa3fe35">getSpelling</a>(ReplaceFilenameTok, FileNameBuffer);</div>
+<div class="line"><a name="l00679"></a><span class="lineno">  679</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (ReplaceFilenameTok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::less)) {</div>
+<div class="line"><a name="l00680"></a><span class="lineno">  680</span>     <span class="comment">// This could be a path instead of just a name</span></div>
+<div class="line"><a name="l00681"></a><span class="lineno">  681</span>     FileNameBuffer.push_back(<span class="charliteral">'<'</span>);</div>
+<div class="line"><a name="l00682"></a><span class="lineno">  682</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> End;</div>
+<div class="line"><a name="l00683"></a><span class="lineno">  683</span>     <span class="keywordflow">if</span> (<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, End))</div>
+<div class="line"><a name="l00684"></a><span class="lineno">  684</span>       <span class="keywordflow">return</span>; <span class="comment">// Diagnostic already emitted</span></div>
+<div class="line"><a name="l00685"></a><span class="lineno">  685</span>     ReplaceFileName = FileNameBuffer.str();</div>
+<div class="line"><a name="l00686"></a><span class="lineno">  686</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00687"></a><span class="lineno">  687</span>     <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::warn_pragma_include_alias_expected_filename);</div>
+<div class="line"><a name="l00688"></a><span class="lineno">  688</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00689"></a><span class="lineno">  689</span>   }</div>
+<div class="line"><a name="l00690"></a><span class="lineno">  690</span> </div>
+<div class="line"><a name="l00691"></a><span class="lineno">  691</span>   <span class="comment">// Finally, we expect the closing paren</span></div>
+<div class="line"><a name="l00692"></a><span class="lineno">  692</span>   <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="l00693"></a><span class="lineno">  693</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="l00694"></a><span class="lineno">  694</span>     <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::warn_pragma_include_alias_expected) << <span class="stringliteral">")"</span>;</div>
+<div class="line"><a name="l00695"></a><span class="lineno">  695</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00696"></a><span class="lineno">  696</span>   }</div>
+<div class="line"><a name="l00697"></a><span class="lineno">  697</span> </div>
+<div class="line"><a name="l00698"></a><span class="lineno">  698</span>   <span class="comment">// Now that we have the source and target filenames, we need to make sure</span></div>
+<div class="line"><a name="l00699"></a><span class="lineno">  699</span>   <span class="comment">// they're both of the same type (angled vs non-angled)</span></div>
+<div class="line"><a name="l00700"></a><span class="lineno">  700</span>   StringRef OriginalSource = SourceFileName;</div>
+<div class="line"><a name="l00701"></a><span class="lineno">  701</span> </div>
+<div class="line"><a name="l00702"></a><span class="lineno">  702</span>   <span class="keywordtype">bool</span> SourceIsAngled = </div>
+<div class="line"><a name="l00703"></a><span class="lineno">  703</span>     <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>(SourceFilenameTok.<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="l00704"></a><span class="lineno">  704</span>                                 SourceFileName);</div>
+<div class="line"><a name="l00705"></a><span class="lineno">  705</span>   <span class="keywordtype">bool</span> ReplaceIsAngled =</div>
+<div class="line"><a name="l00706"></a><span class="lineno">  706</span>     <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>(ReplaceFilenameTok.<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="l00707"></a><span class="lineno">  707</span>                                 ReplaceFileName);</div>
+<div class="line"><a name="l00708"></a><span class="lineno">  708</span>   <span class="keywordflow">if</span> (!SourceFileName.empty() && !ReplaceFileName.empty() &&</div>
+<div class="line"><a name="l00709"></a><span class="lineno">  709</span>       (SourceIsAngled != ReplaceIsAngled)) {</div>
+<div class="line"><a name="l00710"></a><span class="lineno">  710</span>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> DiagID;</div>
+<div class="line"><a name="l00711"></a><span class="lineno">  711</span>     <span class="keywordflow">if</span> (SourceIsAngled)</div>
+<div class="line"><a name="l00712"></a><span class="lineno">  712</span>       DiagID = diag::warn_pragma_include_alias_mismatch_angle;</div>
+<div class="line"><a name="l00713"></a><span class="lineno">  713</span>     <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00714"></a><span class="lineno">  714</span>       DiagID = diag::warn_pragma_include_alias_mismatch_quote;</div>
+<div class="line"><a name="l00715"></a><span class="lineno">  715</span> </div>
+<div class="line"><a name="l00716"></a><span class="lineno">  716</span>     <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(SourceFilenameTok.<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>(), DiagID)</div>
+<div class="line"><a name="l00717"></a><span class="lineno">  717</span>       << SourceFileName </div>
+<div class="line"><a name="l00718"></a><span class="lineno">  718</span>       << ReplaceFileName;</div>
+<div class="line"><a name="l00719"></a><span class="lineno">  719</span> </div>
+<div class="line"><a name="l00720"></a><span class="lineno">  720</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00721"></a><span class="lineno">  721</span>   }</div>
+<div class="line"><a name="l00722"></a><span class="lineno">  722</span> </div>
+<div class="line"><a name="l00723"></a><span class="lineno">  723</span>   <span class="comment">// Now we can let the include handler know about this mapping</span></div>
+<div class="line"><a name="l00724"></a><span class="lineno">  724</span>   <a class="code" href="classclang_1_1Preprocessor.html#a9dc8733c4a182dee512c14dbdcfe046e">getHeaderSearchInfo</a>().<a class="code" href="classclang_1_1HeaderSearch.html#aeeda46691c6abb55d6eef5aef5af552a" title="Map the source include name to the dest include name.">AddIncludeAlias</a>(OriginalSource, ReplaceFileName);</div>
+<div class="line"><a name="l00725"></a><span class="lineno">  725</span> }</div>
+<div class="line"><a name="l00726"></a><span class="lineno">  726</span> <span class="comment"></span></div>
+<div class="line"><a name="l00727"></a><span class="lineno">  727</span> <span class="comment">/// AddPragmaHandler - Add the specified pragma handler to the preprocessor.</span></div>
+<div class="line"><a name="l00728"></a><span class="lineno">  728</span> <span class="comment">/// If 'Namespace' is non-null, then it is a token required to exist on the</span></div>
+<div class="line"><a name="l00729"></a><span class="lineno">  729</span> <span class="comment">/// pragma line before the pragma string starts, e.g. "STDC" or "GCC".</span></div>
+<div class="line"><a name="l00730"></a><span class="lineno"><a class="code" href="classclang_1_1Preprocessor.html#aad6c9a9329db3baa561722df8bb6acaf">  730</a></span> <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="classclang_1_1Preprocessor.html#aad6c9a9329db3baa561722df8bb6acaf">Preprocessor::AddPragmaHandler</a>(StringRef Namespace,</div>
+<div class="line"><a name="l00731"></a><span class="lineno">  731</span>                                     <a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a> *Handler) {</div>
+<div class="line"><a name="l00732"></a><span class="lineno">  732</span>   <a class="code" href="classclang_1_1PragmaNamespace.html">PragmaNamespace</a> *InsertNS = PragmaHandlers;</div>
+<div class="line"><a name="l00733"></a><span class="lineno">  733</span> </div>
+<div class="line"><a name="l00734"></a><span class="lineno">  734</span>   <span class="comment">// If this is specified to be in a namespace, step down into it.</span></div>
+<div class="line"><a name="l00735"></a><span class="lineno">  735</span>   <span class="keywordflow">if</span> (!Namespace.empty()) {</div>
+<div class="line"><a name="l00736"></a><span class="lineno">  736</span>     <span class="comment">// If there is already a pragma handler with the name of this namespace,</span></div>
+<div class="line"><a name="l00737"></a><span class="lineno">  737</span>     <span class="comment">// we either have an error (directive with the same name as a namespace) or</span></div>
+<div class="line"><a name="l00738"></a><span class="lineno">  738</span>     <span class="comment">// we already have the namespace to insert into.</span></div>
+<div class="line"><a name="l00739"></a><span class="lineno">  739</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a> *Existing = PragmaHandlers-><a class="code" href="classclang_1_1PragmaNamespace.html#a7af0a145912714f18ad78ba146403893">FindHandler</a>(Namespace)) {</div>
+<div class="line"><a name="l00740"></a><span class="lineno">  740</span>       InsertNS = Existing-><a class="code" href="classclang_1_1PragmaNamespace.html#a0428261478b769478ea7f2af213a277d">getIfNamespace</a>();</div>
+<div class="line"><a name="l00741"></a><span class="lineno">  741</span>       assert(InsertNS != 0 && <span class="stringliteral">"Cannot have a pragma namespace and pragma"</span></div>
+<div class="line"><a name="l00742"></a><span class="lineno">  742</span>              <span class="stringliteral">" handler with the same name!"</span>);</div>
+<div class="line"><a name="l00743"></a><span class="lineno">  743</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00744"></a><span class="lineno">  744</span>       <span class="comment">// Otherwise, this namespace doesn't exist yet, create and insert the</span></div>
+<div class="line"><a name="l00745"></a><span class="lineno">  745</span>       <span class="comment">// handler for it.</span></div>
+<div class="line"><a name="l00746"></a><span class="lineno">  746</span>       InsertNS = <span class="keyword">new</span> <a class="code" href="classclang_1_1PragmaNamespace.html">PragmaNamespace</a>(Namespace);</div>
+<div class="line"><a name="l00747"></a><span class="lineno">  747</span>       PragmaHandlers-><a class="code" href="classclang_1_1PragmaNamespace.html#a0599fb5c095626a167128eaee48d6282">AddPragma</a>(InsertNS);</div>
+<div class="line"><a name="l00748"></a><span class="lineno">  748</span>     }</div>
+<div class="line"><a name="l00749"></a><span class="lineno">  749</span>   }</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>   <span class="comment">// Check to make sure we don't already have a pragma for this identifier.</span></div>
+<div class="line"><a name="l00752"></a><span class="lineno">  752</span>   assert(!InsertNS-><a class="code" href="classclang_1_1PragmaNamespace.html#a7af0a145912714f18ad78ba146403893">FindHandler</a>(Handler-><a class="code" href="classclang_1_1PragmaHandler.html#a514849d5710b59edf14834a6312303e5">getName</a>()) &&</div>
+<div class="line"><a name="l00753"></a><span class="lineno">  753</span>          <span class="stringliteral">"Pragma handler already exists for this identifier!"</span>);</div>
+<div class="line"><a name="l00754"></a><span class="lineno">  754</span>   InsertNS-><a class="code" href="classclang_1_1PragmaNamespace.html#a0599fb5c095626a167128eaee48d6282">AddPragma</a>(Handler);</div>
+<div class="line"><a name="l00755"></a><span class="lineno">  755</span> }</div>
+<div class="line"><a name="l00756"></a><span class="lineno">  756</span> <span class="comment"></span></div>
+<div class="line"><a name="l00757"></a><span class="lineno">  757</span> <span class="comment">/// RemovePragmaHandler - Remove the specific pragma handler from the</span></div>
+<div class="line"><a name="l00758"></a><span class="lineno">  758</span> <span class="comment">/// preprocessor. If \arg Namespace is non-null, then it should be the</span></div>
+<div class="line"><a name="l00759"></a><span class="lineno">  759</span> <span class="comment">/// namespace that \arg Handler was added to. It is an error to remove</span></div>
+<div class="line"><a name="l00760"></a><span class="lineno">  760</span> <span class="comment">/// a handler that has not been registered.</span></div>
+<div class="line"><a name="l00761"></a><span class="lineno"><a class="code" href="classclang_1_1Preprocessor.html#aee091d85559f3b420947bc46ca0623bc">  761</a></span> <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="classclang_1_1Preprocessor.html#aee091d85559f3b420947bc46ca0623bc">Preprocessor::RemovePragmaHandler</a>(StringRef Namespace,</div>
+<div class="line"><a name="l00762"></a><span class="lineno">  762</span>                                        <a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a> *Handler) {</div>
+<div class="line"><a name="l00763"></a><span class="lineno">  763</span>   <a class="code" href="classclang_1_1PragmaNamespace.html">PragmaNamespace</a> *NS = PragmaHandlers;</div>
+<div class="line"><a name="l00764"></a><span class="lineno">  764</span> </div>
+<div class="line"><a name="l00765"></a><span class="lineno">  765</span>   <span class="comment">// If this is specified to be in a namespace, step down into it.</span></div>
+<div class="line"><a name="l00766"></a><span class="lineno">  766</span>   <span class="keywordflow">if</span> (!Namespace.empty()) {</div>
+<div class="line"><a name="l00767"></a><span class="lineno">  767</span>     <a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a> *Existing = PragmaHandlers-><a class="code" href="classclang_1_1PragmaNamespace.html#a7af0a145912714f18ad78ba146403893">FindHandler</a>(Namespace);</div>
+<div class="line"><a name="l00768"></a><span class="lineno">  768</span>     assert(Existing && <span class="stringliteral">"Namespace containing handler does not exist!"</span>);</div>
+<div class="line"><a name="l00769"></a><span class="lineno">  769</span> </div>
+<div class="line"><a name="l00770"></a><span class="lineno">  770</span>     NS = Existing-><a class="code" href="classclang_1_1PragmaHandler.html#a0711819ab5a1e1141317cbcac68a4e5b">getIfNamespace</a>();</div>
+<div class="line"><a name="l00771"></a><span class="lineno">  771</span>     assert(NS && <span class="stringliteral">"Invalid namespace, registered as a regular pragma handler!"</span>);</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>   NS-><a class="code" href="classclang_1_1PragmaNamespace.html#a75e12bc28dabe97a8954f5bebb656d59">RemovePragmaHandler</a>(Handler);</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">// If this is a non-default namespace and it is now empty, remove</span></div>
+<div class="line"><a name="l00777"></a><span class="lineno">  777</span>   <span class="comment">// it.</span></div>
+<div class="line"><a name="l00778"></a><span class="lineno">  778</span>   <span class="keywordflow">if</span> (NS != PragmaHandlers && NS-><a class="code" href="classclang_1_1PragmaNamespace.html#a8d11b473796edc61e17c56eae7aa3f58">IsEmpty</a>()) {</div>
+<div class="line"><a name="l00779"></a><span class="lineno">  779</span>     PragmaHandlers-><a class="code" href="classclang_1_1PragmaNamespace.html#a75e12bc28dabe97a8954f5bebb656d59">RemovePragmaHandler</a>(NS);</div>
+<div class="line"><a name="l00780"></a><span class="lineno">  780</span>     <span class="keyword">delete</span> NS;</div>
+<div class="line"><a name="l00781"></a><span class="lineno">  781</span>   }</div>
+<div class="line"><a name="l00782"></a><span class="lineno">  782</span> }</div>
+<div class="line"><a name="l00783"></a><span class="lineno">  783</span> </div>
+<div class="line"><a name="l00784"></a><span class="lineno"><a class="code" href="classclang_1_1Preprocessor.html#a523b55b97f8dba2e34015ee35e25297c">  784</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1Preprocessor.html#a523b55b97f8dba2e34015ee35e25297c">Preprocessor::LexOnOffSwitch</a>(<a class="code" href="namespaceclang_1_1tok.html#a9e7c550f3ca5da24c86527144f078968" title="Defines the possible values of an on-off-switch (C99 6.10.6p2).">tok::OnOffSwitch</a> &Result) {</div>
+<div class="line"><a name="l00785"></a><span class="lineno">  785</span>   <a class="code" href="classclang_1_1Token.html">Token</a> Tok;</div>
+<div class="line"><a name="l00786"></a><span class="lineno">  786</span>   <a class="code" href="classclang_1_1Preprocessor.html#aaaf1f5cefe79d0f9da0637c5a3d4e7dc">LexUnexpandedToken</a>(Tok);</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="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::identifier)) {</div>
+<div class="line"><a name="l00789"></a><span class="lineno">  789</span>     <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::ext_on_off_switch_syntax);</div>
+<div class="line"><a name="l00790"></a><span class="lineno">  790</span>     <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00791"></a><span class="lineno">  791</span>   }</div>
+<div class="line"><a name="l00792"></a><span class="lineno">  792</span>   <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="l00793"></a><span class="lineno">  793</span>   <span class="keywordflow">if</span> (II-><a class="code" href="classclang_1_1IdentifierInfo.html#a6cc09d0b74aca49bbdb23bcc4c35cf82" title="Return true if this is the identifier for the specified string.">isStr</a>(<span class="stringliteral">"ON"</span>))</div>
+<div class="line"><a name="l00794"></a><span class="lineno">  794</span>     Result = <a class="code" href="namespaceclang_1_1tok.html#a9e7c550f3ca5da24c86527144f078968aa0b51e03cbe50e0a0867c44c2adcda97">tok::OOS_ON</a>;</div>
+<div class="line"><a name="l00795"></a><span class="lineno">  795</span>   <span class="keywordflow">else</span> <span class="keywordflow">if</span> (II-><a class="code" href="classclang_1_1IdentifierInfo.html#a6cc09d0b74aca49bbdb23bcc4c35cf82" title="Return true if this is the identifier for the specified string.">isStr</a>(<span class="stringliteral">"OFF"</span>))</div>
+<div class="line"><a name="l00796"></a><span class="lineno">  796</span>     Result = <a class="code" href="namespaceclang_1_1tok.html#a9e7c550f3ca5da24c86527144f078968ab0028ea16a7021397a3463a1ef02cbf9">tok::OOS_OFF</a>;</div>
+<div class="line"><a name="l00797"></a><span class="lineno">  797</span>   <span class="keywordflow">else</span> <span class="keywordflow">if</span> (II-><a class="code" href="classclang_1_1IdentifierInfo.html#a6cc09d0b74aca49bbdb23bcc4c35cf82" title="Return true if this is the identifier for the specified string.">isStr</a>(<span class="stringliteral">"DEFAULT"</span>))</div>
+<div class="line"><a name="l00798"></a><span class="lineno">  798</span>     Result = <a class="code" href="namespaceclang_1_1tok.html#a9e7c550f3ca5da24c86527144f078968ab64d5f57a514d4fbb216cee7a0e30dbb">tok::OOS_DEFAULT</a>;</div>
+<div class="line"><a name="l00799"></a><span class="lineno">  799</span>   <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00800"></a><span class="lineno">  800</span>     <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::ext_on_off_switch_syntax);</div>
+<div class="line"><a name="l00801"></a><span class="lineno">  801</span>     <span class="keywordflow">return</span> <span class="keyword">true</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>   <span class="comment">// Verify that this is followed by EOD.</span></div>
+<div class="line"><a name="l00805"></a><span class="lineno">  805</span>   <a class="code" href="classclang_1_1Preprocessor.html#aaaf1f5cefe79d0f9da0637c5a3d4e7dc">LexUnexpandedToken</a>(Tok);</div>
+<div class="line"><a name="l00806"></a><span class="lineno">  806</span>   <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::eod))</div>
+<div class="line"><a name="l00807"></a><span class="lineno">  807</span>     <a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::ext_pragma_syntax_eod);</div>
+<div class="line"><a name="l00808"></a><span class="lineno">  808</span>   <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00809"></a><span class="lineno">  809</span> }</div>
+<div class="line"><a name="l00810"></a><span class="lineno">  810</span> </div>
+<div class="line"><a name="l00811"></a><span class="lineno">  811</span> <span class="keyword">namespace </span>{<span class="comment"></span></div>
+<div class="line"><a name="l00812"></a><span class="lineno">  812</span> <span class="comment">/// PragmaOnceHandler - "\#pragma once" marks the file as atomically included.</span></div>
+<div class="line"><a name="l00813"></a><span class="lineno">  813</span> <span class="comment"></span><span class="keyword">struct </span>PragmaOnceHandler : <span class="keyword">public</span> <a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a> {</div>
+<div class="line"><a name="l00814"></a><span class="lineno">  814</span>   PragmaOnceHandler() : <a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a>(<span class="stringliteral">"once"</span>) {}</div>
+<div class="line"><a name="l00815"></a><span class="lineno">  815</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> HandlePragma(<a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP, <a class="code" href="namespaceclang.html#abad0c9179d409d68fce8917ebd5276ed" title="Describes how the pragma was introduced, e.g., with #pragma, _Pragma, or __pragma.">PragmaIntroducerKind</a> Introducer,</div>
+<div class="line"><a name="l00816"></a><span class="lineno">  816</span>                             <a class="code" href="classclang_1_1Token.html">Token</a> &OnceTok) {</div>
+<div class="line"><a name="l00817"></a><span class="lineno">  817</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#a8d5ad106fe48dbfbaa57ecc6fbe54b49" title="Ensure that the next token is a tok::eod token.">CheckEndOfDirective</a>(<span class="stringliteral">"pragma once"</span>);</div>
+<div class="line"><a name="l00818"></a><span class="lineno">  818</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#a79c836c269d26280f300a82824cde7b4">HandlePragmaOnce</a>(OnceTok);</div>
+<div class="line"><a name="l00819"></a><span class="lineno">  819</span>   }</div>
+<div class="line"><a name="l00820"></a><span class="lineno">  820</span> };</div>
+<div class="line"><a name="l00821"></a><span class="lineno">  821</span> <span class="comment"></span></div>
+<div class="line"><a name="l00822"></a><span class="lineno">  822</span> <span class="comment">/// PragmaMarkHandler - "\#pragma mark ..." is ignored by the compiler, and the</span></div>
+<div class="line"><a name="l00823"></a><span class="lineno">  823</span> <span class="comment">/// rest of the line is not lexed.</span></div>
+<div class="line"><a name="l00824"></a><span class="lineno">  824</span> <span class="comment"></span><span class="keyword">struct </span>PragmaMarkHandler : <span class="keyword">public</span> <a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a> {</div>
+<div class="line"><a name="l00825"></a><span class="lineno">  825</span>   PragmaMarkHandler() : <a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a>(<span class="stringliteral">"mark"</span>) {}</div>
+<div class="line"><a name="l00826"></a><span class="lineno">  826</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> HandlePragma(<a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP, <a class="code" href="namespaceclang.html#abad0c9179d409d68fce8917ebd5276ed" title="Describes how the pragma was introduced, e.g., with #pragma, _Pragma, or __pragma.">PragmaIntroducerKind</a> Introducer,</div>
+<div class="line"><a name="l00827"></a><span class="lineno">  827</span>                             <a class="code" href="classclang_1_1Token.html">Token</a> &MarkTok) {</div>
+<div class="line"><a name="l00828"></a><span class="lineno">  828</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#aba128c330bf759bd6b7f4b26b228f4c3">HandlePragmaMark</a>();</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> };</div>
+<div class="line"><a name="l00831"></a><span class="lineno">  831</span> <span class="comment"></span></div>
+<div class="line"><a name="l00832"></a><span class="lineno">  832</span> <span class="comment">/// PragmaPoisonHandler - "\#pragma poison x" marks x as not usable.</span></div>
+<div class="line"><a name="l00833"></a><span class="lineno">  833</span> <span class="comment"></span><span class="keyword">struct </span>PragmaPoisonHandler : <span class="keyword">public</span> <a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a> {</div>
+<div class="line"><a name="l00834"></a><span class="lineno">  834</span>   PragmaPoisonHandler() : <a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a>(<span class="stringliteral">"poison"</span>) {}</div>
+<div class="line"><a name="l00835"></a><span class="lineno">  835</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> HandlePragma(<a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP, <a class="code" href="namespaceclang.html#abad0c9179d409d68fce8917ebd5276ed" title="Describes how the pragma was introduced, e.g., with #pragma, _Pragma, or __pragma.">PragmaIntroducerKind</a> Introducer,</div>
+<div class="line"><a name="l00836"></a><span class="lineno">  836</span>                             <a class="code" href="classclang_1_1Token.html">Token</a> &PoisonTok) {</div>
+<div class="line"><a name="l00837"></a><span class="lineno">  837</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#a97b9741ea0a15fc4c1b559c870394a90">HandlePragmaPoison</a>(PoisonTok);</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> <span class="comment"></span></div>
+<div class="line"><a name="l00841"></a><span class="lineno">  841</span> <span class="comment">/// PragmaSystemHeaderHandler - "\#pragma system_header" marks the current file</span></div>
+<div class="line"><a name="l00842"></a><span class="lineno">  842</span> <span class="comment">/// as a system header, which silences warnings in it.</span></div>
+<div class="line"><a name="l00843"></a><span class="lineno">  843</span> <span class="comment"></span><span class="keyword">struct </span>PragmaSystemHeaderHandler : <span class="keyword">public</span> <a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a> {</div>
+<div class="line"><a name="l00844"></a><span class="lineno">  844</span>   PragmaSystemHeaderHandler() : <a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a>(<span class="stringliteral">"system_header"</span>) {}</div>
+<div class="line"><a name="l00845"></a><span class="lineno">  845</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> HandlePragma(<a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP, <a class="code" href="namespaceclang.html#abad0c9179d409d68fce8917ebd5276ed" title="Describes how the pragma was introduced, e.g., with #pragma, _Pragma, or __pragma.">PragmaIntroducerKind</a> Introducer,</div>
+<div class="line"><a name="l00846"></a><span class="lineno">  846</span>                             <a class="code" href="classclang_1_1Token.html">Token</a> &SHToken) {</div>
+<div class="line"><a name="l00847"></a><span class="lineno">  847</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#a09969bb061c57b1252cfdd11645d6801">HandlePragmaSystemHeader</a>(SHToken);</div>
+<div class="line"><a name="l00848"></a><span class="lineno">  848</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#a8d5ad106fe48dbfbaa57ecc6fbe54b49" title="Ensure that the next token is a tok::eod token.">CheckEndOfDirective</a>(<span class="stringliteral">"pragma"</span>);</div>
+<div class="line"><a name="l00849"></a><span class="lineno">  849</span>   }</div>
+<div class="line"><a name="l00850"></a><span class="lineno">  850</span> };</div>
+<div class="line"><a name="l00851"></a><span class="lineno">  851</span> <span class="keyword">struct </span>PragmaDependencyHandler : <span class="keyword">public</span> <a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a> {</div>
+<div class="line"><a name="l00852"></a><span class="lineno">  852</span>   PragmaDependencyHandler() : <a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a>(<span class="stringliteral">"dependency"</span>) {}</div>
+<div class="line"><a name="l00853"></a><span class="lineno">  853</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> HandlePragma(<a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP, <a class="code" href="namespaceclang.html#abad0c9179d409d68fce8917ebd5276ed" title="Describes how the pragma was introduced, e.g., with #pragma, _Pragma, or __pragma.">PragmaIntroducerKind</a> Introducer,</div>
+<div class="line"><a name="l00854"></a><span class="lineno">  854</span>                             <a class="code" href="classclang_1_1Token.html">Token</a> &DepToken) {</div>
+<div class="line"><a name="l00855"></a><span class="lineno">  855</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#a5ba69647492bdc122d9d7e63253dd571">HandlePragmaDependency</a>(DepToken);</div>
+<div class="line"><a name="l00856"></a><span class="lineno">  856</span>   }</div>
+<div class="line"><a name="l00857"></a><span class="lineno">  857</span> };</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="keyword">struct </span>PragmaDebugHandler : <span class="keyword">public</span> <a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a> {</div>
+<div class="line"><a name="l00860"></a><span class="lineno">  860</span>   PragmaDebugHandler() : <a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a>(<span class="stringliteral">"__debug"</span>) {}</div>
+<div class="line"><a name="l00861"></a><span class="lineno">  861</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> HandlePragma(<a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP, <a class="code" href="namespaceclang.html#abad0c9179d409d68fce8917ebd5276ed" title="Describes how the pragma was introduced, e.g., with #pragma, _Pragma, or __pragma.">PragmaIntroducerKind</a> Introducer,</div>
+<div class="line"><a name="l00862"></a><span class="lineno">  862</span>                             <a class="code" href="classclang_1_1Token.html">Token</a> &DepToken) {</div>
+<div class="line"><a name="l00863"></a><span class="lineno">  863</span>     <a class="code" href="classclang_1_1Token.html">Token</a> Tok;</div>
+<div class="line"><a name="l00864"></a><span class="lineno">  864</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#aaaf1f5cefe79d0f9da0637c5a3d4e7dc">LexUnexpandedToken</a>(Tok);</div>
+<div class="line"><a name="l00865"></a><span class="lineno">  865</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="l00866"></a><span class="lineno">  866</span>       PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::warn_pragma_diagnostic_invalid);</div>
+<div class="line"><a name="l00867"></a><span class="lineno">  867</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00868"></a><span class="lineno">  868</span>     }</div>
+<div class="line"><a name="l00869"></a><span class="lineno">  869</span>     <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="l00870"></a><span class="lineno">  870</span> </div>
+<div class="line"><a name="l00871"></a><span class="lineno">  871</span>     <span class="keywordflow">if</span> (II-><a class="code" href="classclang_1_1IdentifierInfo.html#a6cc09d0b74aca49bbdb23bcc4c35cf82" title="Return true if this is the identifier for the specified string.">isStr</a>(<span class="stringliteral">"assert"</span>)) {</div>
+<div class="line"><a name="l00872"></a><span class="lineno">  872</span>       llvm_unreachable(<span class="stringliteral">"This is an assertion!"</span>);</div>
+<div class="line"><a name="l00873"></a><span class="lineno">  873</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (II-><a class="code" href="classclang_1_1IdentifierInfo.html#a6cc09d0b74aca49bbdb23bcc4c35cf82" title="Return true if this is the identifier for the specified string.">isStr</a>(<span class="stringliteral">"crash"</span>)) {</div>
+<div class="line"><a name="l00874"></a><span class="lineno">  874</span>       LLVM_BUILTIN_TRAP;</div>
+<div class="line"><a name="l00875"></a><span class="lineno">  875</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (II-><a class="code" href="classclang_1_1IdentifierInfo.html#a6cc09d0b74aca49bbdb23bcc4c35cf82" title="Return true if this is the identifier for the specified string.">isStr</a>(<span class="stringliteral">"parser_crash"</span>)) {</div>
+<div class="line"><a name="l00876"></a><span class="lineno">  876</span>       <a class="code" href="classclang_1_1Token.html">Token</a> Crasher;</div>
+<div class="line"><a name="l00877"></a><span class="lineno">  877</span>       Crasher.<a class="code" href="classclang_1_1Token.html#a44b757baba649ad00b79f78671a8a2aa">setKind</a>(tok::annot_pragma_parser_crash);</div>
+<div class="line"><a name="l00878"></a><span class="lineno">  878</span>       PP.<a class="code" href="classclang_1_1Preprocessor.html#a281f16dcb4fca3c52652dbc11ed53c1a">EnterToken</a>(Crasher);</div>
+<div class="line"><a name="l00879"></a><span class="lineno">  879</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (II-><a class="code" href="classclang_1_1IdentifierInfo.html#a6cc09d0b74aca49bbdb23bcc4c35cf82" title="Return true if this is the identifier for the specified string.">isStr</a>(<span class="stringliteral">"llvm_fatal_error"</span>)) {</div>
+<div class="line"><a name="l00880"></a><span class="lineno">  880</span>       llvm::report_fatal_error(<span class="stringliteral">"#pragma clang __debug llvm_fatal_error"</span>);</div>
+<div class="line"><a name="l00881"></a><span class="lineno">  881</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (II-><a class="code" href="classclang_1_1IdentifierInfo.html#a6cc09d0b74aca49bbdb23bcc4c35cf82" title="Return true if this is the identifier for the specified string.">isStr</a>(<span class="stringliteral">"llvm_unreachable"</span>)) {</div>
+<div class="line"><a name="l00882"></a><span class="lineno">  882</span>       llvm_unreachable(<span class="stringliteral">"#pragma clang __debug llvm_unreachable"</span>);</div>
+<div class="line"><a name="l00883"></a><span class="lineno">  883</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (II-><a class="code" href="classclang_1_1IdentifierInfo.html#a6cc09d0b74aca49bbdb23bcc4c35cf82" title="Return true if this is the identifier for the specified string.">isStr</a>(<span class="stringliteral">"overflow_stack"</span>)) {</div>
+<div class="line"><a name="l00884"></a><span class="lineno">  884</span>       DebugOverflowStack();</div>
+<div class="line"><a name="l00885"></a><span class="lineno">  885</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (II-><a class="code" href="classclang_1_1IdentifierInfo.html#a6cc09d0b74aca49bbdb23bcc4c35cf82" title="Return true if this is the identifier for the specified string.">isStr</a>(<span class="stringliteral">"handle_crash"</span>)) {</div>
+<div class="line"><a name="l00886"></a><span class="lineno">  886</span>       llvm::CrashRecoveryContext *CRC =llvm::CrashRecoveryContext::GetCurrent();</div>
+<div class="line"><a name="l00887"></a><span class="lineno">  887</span>       <span class="keywordflow">if</span> (CRC)</div>
+<div class="line"><a name="l00888"></a><span class="lineno">  888</span>         CRC->HandleCrash();</div>
+<div class="line"><a name="l00889"></a><span class="lineno">  889</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (II-><a class="code" href="classclang_1_1IdentifierInfo.html#a6cc09d0b74aca49bbdb23bcc4c35cf82" title="Return true if this is the identifier for the specified string.">isStr</a>(<span class="stringliteral">"captured"</span>)) {</div>
+<div class="line"><a name="l00890"></a><span class="lineno">  890</span>       HandleCaptured(PP);</div>
+<div class="line"><a name="l00891"></a><span class="lineno">  891</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00892"></a><span class="lineno">  892</span>       PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::warn_pragma_debug_unexpected_command)</div>
+<div class="line"><a name="l00893"></a><span class="lineno">  893</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="l00894"></a><span class="lineno">  894</span>     }</div>
+<div class="line"><a name="l00895"></a><span class="lineno">  895</span> </div>
+<div class="line"><a name="l00896"></a><span class="lineno">  896</span>     <a class="code" href="classclang_1_1PPCallbacks.html" title="This interface provides a way to observe the actions of the preprocessor as it does its thing...">PPCallbacks</a> *Callbacks = PP.<a class="code" href="classclang_1_1Preprocessor.html#a19c49b68d13fbd14b80be6e947bddd4c">getPPCallbacks</a>();</div>
+<div class="line"><a name="l00897"></a><span class="lineno">  897</span>     <span class="keywordflow">if</span> (Callbacks)</div>
+<div class="line"><a name="l00898"></a><span class="lineno">  898</span>       Callbacks-><a class="code" href="classclang_1_1PPCallbacks.html#a57cdccb6dcc07e926513ac3d5b121466" title="Callback invoked when a #pragma clang __debug directive is read.">PragmaDebug</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>(), II-><a class="code" href="classclang_1_1IdentifierInfo.html#a94caec6a16e508e8ca39eacd278bd2c5" title="Return the actual identifier string.">getName</a>());</div>
+<div class="line"><a name="l00899"></a><span class="lineno">  899</span>   }</div>
+<div class="line"><a name="l00900"></a><span class="lineno">  900</span> </div>
+<div class="line"><a name="l00901"></a><span class="lineno">  901</span>   <span class="keywordtype">void</span> HandleCaptured(<a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP) {</div>
+<div class="line"><a name="l00902"></a><span class="lineno">  902</span>     <span class="comment">// Skip if emitting preprocessed output.</span></div>
+<div class="line"><a name="l00903"></a><span class="lineno">  903</span>     <span class="keywordflow">if</span> (PP.<a class="code" href="classclang_1_1Preprocessor.html#a3df68fbf9685e76f52f2cc1ded6f8181">isPreprocessedOutput</a>())</div>
+<div class="line"><a name="l00904"></a><span class="lineno">  904</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00905"></a><span class="lineno">  905</span> </div>
+<div class="line"><a name="l00906"></a><span class="lineno">  906</span>     <a class="code" href="classclang_1_1Token.html">Token</a> Tok;</div>
+<div class="line"><a name="l00907"></a><span class="lineno">  907</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#aaaf1f5cefe79d0f9da0637c5a3d4e7dc">LexUnexpandedToken</a>(Tok);</div>
+<div class="line"><a name="l00908"></a><span class="lineno">  908</span> </div>
+<div class="line"><a name="l00909"></a><span class="lineno">  909</span>     <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::eod)) {</div>
+<div class="line"><a name="l00910"></a><span class="lineno">  910</span>       PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::ext_pp_extra_tokens_at_eol)</div>
+<div class="line"><a name="l00911"></a><span class="lineno">  911</span>         << <span class="stringliteral">"pragma clang __debug captured"</span>;</div>
+<div class="line"><a name="l00912"></a><span class="lineno">  912</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00913"></a><span class="lineno">  913</span>     }</div>
+<div class="line"><a name="l00914"></a><span class="lineno">  914</span> </div>
+<div class="line"><a name="l00915"></a><span class="lineno">  915</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> NameLoc = 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="l00916"></a><span class="lineno">  916</span>     <a class="code" href="classclang_1_1Token.html">Token</a> *Toks = PP.<a class="code" href="classclang_1_1Preprocessor.html#af02cb6b556c7c415fe94133836a426e9">getPreprocessorAllocator</a>().Allocate<<a class="code" href="classclang_1_1Token.html">Token</a>>(1);</div>
+<div class="line"><a name="l00917"></a><span class="lineno">  917</span>     Toks-><a class="code" href="classclang_1_1Token.html#ae1e49685acde6208c1c83f38540832c1" title="Reset all flags to cleared.">startToken</a>();</div>
+<div class="line"><a name="l00918"></a><span class="lineno">  918</span>     Toks-><a class="code" href="classclang_1_1Token.html#a44b757baba649ad00b79f78671a8a2aa">setKind</a>(tok::annot_pragma_captured);</div>
+<div class="line"><a name="l00919"></a><span class="lineno">  919</span>     Toks-><a class="code" href="classclang_1_1Token.html#ab52b4059e1b2e648c78b7c326190d2ce">setLocation</a>(NameLoc);</div>
+<div class="line"><a name="l00920"></a><span class="lineno">  920</span> </div>
+<div class="line"><a name="l00921"></a><span class="lineno">  921</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#a4869ffa7c1268e6e7cbd8fd5b7b0364d">EnterTokenStream</a>(Toks, 1, <span class="comment">/*DisableMacroExpansion=*/</span><span class="keyword">true</span>,</div>
+<div class="line"><a name="l00922"></a><span class="lineno">  922</span>                         <span class="comment">/*OwnsTokens=*/</span><span class="keyword">false</span>);</div>
+<div class="line"><a name="l00923"></a><span class="lineno">  923</span>   }</div>
+<div class="line"><a name="l00924"></a><span class="lineno">  924</span> </div>
+<div class="line"><a name="l00925"></a><span class="lineno">  925</span> <span class="comment">// Disable MSVC warning about runtime stack overflow.</span></div>
+<div class="line"><a name="l00926"></a><span class="lineno">  926</span> <span class="preprocessor">#ifdef _MSC_VER</span></div>
+<div class="line"><a name="l00927"></a><span class="lineno">  927</span> <span class="preprocessor"></span><span class="preprocessor">    #pragma warning(disable : 4717)</span></div>
+<div class="line"><a name="l00928"></a><span class="lineno">  928</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00929"></a><span class="lineno">  929</span> <span class="preprocessor"></span>  <span class="keywordtype">void</span> DebugOverflowStack() {</div>
+<div class="line"><a name="l00930"></a><span class="lineno">  930</span>     DebugOverflowStack();</div>
+<div class="line"><a name="l00931"></a><span class="lineno">  931</span>   }</div>
+<div class="line"><a name="l00932"></a><span class="lineno">  932</span> <span class="preprocessor">#ifdef _MSC_VER</span></div>
+<div class="line"><a name="l00933"></a><span class="lineno">  933</span> <span class="preprocessor"></span><span class="preprocessor">    #pragma warning(default : 4717)</span></div>
+<div class="line"><a name="l00934"></a><span class="lineno">  934</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00935"></a><span class="lineno">  935</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00936"></a><span class="lineno">  936</span> };</div>
+<div class="line"><a name="l00937"></a><span class="lineno">  937</span> <span class="comment"></span></div>
+<div class="line"><a name="l00938"></a><span class="lineno">  938</span> <span class="comment">/// PragmaDiagnosticHandler - e.g. '\#pragma GCC diagnostic ignored "-Wformat"'</span></div>
+<div class="line"><a name="l00939"></a><span class="lineno">  939</span> <span class="comment"></span><span class="keyword">struct </span>PragmaDiagnosticHandler : <span class="keyword">public</span> <a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a> {</div>
+<div class="line"><a name="l00940"></a><span class="lineno">  940</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00941"></a><span class="lineno">  941</span>   <span class="keyword">const</span> <span class="keywordtype">char</span> *Namespace;</div>
+<div class="line"><a name="l00942"></a><span class="lineno">  942</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00943"></a><span class="lineno">  943</span>   <span class="keyword">explicit</span> PragmaDiagnosticHandler(<span class="keyword">const</span> <span class="keywordtype">char</span> *NS) :</div>
+<div class="line"><a name="l00944"></a><span class="lineno">  944</span>     <a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a>(<span class="stringliteral">"diagnostic"</span>), Namespace(NS) {}</div>
+<div class="line"><a name="l00945"></a><span class="lineno">  945</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> HandlePragma(<a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP, <a class="code" href="namespaceclang.html#abad0c9179d409d68fce8917ebd5276ed" title="Describes how the pragma was introduced, e.g., with #pragma, _Pragma, or __pragma.">PragmaIntroducerKind</a> Introducer,</div>
+<div class="line"><a name="l00946"></a><span class="lineno">  946</span>                             <a class="code" href="classclang_1_1Token.html">Token</a> &DiagToken) {</div>
+<div class="line"><a name="l00947"></a><span class="lineno">  947</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> DiagLoc = DiagToken.<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="l00948"></a><span class="lineno">  948</span>     <a class="code" href="classclang_1_1Token.html">Token</a> Tok;</div>
+<div class="line"><a name="l00949"></a><span class="lineno">  949</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#aaaf1f5cefe79d0f9da0637c5a3d4e7dc">LexUnexpandedToken</a>(Tok);</div>
+<div class="line"><a name="l00950"></a><span class="lineno">  950</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="l00951"></a><span class="lineno">  951</span>       PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::warn_pragma_diagnostic_invalid);</div>
+<div class="line"><a name="l00952"></a><span class="lineno">  952</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00953"></a><span class="lineno">  953</span>     }</div>
+<div class="line"><a name="l00954"></a><span class="lineno">  954</span>     <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="l00955"></a><span class="lineno">  955</span>     <a class="code" href="classclang_1_1PPCallbacks.html" title="This interface provides a way to observe the actions of the preprocessor as it does its thing...">PPCallbacks</a> *Callbacks = PP.<a class="code" href="classclang_1_1Preprocessor.html#a19c49b68d13fbd14b80be6e947bddd4c">getPPCallbacks</a>();</div>
+<div class="line"><a name="l00956"></a><span class="lineno">  956</span> </div>
+<div class="line"><a name="l00957"></a><span class="lineno">  957</span>     <a class="code" href="namespaceclang_1_1diag.html#a43736816e2f46bc15d9d96be643c31cc">diag::Mapping</a> <a class="code" href="namespaceclang_1_1LangAS.html#a241b6fc974438ba623ec877f2b294f0c">Map</a>;</div>
+<div class="line"><a name="l00958"></a><span class="lineno">  958</span>     <span class="keywordflow">if</span> (II-><a class="code" href="classclang_1_1IdentifierInfo.html#a6cc09d0b74aca49bbdb23bcc4c35cf82" title="Return true if this is the identifier for the specified string.">isStr</a>(<span class="stringliteral">"warning"</span>))</div>
+<div class="line"><a name="l00959"></a><span class="lineno">  959</span>       Map = <a class="code" href="namespaceclang_1_1diag.html#a43736816e2f46bc15d9d96be643c31ccac426ca3888addbfc1265d047dc8a6f17" title="Map this diagnostic to a warning.">diag::MAP_WARNING</a>;</div>
+<div class="line"><a name="l00960"></a><span class="lineno">  960</span>     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (II-><a class="code" href="classclang_1_1IdentifierInfo.html#a6cc09d0b74aca49bbdb23bcc4c35cf82" title="Return true if this is the identifier for the specified string.">isStr</a>(<span class="stringliteral">"error"</span>))</div>
+<div class="line"><a name="l00961"></a><span class="lineno">  961</span>       Map = <a class="code" href="namespaceclang_1_1diag.html#a43736816e2f46bc15d9d96be643c31ccad6d60a9ac9a1f37d0784a8d5199e9c68" title="Map this diagnostic to an error.">diag::MAP_ERROR</a>;</div>
+<div class="line"><a name="l00962"></a><span class="lineno">  962</span>     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (II-><a class="code" href="classclang_1_1IdentifierInfo.html#a6cc09d0b74aca49bbdb23bcc4c35cf82" title="Return true if this is the identifier for the specified string.">isStr</a>(<span class="stringliteral">"ignored"</span>))</div>
+<div class="line"><a name="l00963"></a><span class="lineno">  963</span>       Map = <a class="code" href="namespaceclang_1_1diag.html#a43736816e2f46bc15d9d96be643c31ccad0313441d2234dcef5e6ed778c9a70dd" title="Map this diagnostic to nothing, ignore it.">diag::MAP_IGNORE</a>;</div>
+<div class="line"><a name="l00964"></a><span class="lineno">  964</span>     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (II-><a class="code" href="classclang_1_1IdentifierInfo.html#a6cc09d0b74aca49bbdb23bcc4c35cf82" title="Return true if this is the identifier for the specified string.">isStr</a>(<span class="stringliteral">"fatal"</span>))</div>
+<div class="line"><a name="l00965"></a><span class="lineno">  965</span>       Map = <a class="code" href="namespaceclang_1_1diag.html#a43736816e2f46bc15d9d96be643c31ccad6b8ff9c9a56ca43a0e4ea4de778b864" title="Map this diagnostic to a fatal error.">diag::MAP_FATAL</a>;</div>
+<div class="line"><a name="l00966"></a><span class="lineno">  966</span>     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (II-><a class="code" href="classclang_1_1IdentifierInfo.html#a6cc09d0b74aca49bbdb23bcc4c35cf82" title="Return true if this is the identifier for the specified string.">isStr</a>(<span class="stringliteral">"pop"</span>)) {</div>
+<div class="line"><a name="l00967"></a><span class="lineno">  967</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#af7b034786d4d20a30ca403b8d831a0c4" title="Pops the current DiagMappings off the top of the stack, causing the new top of the stack to be the ac...">popMappings</a>(DiagLoc))</div>
+<div class="line"><a name="l00968"></a><span class="lineno">  968</span>         PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::warn_pragma_diagnostic_cannot_pop);</div>
+<div class="line"><a name="l00969"></a><span class="lineno">  969</span>       <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Callbacks)</div>
+<div class="line"><a name="l00970"></a><span class="lineno">  970</span>         Callbacks-><a class="code" href="classclang_1_1PPCallbacks.html#ac94d789873122221fba8d76f6c5ea45e" title="Callback invoked when a #pragma gcc dianostic pop directive is read.">PragmaDiagnosticPop</a>(DiagLoc, Namespace);</div>
+<div class="line"><a name="l00971"></a><span class="lineno">  971</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00972"></a><span class="lineno">  972</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (II-><a class="code" href="classclang_1_1IdentifierInfo.html#a6cc09d0b74aca49bbdb23bcc4c35cf82" title="Return true if this is the identifier for the specified string.">isStr</a>(<span class="stringliteral">"push"</span>)) {</div>
+<div class="line"><a name="l00973"></a><span class="lineno">  973</span>       PP.<a class="code" href="classclang_1_1Preprocessor.html#a663f9d8c8151906a9bf39954f3d15c60">getDiagnostics</a>().<a class="code" href="classclang_1_1DiagnosticsEngine.html#a883e9b209051501cfbcbb7f6e565cc24" title="Copies the current DiagMappings and pushes the new copy onto the top of the stack.">pushMappings</a>(DiagLoc);</div>
+<div class="line"><a name="l00974"></a><span class="lineno">  974</span>       <span class="keywordflow">if</span> (Callbacks)</div>
+<div class="line"><a name="l00975"></a><span class="lineno">  975</span>         Callbacks-><a class="code" href="classclang_1_1PPCallbacks.html#a0f3ff19762baa38fe6c5c58022d32979" title="Callback invoked when a #pragma gcc dianostic push directive is read.">PragmaDiagnosticPush</a>(DiagLoc, Namespace);</div>
+<div class="line"><a name="l00976"></a><span class="lineno">  976</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00977"></a><span class="lineno">  977</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00978"></a><span class="lineno">  978</span>       PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::warn_pragma_diagnostic_invalid);</div>
+<div class="line"><a name="l00979"></a><span class="lineno">  979</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00980"></a><span class="lineno">  980</span>     }</div>
+<div class="line"><a name="l00981"></a><span class="lineno">  981</span> </div>
+<div class="line"><a name="l00982"></a><span class="lineno">  982</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#aaaf1f5cefe79d0f9da0637c5a3d4e7dc">LexUnexpandedToken</a>(Tok);</div>
+<div class="line"><a name="l00983"></a><span class="lineno">  983</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> StringLoc = 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="l00984"></a><span class="lineno">  984</span> </div>
+<div class="line"><a name="l00985"></a><span class="lineno">  985</span>     std::string WarningName;</div>
+<div class="line"><a name="l00986"></a><span class="lineno">  986</span>     <span class="keywordflow">if</span> (!PP.<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">"pragma diagnostic"</span>,</div>
+<div class="line"><a name="l00987"></a><span class="lineno">  987</span>                                    <span class="comment">/*MacroExpansion=*/</span><span class="keyword">false</span>))</div>
+<div class="line"><a name="l00988"></a><span class="lineno">  988</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00989"></a><span class="lineno">  989</span> </div>
+<div class="line"><a name="l00990"></a><span class="lineno">  990</span>     <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::eod)) {</div>
+<div class="line"><a name="l00991"></a><span class="lineno">  991</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::warn_pragma_diagnostic_invalid_token);</div>
+<div class="line"><a name="l00992"></a><span class="lineno">  992</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00993"></a><span class="lineno">  993</span>     }</div>
+<div class="line"><a name="l00994"></a><span class="lineno">  994</span> </div>
+<div class="line"><a name="l00995"></a><span class="lineno">  995</span>     <span class="keywordflow">if</span> (WarningName.size() < 3 || WarningName[0] != <span class="charliteral">'-'</span> ||</div>
+<div class="line"><a name="l00996"></a><span class="lineno">  996</span>         WarningName[1] != <span class="charliteral">'W'</span>) {</div>
+<div class="line"><a name="l00997"></a><span class="lineno">  997</span>       PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(StringLoc, diag::warn_pragma_diagnostic_invalid_option);</div>
+<div class="line"><a name="l00998"></a><span class="lineno">  998</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00999"></a><span class="lineno">  999</span>     }</div>
+<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span> </div>
+<div class="line"><a name="l01001"></a><span class="lineno"> 1001</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#abd7e672d04773165c5f029ee631fbf61" title="Change an entire diagnostic group (e.g. "unknown-pragmas") to have the specified mapping.">setDiagnosticGroupMapping</a>(WarningName.substr(2),</div>
+<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>                                                       <a class="code" href="namespaceclang_1_1LangAS.html#a241b6fc974438ba623ec877f2b294f0c">Map</a>, DiagLoc))</div>
+<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>       PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(StringLoc, diag::warn_pragma_diagnostic_unknown_warning)</div>
+<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>         << WarningName;</div>
+<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Callbacks)</div>
+<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>       Callbacks-><a class="code" href="classclang_1_1PPCallbacks.html#afe7938f38a83cb7b4b25a13edfdd7bdd" title="Callback invoked when a #pragma gcc dianostic directive is read.">PragmaDiagnostic</a>(DiagLoc, Namespace, Map, WarningName);</div>
+<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>   }</div>
+<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span> };</div>
+<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span> </div>
+<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span> <span class="comment">// Returns -1 on failure.</span></div>
+<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span> <span class="keyword">static</span> <span class="keywordtype">int</span> LexSimpleInt(<a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP, <a class="code" href="classclang_1_1Token.html">Token</a> &Tok) {</div>
+<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>   assert(Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::numeric_constant));</div>
+<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>   <a class="code" href="classllvm_1_1SmallString.html">SmallString<8></a> IntegerBuffer;</div>
+<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>   <span class="keywordtype">bool</span> NumberInvalid = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>   StringRef Spelling = PP.<a class="code" href="classclang_1_1Preprocessor.html#a000147976c13c269dd82ef645fa3fe35">getSpelling</a>(Tok, IntegerBuffer, &NumberInvalid);</div>
+<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>   <span class="keywordflow">if</span> (NumberInvalid)</div>
+<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>     <span class="keywordflow">return</span> -1;</div>
+<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>   <a class="code" href="classclang_1_1NumericLiteralParser.html">NumericLiteralParser</a> Literal(Spelling, 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>(), PP);</div>
+<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>   <span class="keywordflow">if</span> (Literal.hadError || !Literal.isIntegerLiteral() || Literal.hasUDSuffix())</div>
+<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>     <span class="keywordflow">return</span> -1;</div>
+<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>   llvm::APInt APVal(32, 0);</div>
+<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>   <span class="keywordflow">if</span> (Literal.GetIntegerValue(APVal))</div>
+<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>     <span class="keywordflow">return</span> -1;</div>
+<div class="line"><a name="l01024"></a><span class="lineno"> 1024</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="l01025"></a><span class="lineno"> 1025</span>   <span class="keywordflow">return</span> int(APVal.getLimitedValue(<a class="code" href="limits_8h.html#a9ec306f36d50c7375e74f0d1c55a3a67">INT_MAX</a>));</div>
+<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span> }</div>
+<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span> <span class="comment"></span></div>
+<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span> <span class="comment">/// "\#pragma warning(...)".  MSVC's diagnostics do not map cleanly to clang's</span></div>
+<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span> <span class="comment">/// diagnostics, so we don't really implement this pragma.  We parse it and</span></div>
+<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span> <span class="comment">/// ignore it to avoid -Wunknown-pragma warnings.</span></div>
+<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span> <span class="comment"></span><span class="keyword">struct </span>PragmaWarningHandler : <span class="keyword">public</span> <a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a> {</div>
+<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>   PragmaWarningHandler() : <a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a>(<span class="stringliteral">"warning"</span>) {}</div>
+<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span> </div>
+<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> HandlePragma(<a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP, <a class="code" href="namespaceclang.html#abad0c9179d409d68fce8917ebd5276ed" title="Describes how the pragma was introduced, e.g., with #pragma, _Pragma, or __pragma.">PragmaIntroducerKind</a> Introducer,</div>
+<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>                             <a class="code" href="classclang_1_1Token.html">Token</a> &Tok) {</div>
+<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>     <span class="comment">// Parse things like:</span></div>
+<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>     <span class="comment">// warning(push, 1)</span></div>
+<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>     <span class="comment">// warning(pop)</span></div>
+<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>     <span class="comment">// warning(disable : 1 2 3 ; error : 4 5 6 ; suppress : 7 8 9)</span></div>
+<div class="line"><a name="l01040"></a><span class="lineno"> 1040</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> DiagLoc = 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="l01041"></a><span class="lineno"> 1041</span>     <a class="code" href="classclang_1_1PPCallbacks.html" title="This interface provides a way to observe the actions of the preprocessor as it does its thing...">PPCallbacks</a> *Callbacks = PP.<a class="code" href="classclang_1_1Preprocessor.html#a19c49b68d13fbd14b80be6e947bddd4c">getPPCallbacks</a>();</div>
+<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span> </div>
+<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>     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="l01044"></a><span class="lineno"> 1044</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="l01045"></a><span class="lineno"> 1045</span>       PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::warn_pragma_warning_expected) << <span class="stringliteral">"("</span>;</div>
+<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>     }</div>
+<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span> </div>
+<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>     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="l01050"></a><span class="lineno"> 1050</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="l01051"></a><span class="lineno"> 1051</span>     <span class="keywordflow">if</span> (!II) {</div>
+<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>       PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::warn_pragma_warning_spec_invalid);</div>
+<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>     }</div>
+<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span> </div>
+<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>     <span class="keywordflow">if</span> (II-><a class="code" href="classclang_1_1IdentifierInfo.html#a6cc09d0b74aca49bbdb23bcc4c35cf82" title="Return true if this is the identifier for the specified string.">isStr</a>(<span class="stringliteral">"push"</span>)) {</div>
+<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>       <span class="comment">// #pragma warning( push[ ,n ] )</span></div>
+<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>       <span class="keywordtype">int</span> <a class="code" href="namespaceclang_1_1prec.html#a9bfbe31f4770359ea44ad42e7c7ed8ff">Level</a> = -1;</div>
+<div class="line"><a name="l01059"></a><span class="lineno"> 1059</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="l01060"></a><span class="lineno"> 1060</span>       <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::comma)) {</div>
+<div class="line"><a name="l01061"></a><span class="lineno"> 1061</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="l01062"></a><span class="lineno"> 1062</span>         <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::numeric_constant))</div>
+<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>           Level = LexSimpleInt(PP, Tok);</div>
+<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>         <span class="keywordflow">if</span> (Level < 0 || Level > 4) {</div>
+<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>           PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::warn_pragma_warning_push_level);</div>
+<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>           <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>         }</div>
+<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>       }</div>
+<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>       <span class="keywordflow">if</span> (Callbacks)</div>
+<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>         Callbacks-><a class="code" href="classclang_1_1PPCallbacks.html#ae5626ef70502687a859f323a809ed0b6" title="Callback invoked when a #pragma warning(push) directive is read.">PragmaWarningPush</a>(DiagLoc, Level);</div>
+<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (II-><a class="code" href="classclang_1_1IdentifierInfo.html#a6cc09d0b74aca49bbdb23bcc4c35cf82" title="Return true if this is the identifier for the specified string.">isStr</a>(<span class="stringliteral">"pop"</span>)) {</div>
+<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>       <span class="comment">// #pragma warning( pop )</span></div>
+<div class="line"><a name="l01073"></a><span class="lineno"> 1073</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="l01074"></a><span class="lineno"> 1074</span>       <span class="keywordflow">if</span> (Callbacks)</div>
+<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>         Callbacks-><a class="code" href="classclang_1_1PPCallbacks.html#ac98d502af8811b8a6e7342d7cd2b3b95" title="Callback invoked when a #pragma warning(pop) directive is read.">PragmaWarningPop</a>(DiagLoc);</div>
+<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>       <span class="comment">// #pragma warning( warning-specifier : warning-number-list</span></div>
+<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>       <span class="comment">//                  [; warning-specifier : warning-number-list...] )</span></div>
+<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>       <span class="keywordflow">while</span> (<span class="keyword">true</span>) {</div>
+<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>         II = Tok.<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</a>();</div>
+<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>         <span class="keywordflow">if</span> (!II) {</div>
+<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>           PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::warn_pragma_warning_spec_invalid);</div>
+<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>           <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>         }</div>
+<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span> </div>
+<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>         <span class="comment">// Figure out which warning specifier this is.</span></div>
+<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>         StringRef Specifier = II-><a class="code" href="classclang_1_1IdentifierInfo.html#a94caec6a16e508e8ca39eacd278bd2c5" title="Return the actual identifier string.">getName</a>();</div>
+<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>         <span class="keywordtype">bool</span> SpecifierValid =</div>
+<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>             llvm::StringSwitch<bool>(Specifier)</div>
+<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>                 .Cases(<span class="stringliteral">"1"</span>, <span class="stringliteral">"2"</span>, <span class="stringliteral">"3"</span>, <span class="stringliteral">"4"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>                 .Cases(<span class="stringliteral">"default"</span>, <span class="stringliteral">"disable"</span>, <span class="stringliteral">"error"</span>, <span class="stringliteral">"once"</span>, <span class="stringliteral">"suppress"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>                 .Default(<span class="keyword">false</span>);</div>
+<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>         <span class="keywordflow">if</span> (!SpecifierValid) {</div>
+<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>           PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::warn_pragma_warning_spec_invalid);</div>
+<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>           <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>         }</div>
+<div class="line"><a name="l01097"></a><span class="lineno"> 1097</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="l01098"></a><span class="lineno"> 1098</span>         <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::colon)) {</div>
+<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>           PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::warn_pragma_warning_expected) << <span class="stringliteral">":"</span>;</div>
+<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>           <span class="keywordflow">return</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">// Collect the warning ids.</span></div>
+<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>         <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<int, 4></a> Ids;</div>
+<div class="line"><a name="l01105"></a><span class="lineno"> 1105</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="l01106"></a><span class="lineno"> 1106</span>         <span class="keywordflow">while</span> (Tok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::numeric_constant)) {</div>
+<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>           <span class="keywordtype">int</span> Id = LexSimpleInt(PP, Tok);</div>
+<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>           <span class="keywordflow">if</span> (Id <= 0) {</div>
+<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>             PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::warn_pragma_warning_expected_number);</div>
+<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>             <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>           }</div>
+<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>           Ids.push_back(Id);</div>
+<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>         }</div>
+<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>         <span class="keywordflow">if</span> (Callbacks)</div>
+<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>           Callbacks-><a class="code" href="classclang_1_1PPCallbacks.html#aa17169d25fa1cf0a6992fc944d1d8730" title="Callback invoked when a #pragma warning directive is read.">PragmaWarning</a>(DiagLoc, Specifier, Ids);</div>
+<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span> </div>
+<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>         <span class="comment">// Parse the next specifier if there is a semicolon.</span></div>
+<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>         <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::semi))</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>         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="l01121"></a><span class="lineno"> 1121</span>       }</div>
+<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>     }</div>
+<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span> </div>
+<div class="line"><a name="l01124"></a><span class="lineno"> 1124</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="l01125"></a><span class="lineno"> 1125</span>       PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::warn_pragma_warning_expected) << <span class="stringliteral">")"</span>;</div>
+<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>     }</div>
+<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span> </div>
+<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>     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="l01130"></a><span class="lineno"> 1130</span>     <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::eod))</div>
+<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>       PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::ext_pp_extra_tokens_at_eol) << <span class="stringliteral">"pragma warning"</span>;</div>
+<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>   }</div>
+<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span> };</div>
+<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span> <span class="comment"></span></div>
+<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span> <span class="comment">/// PragmaIncludeAliasHandler - "\#pragma include_alias("...")".</span></div>
+<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span> <span class="comment"></span><span class="keyword">struct </span>PragmaIncludeAliasHandler : <span class="keyword">public</span> <a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a> {</div>
+<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>   PragmaIncludeAliasHandler() : <a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a>(<span class="stringliteral">"include_alias"</span>) {}</div>
+<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> HandlePragma(<a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP, <a class="code" href="namespaceclang.html#abad0c9179d409d68fce8917ebd5276ed" title="Describes how the pragma was introduced, e.g., with #pragma, _Pragma, or __pragma.">PragmaIntroducerKind</a> Introducer,</div>
+<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>                             <a class="code" href="classclang_1_1Token.html">Token</a> &IncludeAliasTok) {</div>
+<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#af4e4b511bd2a53aaad3c24a5f7b2cd94">HandlePragmaIncludeAlias</a>(IncludeAliasTok);</div>
+<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>   }</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"></span></div>
+<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span> <span class="comment">/// PragmaMessageHandler - Handle the microsoft and gcc \#pragma message</span></div>
+<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span> <span class="comment">/// extension.  The syntax is:</span></div>
+<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span> <span class="comment">/// \code</span></div>
+<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span> <span class="comment">///   #pragma message(string)</span></div>
+<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span> <span class="comment">/// \endcode</span></div>
+<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span> <span class="comment">/// OR, in GCC mode:</span></div>
+<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span> <span class="comment">/// \code</span></div>
+<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span> <span class="comment">///   #pragma message string</span></div>
+<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span> <span class="comment">/// \endcode</span></div>
+<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span> <span class="comment">/// string is a string, which is fully macro expanded, and permits string</span></div>
+<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span> <span class="comment">/// concatenation, embedded escape characters, etc... See MSDN for more details.</span></div>
+<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span> <span class="comment">/// Also handles \#pragma GCC warning and \#pragma GCC error which take the same</span></div>
+<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span> <span class="comment">/// form as \#pragma message.</span></div>
+<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span> <span class="comment"></span><span class="keyword">struct </span>PragmaMessageHandler : <span class="keyword">public</span> <a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a> {</div>
+<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1PPCallbacks.html#ad9c82d7fcd6541205932fbdac7a1d3ca" title="Determines the kind of #pragma invoking a call to PragmaMessage.">PPCallbacks::PragmaMessageKind</a> <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a>;</div>
+<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>   <span class="keyword">const</span> StringRef Namespace;</div>
+<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span> </div>
+<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>   <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* PragmaKind(<a class="code" href="classclang_1_1PPCallbacks.html#ad9c82d7fcd6541205932fbdac7a1d3ca" title="Determines the kind of #pragma invoking a call to PragmaMessage.">PPCallbacks::PragmaMessageKind</a> <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a>,</div>
+<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>                                 <span class="keywordtype">bool</span> PragmaNameOnly = <span class="keyword">false</span>) {</div>
+<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>     <span class="keywordflow">switch</span> (Kind) {</div>
+<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>       <span class="keywordflow">case</span> <a class="code" href="classclang_1_1PPCallbacks.html#ad9c82d7fcd6541205932fbdac7a1d3caa83d3ee4fe4498832802b24ed324e6f86" title="#pragma message has been invoked.">PPCallbacks::PMK_Message</a>:</div>
+<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>         <span class="keywordflow">return</span> PragmaNameOnly ? <span class="stringliteral">"message"</span> : <span class="stringliteral">"pragma message"</span>;</div>
+<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>       <span class="keywordflow">case</span> <a class="code" href="classclang_1_1PPCallbacks.html#ad9c82d7fcd6541205932fbdac7a1d3caa28d32277d7bab1d27fc1e8113efe3984" title="#pragma GCC warning has been invoked.">PPCallbacks::PMK_Warning</a>:</div>
+<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>         <span class="keywordflow">return</span> PragmaNameOnly ? <span class="stringliteral">"warning"</span> : <span class="stringliteral">"pragma warning"</span>;</div>
+<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>       <span class="keywordflow">case</span> <a class="code" href="classclang_1_1PPCallbacks.html#ad9c82d7fcd6541205932fbdac7a1d3caa318989ea6207ab48d6b57310d9fe26b3" title="#pragma GCC error has been invoked.">PPCallbacks::PMK_Error</a>:</div>
+<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>         <span class="keywordflow">return</span> PragmaNameOnly ? <span class="stringliteral">"error"</span> : <span class="stringliteral">"pragma error"</span>;</div>
+<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>     }</div>
+<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>     llvm_unreachable(<span class="stringliteral">"Unknown PragmaMessageKind!"</span>);</div>
+<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>   }</div>
+<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span> </div>
+<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>   PragmaMessageHandler(<a class="code" href="classclang_1_1PPCallbacks.html#ad9c82d7fcd6541205932fbdac7a1d3ca" title="Determines the kind of #pragma invoking a call to PragmaMessage.">PPCallbacks::PragmaMessageKind</a> Kind,</div>
+<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>                        StringRef Namespace = StringRef())</div>
+<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>     : <a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a>(PragmaKind(Kind, <a class="code" href="stdbool_8h.html#a41f9c5fb8b08eb5dc3edce4dcb37fee7">true</a>)), Kind(Kind), Namespace(Namespace) {}</div>
+<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span> </div>
+<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> HandlePragma(<a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP, <a class="code" href="namespaceclang.html#abad0c9179d409d68fce8917ebd5276ed" title="Describes how the pragma was introduced, e.g., with #pragma, _Pragma, or __pragma.">PragmaIntroducerKind</a> Introducer,</div>
+<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>                             <a class="code" href="classclang_1_1Token.html">Token</a> &Tok) {</div>
+<div class="line"><a name="l01182"></a><span class="lineno"> 1182</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> MessageLoc = 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="l01183"></a><span class="lineno"> 1183</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="l01184"></a><span class="lineno"> 1184</span>     <span class="keywordtype">bool</span> ExpectClosingParen = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>     <span class="keywordflow">switch</span> (Tok.<a class="code" href="classclang_1_1Token.html#a84a069f6887b650763e640eeabfeebe4">getKind</a>()) {</div>
+<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>     <span class="keywordflow">case</span> tok::l_paren:</div>
+<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>       <span class="comment">// We have a MSVC style pragma message.</span></div>
+<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>       ExpectClosingParen = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>       <span class="comment">// Read the string.</span></div>
+<div class="line"><a name="l01190"></a><span class="lineno"> 1190</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="l01191"></a><span class="lineno"> 1191</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>     <span class="keywordflow">case</span> tok::string_literal:</div>
+<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>       <span class="comment">// We have a GCC style pragma message, and we just read the string.</span></div>
+<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>       <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>     <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>       PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(MessageLoc, diag::err_pragma_message_malformed) << <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a>;</div>
+<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>     }</div>
+<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span> </div>
+<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>     std::string MessageString;</div>
+<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>     <span class="keywordflow">if</span> (!PP.<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, MessageString, PragmaKind(Kind),</div>
+<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>                                    <span class="comment">/*MacroExpansion=*/</span><span class="keyword">true</span>))</div>
+<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span> </div>
+<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>     <span class="keywordflow">if</span> (ExpectClosingParen) {</div>
+<div class="line"><a name="l01206"></a><span class="lineno"> 1206</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="l01207"></a><span class="lineno"> 1207</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_pragma_message_malformed) << Kind;</div>
+<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>         <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>       }</div>
+<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>       PP.<a class="code" href="classclang_1_1Preprocessor.html#a4c7cf0c496e4a7744bc1731d92a4431e" title="Lex - Lex the next token for this preprocessor.">Lex</a>(Tok);  <span class="comment">// eat the r_paren.</span></div>
+<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>     }</div>
+<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span> </div>
+<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>     <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::eod)) {</div>
+<div class="line"><a name="l01214"></a><span class="lineno"> 1214</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_pragma_message_malformed) << Kind;</div>
+<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>     }</div>
+<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span> </div>
+<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>     <span class="comment">// Output the message.</span></div>
+<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(MessageLoc, (Kind == <a class="code" href="classclang_1_1PPCallbacks.html#ad9c82d7fcd6541205932fbdac7a1d3caa318989ea6207ab48d6b57310d9fe26b3" title="#pragma GCC error has been invoked.">PPCallbacks::PMK_Error</a>)</div>
+<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>                           ? diag::err_pragma_message</div>
+<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>                           : diag::warn_pragma_message) << MessageString;</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">// If the pragma is lexically sound, notify any interested PPCallbacks.</span></div>
+<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1PPCallbacks.html" title="This interface provides a way to observe the actions of the preprocessor as it does its thing...">PPCallbacks</a> *Callbacks = PP.<a class="code" href="classclang_1_1Preprocessor.html#a19c49b68d13fbd14b80be6e947bddd4c">getPPCallbacks</a>())</div>
+<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>       Callbacks-><a class="code" href="classclang_1_1PPCallbacks.html#abb42935d9a9fd8e2c4f51cfdc4ea2ae1" title="Callback invoked when a #pragma message directive is read.">PragmaMessage</a>(MessageLoc, Namespace, Kind, MessageString);</div>
+<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>   }</div>
+<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span> };</div>
+<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span> <span class="comment"></span></div>
+<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span> <span class="comment">/// PragmaPushMacroHandler - "\#pragma push_macro" saves the value of the</span></div>
+<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span> <span class="comment">/// macro on the top of the stack.</span></div>
+<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span> <span class="comment"></span><span class="keyword">struct </span>PragmaPushMacroHandler : <span class="keyword">public</span> <a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a> {</div>
+<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>   PragmaPushMacroHandler() : <a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a>(<span class="stringliteral">"push_macro"</span>) {}</div>
+<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> HandlePragma(<a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP, <a class="code" href="namespaceclang.html#abad0c9179d409d68fce8917ebd5276ed" title="Describes how the pragma was introduced, e.g., with #pragma, _Pragma, or __pragma.">PragmaIntroducerKind</a> Introducer,</div>
+<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>                             <a class="code" href="classclang_1_1Token.html">Token</a> &PushMacroTok) {</div>
+<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#a04dec9fbfa220dfea433bcbeffa270c3" title="Handle #pragma push_macro.">HandlePragmaPushMacro</a>(PushMacroTok);</div>
+<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>   }</div>
+<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span> };</div>
+<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span> </div>
+<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span> <span class="comment"></span></div>
+<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span> <span class="comment">/// PragmaPopMacroHandler - "\#pragma pop_macro" sets the value of the</span></div>
+<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span> <span class="comment">/// macro to the value on the top of the stack.</span></div>
+<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span> <span class="comment"></span><span class="keyword">struct </span>PragmaPopMacroHandler : <span class="keyword">public</span> <a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a> {</div>
+<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>   PragmaPopMacroHandler() : <a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a>(<span class="stringliteral">"pop_macro"</span>) {}</div>
+<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> HandlePragma(<a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP, <a class="code" href="namespaceclang.html#abad0c9179d409d68fce8917ebd5276ed" title="Describes how the pragma was introduced, e.g., with #pragma, _Pragma, or __pragma.">PragmaIntroducerKind</a> Introducer,</div>
+<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>                             <a class="code" href="classclang_1_1Token.html">Token</a> &PopMacroTok) {</div>
+<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#ab5060882691a2f36ff14cc39c8ee6456" title="Handle #pragma pop_macro.">HandlePragmaPopMacro</a>(PopMacroTok);</div>
+<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>   }</div>
+<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span> };</div>
+<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span> </div>
+<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span> <span class="comment">// Pragma STDC implementations.</span></div>
+<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span> <span class="comment"></span></div>
+<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span> <span class="comment">/// PragmaSTDC_FENV_ACCESSHandler - "\#pragma STDC FENV_ACCESS ...".</span></div>
+<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span> <span class="comment"></span><span class="keyword">struct </span>PragmaSTDC_FENV_ACCESSHandler : <span class="keyword">public</span> <a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a> {</div>
+<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>   PragmaSTDC_FENV_ACCESSHandler() : <a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a>(<span class="stringliteral">"FENV_ACCESS"</span>) {}</div>
+<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> HandlePragma(<a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP, <a class="code" href="namespaceclang.html#abad0c9179d409d68fce8917ebd5276ed" title="Describes how the pragma was introduced, e.g., with #pragma, _Pragma, or __pragma.">PragmaIntroducerKind</a> Introducer,</div>
+<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>                             <a class="code" href="classclang_1_1Token.html">Token</a> &Tok) {</div>
+<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>     <a class="code" href="namespaceclang_1_1tok.html#a9e7c550f3ca5da24c86527144f078968" title="Defines the possible values of an on-off-switch (C99 6.10.6p2).">tok::OnOffSwitch</a> OOS;</div>
+<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>     <span class="keywordflow">if</span> (PP.<a class="code" href="classclang_1_1Preprocessor.html#a523b55b97f8dba2e34015ee35e25297c">LexOnOffSwitch</a>(OOS))</div>
+<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>      <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>     <span class="keywordflow">if</span> (OOS == <a class="code" href="namespaceclang_1_1tok.html#a9e7c550f3ca5da24c86527144f078968aa0b51e03cbe50e0a0867c44c2adcda97">tok::OOS_ON</a>)</div>
+<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>       PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::warn_stdc_fenv_access_not_supported);</div>
+<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>   }</div>
+<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span> };</div>
+<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span> <span class="comment"></span></div>
+<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span> <span class="comment">/// PragmaSTDC_CX_LIMITED_RANGEHandler - "\#pragma STDC CX_LIMITED_RANGE ...".</span></div>
+<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span> <span class="comment"></span><span class="keyword">struct </span>PragmaSTDC_CX_LIMITED_RANGEHandler : <span class="keyword">public</span> <a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a> {</div>
+<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>   PragmaSTDC_CX_LIMITED_RANGEHandler()</div>
+<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>     : <a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a>(<span class="stringliteral">"CX_LIMITED_RANGE"</span>) {}</div>
+<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> HandlePragma(<a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP, <a class="code" href="namespaceclang.html#abad0c9179d409d68fce8917ebd5276ed" title="Describes how the pragma was introduced, e.g., with #pragma, _Pragma, or __pragma.">PragmaIntroducerKind</a> Introducer,</div>
+<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>                             <a class="code" href="classclang_1_1Token.html">Token</a> &Tok) {</div>
+<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>     <a class="code" href="namespaceclang_1_1tok.html#a9e7c550f3ca5da24c86527144f078968" title="Defines the possible values of an on-off-switch (C99 6.10.6p2).">tok::OnOffSwitch</a> OOS;</div>
+<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#a523b55b97f8dba2e34015ee35e25297c">LexOnOffSwitch</a>(OOS);</div>
+<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>   }</div>
+<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span> };</div>
+<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span> <span class="comment"></span></div>
+<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span> <span class="comment">/// PragmaSTDC_UnknownHandler - "\#pragma STDC ...".</span></div>
+<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span> <span class="comment"></span><span class="keyword">struct </span>PragmaSTDC_UnknownHandler : <span class="keyword">public</span> <a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a> {</div>
+<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>   PragmaSTDC_UnknownHandler() {}</div>
+<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> HandlePragma(<a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP, <a class="code" href="namespaceclang.html#abad0c9179d409d68fce8917ebd5276ed" title="Describes how the pragma was introduced, e.g., with #pragma, _Pragma, or __pragma.">PragmaIntroducerKind</a> Introducer,</div>
+<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>                             <a class="code" href="classclang_1_1Token.html">Token</a> &UnknownTok) {</div>
+<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>     <span class="comment">// C99 6.10.6p2, unknown forms are not allowed.</span></div>
+<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(UnknownTok, diag::ext_stdc_pragma_ignored);</div>
+<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>   }</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"></span></div>
+<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span> <span class="comment">/// PragmaARCCFCodeAuditedHandler - </span></div>
+<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span> <span class="comment">///   \#pragma clang arc_cf_code_audited begin/end</span></div>
+<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span> <span class="comment"></span><span class="keyword">struct </span>PragmaARCCFCodeAuditedHandler : <span class="keyword">public</span> <a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a> {</div>
+<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>   PragmaARCCFCodeAuditedHandler() : <a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a>(<span class="stringliteral">"arc_cf_code_audited"</span>) {}</div>
+<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> HandlePragma(<a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP, <a class="code" href="namespaceclang.html#abad0c9179d409d68fce8917ebd5276ed" title="Describes how the pragma was introduced, e.g., with #pragma, _Pragma, or __pragma.">PragmaIntroducerKind</a> Introducer,</div>
+<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>                             <a class="code" href="classclang_1_1Token.html">Token</a> &NameTok) {</div>
+<div class="line"><a name="l01292"></a><span class="lineno"> 1292</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 = NameTok.<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="l01293"></a><span class="lineno"> 1293</span>     <span class="keywordtype">bool</span> IsBegin;</div>
+<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span> </div>
+<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>     <a class="code" href="classclang_1_1Token.html">Token</a> Tok;</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>     <span class="comment">// Lex the 'begin' or 'end'.</span></div>
+<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#aaaf1f5cefe79d0f9da0637c5a3d4e7dc">LexUnexpandedToken</a>(Tok);</div>
+<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *BeginEnd = Tok.<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</a>();</div>
+<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>     <span class="keywordflow">if</span> (BeginEnd && BeginEnd-><a class="code" href="classclang_1_1IdentifierInfo.html#a6cc09d0b74aca49bbdb23bcc4c35cf82" title="Return true if this is the identifier for the specified string.">isStr</a>(<span class="stringliteral">"begin"</span>)) {</div>
+<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>       IsBegin = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (BeginEnd && BeginEnd-><a class="code" href="classclang_1_1IdentifierInfo.html#a6cc09d0b74aca49bbdb23bcc4c35cf82" title="Return true if this is the identifier for the specified string.">isStr</a>(<span class="stringliteral">"end"</span>)) {</div>
+<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>       IsBegin = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01305"></a><span class="lineno"> 1305</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_arc_cf_code_audited_syntax);</div>
+<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>     }</div>
+<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span> </div>
+<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>     <span class="comment">// Verify that this is followed by EOD.</span></div>
+<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>     PP.<a class="code" href="classclang_1_1Preprocessor.html#aaaf1f5cefe79d0f9da0637c5a3d4e7dc">LexUnexpandedToken</a>(Tok);</div>
+<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>     <span class="keywordflow">if</span> (Tok.<a class="code" href="classclang_1_1Token.html#add9ef521a5de741af9c573525b71cb73">isNot</a>(tok::eod))</div>
+<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>       PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Tok, diag::ext_pp_extra_tokens_at_eol) << <span class="stringliteral">"pragma"</span>;</div>
+<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span> </div>
+<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>     <span class="comment">// The start location of the active audit.</span></div>
+<div class="line"><a name="l01315"></a><span class="lineno"> 1315</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> BeginLoc = PP.<a class="code" href="classclang_1_1Preprocessor.html#aba22d96c3d284388727f1c2a2ddfa0d3" title="The location of the currently-active #pragma clang arc_cf_code_audited begin. Returns an invalid loca...">getPragmaARCCFCodeAuditedLoc</a>();</div>
+<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span> </div>
+<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>     <span class="comment">// The start location we want after processing this.</span></div>
+<div class="line"><a name="l01318"></a><span class="lineno"> 1318</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> NewLoc;</div>
+<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span> </div>
+<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>     <span class="keywordflow">if</span> (IsBegin) {</div>
+<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>       <span class="comment">// Complain about attempts to re-enter an audit.</span></div>
+<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>       <span class="keywordflow">if</span> (BeginLoc.<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="l01323"></a><span class="lineno"> 1323</span>         PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Loc, diag::err_pp_double_begin_of_arc_cf_code_audited);</div>
+<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>         PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(BeginLoc, diag::note_pragma_entered_here);</div>
+<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>       }</div>
+<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>       NewLoc = Loc;</div>
+<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>       <span class="comment">// Complain about attempts to leave an audit that doesn't exist.</span></div>
+<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>       <span class="keywordflow">if</span> (!BeginLoc.<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="l01330"></a><span class="lineno"> 1330</span>         PP.<a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(Loc, diag::err_pp_unmatched_end_of_arc_cf_code_audited);</div>
+<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>         <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>       }</div>
+<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>       NewLoc = <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="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>     PP.<a class="code" href="classclang_1_1Preprocessor.html#ad50821443631b2c5fc1a5a82e5ac6072" title="Set the location of the currently-active #pragma clang arc_cf_code_audited begin. An invalid location...">setPragmaARCCFCodeAuditedLoc</a>(NewLoc);</div>
+<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>   }</div>
+<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span> };</div>
+<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span> <span class="comment"></span></div>
+<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span> <span class="comment">/// \brief Handle "\#pragma region [...]"</span></div>
+<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span> <span class="comment">/// The syntax is</span></div>
+<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span> <span class="comment">/// \code</span></div>
+<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span> <span class="comment">///   #pragma region [optional name]</span></div>
+<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span> <span class="comment">///   #pragma endregion [optional comment]</span></div>
+<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span> <span class="comment">/// \endcode</span></div>
+<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span> <span class="comment">///</span></div>
+<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span> <span class="comment">/// \note This is</span></div>
+<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span> <span class="comment">/// <a href="http://msdn.microsoft.com/en-us/library/b6xkz944(v=vs.80).aspx">editor-only</a></span></div>
+<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span> <span class="comment">/// pragma, just skipped by compiler.</span></div>
+<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span> <span class="comment"></span><span class="keyword">struct </span>PragmaRegionHandler : <span class="keyword">public</span> <a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a> {</div>
+<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>   PragmaRegionHandler(<span class="keyword">const</span> <span class="keywordtype">char</span> *pragma) : <a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a>(pragma) { }</div>
+<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span> </div>
+<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> HandlePragma(<a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP, <a class="code" href="namespaceclang.html#abad0c9179d409d68fce8917ebd5276ed" title="Describes how the pragma was introduced, e.g., with #pragma, _Pragma, or __pragma.">PragmaIntroducerKind</a> Introducer,</div>
+<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>                             <a class="code" href="classclang_1_1Token.html">Token</a> &NameTok) {</div>
+<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>     <span class="comment">// #pragma region: endregion matches can be verified</span></div>
+<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>     <span class="comment">// __pragma(region): no sense, but ignored by msvc</span></div>
+<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>     <span class="comment">// _Pragma is not valid for MSVC, but there isn't any point</span></div>
+<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>     <span class="comment">// to handle a _Pragma differently.</span></div>
+<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>   }</div>
+<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span> };</div>
+<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span> </div>
+<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span> }  <span class="comment">// end anonymous namespace</span></div>
+<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span> </div>
+<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span> <span class="comment"></span></div>
+<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span> <span class="comment">/// RegisterBuiltinPragmas - Install the standard preprocessor pragmas:</span></div>
+<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span> <span class="comment">/// \#pragma GCC poison/system_header/dependency and \#pragma once.</span></div>
+<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span> <span class="comment"></span><span class="keywordtype">void</span> Preprocessor::RegisterBuiltinPragmas() {</div>
+<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>   <a class="code" href="classclang_1_1Preprocessor.html#aad6c9a9329db3baa561722df8bb6acaf">AddPragmaHandler</a>(<span class="keyword">new</span> PragmaOnceHandler());</div>
+<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>   <a class="code" href="classclang_1_1Preprocessor.html#aad6c9a9329db3baa561722df8bb6acaf">AddPragmaHandler</a>(<span class="keyword">new</span> PragmaMarkHandler());</div>
+<div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>   <a class="code" href="classclang_1_1Preprocessor.html#aad6c9a9329db3baa561722df8bb6acaf">AddPragmaHandler</a>(<span class="keyword">new</span> PragmaPushMacroHandler());</div>
+<div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>   <a class="code" href="classclang_1_1Preprocessor.html#aad6c9a9329db3baa561722df8bb6acaf">AddPragmaHandler</a>(<span class="keyword">new</span> PragmaPopMacroHandler());</div>
+<div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>   <a class="code" href="classclang_1_1Preprocessor.html#aad6c9a9329db3baa561722df8bb6acaf">AddPragmaHandler</a>(<span class="keyword">new</span> PragmaMessageHandler(<a class="code" href="classclang_1_1PPCallbacks.html#ad9c82d7fcd6541205932fbdac7a1d3caa83d3ee4fe4498832802b24ed324e6f86" title="#pragma message has been invoked.">PPCallbacks::PMK_Message</a>));</div>
+<div class="line"><a name="l01374"></a><span class="lineno"> 1374</span> </div>
+<div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>   <span class="comment">// #pragma GCC ...</span></div>
+<div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>   <a class="code" href="classclang_1_1Preprocessor.html#aad6c9a9329db3baa561722df8bb6acaf">AddPragmaHandler</a>(<span class="stringliteral">"GCC"</span>, <span class="keyword">new</span> PragmaPoisonHandler());</div>
+<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>   <a class="code" href="classclang_1_1Preprocessor.html#aad6c9a9329db3baa561722df8bb6acaf">AddPragmaHandler</a>(<span class="stringliteral">"GCC"</span>, <span class="keyword">new</span> PragmaSystemHeaderHandler());</div>
+<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>   <a class="code" href="classclang_1_1Preprocessor.html#aad6c9a9329db3baa561722df8bb6acaf">AddPragmaHandler</a>(<span class="stringliteral">"GCC"</span>, <span class="keyword">new</span> PragmaDependencyHandler());</div>
+<div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>   <a class="code" href="classclang_1_1Preprocessor.html#aad6c9a9329db3baa561722df8bb6acaf">AddPragmaHandler</a>(<span class="stringliteral">"GCC"</span>, <span class="keyword">new</span> PragmaDiagnosticHandler(<span class="stringliteral">"GCC"</span>));</div>
+<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>   <a class="code" href="classclang_1_1Preprocessor.html#aad6c9a9329db3baa561722df8bb6acaf">AddPragmaHandler</a>(<span class="stringliteral">"GCC"</span>, <span class="keyword">new</span> PragmaMessageHandler(<a class="code" href="classclang_1_1PPCallbacks.html#ad9c82d7fcd6541205932fbdac7a1d3caa28d32277d7bab1d27fc1e8113efe3984" title="#pragma GCC warning has been invoked.">PPCallbacks::PMK_Warning</a>,</div>
+<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>                                                    <span class="stringliteral">"GCC"</span>));</div>
+<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>   <a class="code" href="classclang_1_1Preprocessor.html#aad6c9a9329db3baa561722df8bb6acaf">AddPragmaHandler</a>(<span class="stringliteral">"GCC"</span>, <span class="keyword">new</span> PragmaMessageHandler(<a class="code" href="classclang_1_1PPCallbacks.html#ad9c82d7fcd6541205932fbdac7a1d3caa318989ea6207ab48d6b57310d9fe26b3" title="#pragma GCC error has been invoked.">PPCallbacks::PMK_Error</a>,</div>
+<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>                                                    <span class="stringliteral">"GCC"</span>));</div>
+<div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>   <span class="comment">// #pragma clang ...</span></div>
+<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>   <a class="code" href="classclang_1_1Preprocessor.html#aad6c9a9329db3baa561722df8bb6acaf">AddPragmaHandler</a>(<span class="stringliteral">"clang"</span>, <span class="keyword">new</span> PragmaPoisonHandler());</div>
+<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>   <a class="code" href="classclang_1_1Preprocessor.html#aad6c9a9329db3baa561722df8bb6acaf">AddPragmaHandler</a>(<span class="stringliteral">"clang"</span>, <span class="keyword">new</span> PragmaSystemHeaderHandler());</div>
+<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>   <a class="code" href="classclang_1_1Preprocessor.html#aad6c9a9329db3baa561722df8bb6acaf">AddPragmaHandler</a>(<span class="stringliteral">"clang"</span>, <span class="keyword">new</span> PragmaDebugHandler());</div>
+<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>   <a class="code" href="classclang_1_1Preprocessor.html#aad6c9a9329db3baa561722df8bb6acaf">AddPragmaHandler</a>(<span class="stringliteral">"clang"</span>, <span class="keyword">new</span> PragmaDependencyHandler());</div>
+<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>   <a class="code" href="classclang_1_1Preprocessor.html#aad6c9a9329db3baa561722df8bb6acaf">AddPragmaHandler</a>(<span class="stringliteral">"clang"</span>, <span class="keyword">new</span> PragmaDiagnosticHandler(<span class="stringliteral">"clang"</span>));</div>
+<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>   <a class="code" href="classclang_1_1Preprocessor.html#aad6c9a9329db3baa561722df8bb6acaf">AddPragmaHandler</a>(<span class="stringliteral">"clang"</span>, <span class="keyword">new</span> PragmaARCCFCodeAuditedHandler());</div>
+<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span> </div>
+<div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>   <a class="code" href="classclang_1_1Preprocessor.html#aad6c9a9329db3baa561722df8bb6acaf">AddPragmaHandler</a>(<span class="stringliteral">"STDC"</span>, <span class="keyword">new</span> PragmaSTDC_FENV_ACCESSHandler());</div>
+<div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>   <a class="code" href="classclang_1_1Preprocessor.html#aad6c9a9329db3baa561722df8bb6acaf">AddPragmaHandler</a>(<span class="stringliteral">"STDC"</span>, <span class="keyword">new</span> PragmaSTDC_CX_LIMITED_RANGEHandler());</div>
+<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>   <a class="code" href="classclang_1_1Preprocessor.html#aad6c9a9329db3baa561722df8bb6acaf">AddPragmaHandler</a>(<span class="stringliteral">"STDC"</span>, <span class="keyword">new</span> PragmaSTDC_UnknownHandler());</div>
+<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span> </div>
+<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>   <span class="comment">// MS extensions.</span></div>
+<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>   <span class="keywordflow">if</span> (LangOpts.MicrosoftExt) {</div>
+<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>     <a class="code" href="classclang_1_1Preprocessor.html#aad6c9a9329db3baa561722df8bb6acaf">AddPragmaHandler</a>(<span class="keyword">new</span> PragmaWarningHandler());</div>
+<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>     <a class="code" href="classclang_1_1Preprocessor.html#aad6c9a9329db3baa561722df8bb6acaf">AddPragmaHandler</a>(<span class="keyword">new</span> PragmaIncludeAliasHandler());</div>
+<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>     <a class="code" href="classclang_1_1Preprocessor.html#aad6c9a9329db3baa561722df8bb6acaf">AddPragmaHandler</a>(<span class="keyword">new</span> PragmaRegionHandler(<span class="stringliteral">"region"</span>));</div>
+<div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>     <a class="code" href="classclang_1_1Preprocessor.html#aad6c9a9329db3baa561722df8bb6acaf">AddPragmaHandler</a>(<span class="keyword">new</span> PragmaRegionHandler(<span class="stringliteral">"endregion"</span>));</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><!-- 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/Pragma_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Pragma_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Pragma_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Pragma_8d_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,352 @@
+<!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: Pragma.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">Pragma.d</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="Pragma_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/Pragma.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/Pragma.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>  Pragma.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>/Pragma.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/LLVM.h \</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>  /home/tstellar/llvm/include/llvm/Support/Casting.h \</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>  /home/tstellar/llvm/include/llvm/Support/type_traits.h \</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>  /home/tstellar/llvm/include/llvm/Support/DataTypes.h \</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>  /home/tstellar/llvm/include/llvm/ADT/None.h \</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>  /home/tstellar/llvm/include/llvm/ADT/StringMap.h \</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>  /home/tstellar/llvm/include/llvm/ADT/StringRef.h \</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>  /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h \</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>  /home/tstellar/llvm/include/llvm/Support/AlignOf.h \</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>  /home/tstellar/llvm/include/llvm/Support/Compiler.h \</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>  /home/tstellar/llvm/include/llvm/Config/llvm-config.h \</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>  /home/tstellar/llvm/include/llvm/Support/MathExtras.h \</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>  /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.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/FileManager.h \</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/FileSystemOptions.h \</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMap.h \</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h \</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>  /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h \</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>  /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h \</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>  /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h \</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>  /home/tstellar/llvm/include/llvm/ADT/SmallVector.h \</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>  /home/tstellar/llvm/include/llvm/Support/FileSystem.h \</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>  /home/tstellar/llvm/include/llvm/ADT/SmallString.h \</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>  /home/tstellar/llvm/include/llvm/ADT/Twine.h \</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>  /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h \</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>  /home/tstellar/llvm/include/llvm/Support/TimeValue.h \</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>  /home/tstellar/llvm/include/llvm/Support/system_error.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/SourceManager.h \</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/SourceLocation.h \</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>  /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h \</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>  /home/tstellar/llvm/include/llvm/ADT/DenseSet.h \</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>  /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h \</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>  /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h \</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>  /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h \</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>  /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h \</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>  /home/tstellar/llvm/include/llvm-c/Core.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/HeaderSearch.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/DirectoryLookup.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleMap.h \</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</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="l00045"></a><span class="lineno">   45</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="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/Basic/ObjCRuntime.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/VersionTuple.h \</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>  /home/tstellar/llvm/include/llvm/ADT/Optional.h \</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>  /home/tstellar/llvm/include/llvm/ADT/Triple.h \</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/<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="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/<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="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/Basic/Sanitizers.def \</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/LangOptions.def \</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/Basic/OpenCLExtensions.def \</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/Module.h \</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>  /home/tstellar/llvm/include/llvm/ADT/SetVector.h \</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>  /home/tstellar/llvm/include/llvm/ADT/SmallSet.h \</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>  /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.h \</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>  /home/tstellar/llvm/include/llvm/ADT/StringSet.h \</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</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="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/Diagnostic.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/DiagnosticIDs.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/DiagnosticCommonKinds.inc \</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/DiagnosticOptions.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/DiagnosticOptions.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/Basic/DiagnosticLexKinds.inc \</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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/LiteralSupport.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/CharInfo.h \</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/Basic/TokenKinds.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/Basic/TokenKinds.def \</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>  /home/tstellar/llvm/include/llvm/ADT/APFloat.h \</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>  /home/tstellar/llvm/include/llvm/ADT/APInt.h \</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</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="l00074"></a><span class="lineno">   74</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="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/Basic/OperatorKinds.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/Basic/OperatorKinds.def \</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/Basic/TemplateKinds.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>/Preprocessor.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/Builtins.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/Basic/Builtins.def \</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/Basic/IdentifierTable.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>/Lexer.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>/PreprocessorLexer.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>/MultipleIncludeOpt.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>/PPCallbacks.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>/ModuleLoader.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>/PTHLexer.h \</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</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="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>/TokenLexer.h \</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>  /home/tstellar/llvm/include/llvm/ADT/STLExtras.h \</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>  /home/tstellar/llvm/include/llvm/ADT/StringSwitch.h \</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>  /home/tstellar/llvm/include/llvm/Support/CrashRecoveryContext.h \</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>  /home/tstellar/llvm/include/llvm/Support/raw_ostream.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/<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="l00096"></a><span class="lineno">   96</span> </div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</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="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/Casting.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/type_traits.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/Support/DataTypes.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/None.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/StringMap.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/StringRef.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/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.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/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/FileManager.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/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/FileSystemOptions.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/ADT/DenseMap.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/DenseMapInfo.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/include/llvm/Support/PointerLikeTypeTraits.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/include/llvm/ADT/IntrusiveRefCntPtr.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/include/llvm/ADT/OwningPtr.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/include/llvm/ADT/SmallVector.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/include/llvm/Support/FileSystem.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/include/llvm/ADT/SmallString.h:</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/include/llvm/ADT/Twine.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/include/llvm/Support/ErrorHandling.h:</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/Support/TimeValue.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/Support/system_error.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/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/SourceManager.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/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/SourceLocation.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/include/llvm/ADT/ArrayRef.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/include/llvm/ADT/DenseSet.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/include/llvm/ADT/PointerIntPair.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/PointerUnion.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/include/llvm/Support/MemoryBuffer.h:</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/include/llvm/Support/CBindingWrapping.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/include/llvm-c/Core.h:</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span> </div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/HeaderSearch.h:</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span> </div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span> /home/tstellar/llvm/tools/clang/lib/<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="l00172"></a><span class="lineno">  172</span> </div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span> /home/tstellar/llvm/tools/clang/lib/<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="l00174"></a><span class="lineno">  174</span> </div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</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="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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/CommentOptions.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/ObjCRuntime.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/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/VersionTuple.h:</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span> </div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span> /home/tstellar/llvm/include/llvm/ADT/Optional.h:</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span> </div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span> /home/tstellar/llvm/include/llvm/ADT/Triple.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/<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="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/<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="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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Sanitizers.def:</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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/LangOptions.def:</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/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/OpenCLExtensions.def:</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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Module.h:</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span> </div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span> /home/tstellar/llvm/include/llvm/ADT/SetVector.h:</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span> </div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span> /home/tstellar/llvm/include/llvm/ADT/SmallSet.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/SmallPtrSet.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/StringSet.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/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="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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Diagnostic.h:</div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span> </div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticIDs.h:</div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span> </div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticCommonKinds.inc:</div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span> </div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticOptions.h:</div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span> </div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticOptions.def:</div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span> </div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticLexKinds.inc:</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span> </div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/LiteralSupport.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/CharInfo.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/TokenKinds.h:</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span> </div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/TokenKinds.def:</div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span> </div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span> /home/tstellar/llvm/include/llvm/ADT/APFloat.h:</div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span> </div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span> /home/tstellar/llvm/include/llvm/ADT/APInt.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/<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="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/<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="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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/OperatorKinds.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/OperatorKinds.def:</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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/TemplateKinds.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/<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="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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Builtins.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/IdentifierTable.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/<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="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/<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="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/<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="l00256"></a><span class="lineno">  256</span> </div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span> /home/tstellar/llvm/tools/clang/lib/<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="l00258"></a><span class="lineno">  258</span> </div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span> /home/tstellar/llvm/tools/clang/lib/<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="l00260"></a><span class="lineno">  260</span> </div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</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="l00262"></a><span class="lineno">  262</span> </div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span> /home/tstellar/llvm/tools/clang/lib/<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="l00264"></a><span class="lineno">  264</span> </div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span> /home/tstellar/llvm/tools/clang/lib/<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="l00266"></a><span class="lineno">  266</span> </div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span> /home/tstellar/llvm/include/llvm/ADT/STLExtras.h:</div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span> </div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span> /home/tstellar/llvm/include/llvm/ADT/StringSwitch.h:</div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span> </div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span> /home/tstellar/llvm/include/llvm/Support/CrashRecoveryContext.h:</div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span> </div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span> /home/tstellar/llvm/include/llvm/Support/raw_ostream.h:</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/Pragma_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Pragma_8h_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Pragma_8h_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Pragma_8h_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,205 @@
+<!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: Pragma.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">Pragma.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="Pragma_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">//===--- Pragma.h - Pragma registration and handling ------------*- 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 PragmaHandler and PragmaTable interfaces.</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_PRAGMA_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_PRAGMA_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="LLVM_8h.html" title="Forward declares and imports various common LLVM datatypes that clang wants to use unqualified...">clang/Basic/LLVM.h</a>"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="preprocessor">#include "llvm/ADT/StringMap.h"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="preprocessor">#include "llvm/ADT/StringRef.h"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="preprocessor">#include <cassert></span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="keyword">namespace </span>clang {</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>   <span class="keyword">class </span>Preprocessor;</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>   <span class="keyword">class </span><a class="code" href="UnwrappedLineParser_8cpp.html#ac39165965ffcb0218343355d1f482d64">Token</a>;</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>   <span class="keyword">class </span>IdentifierInfo;</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>   <span class="keyword">class </span>PragmaNamespace;</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="comment"></span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">  /**</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="comment">   * \brief Describes how the pragma was introduced, e.g., with \#pragma,</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="comment">   * _Pragma, or __pragma.</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span> <span class="comment">   */</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"><a class="code" href="namespaceclang.html#abad0c9179d409d68fce8917ebd5276ed">   32</a></span>   <span class="keyword">enum</span> <a class="code" href="namespaceclang.html#abad0c9179d409d68fce8917ebd5276ed" title="Describes how the pragma was introduced, e.g., with #pragma, _Pragma, or __pragma.">PragmaIntroducerKind</a> {<span class="comment"></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">     * \brief The pragma was introduced via \#pragma.</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span> <span class="comment">     */</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"><a class="code" href="namespaceclang.html#abad0c9179d409d68fce8917ebd5276eda1c74acb27e5d894c632777b08047781e">   36</a></span>     <a class="code" href="namespaceclang.html#abad0c9179d409d68fce8917ebd5276eda1c74acb27e5d894c632777b08047781e" title="The pragma was introduced via #pragma.">PIK_HashPragma</a>,</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">    /**</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span> <span class="comment">     * \brief The pragma was introduced via the C99 _Pragma(string-literal).</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span> <span class="comment">     */</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"><a class="code" href="namespaceclang.html#abad0c9179d409d68fce8917ebd5276eda45f7c48f6e3870f1dbdce97300cfaa20">   41</a></span>     <a class="code" href="namespaceclang.html#abad0c9179d409d68fce8917ebd5276eda45f7c48f6e3870f1dbdce97300cfaa20" title="The pragma was introduced via the C99 _Pragma(string-literal).">PIK__Pragma</a>,</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">    /**</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span> <span class="comment">     * \brief The pragma was introduced via the Microsoft </span></div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span> <span class="comment">     * __pragma(token-string).</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span> <span class="comment">     */</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"><a class="code" href="namespaceclang.html#abad0c9179d409d68fce8917ebd5276edaa4092b328f6f0e340a99df2e08435f6e">   47</a></span>     <a class="code" href="namespaceclang.html#abad0c9179d409d68fce8917ebd5276edaa4092b328f6f0e340a99df2e08435f6e" title="The pragma was introduced via the Microsoft __pragma(token-string).">PIK___pragma</a></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>   };</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>   <span class="comment"></span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span> <span class="comment">/// PragmaHandler - Instances of this interface defined to handle the various</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span> <span class="comment">/// pragmas that the language front-end uses.  Each handler optionally has a</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span> <span class="comment">/// name (e.g. "pack") and the HandlePragma method is invoked when a pragma with</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span> <span class="comment">/// that identifier is found.  If a handler does not match any of the declared</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span> <span class="comment">/// pragmas the handler with a null identifier is invoked, if it exists.</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span> <span class="comment">/// Note that the PragmaNamespace class can be used to subdivide pragmas, e.g.</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span> <span class="comment">/// we treat "\#pragma STDC" and "\#pragma GCC" as namespaces that contain other</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span> <span class="comment">/// pragmas.</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"><a class="code" href="classclang_1_1PragmaHandler.html">   59</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a> {</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>   std::string Name;</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00062"></a><span class="lineno"><a class="code" href="classclang_1_1PragmaHandler.html#a85d7938bf371889fe79358a73f681e97">   62</a></span>   <span class="keyword">explicit</span> <a class="code" href="classclang_1_1PragmaHandler.html#a85d7938bf371889fe79358a73f681e97">PragmaHandler</a>(StringRef name) : Name(name) {}</div>
+<div class="line"><a name="l00063"></a><span class="lineno"><a class="code" href="classclang_1_1PragmaHandler.html#a29521c9d34caf142a4e65cd662e034e7">   63</a></span>   <a class="code" href="classclang_1_1PragmaHandler.html#a29521c9d34caf142a4e65cd662e034e7">PragmaHandler</a>() {}</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>   <span class="keyword">virtual</span> <a class="code" href="classclang_1_1PragmaHandler.html#a7133a49ab64ae1acc207fee7667088dc">~PragmaHandler</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"><a class="code" href="classclang_1_1PragmaHandler.html#a514849d5710b59edf14834a6312303e5">   66</a></span>   StringRef <a class="code" href="classclang_1_1PragmaHandler.html#a514849d5710b59edf14834a6312303e5">getName</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Name; }</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1PragmaHandler.html#a0a3aa2d8ee2401d02100e857670f31b0">HandlePragma</a>(<a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP, <a class="code" href="namespaceclang.html#abad0c9179d409d68fce8917ebd5276ed" title="Describes how the pragma was introduced, e.g., with #pragma, _Pragma, or __pragma.">PragmaIntroducerKind</a> Introducer,</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>                             <a class="code" href="classclang_1_1Token.html">Token</a> &FirstToken) = 0;</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">  /// getIfNamespace - If this is a namespace, return it.  This is equivalent to</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span> <span class="comment">  /// using a dynamic_cast, but doesn't require RTTI.</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno"><a class="code" href="classclang_1_1PragmaHandler.html#a0711819ab5a1e1141317cbcac68a4e5b">   72</a></span> <span class="comment"></span>  <span class="keyword">virtual</span> <a class="code" href="classclang_1_1PragmaNamespace.html">PragmaNamespace</a> *<a class="code" href="classclang_1_1PragmaHandler.html#a0711819ab5a1e1141317cbcac68a4e5b">getIfNamespace</a>() { <span class="keywordflow">return</span> 0; }</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span> };</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">/// EmptyPragmaHandler - A pragma handler which takes no action, which can be</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span> <span class="comment">/// used to ignore particular pragmas.</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno"><a class="code" href="classclang_1_1EmptyPragmaHandler.html">   77</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1EmptyPragmaHandler.html">EmptyPragmaHandler</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a> {</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>   <a class="code" href="classclang_1_1EmptyPragmaHandler.html#a7bf32698bc265f4e29f66cf737a5031e">EmptyPragmaHandler</a>();</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span> </div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1EmptyPragmaHandler.html#a4ebbcea0cbb60527cfc7652afd7278bd">HandlePragma</a>(<a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP, <a class="code" href="namespaceclang.html#abad0c9179d409d68fce8917ebd5276ed" title="Describes how the pragma was introduced, e.g., with #pragma, _Pragma, or __pragma.">PragmaIntroducerKind</a> Introducer,</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>                             <a class="code" href="classclang_1_1Token.html">Token</a> &FirstToken);</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">/// PragmaNamespace - This PragmaHandler subdivides the namespace of pragmas,</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span> <span class="comment">/// allowing hierarchical pragmas to be defined.  Common examples of namespaces</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span> <span class="comment">/// are "\#pragma GCC", "\#pragma STDC", and "\#pragma omp", but any namespaces</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span> <span class="comment">/// may be (potentially recursively) defined.</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno"><a class="code" href="classclang_1_1PragmaNamespace.html">   89</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1PragmaNamespace.html">PragmaNamespace</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a> {<span class="comment"></span></div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span> <span class="comment">  /// Handlers - This is a map of the handlers in this namespace with their name</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span> <span class="comment">  /// as key.</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span> <span class="comment"></span>  llvm::StringMap<PragmaHandler*> Handlers;</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00095"></a><span class="lineno"><a class="code" href="classclang_1_1PragmaNamespace.html#ab9e5fbe2866e6ba706631a81cee26db5">   95</a></span>   <span class="keyword">explicit</span> <a class="code" href="classclang_1_1PragmaNamespace.html#ab9e5fbe2866e6ba706631a81cee26db5">PragmaNamespace</a>(StringRef Name) : <a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a>(Name) {}</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>   <span class="keyword">virtual</span> <a class="code" href="classclang_1_1PragmaNamespace.html#a4148b1f21dd7469e0f74c727f2411a25">~PragmaNamespace</a>();</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span> <span class="comment"></span></div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span> <span class="comment">  /// FindHandler - Check to see if there is already a handler for the</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span> <span class="comment">  /// specified name.  If not, return the handler for the null name if it</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span> <span class="comment">  /// exists, otherwise return null.  If IgnoreNull is true (the default) then</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span> <span class="comment">  /// the null handler isn't returned on failure to match.</span></div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span> <span class="comment"></span>  <a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a> *<a class="code" href="classclang_1_1PragmaNamespace.html#a7af0a145912714f18ad78ba146403893">FindHandler</a>(StringRef Name,</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>                              <span class="keywordtype">bool</span> IgnoreNull = <span class="keyword">true</span>) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span> <span class="comment"></span></div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span> <span class="comment">  /// AddPragma - Add a pragma to this namespace.</span></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"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1PragmaNamespace.html#a0599fb5c095626a167128eaee48d6282">AddPragma</a>(<a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a> *Handler);</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span> <span class="comment"></span></div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span> <span class="comment">  /// RemovePragmaHandler - Remove the given handler from the</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span> <span class="comment">  /// namespace.</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1PragmaNamespace.html#a75e12bc28dabe97a8954f5bebb656d59">RemovePragmaHandler</a>(<a class="code" href="classclang_1_1PragmaHandler.html">PragmaHandler</a> *Handler);</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_1PragmaNamespace.html#a8d11b473796edc61e17c56eae7aa3f58">  113</a></span>   <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1PragmaNamespace.html#a8d11b473796edc61e17c56eae7aa3f58">IsEmpty</a>() {</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>     <span class="keywordflow">return</span> Handlers.empty();</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="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1PragmaNamespace.html#a85400685c7416df64b5809b1ac689bdb">HandlePragma</a>(<a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> &PP, <a class="code" href="namespaceclang.html#abad0c9179d409d68fce8917ebd5276ed" title="Describes how the pragma was introduced, e.g., with #pragma, _Pragma, or __pragma.">PragmaIntroducerKind</a> Introducer,</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>                             <a class="code" href="classclang_1_1Token.html">Token</a> &FirstToken);</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_1PragmaNamespace.html#a0428261478b769478ea7f2af213a277d">  120</a></span>   <span class="keyword">virtual</span> <a class="code" href="classclang_1_1PragmaNamespace.html">PragmaNamespace</a> *<a class="code" href="classclang_1_1PragmaNamespace.html#a0428261478b769478ea7f2af213a277d">getIfNamespace</a>() { <span class="keywordflow">return</span> <span class="keyword">this</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> </div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span> }  <span class="comment">// end namespace clang</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> <span class="preprocessor">#endif</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/PreprocessingRecord_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PreprocessingRecord_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PreprocessingRecord_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PreprocessingRecord_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,565 @@
+<!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: PreprocessingRecord.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">PreprocessingRecord.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="PreprocessingRecord_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">//===--- PreprocessingRecord.cpp - Record of Preprocessing ------*- C++ -*-===//</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">//                     The LLVM Compiler Infrastructure</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment">// This file is distributed under the University of Illinois Open Source</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">// License. See LICENSE.TXT for details.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span> <span class="comment">//  This file implements the PreprocessingRecord class, which maintains a record</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="comment">//  of what occurred during preprocessing, and its helpers.</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> <span class="preprocessor">#include "<a class="code" href="PreprocessingRecord_8h.html">clang/Lex/PreprocessingRecord.h</a>"</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</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="l00016"></a><span class="lineno">   16</span> <span class="preprocessor">#include "<a class="code" href="Token_8h.html">clang/Lex/Token.h</a>"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="preprocessor">#include "llvm/Support/Capacity.h"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="preprocessor">#include "llvm/Support/ErrorHandling.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="classclang_1_1ExternalPreprocessingRecordSource.html#a0e4ed023f760de0492cc667fd9bd1e73">   22</a></span> <a class="code" href="classclang_1_1ExternalPreprocessingRecordSource.html#a0e4ed023f760de0492cc667fd9bd1e73">ExternalPreprocessingRecordSource::~ExternalPreprocessingRecordSource</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">   24</span> </div>
+<div class="line"><a name="l00025"></a><span class="lineno"><a class="code" href="classclang_1_1InclusionDirective.html#a9415494a78ff59a1f7d7be27b2345afc">   25</a></span> <a class="code" href="classclang_1_1InclusionDirective.html#a9415494a78ff59a1f7d7be27b2345afc">InclusionDirective::InclusionDirective</a>(<a class="code" href="classclang_1_1PreprocessingRecord.html" title="A record of the steps taken while preprocessing a source file, including the various preprocessing di...">PreprocessingRecord</a> &PPRec,</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>                                        <a class="code" href="classclang_1_1InclusionDirective.html#a762101f8828f156ea99ccfab1b20d91c" title="The kind of inclusion directives known to the preprocessor.">InclusionKind</a> <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a>, </div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>                                        StringRef FileName, </div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>                                        <span class="keywordtype">bool</span> InQuotes, <span class="keywordtype">bool</span> ImportedModule,</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</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="l00030"></a><span class="lineno">   30</span>                                        <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> Range)</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>   : <a class="code" href="classclang_1_1PreprocessingDirective.html" title="Records the presence of a preprocessor directive.">PreprocessingDirective</a>(InclusionDirectiveKind, Range), </div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>     InQuotes(InQuotes), Kind(Kind), ImportedModule(ImportedModule), File(File)</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span> { </div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>   <span class="keywordtype">char</span> *Memory </div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>     = (<span class="keywordtype">char</span>*)PPRec.<a class="code" href="classclang_1_1PreprocessingRecord.html#af65267ec5250a5092910bd8ba848863c" title="Allocate memory in the preprocessing record.">Allocate</a>(FileName.size() + 1, llvm::alignOf<char>());</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>   memcpy(Memory, FileName.data(), FileName.size());</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>   Memory[FileName.size()] = 0;</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>   this->FileName = StringRef(Memory, FileName.size());</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span> }</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span> </div>
+<div class="line"><a name="l00041"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord.html#a0a8359ec4e9e611de238108c8a704a94">   41</a></span> <a class="code" href="classclang_1_1PreprocessingRecord.html#a0a8359ec4e9e611de238108c8a704a94" title="Construct a new preprocessing record.">PreprocessingRecord::PreprocessingRecord</a>(<a class="code" href="classclang_1_1SourceManager.html" title="This class handles loading and caching of source files into memory.">SourceManager</a> &<a class="code" href="AnalysisBasedWarnings_8cpp.html#afe4356a77609114d8df0bfc9c2b8701f">SM</a>)</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>   : <a class="code" href="Format_8cpp.html#a8b28f9f83ac8256fbde7e45b0f874f27">SourceMgr</a>(SM),</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>     ExternalSource(0) {</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="comment"></span></div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span> <span class="comment">/// \brief Returns a pair of [Begin, End) iterators of preprocessed entities</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span> <span class="comment">/// that source range \p Range encompasses.</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span> <span class="comment"></span>std::pair<PreprocessingRecord::iterator, PreprocessingRecord::iterator></div>
+<div class="line"><a name="l00049"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord.html#a3f8922942fa8e9c38c8deb5f970c89f2">   49</a></span> <a class="code" href="classclang_1_1PreprocessingRecord.html#a3f8922942fa8e9c38c8deb5f970c89f2" title="Returns a pair of [Begin, End) iterators of preprocessed entities that source range R encompasses...">PreprocessingRecord::getPreprocessedEntitiesInRange</a>(<a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> Range) {</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>   <span class="keywordflow">if</span> (Range.<a class="code" href="classclang_1_1SourceRange.html#ad4b210c1ce478d3e76c9e8e27bad7745">isInvalid</a>())</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>     <span class="keywordflow">return</span> std::make_pair(<a class="code" href="classclang_1_1PreprocessingRecord.html#a67171474c4da6cc8efe0c7fafefd2b2d">iterator</a>(), <a class="code" href="classclang_1_1PreprocessingRecord.html#a67171474c4da6cc8efe0c7fafefd2b2d">iterator</a>());</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">if</span> (CachedRangeQuery.Range == Range) {</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>     <span class="keywordflow">return</span> std::make_pair(<a class="code" href="classclang_1_1PreprocessingRecord.html#a67171474c4da6cc8efe0c7fafefd2b2d">iterator</a>(<span class="keyword">this</span>, CachedRangeQuery.Result.first),</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>                           <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html">iterator</a>(<span class="keyword">this</span>, CachedRangeQuery.Result.second));</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>   }</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span> </div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>   std::pair<int, int> Res = getPreprocessedEntitiesInRangeSlow(Range);</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>   CachedRangeQuery.Range = <a class="code" href="classclang_1_1PreprocessingRecord.html#a68d2acbaefbc5533b604ec29e92c6a28">Range</a>;</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>   CachedRangeQuery.Result = Res;</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>   </div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>   <span class="keywordflow">return</span> std::make_pair(<a class="code" href="classclang_1_1PreprocessingRecord.html#a67171474c4da6cc8efe0c7fafefd2b2d">iterator</a>(<span class="keyword">this</span>, Res.first), <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html">iterator</a>(<span class="keyword">this</span>, Res.second));</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"><a class="code" href="PreprocessingRecord_8cpp.html#a7f5da2c939da35e0f60e973351eb8aa9">   66</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="PreprocessingRecord_8cpp.html#a7f5da2c939da35e0f60e973351eb8aa9">isPreprocessedEntityIfInFileID</a>(<a class="code" href="classclang_1_1PreprocessedEntity.html" title="Base class that describes a preprocessed entity, which may be a preprocessor directive or macro expan...">PreprocessedEntity</a> *PPE, <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="l00067"></a><span class="lineno">   67</span>                                            <a class="code" href="classclang_1_1SourceManager.html" title="This class handles loading and caching of source files into memory.">SourceManager</a> &<a class="code" href="AnalysisBasedWarnings_8cpp.html#afe4356a77609114d8df0bfc9c2b8701f">SM</a>) {</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>   assert(!FID.<a class="code" href="classclang_1_1FileID.html#a89ac6cca1064b7275a777f86450c7863">isInvalid</a>());</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>   <span class="keywordflow">if</span> (!PPE)</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span> </div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>   <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc = PPE-><a class="code" href="classclang_1_1PreprocessedEntity.html#a9de74aa1e83b2996eff6ac23a6e8716f" title="Retrieve the source range that covers this entire preprocessed entity.">getSourceRange</a>().<a class="code" href="classclang_1_1SourceRange.html#a890dff14560eb9aceb08be18dfe74208">getBegin</a>();</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>   <span class="keywordflow">if</span> (Loc.<a class="code" href="classclang_1_1SourceLocation.html#a1936fc09837ff8a195fa63e29f05796f">isInvalid</a>())</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>   </div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>   <span class="keywordflow">if</span> (SM.<a class="code" href="classclang_1_1SourceManager.html#ab7ef8050c9bcf7a743dab59f2487382c" title="Given a specific FileID, returns true if Loc is inside that FileID chunk and sets relative offset (of...">isInFileID</a>(SM.<a class="code" href="classclang_1_1SourceManager.html#a0a48eea62efa1672fb1da24a310d36db" title="Given Loc, if it is a macro location return the expansion location or the spelling location...">getFileLoc</a>(Loc), FID))</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>     <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>   <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span> }</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span> <span class="comment"></span></div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span> <span class="comment">/// \brief Returns true if the preprocessed entity that \arg PPEI iterator</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span> <span class="comment">/// points to is coming from the file \arg FID.</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">/// Can be used to avoid implicit deserializations of preallocated</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span> <span class="comment">/// preprocessed entities if we only care about entities of a specific file</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span> <span class="comment">/// and not from files \#included in the range given at</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span> <span class="comment">/// \see getPreprocessedEntitiesInRange.</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord.html#a8b9b24ff461eae09b50c656333408452">   89</a></span> <span class="comment"></span><span class="keywordtype">bool</span> <a class="code" href="classclang_1_1PreprocessingRecord.html#a8b9b24ff461eae09b50c656333408452" title="Returns true if the preprocessed entity that PPEI iterator points to is coming from the file FID...">PreprocessingRecord::isEntityInFileID</a>(<a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html">iterator</a> PPEI, <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="l00090"></a><span class="lineno">   90</span>   <span class="keywordflow">if</span> (FID.<a class="code" href="classclang_1_1FileID.html#a89ac6cca1064b7275a777f86450c7863">isInvalid</a>())</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>     <span class="keywordflow">return</span> <span class="keyword">false</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>   <span class="keywordtype">int</span> Pos = PPEI.Position;</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>   <span class="keywordflow">if</span> (Pos < 0) {</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>     <span class="keywordflow">if</span> (<span class="keywordtype">unsigned</span>(-Pos-1) >= LoadedPreprocessedEntities.size()) {</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>       assert(0 && <span class="stringliteral">"Out-of bounds loaded preprocessed entity"</span>);</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>       <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>     }</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>     assert(ExternalSource && <span class="stringliteral">"No external source to load from"</span>);</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>     <span class="keywordtype">unsigned</span> LoadedIndex = LoadedPreprocessedEntities.size()+Pos;</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1PreprocessedEntity.html" title="Base class that describes a preprocessed entity, which may be a preprocessor directive or macro expan...">PreprocessedEntity</a> *PPE = LoadedPreprocessedEntities[LoadedIndex])</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>       <span class="keywordflow">return</span> <a class="code" href="PreprocessingRecord_8cpp.html#a7f5da2c939da35e0f60e973351eb8aa9">isPreprocessedEntityIfInFileID</a>(PPE, FID, SourceMgr);</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span> </div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>     <span class="comment">// See if the external source can see if the entity is in the file without</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>     <span class="comment">// deserializing it.</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>     <a class="code" href="classllvm_1_1Optional.html">Optional<bool></a> IsInFile =</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>         ExternalSource-><a class="code" href="classclang_1_1ExternalPreprocessingRecordSource.html#ad60b78e9d3de24d7d2a8d18d085e2554" title="Optionally returns true or false if the preallocated preprocessed entity with index Index came from f...">isPreprocessedEntityInFileID</a>(LoadedIndex, FID);</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>     <span class="keywordflow">if</span> (IsInFile.hasValue())</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>       <span class="keywordflow">return</span> IsInFile.getValue();</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span> </div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>     <span class="comment">// The external source did not provide a definite answer, go and deserialize</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>     <span class="comment">// the entity to check it.</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>     <span class="keywordflow">return</span> <a class="code" href="PreprocessingRecord_8cpp.html#a7f5da2c939da35e0f60e973351eb8aa9">isPreprocessedEntityIfInFileID</a>(</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>                                        getLoadedPreprocessedEntity(LoadedIndex),</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>                                           FID, SourceMgr);</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>   }</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span> </div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>   <span class="keywordflow">if</span> (<span class="keywordtype">unsigned</span>(Pos) >= PreprocessedEntities.size()) {</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>     assert(0 && <span class="stringliteral">"Out-of bounds local preprocessed entity"</span>);</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>     <span class="keywordflow">return</span> <span class="keyword">false</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>   <span class="keywordflow">return</span> <a class="code" href="PreprocessingRecord_8cpp.html#a7f5da2c939da35e0f60e973351eb8aa9">isPreprocessedEntityIfInFileID</a>(PreprocessedEntities[Pos],</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>                                         FID, SourceMgr);</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> <span class="comment"></span></div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span> <span class="comment">/// \brief Returns a pair of [Begin, End) iterators of preprocessed entities</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span> <span class="comment">/// that source range \arg R encompasses.</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span> <span class="comment"></span>std::pair<int, int></div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span> PreprocessingRecord::getPreprocessedEntitiesInRangeSlow(<a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> Range) {</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>   assert(Range.<a class="code" href="classclang_1_1SourceRange.html#acdaac0809b0eec9ce9ec88e1a9da7fb6">isValid</a>());</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>   assert(!SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#a80e6af876450686c7811c34fc72fcbdc" title="Determines the order of 2 source locations in the translation unit.">isBeforeInTranslationUnit</a>(Range.<a class="code" href="classclang_1_1SourceRange.html#a982d28235ad96ce81b3e8144b7b245c0">getEnd</a>(),Range.<a class="code" href="classclang_1_1SourceRange.html#a890dff14560eb9aceb08be18dfe74208">getBegin</a>()));</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>   std::pair<unsigned, unsigned></div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>     Local = findLocalPreprocessedEntitiesInRange(Range);</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>   </div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>   <span class="comment">// Check if range spans local entities.</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>   <span class="keywordflow">if</span> (!ExternalSource || SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#af1194356bbade1c672011d939b75ebd2" title="Returns true if Loc did not come from a PCH/Module.">isLocalSourceLocation</a>(Range.<a class="code" href="classclang_1_1SourceRange.html#a890dff14560eb9aceb08be18dfe74208">getBegin</a>()))</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>     <span class="keywordflow">return</span> std::make_pair(Local.first, Local.second);</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>   std::pair<unsigned, unsigned></div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>     Loaded = ExternalSource-><a class="code" href="classclang_1_1ExternalPreprocessingRecordSource.html#a16d154184f5e8232bd64f51e3f479e22" title="Returns a pair of [Begin, End) indices of preallocated preprocessed entities that Range encompasses...">findPreprocessedEntitiesInRange</a>(Range);</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>   <span class="comment">// Check if range spans local entities.</span></div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>   <span class="keywordflow">if</span> (Loaded.first == Loaded.second)</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>     <span class="keywordflow">return</span> std::make_pair(Local.first, Local.second);</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>   </div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>   <span class="keywordtype">unsigned</span> TotalLoaded = LoadedPreprocessedEntities.size();</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>   </div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>   <span class="comment">// Check if range spans loaded entities.</span></div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>   <span class="keywordflow">if</span> (Local.first == Local.second)</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>     <span class="keywordflow">return</span> std::make_pair(<span class="keywordtype">int</span>(Loaded.first)-TotalLoaded,</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>                           <span class="keywordtype">int</span>(Loaded.second)-TotalLoaded);</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="comment">// Range spands loaded and local entities.</span></div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>   <span class="keywordflow">return</span> std::make_pair(<span class="keywordtype">int</span>(Loaded.first)-TotalLoaded, Local.second);</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> </div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span> std::pair<unsigned, unsigned></div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span> PreprocessingRecord::findLocalPreprocessedEntitiesInRange(</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>                                                       <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> Range)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>   <span class="keywordflow">if</span> (Range.<a class="code" href="classclang_1_1SourceRange.html#ad4b210c1ce478d3e76c9e8e27bad7745">isInvalid</a>())</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>     <span class="keywordflow">return</span> std::make_pair(0,0);</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>   assert(!SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#a80e6af876450686c7811c34fc72fcbdc" title="Determines the order of 2 source locations in the translation unit.">isBeforeInTranslationUnit</a>(Range.<a class="code" href="classclang_1_1SourceRange.html#a982d28235ad96ce81b3e8144b7b245c0">getEnd</a>(),Range.<a class="code" href="classclang_1_1SourceRange.html#a890dff14560eb9aceb08be18dfe74208">getBegin</a>()));</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="keywordtype">unsigned</span> Begin = findBeginLocalPreprocessedEntity(Range.<a class="code" href="classclang_1_1SourceRange.html#a890dff14560eb9aceb08be18dfe74208">getBegin</a>());</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>   <span class="keywordtype">unsigned</span> End = findEndLocalPreprocessedEntity(Range.<a class="code" href="classclang_1_1SourceRange.html#a982d28235ad96ce81b3e8144b7b245c0">getEnd</a>());</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>   <span class="keywordflow">return</span> std::make_pair(Begin, End);</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> </div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span> <span class="keyword">namespace </span>{</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span> </div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span> <span class="keyword">template</span> <SourceLocation (SourceRange::*getRangeLoc)() const></div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span> <span class="keyword">struct </span>PPEntityComp {</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1SourceManager.html" title="This class handles loading and caching of source files into memory.">SourceManager</a> &<a class="code" href="AnalysisBasedWarnings_8cpp.html#afe4356a77609114d8df0bfc9c2b8701f">SM</a>;</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span> </div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>   <span class="keyword">explicit</span> PPEntityComp(<span class="keyword">const</span> <a class="code" href="classclang_1_1SourceManager.html" title="This class handles loading and caching of source files into memory.">SourceManager</a> &<a class="code" href="AnalysisBasedWarnings_8cpp.html#afe4356a77609114d8df0bfc9c2b8701f">SM</a>) : SM(SM) { }</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span> </div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>   <span class="keywordtype">bool</span> operator()(<a class="code" href="classclang_1_1PreprocessedEntity.html" title="Base class that describes a preprocessed entity, which may be a preprocessor directive or macro expan...">PreprocessedEntity</a> *L, <a class="code" href="classclang_1_1PreprocessedEntity.html" title="Base class that describes a preprocessed entity, which may be a preprocessor directive or macro expan...">PreprocessedEntity</a> *R)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</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> LHS = getLoc(L);</div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</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> RHS = getLoc(R);</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>     <span class="keywordflow">return</span> <a class="code" href="AnalysisBasedWarnings_8cpp.html#afe4356a77609114d8df0bfc9c2b8701f">SM</a>.<a class="code" href="classclang_1_1SourceManager.html#a80e6af876450686c7811c34fc72fcbdc" title="Determines the order of 2 source locations in the translation unit.">isBeforeInTranslationUnit</a>(LHS, RHS);</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> </div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>   <span class="keywordtype">bool</span> operator()(<a class="code" href="classclang_1_1PreprocessedEntity.html" title="Base class that describes a preprocessed entity, which may be a preprocessor directive or macro expan...">PreprocessedEntity</a> *L, <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> RHS)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</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> LHS = getLoc(L);</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>     <span class="keywordflow">return</span> <a class="code" href="AnalysisBasedWarnings_8cpp.html#afe4356a77609114d8df0bfc9c2b8701f">SM</a>.<a class="code" href="classclang_1_1SourceManager.html#a80e6af876450686c7811c34fc72fcbdc" title="Determines the order of 2 source locations in the translation unit.">isBeforeInTranslationUnit</a>(LHS, RHS);</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> </div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>   <span class="keywordtype">bool</span> operator()(<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> LHS, <a class="code" href="classclang_1_1PreprocessedEntity.html" title="Base class that describes a preprocessed entity, which may be a preprocessor directive or macro expan...">PreprocessedEntity</a> *R)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</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> RHS = getLoc(R);</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>     <span class="keywordflow">return</span> <a class="code" href="AnalysisBasedWarnings_8cpp.html#afe4356a77609114d8df0bfc9c2b8701f">SM</a>.<a class="code" href="classclang_1_1SourceManager.html#a80e6af876450686c7811c34fc72fcbdc" title="Determines the order of 2 source locations in the translation unit.">isBeforeInTranslationUnit</a>(LHS, RHS);</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> </div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</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> getLoc(<a class="code" href="classclang_1_1PreprocessedEntity.html" title="Base class that describes a preprocessed entity, which may be a preprocessor directive or macro expan...">PreprocessedEntity</a> *PPE)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>     <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> Range = PPE-><a class="code" href="classclang_1_1PreprocessedEntity.html#a9de74aa1e83b2996eff6ac23a6e8716f" title="Retrieve the source range that covers this entire preprocessed entity.">getSourceRange</a>();</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>     <span class="keywordflow">return</span> (Range.*getRangeLoc)();</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span>   }</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span> };</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span> </div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span> }</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span> </div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span> <span class="keywordtype">unsigned</span> PreprocessingRecord::findBeginLocalPreprocessedEntity(</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</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)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>   <span class="keywordflow">if</span> (SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#abcb5b12fef70fb3feba17cccfe7b2e56" title="Returns true if Loc came from a PCH/Module.">isLoadedSourceLocation</a>(Loc))</div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>     <span class="keywordflow">return</span> 0;</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>   <span class="keywordtype">size_t</span> <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960ad0386506936fec96a18d01e42d4eb514">Count</a> = PreprocessedEntities.size();</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span>   <span class="keywordtype">size_t</span> Half;</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>   std::vector<PreprocessedEntity *>::const_iterator</div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>     First = PreprocessedEntities.begin();</div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>   std::vector<PreprocessedEntity *>::const_iterator I;</div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span> </div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span>   <span class="comment">// Do a binary search manually instead of using std::lower_bound because</span></div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>   <span class="comment">// The end locations of entities may be unordered (when a macro expansion</span></div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span>   <span class="comment">// is inside another macro argument), but for this case it is not important</span></div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span>   <span class="comment">// whether we get the first macro expansion or its containing macro.</span></div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span>   <span class="keywordflow">while</span> (Count > 0) {</div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>     Half = Count/2;</div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>     I = First;</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>     std::advance(I, Half);</div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span>     <span class="keywordflow">if</span> (SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#a80e6af876450686c7811c34fc72fcbdc" title="Determines the order of 2 source locations in the translation unit.">isBeforeInTranslationUnit</a>((*I)->getSourceRange().getEnd(),</div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span>                                             Loc)){</div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span>       First = I;</div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>       ++First;</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>       Count = Count - Half - 1;</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>     } <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>       Count = Half;</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> </div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span>   <span class="keywordflow">return</span> First - PreprocessedEntities.begin();</div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span> }</div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span> </div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span> <span class="keywordtype">unsigned</span> PreprocessingRecord::findEndLocalPreprocessedEntity(</div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</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)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span>   <span class="keywordflow">if</span> (SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#abcb5b12fef70fb3feba17cccfe7b2e56" title="Returns true if Loc came from a PCH/Module.">isLoadedSourceLocation</a>(Loc))</div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span>     <span class="keywordflow">return</span> 0;</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>   std::vector<PreprocessedEntity *>::const_iterator</div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span>   I = std::upper_bound(PreprocessedEntities.begin(),</div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span>                        PreprocessedEntities.end(),</div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span>                        Loc,</div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span>                        PPEntityComp<&SourceRange::getBegin>(SourceMgr));</div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span>   <span class="keywordflow">return</span> I - PreprocessedEntities.begin();</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> </div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span> PreprocessingRecord::PPEntityID</div>
+<div class="line"><a name="l00247"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord.html#a3b57783346757f1ca94159b0ef52ae31">  247</a></span> <a class="code" href="classclang_1_1PreprocessingRecord.html#a3b57783346757f1ca94159b0ef52ae31" title="Add a new preprocessed entity to this record.">PreprocessingRecord::addPreprocessedEntity</a>(<a class="code" href="classclang_1_1PreprocessedEntity.html" title="Base class that describes a preprocessed entity, which may be a preprocessor directive or macro expan...">PreprocessedEntity</a> *Entity) {</div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span>   assert(Entity);</div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</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> BeginLoc = Entity-><a class="code" href="classclang_1_1PreprocessedEntity.html#a9de74aa1e83b2996eff6ac23a6e8716f" title="Retrieve the source range that covers this entire preprocessed entity.">getSourceRange</a>().<a class="code" href="classclang_1_1SourceRange.html#a890dff14560eb9aceb08be18dfe74208">getBegin</a>();</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> (isa<MacroDefinition>(Entity)) {</div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span>     assert((PreprocessedEntities.empty() ||</div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span>             !SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#a80e6af876450686c7811c34fc72fcbdc" title="Determines the order of 2 source locations in the translation unit.">isBeforeInTranslationUnit</a>(BeginLoc,</div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span>                    PreprocessedEntities.back()->getSourceRange().getBegin())) &&</div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span>            <span class="stringliteral">"a macro definition was encountered out-of-order"</span>);</div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span>     PreprocessedEntities.push_back(Entity);</div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span>     <span class="keywordflow">return</span> getPPEntityID(PreprocessedEntities.size()-1, <span class="comment">/*isLoaded=*/</span><span class="keyword">false</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> </div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span>   <span class="comment">// Check normal case, this entity begin location is after the previous one.</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span>   <span class="keywordflow">if</span> (PreprocessedEntities.empty() ||</div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span>       !SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#a80e6af876450686c7811c34fc72fcbdc" title="Determines the order of 2 source locations in the translation unit.">isBeforeInTranslationUnit</a>(BeginLoc,</div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span>                    PreprocessedEntities.back()->getSourceRange().getBegin())) {</div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span>     PreprocessedEntities.push_back(Entity);</div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span>     <span class="keywordflow">return</span> getPPEntityID(PreprocessedEntities.size()-1, <span class="comment">/*isLoaded=*/</span><span class="keyword">false</span>);</div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span>   }</div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span> </div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span>   <span class="comment">// The entity's location is not after the previous one; this can happen with</span></div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span>   <span class="comment">// include directives that form the filename using macros, e.g:</span></div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span>   <span class="comment">// "#include MACRO(STUFF)"</span></div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span>   <span class="comment">// or with macro expansions inside macro arguments where the arguments are</span></div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span>   <span class="comment">// not expanded in the same order as listed, e.g:</span></div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span>   <span class="comment">// \code</span></div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span>   <span class="comment">//  #define M1 1</span></div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span>   <span class="comment">//  #define M2 2</span></div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span>   <span class="comment">//  #define FM(x,y) y x</span></div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span>   <span class="comment">//  FM(M1, M2)</span></div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span>   <span class="comment">// \endcode</span></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>   <span class="keyword">typedef</span> std::vector<PreprocessedEntity *>::iterator pp_iter;</div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span> </div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span>   <span class="comment">// Usually there are few macro expansions when defining the filename, do a</span></div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span>   <span class="comment">// linear search for a few entities.</span></div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span>   <span class="keywordtype">unsigned</span> count = 0;</div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span>   <span class="keywordflow">for</span> (pp_iter RI    = PreprocessedEntities.end(),</div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span>                Begin = PreprocessedEntities.begin();</div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span>        RI != Begin && count < 4; --RI, ++count) {</div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span>     pp_iter I = RI;</div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span>     --I;</div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span>     <span class="keywordflow">if</span> (!SourceMgr.<a class="code" href="classclang_1_1SourceManager.html#a80e6af876450686c7811c34fc72fcbdc" title="Determines the order of 2 source locations in the translation unit.">isBeforeInTranslationUnit</a>(BeginLoc,</div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span>                                            (*I)->getSourceRange().getBegin())) {</div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span>       pp_iter insertI = PreprocessedEntities.insert(RI, Entity);</div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span>       <span class="keywordflow">return</span> getPPEntityID(insertI - PreprocessedEntities.begin(),</div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span>                            <span class="comment">/*isLoaded=*/</span><span class="keyword">false</span>);</div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span>     }</div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span>   }</div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span> </div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span>   <span class="comment">// Linear search unsuccessful. Do a binary search.</span></div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span>   pp_iter I = std::upper_bound(PreprocessedEntities.begin(),</div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span>                                PreprocessedEntities.end(),</div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span>                                BeginLoc,</div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span>                                PPEntityComp<&SourceRange::getBegin>(SourceMgr));</div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span>   pp_iter insertI = PreprocessedEntities.insert(I, Entity);</div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span>   <span class="keywordflow">return</span> getPPEntityID(insertI - PreprocessedEntities.begin(),</div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span>                        <span class="comment">/*isLoaded=*/</span><span class="keyword">false</span>);</div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span> }</div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span> </div>
+<div class="line"><a name="l00308"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord.html#ae04fdf86859a931db7af05a820f8bf23">  308</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1PreprocessingRecord.html#ae04fdf86859a931db7af05a820f8bf23" title="Set the external source for preprocessed entities.">PreprocessingRecord::SetExternalSource</a>(</div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span>                                     <a class="code" href="classclang_1_1ExternalPreprocessingRecordSource.html" title="An abstract class that should be subclassed by any external source of preprocessing record entries...">ExternalPreprocessingRecordSource</a> &Source) {</div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span>   assert(!ExternalSource &&</div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span>          <span class="stringliteral">"Preprocessing record already has an external source"</span>);</div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span>   ExternalSource = &Source;</div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span> }</div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span> </div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span> <span class="keywordtype">unsigned</span> PreprocessingRecord::allocateLoadedEntities(<span class="keywordtype">unsigned</span> NumEntities) {</div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span>   <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1PreprocessingRecord.html#ab063831fc4182e4977fbaabedf7c0c80">Result</a> = LoadedPreprocessedEntities.size();</div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span>   LoadedPreprocessedEntities.resize(LoadedPreprocessedEntities.size() </div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span>                                     + NumEntities);</div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span>   <span class="keywordflow">return</span> <a class="code" href="classclang_1_1PreprocessingRecord.html#ab063831fc4182e4977fbaabedf7c0c80">Result</a>;</div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span> }</div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span> </div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span> <span class="keywordtype">void</span> PreprocessingRecord::RegisterMacroDefinition(<a class="code" href="classclang_1_1MacroInfo.html" title="Encapsulates the data about a macro definition (e.g. its tokens).">MacroInfo</a> *Macro,</div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span>                                                   <a class="code" href="classclang_1_1MacroDefinition.html" title="Record the location of a macro definition.">MacroDefinition</a> *Def) {</div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span>   MacroDefinitions[Macro] = Def;</div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span> }</div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span> <span class="comment"></span></div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span> <span class="comment">/// \brief Retrieve the preprocessed entity at the given ID.</span></div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span> <span class="comment"></span><a class="code" href="classclang_1_1PreprocessedEntity.html" title="Base class that describes a preprocessed entity, which may be a preprocessor directive or macro expan...">PreprocessedEntity</a> *PreprocessingRecord::getPreprocessedEntity(PPEntityID PPID){</div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span>   <span class="keywordflow">if</span> (PPID.ID < 0) {</div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span>     <span class="keywordtype">unsigned</span> Index = -PPID.ID - 1;</div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span>     assert(Index < LoadedPreprocessedEntities.size() &&</div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span>            <span class="stringliteral">"Out-of bounds loaded preprocessed entity"</span>);</div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span>     <span class="keywordflow">return</span> getLoadedPreprocessedEntity(Index);</div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span>   }</div>
+<div class="line"><a name="l00335"></a><span class="lineno">  335</span> </div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span>   <span class="keywordflow">if</span> (PPID.ID == 0)</div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span>     <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span>   <span class="keywordtype">unsigned</span> Index = PPID.ID - 1;</div>
+<div class="line"><a name="l00339"></a><span class="lineno">  339</span>   assert(Index < PreprocessedEntities.size() &&</div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span>          <span class="stringliteral">"Out-of bounds local preprocessed entity"</span>);</div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span>   <span class="keywordflow">return</span> PreprocessedEntities[Index];</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> <span class="comment"></span></div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span> <span class="comment">/// \brief Retrieve the loaded preprocessed entity at the given index.</span></div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span> <span class="comment"></span><a class="code" href="classclang_1_1PreprocessedEntity.html" title="Base class that describes a preprocessed entity, which may be a preprocessor directive or macro expan...">PreprocessedEntity</a> *</div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span> PreprocessingRecord::getLoadedPreprocessedEntity(<span class="keywordtype">unsigned</span> Index) {</div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span>   assert(Index < LoadedPreprocessedEntities.size() && </div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span>          <span class="stringliteral">"Out-of bounds loaded preprocessed entity"</span>);</div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span>   assert(ExternalSource && <span class="stringliteral">"No external source to load from"</span>);</div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span>   <a class="code" href="classclang_1_1PreprocessedEntity.html" title="Base class that describes a preprocessed entity, which may be a preprocessor directive or macro expan...">PreprocessedEntity</a> *&Entity = LoadedPreprocessedEntities[Index];</div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span>   <span class="keywordflow">if</span> (!Entity) {</div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span>     Entity = ExternalSource-><a class="code" href="classclang_1_1ExternalPreprocessingRecordSource.html#a202cc17d339416e2add947a8b02c10c8" title="Read a preallocated preprocessed entity from the external source.">ReadPreprocessedEntity</a>(Index);</div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span>     <span class="keywordflow">if</span> (!Entity) <span class="comment">// Failed to load.</span></div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span>       Entity = <span class="keyword">new</span> (*this)</div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span>          <a class="code" href="classclang_1_1PreprocessedEntity.html" title="Base class that describes a preprocessed entity, which may be a preprocessor directive or macro expan...">PreprocessedEntity</a>(<a class="code" href="classclang_1_1PreprocessedEntity.html#a04e3bd7d26ceed0a725bdd4a03d227e4a19d6eb45c68232b531856bf3f131a7b7" title="Indicates a problem trying to load the preprocessed entity.">PreprocessedEntity::InvalidKind</a>, <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a>());</div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span>   }</div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span>   <span class="keywordflow">return</span> Entity;</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"><a class="code" href="classclang_1_1PreprocessingRecord.html#aaebcce69d158b8e7b60d6315eb8518e5">  360</a></span> <a class="code" href="classclang_1_1MacroDefinition.html" title="Record the location of a macro definition.">MacroDefinition</a> *<a class="code" href="classclang_1_1PreprocessingRecord.html#aaebcce69d158b8e7b60d6315eb8518e5" title="Retrieve the macro definition that corresponds to the given MacroInfo.">PreprocessingRecord::findMacroDefinition</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="l00361"></a><span class="lineno">  361</span>   llvm::DenseMap<const MacroInfo *, MacroDefinition *>::iterator Pos</div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span>     = MacroDefinitions.find(MI);</div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span>   <span class="keywordflow">if</span> (Pos == MacroDefinitions.end())</div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span>     <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span> </div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span>   <span class="keywordflow">return</span> Pos->second;</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="keywordtype">void</span> PreprocessingRecord::addMacroExpansion(<span class="keyword">const</span> <a class="code" href="classclang_1_1Token.html">Token</a> &Id,</div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span>                                             <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="l00371"></a><span class="lineno">  371</span>                                             <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> Range) {</div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span>   <span class="comment">// We don't record nested macro expansions.</span></div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span>   <span class="keywordflow">if</span> (Id.<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>().<a class="code" href="classclang_1_1SourceLocation.html#a83c660ad7c57096011c5f40c50b52c7d">isMacroID</a>())</div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span> </div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span>   <span class="keywordflow">if</span> (MI-><a class="code" href="classclang_1_1MacroInfo.html#ad3b0718985553acaa6ffde8700fc759c" title="Return true if this macro requires processing before expansion.">isBuiltinMacro</a>())</div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span>     <a class="code" href="classclang_1_1PreprocessingRecord.html#a3b57783346757f1ca94159b0ef52ae31" title="Add a new preprocessed entity to this record.">addPreprocessedEntity</a>(</div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span>                       <span class="keyword">new</span> (*<span class="keyword">this</span>) <a class="code" href="classclang_1_1MacroExpansion.html" title="Records the location of a macro expansion.">MacroExpansion</a>(Id.<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</a>(),<a class="code" href="classclang_1_1PreprocessingRecord.html#a68d2acbaefbc5533b604ec29e92c6a28">Range</a>));</div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span>   <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1MacroDefinition.html" title="Record the location of a macro definition.">MacroDefinition</a> *Def = <a class="code" href="classclang_1_1PreprocessingRecord.html#aaebcce69d158b8e7b60d6315eb8518e5" title="Retrieve the macro definition that corresponds to the given MacroInfo.">findMacroDefinition</a>(MI))</div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span>     <a class="code" href="classclang_1_1PreprocessingRecord.html#a3b57783346757f1ca94159b0ef52ae31" title="Add a new preprocessed entity to this record.">addPreprocessedEntity</a>(</div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span>                        <span class="keyword">new</span> (*<span class="keyword">this</span>) <a class="code" href="classclang_1_1MacroExpansion.html" title="Records the location of a macro expansion.">MacroExpansion</a>(Def, Range));</div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span> }</div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span> </div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span> <span class="keywordtype">void</span> PreprocessingRecord::Ifdef(<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, <span class="keyword">const</span> <a class="code" href="classclang_1_1Token.html">Token</a> &MacroNameTok,</div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span>                                 <span class="keyword">const</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="l00386"></a><span class="lineno">  386</span>   <span class="comment">// This is not actually a macro expansion but record it as a macro reference.</span></div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span>   <span class="keywordflow">if</span> (MD)</div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span>     addMacroExpansion(MacroNameTok, MD-><a class="code" href="classclang_1_1MacroDirective.html#af9a6655668ad545b8146b95ec9f3a593">getMacroInfo</a>(),</div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span>                       MacroNameTok.<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="l00390"></a><span class="lineno">  390</span> }</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> <span class="keywordtype">void</span> PreprocessingRecord::Ifndef(<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, <span class="keyword">const</span> <a class="code" href="classclang_1_1Token.html">Token</a> &MacroNameTok,</div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span>                                  <span class="keyword">const</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="l00394"></a><span class="lineno">  394</span>   <span class="comment">// This is not actually a macro expansion but record it as a macro reference.</span></div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span>   <span class="keywordflow">if</span> (MD)</div>
+<div class="line"><a name="l00396"></a><span class="lineno">  396</span>     addMacroExpansion(MacroNameTok, MD-><a class="code" href="classclang_1_1MacroDirective.html#af9a6655668ad545b8146b95ec9f3a593">getMacroInfo</a>(),</div>
+<div class="line"><a name="l00397"></a><span class="lineno">  397</span>                       MacroNameTok.<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="l00398"></a><span class="lineno">  398</span> }</div>
+<div class="line"><a name="l00399"></a><span class="lineno">  399</span> </div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span> <span class="keywordtype">void</span> PreprocessingRecord::Defined(<span class="keyword">const</span> <a class="code" href="classclang_1_1Token.html">Token</a> &MacroNameTok,</div>
+<div class="line"><a name="l00401"></a><span class="lineno">  401</span>                                   <span class="keyword">const</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="l00402"></a><span class="lineno">  402</span>                                   <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> Range) {</div>
+<div class="line"><a name="l00403"></a><span class="lineno">  403</span>   <span class="comment">// This is not actually a macro expansion but record it as a macro reference.</span></div>
+<div class="line"><a name="l00404"></a><span class="lineno">  404</span>   <span class="keywordflow">if</span> (MD)</div>
+<div class="line"><a name="l00405"></a><span class="lineno">  405</span>     addMacroExpansion(MacroNameTok, MD-><a class="code" href="classclang_1_1MacroDirective.html#af9a6655668ad545b8146b95ec9f3a593">getMacroInfo</a>(),</div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span>                       MacroNameTok.<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="l00407"></a><span class="lineno">  407</span> }</div>
+<div class="line"><a name="l00408"></a><span class="lineno">  408</span> </div>
+<div class="line"><a name="l00409"></a><span class="lineno">  409</span> <span class="keywordtype">void</span> PreprocessingRecord::MacroExpands(<span class="keyword">const</span> <a class="code" href="classclang_1_1Token.html">Token</a> &Id,<span class="keyword">const</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="l00410"></a><span class="lineno">  410</span>                                        <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> Range,</div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span>                                        <span class="keyword">const</span> <a class="code" href="classclang_1_1MacroArgs.html">MacroArgs</a> *<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>) {</div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span>   addMacroExpansion(Id, MD-><a class="code" href="classclang_1_1MacroDirective.html#af9a6655668ad545b8146b95ec9f3a593">getMacroInfo</a>(), <a class="code" href="classclang_1_1PreprocessingRecord.html#a68d2acbaefbc5533b604ec29e92c6a28">Range</a>);</div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</span> }</div>
+<div class="line"><a name="l00414"></a><span class="lineno">  414</span> </div>
+<div class="line"><a name="l00415"></a><span class="lineno">  415</span> <span class="keywordtype">void</span> PreprocessingRecord::MacroDefined(<span class="keyword">const</span> <a class="code" href="classclang_1_1Token.html">Token</a> &Id,</div>
+<div class="line"><a name="l00416"></a><span class="lineno">  416</span>                                        <span class="keyword">const</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="l00417"></a><span class="lineno">  417</span>   <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 = MD-><a class="code" href="classclang_1_1MacroDirective.html#af9a6655668ad545b8146b95ec9f3a593">getMacroInfo</a>();</div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span>   <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> R(MI-><a class="code" href="classclang_1_1MacroInfo.html#a24668f58f405f65ea486b4214e13b641" title="Return the location that the macro was defined at.">getDefinitionLoc</a>(), MI-><a class="code" href="classclang_1_1MacroInfo.html#a2a294d84af6129e17f8517f0a076565d" title="Return the location of the last token in the macro.">getDefinitionEndLoc</a>());</div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span>   <a class="code" href="classclang_1_1MacroDefinition.html" title="Record the location of a macro definition.">MacroDefinition</a> *Def</div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span>       = <span class="keyword">new</span> (*this) <a class="code" href="classclang_1_1MacroDefinition.html" title="Record the location of a macro definition.">MacroDefinition</a>(Id.<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</a>(), R);</div>
+<div class="line"><a name="l00421"></a><span class="lineno">  421</span>   <a class="code" href="classclang_1_1PreprocessingRecord.html#a3b57783346757f1ca94159b0ef52ae31" title="Add a new preprocessed entity to this record.">addPreprocessedEntity</a>(Def);</div>
+<div class="line"><a name="l00422"></a><span class="lineno">  422</span>   MacroDefinitions[MI] = Def;</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">  425</span> <span class="keywordtype">void</span> PreprocessingRecord::MacroUndefined(<span class="keyword">const</span> <a class="code" href="classclang_1_1Token.html">Token</a> &Id,</div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span>                                          <span class="keyword">const</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="l00427"></a><span class="lineno">  427</span>   <span class="comment">// Note: MI may be null (when #undef'ining an undefined macro).</span></div>
+<div class="line"><a name="l00428"></a><span class="lineno">  428</span>   <span class="keywordflow">if</span> (MD)</div>
+<div class="line"><a name="l00429"></a><span class="lineno">  429</span>     MacroDefinitions.erase(MD-><a class="code" href="classclang_1_1MacroDirective.html#af9a6655668ad545b8146b95ec9f3a593">getMacroInfo</a>());</div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span> }</div>
+<div class="line"><a name="l00431"></a><span class="lineno">  431</span> </div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span> <span class="keywordtype">void</span> PreprocessingRecord::InclusionDirective(</div>
+<div class="line"><a name="l00433"></a><span class="lineno">  433</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> HashLoc,</div>
+<div class="line"><a name="l00434"></a><span class="lineno">  434</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1Token.html">clang::Token</a> &IncludeTok,</div>
+<div class="line"><a name="l00435"></a><span class="lineno">  435</span>     StringRef FileName,</div>
+<div class="line"><a name="l00436"></a><span class="lineno">  436</span>     <span class="keywordtype">bool</span> IsAngled,</div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span>     <a class="code" href="classclang_1_1CharSourceRange.html" title="Represents a character-granular source range.">CharSourceRange</a> FilenameRange,</div>
+<div class="line"><a name="l00438"></a><span class="lineno">  438</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="l00439"></a><span class="lineno">  439</span>     StringRef SearchPath,</div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span>     StringRef RelativePath,</div>
+<div class="line"><a name="l00441"></a><span class="lineno">  441</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Imported) {</div>
+<div class="line"><a name="l00442"></a><span class="lineno">  442</span>   <a class="code" href="classclang_1_1InclusionDirective.html#a762101f8828f156ea99ccfab1b20d91c" title="The kind of inclusion directives known to the preprocessor.">InclusionDirective::InclusionKind</a> <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a> = <a class="code" href="classclang_1_1InclusionDirective.html#a762101f8828f156ea99ccfab1b20d91caca363dab03f71ddff813de27422661d1" title="An #include directive.">InclusionDirective::Include</a>;</div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</span>   </div>
+<div class="line"><a name="l00444"></a><span class="lineno">  444</span>   <span class="keywordflow">switch</span> (IncludeTok.<a class="code" href="classclang_1_1Token.html#a0f86a35069d2f1917402adba7f4f6a7b">getIdentifierInfo</a>()-><a class="code" href="classclang_1_1IdentifierInfo.html#ae11e3e149e73feb580d57400c96154c5" title="Return the preprocessor keyword ID for this identifier.">getPPKeywordID</a>()) {</div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span>   <span class="keywordflow">case</span> tok::pp_include: </div>
+<div class="line"><a name="l00446"></a><span class="lineno">  446</span>     Kind = <a class="code" href="classclang_1_1InclusionDirective.html#a762101f8828f156ea99ccfab1b20d91caca363dab03f71ddff813de27422661d1" title="An #include directive.">InclusionDirective::Include</a>; </div>
+<div class="line"><a name="l00447"></a><span class="lineno">  447</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00448"></a><span class="lineno">  448</span>     </div>
+<div class="line"><a name="l00449"></a><span class="lineno">  449</span>   <span class="keywordflow">case</span> tok::pp_import: </div>
+<div class="line"><a name="l00450"></a><span class="lineno">  450</span>     Kind = <a class="code" href="classclang_1_1InclusionDirective.html#a762101f8828f156ea99ccfab1b20d91ca5ab7c359cc5edea23c2e8bd5f3c279b8" title="An Objective-C #import directive.">InclusionDirective::Import</a>; </div>
+<div class="line"><a name="l00451"></a><span class="lineno">  451</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00452"></a><span class="lineno">  452</span>     </div>
+<div class="line"><a name="l00453"></a><span class="lineno">  453</span>   <span class="keywordflow">case</span> tok::pp_include_next: </div>
+<div class="line"><a name="l00454"></a><span class="lineno">  454</span>     Kind = <a class="code" href="classclang_1_1InclusionDirective.html#a762101f8828f156ea99ccfab1b20d91cab21579867f562bff1c4d569e1ad65881" title="A GNU #include_next directive.">InclusionDirective::IncludeNext</a>; </div>
+<div class="line"><a name="l00455"></a><span class="lineno">  455</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span>     </div>
+<div class="line"><a name="l00457"></a><span class="lineno">  457</span>   <span class="keywordflow">case</span> tok::pp___include_macros: </div>
+<div class="line"><a name="l00458"></a><span class="lineno">  458</span>     Kind = <a class="code" href="classclang_1_1InclusionDirective.html#a762101f8828f156ea99ccfab1b20d91ca0144cfd479d8546bf1e6b2b8da6b4892" title="A Clang #__include_macros directive.">InclusionDirective::IncludeMacros</a>;</div>
+<div class="line"><a name="l00459"></a><span class="lineno">  459</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span>     </div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span>   <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l00462"></a><span class="lineno">  462</span>     llvm_unreachable(<span class="stringliteral">"Unknown include directive kind"</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> </div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</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="l00466"></a><span class="lineno">  466</span>   <span class="keywordflow">if</span> (!IsAngled) {</div>
+<div class="line"><a name="l00467"></a><span class="lineno">  467</span>     EndLoc = FilenameRange.<a class="code" href="classclang_1_1CharSourceRange.html#a93f9ab18a904f1c089698b99dace2e82">getBegin</a>();</div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00469"></a><span class="lineno">  469</span>     EndLoc = FilenameRange.<a class="code" href="classclang_1_1CharSourceRange.html#a2a3d04e2491bd5b564a1bf4c975ff3f0">getEnd</a>();</div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span>     <span class="keywordflow">if</span> (FilenameRange.<a class="code" href="classclang_1_1CharSourceRange.html#aea5e195bc938e58aebd1700dc68b026a">isCharRange</a>())</div>
+<div class="line"><a name="l00471"></a><span class="lineno">  471</span>       EndLoc = EndLoc.<a class="code" href="classclang_1_1SourceLocation.html#a1abf1cac74e512604b1f2c8921a446fa" title="Return a source location with the specified offset from this SourceLocation.">getLocWithOffset</a>(-1); <span class="comment">// the InclusionDirective expects</span></div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span>                                             <span class="comment">// a token range.</span></div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span>   }</div>
+<div class="line"><a name="l00474"></a><span class="lineno">  474</span>   <a class="code" href="classclang_1_1InclusionDirective.html" title="Record the location of an inclusion directive, such as an #include or #import statement.">clang::InclusionDirective</a> *<a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a></div>
+<div class="line"><a name="l00475"></a><span class="lineno">  475</span>     = <span class="keyword">new</span> (*this) <a class="code" href="classclang_1_1InclusionDirective.html" title="Record the location of an inclusion directive, such as an #include or #import statement.">clang::InclusionDirective</a>(*<span class="keyword">this</span>, Kind, FileName, !IsAngled,</div>
+<div class="line"><a name="l00476"></a><span class="lineno">  476</span>                                             (<span class="keywordtype">bool</span>)Imported,</div>
+<div class="line"><a name="l00477"></a><span class="lineno">  477</span>                                             File, <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a>(HashLoc, EndLoc));</div>
+<div class="line"><a name="l00478"></a><span class="lineno">  478</span>   <a class="code" href="classclang_1_1PreprocessingRecord.html#a3b57783346757f1ca94159b0ef52ae31" title="Add a new preprocessed entity to this record.">addPreprocessedEntity</a>(ID);</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> </div>
+<div class="line"><a name="l00481"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord.html#afed1d64f2b9b03b2a9c3430ef5bc4731">  481</a></span> <span class="keywordtype">size_t</span> <a class="code" href="classclang_1_1PreprocessingRecord.html#afed1d64f2b9b03b2a9c3430ef5bc4731">PreprocessingRecord::getTotalMemory</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span>   <span class="keywordflow">return</span> BumpAlloc.getTotalMemory()</div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span>     + llvm::capacity_in_bytes(MacroDefinitions)</div>
+<div class="line"><a name="l00484"></a><span class="lineno">  484</span>     + llvm::capacity_in_bytes(PreprocessedEntities)</div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span>     + llvm::capacity_in_bytes(LoadedPreprocessedEntities);</div>
+<div class="line"><a name="l00486"></a><span class="lineno">  486</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/PreprocessingRecord_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PreprocessingRecord_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PreprocessingRecord_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PreprocessingRecord_8d_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,286 @@
+<!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: PreprocessingRecord.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">PreprocessingRecord.d</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="PreprocessingRecord_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/PreprocessingRecord.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/PreprocessingRecord.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>  PreprocessingRecord.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>/PreprocessingRecord.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/IdentifierTable.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/OperatorKinds.h \</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/OperatorKinds.def \</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/TokenKinds.h \</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</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="l00015"></a><span class="lineno">   15</span>  /home/tstellar/llvm/include/llvm/ADT/SmallString.h \</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>  /home/tstellar/llvm/include/llvm/ADT/SmallVector.h \</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>  /home/tstellar/llvm/include/llvm/Support/AlignOf.h \</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>  /home/tstellar/llvm/include/llvm/Support/Compiler.h \</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>  /home/tstellar/llvm/include/llvm/Config/llvm-config.h \</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>  /home/tstellar/llvm/include/llvm/Support/MathExtras.h \</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>  /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h \</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>  /home/tstellar/llvm/include/llvm/ADT/StringRef.h \</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>  /home/tstellar/llvm/include/llvm/ADT/StringMap.h \</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>  /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h \</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>  /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.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/SourceLocation.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PPCallbacks.h \</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</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="l00029"></a><span class="lineno">   29</span>  /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.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/DiagnosticCommonKinds.inc \</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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/DirectoryLookup.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/SourceManager.h \</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/FileManager.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/FileSystemOptions.h \</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMap.h \</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h \</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>  /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h \</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>  /home/tstellar/llvm/include/llvm/Support/FileSystem.h \</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>  /home/tstellar/llvm/include/llvm/ADT/Twine.h \</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>  /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h \</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>  /home/tstellar/llvm/include/llvm/Support/TimeValue.h \</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>  /home/tstellar/llvm/include/llvm/Support/system_error.h \</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>  /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h \</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>  /home/tstellar/llvm/include/llvm/ADT/DenseSet.h \</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>  /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h \</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>  /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h \</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>  /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h \</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>  /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h \</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>  /home/tstellar/llvm/include/llvm-c/Core.h \</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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleMap.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/LangOptions.h \</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/Basic/CommentOptions.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/ObjCRuntime.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/Basic/VersionTuple.h \</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>  /home/tstellar/llvm/include/llvm/ADT/Optional.h \</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>  /home/tstellar/llvm/include/llvm/ADT/Triple.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/<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="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/<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="l00059"></a><span class="lineno">   59</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="l00060"></a><span class="lineno">   60</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="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/OpenCLExtensions.def \</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/Module.h \</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>  /home/tstellar/llvm/include/llvm/ADT/SetVector.h \</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>  /home/tstellar/llvm/include/llvm/ADT/SmallSet.h \</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>  /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleLoader.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Pragma.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/MacroInfo.h \</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>/<a class="code" href="UnwrappedLineParser_8cpp.html#ac39165965ffcb0218343355d1f482d64">Token</a>.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/Basic/TemplateKinds.h \</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>  /home/tstellar/llvm/include/llvm/Support/Capacity.h</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> /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>/PreprocessingRecord.h:</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span> </div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span> /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="l00076"></a><span class="lineno">   76</span> </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/Basic/LLVM.h:</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span> </div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span> /home/tstellar/llvm/include/llvm/Support/Casting.h:</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span> </div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span> /home/tstellar/llvm/include/llvm/Support/type_traits.h:</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> /home/tstellar/llvm/include/llvm/Support/DataTypes.h:</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span> </div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span> /home/tstellar/llvm/include/llvm/ADT/None.h:</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span> </div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span> /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="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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/OperatorKinds.def:</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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/TokenKinds.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/TokenKinds.def:</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/include/llvm/ADT/SmallString.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/ADT/SmallVector.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/AlignOf.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/Compiler.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/Config/llvm-config.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/Support/MathExtras.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/Support/SwapByteOrder.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/StringRef.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/StringMap.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/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.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/PointerLikeTypeTraits.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/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/SourceLocation.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/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="l00120"></a><span class="lineno">  120</span> </div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</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="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/IntrusiveRefCntPtr.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/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticCommonKinds.inc:</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/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="l00128"></a><span class="lineno">  128</span> </div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</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="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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/FileManager.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/FileSystemOptions.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/include/llvm/ADT/DenseMap.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/include/llvm/ADT/DenseMapInfo.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/include/llvm/ADT/OwningPtr.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/include/llvm/Support/FileSystem.h:</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/include/llvm/ADT/Twine.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/include/llvm/Support/ErrorHandling.h:</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/Support/TimeValue.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/Support/system_error.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/ArrayRef.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/ADT/DenseSet.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/include/llvm/ADT/PointerIntPair.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/include/llvm/ADT/PointerUnion.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/include/llvm/Support/MemoryBuffer.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/Support/CBindingWrapping.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/include/llvm-c/Core.h:</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/<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="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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/LangOptions.h:</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span> </div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/CommentOptions.h:</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span> </div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/ObjCRuntime.h:</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span> </div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/VersionTuple.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/Optional.h:</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span> </div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span> /home/tstellar/llvm/include/llvm/ADT/Triple.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/<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="l00180"></a><span class="lineno">  180</span> </div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</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="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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Sanitizers.def:</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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/LangOptions.def:</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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/OpenCLExtensions.def:</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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Module.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/include/llvm/ADT/SetVector.h:</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span> </div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span> /home/tstellar/llvm/include/llvm/ADT/SmallSet.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/SmallPtrSet.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/<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="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/<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="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/<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="l00202"></a><span class="lineno">  202</span> </div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</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="l00204"></a><span class="lineno">  204</span> </div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</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="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/Capacity.h:</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/PreprocessingRecord_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PreprocessingRecord_8h_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PreprocessingRecord_8h_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PreprocessingRecord_8h_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,688 @@
+<!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: PreprocessingRecord.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">PreprocessingRecord.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="PreprocessingRecord_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">//===--- PreprocessingRecord.h - Record of Preprocessing --------*- 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 PreprocessingRecord class, which maintains a record</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="comment">//  of what occurred during preprocessing.</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> <span class="preprocessor">#ifndef LLVM_CLANG_LEX_PREPROCESSINGRECORD_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_LEX_PREPROCESSINGRECORD_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="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="SourceLocation_8h.html" title="Defines the clang::SourceLocation class and associated facilities.">clang/Basic/SourceLocation.h</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="preprocessor">#include "<a class="code" href="PPCallbacks_8h.html" title="Defines the PPCallbacks interface.">clang/Lex/PPCallbacks.h</a>"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="preprocessor">#include "llvm/ADT/DenseMap.h"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="preprocessor">#include "llvm/ADT/Optional.h"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="preprocessor">#include "llvm/ADT/SmallVector.h"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="preprocessor">#include "llvm/Support/Allocator.h"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="preprocessor">#include "llvm/Support/Compiler.h"</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="preprocessor">#include <vector></span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> </div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="keyword">namespace </span>clang {</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>   <span class="keyword">class </span>IdentifierInfo;</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>   <span class="keyword">class </span>MacroInfo;</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>   <span class="keyword">class </span>PreprocessingRecord;</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span> }</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span> <span class="comment"></span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span> <span class="comment">/// \brief Allocates memory within a Clang preprocessing record.</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span> <span class="comment"></span><span class="keywordtype">void</span>* <span class="keyword">operator</span> <span class="keyword">new</span>(<span class="keywordtype">size_t</span> bytes, <a class="code" href="classclang_1_1PreprocessingRecord.html" title="A record of the steps taken while preprocessing a source file, including the various preprocessing di...">clang::PreprocessingRecord</a>& PR,</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>                    <span class="keywordtype">unsigned</span> alignment = 8) <span class="keywordflow">throw</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> <span class="comment">/// \brief Frees memory allocated in a Clang preprocessing record.</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span> <span class="comment"></span><span class="keywordtype">void</span> <span class="keyword">operator</span> <span class="keyword">delete</span>(<span class="keywordtype">void</span>* ptr, <a class="code" href="classclang_1_1PreprocessingRecord.html" title="A record of the steps taken while preprocessing a source file, including the various preprocessing di...">clang::PreprocessingRecord</a>& PR,</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>                      <a class="code" href="classunsigned.html">unsigned</a>) <span class="keywordflow">throw</span>();</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span> </div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span> <span class="keyword">namespace </span>clang {</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>   <span class="keyword">class </span>MacroDefinition;</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>   <span class="keyword">class </span>FileEntry;</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">  /// \brief Base class that describes a preprocessed entity, which may be a</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span> <span class="comment">  /// preprocessor directive or macro expansion.</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessedEntity.html">   47</a></span> <span class="comment"></span>  <span class="keyword">class </span><a class="code" href="classclang_1_1PreprocessedEntity.html" title="Base class that describes a preprocessed entity, which may be a preprocessor directive or macro expan...">PreprocessedEntity</a> {</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>   <span class="keyword">public</span>:<span class="comment"></span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span> <span class="comment">    /// \brief The kind of preprocessed entity an object describes.</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessedEntity.html#a04e3bd7d26ceed0a725bdd4a03d227e4">   50</a></span> <span class="comment"></span>    <span class="keyword">enum</span> <a class="code" href="classclang_1_1PreprocessedEntity.html#a04e3bd7d26ceed0a725bdd4a03d227e4" title="The kind of preprocessed entity an object describes.">EntityKind</a> {<span class="comment"></span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span> <span class="comment">      /// \brief Indicates a problem trying to load the preprocessed entity.</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessedEntity.html#a04e3bd7d26ceed0a725bdd4a03d227e4a19d6eb45c68232b531856bf3f131a7b7">   52</a></span> <span class="comment"></span>      <a class="code" href="classclang_1_1PreprocessedEntity.html#a04e3bd7d26ceed0a725bdd4a03d227e4a19d6eb45c68232b531856bf3f131a7b7" title="Indicates a problem trying to load the preprocessed entity.">InvalidKind</a>,</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span> <span class="comment"></span></div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span> <span class="comment">      /// \brief A macro expansion.</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessedEntity.html#a04e3bd7d26ceed0a725bdd4a03d227e4a2284cd9ea7a4910a0930117d830d81de">   55</a></span> <span class="comment"></span>      <a class="code" href="classclang_1_1PreprocessedEntity.html#a04e3bd7d26ceed0a725bdd4a03d227e4a2284cd9ea7a4910a0930117d830d81de" title="A macro expansion.">MacroExpansionKind</a>,</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>       <span class="comment"></span></div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span> <span class="comment">      /// \defgroup Preprocessing directives</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span> <span class="comment">      /// @{</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span> <span class="comment"></span>      <span class="comment"></span></div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span> <span class="comment">      /// \brief A macro definition.</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"><a class="code" href="group__Preprocessing.html#ga04e3bd7d26ceed0a725bdd4a03d227e4a06ccf73c436b00d471208b3d2689722d">   61</a></span> <span class="comment"></span>      <a class="code" href="group__Preprocessing.html#ga04e3bd7d26ceed0a725bdd4a03d227e4a06ccf73c436b00d471208b3d2689722d" title="A macro definition.">MacroDefinitionKind</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">      /// \brief An inclusion directive, such as \c \#include, \c</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span> <span class="comment">      /// \#import, or \c \#include_next.</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno"><a class="code" href="group__Preprocessing.html#ga04e3bd7d26ceed0a725bdd4a03d227e4afdc89d451f0e7036dc178411d20997cc">   65</a></span> <span class="comment"></span>      <a class="code" href="group__Preprocessing.html#ga04e3bd7d26ceed0a725bdd4a03d227e4afdc89d451f0e7036dc178411d20997cc" title="An inclusion directive, such as #include, #import, or #include_next.">InclusionDirectiveKind</a>,</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span> <span class="comment"></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> <span class="comment"></span></div>
+<div class="line"><a name="l00069"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessedEntity.html#a04e3bd7d26ceed0a725bdd4a03d227e4a0edaf9fdc43e79b0776c7c352b85643e">   69</a></span>       <a class="code" href="classclang_1_1PreprocessedEntity.html#a04e3bd7d26ceed0a725bdd4a03d227e4a0edaf9fdc43e79b0776c7c352b85643e">FirstPreprocessingDirective</a> = <a class="code" href="group__Preprocessing.html#ga04e3bd7d26ceed0a725bdd4a03d227e4a06ccf73c436b00d471208b3d2689722d" title="A macro definition.">MacroDefinitionKind</a>,</div>
+<div class="line"><a name="l00070"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessedEntity.html#a04e3bd7d26ceed0a725bdd4a03d227e4acf9b21d58e69b40c88de059e5e4006a2">   70</a></span>       <a class="code" href="classclang_1_1PreprocessedEntity.html#a04e3bd7d26ceed0a725bdd4a03d227e4acf9b21d58e69b40c88de059e5e4006a2">LastPreprocessingDirective</a> = <a class="code" href="group__Preprocessing.html#ga04e3bd7d26ceed0a725bdd4a03d227e4afdc89d451f0e7036dc178411d20997cc" title="An inclusion directive, such as #include, #import, or #include_next.">InclusionDirectiveKind</a></div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>     };</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span> </div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>   <span class="keyword">private</span>:<span class="comment"></span></div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span> <span class="comment">    /// \brief The kind of preprocessed entity that this object describes.</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span> <span class="comment"></span>    <a class="code" href="classclang_1_1PreprocessedEntity.html#a04e3bd7d26ceed0a725bdd4a03d227e4" title="The kind of preprocessed entity an object describes.">EntityKind</a> <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a>;</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">    /// \brief The source range that covers this preprocessed entity.</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span> <span class="comment"></span>    <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> Range;</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>     </div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>   <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00081"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessedEntity.html#a7d9f050ed3332f6f02e60dbdebcfa981">   81</a></span>     <a class="code" href="classclang_1_1PreprocessedEntity.html#a7d9f050ed3332f6f02e60dbdebcfa981">PreprocessedEntity</a>(<a class="code" href="classclang_1_1PreprocessedEntity.html#a04e3bd7d26ceed0a725bdd4a03d227e4" title="The kind of preprocessed entity an object describes.">EntityKind</a> <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a>, <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> Range)</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>       : Kind(Kind), Range(Range) { }</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span> </div>
+<div class="line"><a name="l00084"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessedEntity.html#ad1dd29c752be945c6ae3a3edac56441b">   84</a></span>     <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classclang_1_1PreprocessingRecord.html" title="A record of the steps taken while preprocessing a source file, including the various preprocessing di...">PreprocessingRecord</a>;</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span> </div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>   <span class="keyword">public</span>:<span class="comment"></span></div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span> <span class="comment">    /// \brief Retrieve the kind of preprocessed entity stored in this object.</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessedEntity.html#aca6879753213f00d47beb1ac9bf8dae9">   88</a></span> <span class="comment"></span>    <a class="code" href="classclang_1_1PreprocessedEntity.html#a04e3bd7d26ceed0a725bdd4a03d227e4" title="The kind of preprocessed entity an object describes.">EntityKind</a> <a class="code" href="classclang_1_1PreprocessedEntity.html#aca6879753213f00d47beb1ac9bf8dae9" title="Retrieve the kind of preprocessed entity stored in this object.">getKind</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a>; }</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>     <span class="comment"></span></div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span> <span class="comment">    /// \brief Retrieve the source range that covers this entire preprocessed </span></div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span> <span class="comment">    /// entity.</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessedEntity.html#a9de74aa1e83b2996eff6ac23a6e8716f">   92</a></span> <span class="comment"></span>    <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> <a class="code" href="classclang_1_1PreprocessedEntity.html#a9de74aa1e83b2996eff6ac23a6e8716f" title="Retrieve the source range that covers this entire preprocessed entity.">getSourceRange</a>() const LLVM_READONLY { <span class="keywordflow">return</span> Range; }</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span> <span class="comment"></span></div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span> <span class="comment">    /// \brief Returns true if there was a problem loading the preprocessed</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span> <span class="comment">    /// entity.</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessedEntity.html#afefb2e56dda79df92e21900a5ff0657b">   96</a></span> <span class="comment"></span>    <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1PreprocessedEntity.html#afefb2e56dda79df92e21900a5ff0657b" title="Returns true if there was a problem loading the preprocessed entity.">isInvalid</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a> == <a class="code" href="classclang_1_1PreprocessedEntity.html#a04e3bd7d26ceed0a725bdd4a03d227e4a19d6eb45c68232b531856bf3f131a7b7" title="Indicates a problem trying to load the preprocessed entity.">InvalidKind</a>; }</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span> </div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>     <span class="comment">// Only allow allocation of preprocessed entities using the allocator </span></div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>     <span class="comment">// in PreprocessingRecord or by doing a placement new.</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessedEntity.html#aa806d1b8e8d6d801e26ca5fa0c1dad5d">  100</a></span>     <span class="keywordtype">void</span>* <span class="keyword">operator</span> <span class="keyword">new</span>(<span class="keywordtype">size_t</span> bytes, <a class="code" href="classclang_1_1PreprocessingRecord.html" title="A record of the steps taken while preprocessing a source file, including the various preprocessing di...">PreprocessingRecord</a>& PR,</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>                        <span class="keywordtype">unsigned</span> alignment = 8) <span class="keywordflow">throw</span>() {</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>       return ::operator <span class="keyword">new</span>(bytes, PR, alignment);</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>     }</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>     </div>
+<div class="line"><a name="l00105"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessedEntity.html#a6b6149eb6ecd6b2d70c4ad647197c4c8">  105</a></span>     <span class="keywordtype">void</span>* <span class="keyword">operator</span> <span class="keyword">new</span>(<span class="keywordtype">size_t</span> bytes, <span class="keywordtype">void</span>* mem) <span class="keywordflow">throw</span>() {</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>       <span class="keywordflow">return</span> mem;</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"><a class="code" href="classclang_1_1PreprocessedEntity.html#a116a9138c37517564fa57b8656d3c4ec">  109</a></span>     <span class="keywordtype">void</span> <span class="keyword">operator</span> <span class="keyword">delete</span>(<span class="keywordtype">void</span>* ptr, <a class="code" href="classclang_1_1PreprocessingRecord.html" title="A record of the steps taken while preprocessing a source file, including the various preprocessing di...">PreprocessingRecord</a>& PR, </div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>                          <span class="keywordtype">unsigned</span> alignment) <span class="keywordflow">throw</span>() {</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>       return ::operator <span class="keyword">delete</span>(ptr, PR, alignment);</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>     }</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>     </div>
+<div class="line"><a name="l00114"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessedEntity.html#a1316b8b3f5e2b57e6b7b27bc7f5cab46">  114</a></span>     <span class="keywordtype">void</span> <span class="keyword">operator</span> <span class="keyword">delete</span>(<span class="keywordtype">void</span>*, <a class="code" href="stddef_8h.html#aa9d55e2f20e580b7445617d0d12fff6e">std::size_t</a>) <span class="keywordflow">throw</span>() { }</div>
+<div class="line"><a name="l00115"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessedEntity.html#ae9a686d6ea8ff9f7beebfcd703a3b3a8">  115</a></span>     <span class="keywordtype">void</span> <span class="keyword">operator</span> <span class="keyword">delete</span>(<span class="keywordtype">void</span>*, <span class="keywordtype">void</span>*) <span class="keywordflow">throw</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="keyword">private</span>:</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>     <span class="comment">// Make vanilla 'new' and 'delete' illegal for preprocessed entities.</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>     <span class="keywordtype">void</span>* <span class="keyword">operator</span> <span class="keyword">new</span>(<span class="keywordtype">size_t</span> bytes) <span class="keywordflow">throw</span>();</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>     <span class="keywordtype">void</span> <span class="keyword">operator</span> <span class="keyword">delete</span>(<span class="keywordtype">void</span>* <a class="code" href="ASTWriter_8cpp.html#a5c6341076bde2012a21db25f4e2e3792">data</a>) <span class="keywordflow">throw</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>   <span class="comment"></span></div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span> <span class="comment">  /// \brief Records the presence of a preprocessor directive.</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingDirective.html">  124</a></span> <span class="comment"></span>  <span class="keyword">class </span><a class="code" href="classclang_1_1PreprocessingDirective.html" title="Records the presence of a preprocessor directive.">PreprocessingDirective</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1PreprocessedEntity.html" title="Base class that describes a preprocessed entity, which may be a preprocessor directive or macro expan...">PreprocessedEntity</a> {</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00126"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingDirective.html#a569c25f89dfa5920066a74e227ab9d95">  126</a></span>     <a class="code" href="classclang_1_1PreprocessingDirective.html#a569c25f89dfa5920066a74e227ab9d95">PreprocessingDirective</a>(<a class="code" href="classclang_1_1PreprocessedEntity.html#a04e3bd7d26ceed0a725bdd4a03d227e4" title="The kind of preprocessed entity an object describes.">EntityKind</a> <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a>, <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> Range) </div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>       : <a class="code" href="classclang_1_1PreprocessedEntity.html" title="Base class that describes a preprocessed entity, which may be a preprocessor directive or macro expan...">PreprocessedEntity</a>(Kind, Range) { }</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">// Implement isa/cast/dyncast/etc.</span></div>
+<div class="line"><a name="l00130"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingDirective.html#ab65848364d9dd6692dcfe4e5f2d32661">  130</a></span>     <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1PreprocessingDirective.html#ab65848364d9dd6692dcfe4e5f2d32661">classof</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1PreprocessedEntity.html" title="Base class that describes a preprocessed entity, which may be a preprocessor directive or macro expan...">PreprocessedEntity</a> *PD) { </div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>       <span class="keywordflow">return</span> PD-><a class="code" href="classclang_1_1PreprocessedEntity.html#aca6879753213f00d47beb1ac9bf8dae9" title="Retrieve the kind of preprocessed entity stored in this object.">getKind</a>() >= <a class="code" href="classclang_1_1PreprocessedEntity.html#a04e3bd7d26ceed0a725bdd4a03d227e4a0edaf9fdc43e79b0776c7c352b85643e">FirstPreprocessingDirective</a> &&</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>              PD-><a class="code" href="classclang_1_1PreprocessedEntity.html#aca6879753213f00d47beb1ac9bf8dae9" title="Retrieve the kind of preprocessed entity stored in this object.">getKind</a>() <= <a class="code" href="classclang_1_1PreprocessedEntity.html#a04e3bd7d26ceed0a725bdd4a03d227e4acf9b21d58e69b40c88de059e5e4006a2">LastPreprocessingDirective</a>;</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>     }</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>   };</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>   <span class="comment"></span></div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span> <span class="comment">  /// \brief Record the location of a macro definition.</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno"><a class="code" href="classclang_1_1MacroDefinition.html">  137</a></span> <span class="comment"></span>  <span class="keyword">class </span><a class="code" href="classclang_1_1MacroDefinition.html" title="Record the location of a macro definition.">MacroDefinition</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1PreprocessingDirective.html" title="Records the presence of a preprocessor directive.">PreprocessingDirective</a> {<span class="comment"></span></div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span> <span class="comment">    /// \brief The name of the macro being defined.</span></div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span> <span class="comment"></span>    <span class="keyword">const</span> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *Name;</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>   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00142"></a><span class="lineno"><a class="code" href="classclang_1_1MacroDefinition.html#a2b688f4eac9cc84456157c18bc6e7bf2">  142</a></span>     <span class="keyword">explicit</span> <a class="code" href="classclang_1_1MacroDefinition.html#a2b688f4eac9cc84456157c18bc6e7bf2">MacroDefinition</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *Name, <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> Range)</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>       : <a class="code" href="classclang_1_1PreprocessingDirective.html" title="Records the presence of a preprocessor directive.">PreprocessingDirective</a>(<a class="code" href="group__Preprocessing.html#ga04e3bd7d26ceed0a725bdd4a03d227e4a06ccf73c436b00d471208b3d2689722d" title="A macro definition.">MacroDefinitionKind</a>, Range), Name(Name) { }</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>     <span class="comment"></span></div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span> <span class="comment">    /// \brief Retrieve the name of the macro being defined.</span></div>
+<div class="line"><a name="l00146"></a><span class="lineno"><a class="code" href="classclang_1_1MacroDefinition.html#a88249c8303a159273685b23c90bfc44f">  146</a></span> <span class="comment"></span>    <span class="keyword">const</span> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *<a class="code" href="classclang_1_1MacroDefinition.html#a88249c8303a159273685b23c90bfc44f" title="Retrieve the name of the macro being defined.">getName</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Name; }</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>     <span class="comment"></span></div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span> <span class="comment">    /// \brief Retrieve the location of the macro name in the definition.</span></div>
+<div class="line"><a name="l00149"></a><span class="lineno"><a class="code" href="classclang_1_1MacroDefinition.html#a54cf5b3713d7f3d2f42ca2d8b01178af">  149</a></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_1MacroDefinition.html#a54cf5b3713d7f3d2f42ca2d8b01178af" title="Retrieve the location of the macro name in the definition.">getLocation</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classclang_1_1PreprocessedEntity.html#a9de74aa1e83b2996eff6ac23a6e8716f" title="Retrieve the source range that covers this entire preprocessed entity.">getSourceRange</a>().<a class="code" href="classclang_1_1SourceRange.html#a890dff14560eb9aceb08be18dfe74208">getBegin</a>(); }</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>     </div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>     <span class="comment">// Implement isa/cast/dyncast/etc.</span></div>
+<div class="line"><a name="l00152"></a><span class="lineno"><a class="code" href="classclang_1_1MacroDefinition.html#a160d07db34872d13282355274ca76ec2">  152</a></span>     <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1MacroDefinition.html#a160d07db34872d13282355274ca76ec2">classof</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1PreprocessedEntity.html" title="Base class that describes a preprocessed entity, which may be a preprocessor directive or macro expan...">PreprocessedEntity</a> *PE) {</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>       <span class="keywordflow">return</span> PE-><a class="code" href="classclang_1_1PreprocessedEntity.html#aca6879753213f00d47beb1ac9bf8dae9" title="Retrieve the kind of preprocessed entity stored in this object.">getKind</a>() == <a class="code" href="group__Preprocessing.html#ga04e3bd7d26ceed0a725bdd4a03d227e4a06ccf73c436b00d471208b3d2689722d" title="A macro definition.">MacroDefinitionKind</a>;</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>     }</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>   };</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>   <span class="comment"></span></div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span> <span class="comment">  /// \brief Records the location of a macro expansion.</span></div>
+<div class="line"><a name="l00158"></a><span class="lineno"><a class="code" href="classclang_1_1MacroExpansion.html">  158</a></span> <span class="comment"></span>  <span class="keyword">class </span><a class="code" href="classclang_1_1MacroExpansion.html" title="Records the location of a macro expansion.">MacroExpansion</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1PreprocessedEntity.html" title="Base class that describes a preprocessed entity, which may be a preprocessor directive or macro expan...">PreprocessedEntity</a> {<span class="comment"></span></div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span> <span class="comment">    /// \brief The definition of this macro or the name of the macro if it is</span></div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span> <span class="comment">    /// a builtin macro.</span></div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span> <span class="comment"></span>    llvm::PointerUnion<IdentifierInfo *, MacroDefinition *> NameOrDef; </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="keyword">public</span>:</div>
+<div class="line"><a name="l00164"></a><span class="lineno"><a class="code" href="classclang_1_1MacroExpansion.html#af77bcdfae13c9e4f77df1ee437f09c28">  164</a></span>     <a class="code" href="classclang_1_1MacroExpansion.html#af77bcdfae13c9e4f77df1ee437f09c28">MacroExpansion</a>(<a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *BuiltinName, <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> Range)</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>       : <a class="code" href="classclang_1_1PreprocessedEntity.html" title="Base class that describes a preprocessed entity, which may be a preprocessor directive or macro expan...">PreprocessedEntity</a>(<a class="code" href="classclang_1_1PreprocessedEntity.html#a04e3bd7d26ceed0a725bdd4a03d227e4a2284cd9ea7a4910a0930117d830d81de" title="A macro expansion.">MacroExpansionKind</a>, Range),</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>         NameOrDef(BuiltinName) { }</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span> </div>
+<div class="line"><a name="l00168"></a><span class="lineno"><a class="code" href="classclang_1_1MacroExpansion.html#ad27785cc08cafdd607cde05a4c79de24">  168</a></span>     <a class="code" href="classclang_1_1MacroExpansion.html#af77bcdfae13c9e4f77df1ee437f09c28">MacroExpansion</a>(<a class="code" href="classclang_1_1MacroDefinition.html" title="Record the location of a macro definition.">MacroDefinition</a> *Definition, <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> Range)</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>       : <a class="code" href="classclang_1_1PreprocessedEntity.html" title="Base class that describes a preprocessed entity, which may be a preprocessor directive or macro expan...">PreprocessedEntity</a>(<a class="code" href="classclang_1_1PreprocessedEntity.html#a04e3bd7d26ceed0a725bdd4a03d227e4a2284cd9ea7a4910a0930117d830d81de" title="A macro expansion.">MacroExpansionKind</a>, Range),</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>         NameOrDef(Definition) { }</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span> <span class="comment"></span></div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span> <span class="comment">    /// \brief True if it is a builtin macro.</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno"><a class="code" href="classclang_1_1MacroExpansion.html#a2a16a90a333832ebb704932a9ea27031">  173</a></span> <span class="comment"></span>    <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1MacroExpansion.html#a2a16a90a333832ebb704932a9ea27031" title="True if it is a builtin macro.">isBuiltinMacro</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> NameOrDef.is<<a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *>(); }</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>     <span class="comment"></span></div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span> <span class="comment">    /// \brief The name of the macro being expanded.</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno"><a class="code" href="classclang_1_1MacroExpansion.html#ab48e9c12dc7003b1c1c1ba9d8fb9a5c2">  176</a></span> <span class="comment"></span>    <span class="keyword">const</span> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *<a class="code" href="classclang_1_1MacroExpansion.html#ab48e9c12dc7003b1c1c1ba9d8fb9a5c2" title="The name of the macro being expanded.">getName</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>       <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1MacroDefinition.html" title="Record the location of a macro definition.">MacroDefinition</a> *Def = <a class="code" href="classclang_1_1MacroExpansion.html#a827e53d2be648de73ba5c555561a5ddc" title="The definition of the macro being expanded. May return null if this is a builtin macro.">getDefinition</a>())</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>         <span class="keywordflow">return</span> Def-><a class="code" href="classclang_1_1IdentifierInfo.html#a94caec6a16e508e8ca39eacd278bd2c5" title="Return the actual identifier string.">getName</a>();</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>       <span class="keywordflow">return</span> NameOrDef.get<<a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</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>     <span class="comment"></span></div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span> <span class="comment">    /// \brief The definition of the macro being expanded. May return null if</span></div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span> <span class="comment">    /// this is a builtin macro.</span></div>
+<div class="line"><a name="l00184"></a><span class="lineno"><a class="code" href="classclang_1_1MacroExpansion.html#a827e53d2be648de73ba5c555561a5ddc">  184</a></span> <span class="comment"></span>    <a class="code" href="classclang_1_1MacroDefinition.html" title="Record the location of a macro definition.">MacroDefinition</a> *<a class="code" href="classclang_1_1MacroExpansion.html#a827e53d2be648de73ba5c555561a5ddc" title="The definition of the macro being expanded. May return null if this is a builtin macro.">getDefinition</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>       <span class="keywordflow">return</span> NameOrDef.dyn_cast<<a class="code" href="classclang_1_1MacroDefinition.html" title="Record the location of a macro definition.">MacroDefinition</a> *>();</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>     }</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span> </div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>     <span class="comment">// Implement isa/cast/dyncast/etc.</span></div>
+<div class="line"><a name="l00189"></a><span class="lineno"><a class="code" href="classclang_1_1MacroExpansion.html#a59efab88cda6ddd3b2396c294c21fb55">  189</a></span>     <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1MacroExpansion.html#a59efab88cda6ddd3b2396c294c21fb55">classof</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1PreprocessedEntity.html" title="Base class that describes a preprocessed entity, which may be a preprocessor directive or macro expan...">PreprocessedEntity</a> *PE) {</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>       <span class="keywordflow">return</span> PE-><a class="code" href="classclang_1_1PreprocessedEntity.html#aca6879753213f00d47beb1ac9bf8dae9" title="Retrieve the kind of preprocessed entity stored in this object.">getKind</a>() == <a class="code" href="classclang_1_1PreprocessedEntity.html#a04e3bd7d26ceed0a725bdd4a03d227e4a2284cd9ea7a4910a0930117d830d81de" title="A macro expansion.">MacroExpansionKind</a>;</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>     }</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>   };</div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span> <span class="comment"></span></div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span> <span class="comment">  /// \brief Record the location of an inclusion directive, such as an</span></div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span> <span class="comment">  /// \c \#include or \c \#import statement.</span></div>
+<div class="line"><a name="l00196"></a><span class="lineno"><a class="code" href="classclang_1_1InclusionDirective.html">  196</a></span> <span class="comment"></span>  <span class="keyword">class </span><a class="code" href="classclang_1_1InclusionDirective.html" title="Record the location of an inclusion directive, such as an #include or #import statement.">InclusionDirective</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1PreprocessingDirective.html" title="Records the presence of a preprocessor directive.">PreprocessingDirective</a> {</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span>   <span class="keyword">public</span>:<span class="comment"></span></div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span> <span class="comment">    /// \brief The kind of inclusion directives known to the</span></div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span> <span class="comment">    /// preprocessor.</span></div>
+<div class="line"><a name="l00200"></a><span class="lineno"><a class="code" href="classclang_1_1InclusionDirective.html#a762101f8828f156ea99ccfab1b20d91c">  200</a></span> <span class="comment"></span>    <span class="keyword">enum</span> <a class="code" href="classclang_1_1InclusionDirective.html#a762101f8828f156ea99ccfab1b20d91c" title="The kind of inclusion directives known to the preprocessor.">InclusionKind</a> {<span class="comment"></span></div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span> <span class="comment">      /// \brief An \c \#include directive.</span></div>
+<div class="line"><a name="l00202"></a><span class="lineno"><a class="code" href="classclang_1_1InclusionDirective.html#a762101f8828f156ea99ccfab1b20d91caca363dab03f71ddff813de27422661d1">  202</a></span> <span class="comment"></span>      <a class="code" href="classclang_1_1InclusionDirective.html#a762101f8828f156ea99ccfab1b20d91caca363dab03f71ddff813de27422661d1" title="An #include directive.">Include</a>,<span class="comment"></span></div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span> <span class="comment">      /// \brief An Objective-C \c \#import directive.</span></div>
+<div class="line"><a name="l00204"></a><span class="lineno"><a class="code" href="classclang_1_1InclusionDirective.html#a762101f8828f156ea99ccfab1b20d91ca5ab7c359cc5edea23c2e8bd5f3c279b8">  204</a></span> <span class="comment"></span>      <a class="code" href="classclang_1_1InclusionDirective.html#a762101f8828f156ea99ccfab1b20d91ca5ab7c359cc5edea23c2e8bd5f3c279b8" title="An Objective-C #import directive.">Import</a>,<span class="comment"></span></div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span> <span class="comment">      /// \brief A GNU \c \#include_next directive.</span></div>
+<div class="line"><a name="l00206"></a><span class="lineno"><a class="code" href="classclang_1_1InclusionDirective.html#a762101f8828f156ea99ccfab1b20d91cab21579867f562bff1c4d569e1ad65881">  206</a></span> <span class="comment"></span>      <a class="code" href="classclang_1_1InclusionDirective.html#a762101f8828f156ea99ccfab1b20d91cab21579867f562bff1c4d569e1ad65881" title="A GNU #include_next directive.">IncludeNext</a>,<span class="comment"></span></div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span> <span class="comment">      /// \brief A Clang \c \#__include_macros directive.</span></div>
+<div class="line"><a name="l00208"></a><span class="lineno"><a class="code" href="classclang_1_1InclusionDirective.html#a762101f8828f156ea99ccfab1b20d91ca0144cfd479d8546bf1e6b2b8da6b4892">  208</a></span> <span class="comment"></span>      <a class="code" href="classclang_1_1InclusionDirective.html#a762101f8828f156ea99ccfab1b20d91ca0144cfd479d8546bf1e6b2b8da6b4892" title="A Clang #__include_macros directive.">IncludeMacros</a></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> </div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>   <span class="keyword">private</span>:<span class="comment"></span></div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span> <span class="comment">    /// \brief The name of the file that was included, as written in</span></div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span> <span class="comment">    /// the source.</span></div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span> <span class="comment"></span>    StringRef FileName;</div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span> <span class="comment"></span></div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span> <span class="comment">    /// \brief Whether the file name was in quotation marks; otherwise, it was</span></div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span> <span class="comment">    /// in angle brackets.</span></div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span> <span class="comment"></span>    <span class="keywordtype">unsigned</span> InQuotes : 1;</div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span> <span class="comment"></span></div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span> <span class="comment">    /// \brief The kind of inclusion directive we have.</span></div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span> <span class="comment">    ///</span></div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span> <span class="comment">    /// This is a value of type InclusionKind.</span></div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span> <span class="comment"></span>    <span class="keywordtype">unsigned</span> <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a> : 2;</div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span> <span class="comment"></span></div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span> <span class="comment">    /// \brief Whether the inclusion directive was automatically turned into</span></div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span> <span class="comment">    /// a module import.</span></div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span> <span class="comment"></span>    <span class="keywordtype">unsigned</span> ImportedModule : 1;</div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span> <span class="comment"></span></div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span> <span class="comment">    /// \brief The file that was included.</span></div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span> <span class="comment"></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="l00231"></a><span class="lineno">  231</span> </div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span>     <a class="code" href="classclang_1_1InclusionDirective.html#a9415494a78ff59a1f7d7be27b2345afc">InclusionDirective</a>(<a class="code" href="classclang_1_1PreprocessingRecord.html" title="A record of the steps taken while preprocessing a source file, including the various preprocessing di...">PreprocessingRecord</a> &PPRec,</div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>                        <a class="code" href="classclang_1_1InclusionDirective.html#a762101f8828f156ea99ccfab1b20d91c" title="The kind of inclusion directives known to the preprocessor.">InclusionKind</a> <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a>, StringRef FileName, </div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span>                        <span class="keywordtype">bool</span> InQuotes, <span class="keywordtype">bool</span> ImportedModule,</div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</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, <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> Range);</div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span>     <span class="comment"></span></div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span> <span class="comment">    /// \brief Determine what kind of inclusion directive this is.</span></div>
+<div class="line"><a name="l00239"></a><span class="lineno"><a class="code" href="classclang_1_1InclusionDirective.html#a56eb8a049bf671c1bd5d8e4d7d689bb5">  239</a></span> <span class="comment"></span>    <a class="code" href="classclang_1_1InclusionDirective.html#a762101f8828f156ea99ccfab1b20d91c" title="The kind of inclusion directives known to the preprocessor.">InclusionKind</a> <a class="code" href="classclang_1_1InclusionDirective.html#a56eb8a049bf671c1bd5d8e4d7d689bb5" title="Determine what kind of inclusion directive this is.">getKind</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">static_cast<</span><a class="code" href="classclang_1_1InclusionDirective.html#a762101f8828f156ea99ccfab1b20d91c" title="The kind of inclusion directives known to the preprocessor.">InclusionKind</a><span class="keyword">></span>(<a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a>); }</div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span>     <span class="comment"></span></div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span> <span class="comment">    /// \brief Retrieve the included file name as it was written in the source.</span></div>
+<div class="line"><a name="l00242"></a><span class="lineno"><a class="code" href="classclang_1_1InclusionDirective.html#aae633a372710717d152510a9d0d77792">  242</a></span> <span class="comment"></span>    StringRef <a class="code" href="classclang_1_1InclusionDirective.html#aae633a372710717d152510a9d0d77792" title="Retrieve the included file name as it was written in the source.">getFileName</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> FileName; }</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">    /// \brief Determine whether the included file name was written in quotes;</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span> <span class="comment">    /// otherwise, it was written in angle brackets.</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno"><a class="code" href="classclang_1_1InclusionDirective.html#acc12630bb4e6fcd8c14594606398848c">  246</a></span> <span class="comment"></span>    <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1InclusionDirective.html#acc12630bb4e6fcd8c14594606398848c" title="Determine whether the included file name was written in quotes; otherwise, it was written in angle br...">wasInQuotes</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> InQuotes; }</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">    /// \brief Determine whether the inclusion directive was automatically</span></div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span> <span class="comment">    /// turned into a module import.</span></div>
+<div class="line"><a name="l00250"></a><span class="lineno"><a class="code" href="classclang_1_1InclusionDirective.html#ab662a969473b95a070a5a7ccb743e864">  250</a></span> <span class="comment"></span>    <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1InclusionDirective.html#ab662a969473b95a070a5a7ccb743e864" title="Determine whether the inclusion directive was automatically turned into a module import.">importedModule</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ImportedModule; }</div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span>     <span class="comment"></span></div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span> <span class="comment">    /// \brief Retrieve the file entry for the actual file that was included</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span> <span class="comment">    /// by this directive.</span></div>
+<div class="line"><a name="l00254"></a><span class="lineno"><a class="code" href="classclang_1_1InclusionDirective.html#a22b1422470d1213e271d703ec8b295b2">  254</a></span> <span class="comment"></span>    <span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a> *<a class="code" href="classclang_1_1InclusionDirective.html#a22b1422470d1213e271d703ec8b295b2" title="Retrieve the file entry for the actual file that was included by this directive.">getFile</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> File; }</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>     <span class="comment">// Implement isa/cast/dyncast/etc.</span></div>
+<div class="line"><a name="l00257"></a><span class="lineno"><a class="code" href="classclang_1_1InclusionDirective.html#adb7967a0dbc8b686155b36e927c0542a">  257</a></span>     <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1InclusionDirective.html#adb7967a0dbc8b686155b36e927c0542a">classof</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1PreprocessedEntity.html" title="Base class that describes a preprocessed entity, which may be a preprocessor directive or macro expan...">PreprocessedEntity</a> *PE) {</div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span>       <span class="keywordflow">return</span> PE-><a class="code" href="classclang_1_1PreprocessedEntity.html#aca6879753213f00d47beb1ac9bf8dae9" title="Retrieve the kind of preprocessed entity stored in this object.">getKind</a>() == <a class="code" href="group__Preprocessing.html#ga04e3bd7d26ceed0a725bdd4a03d227e4afdc89d451f0e7036dc178411d20997cc" title="An inclusion directive, such as #include, #import, or #include_next.">InclusionDirectiveKind</a>;</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>   };</div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span>   <span class="comment"></span></div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span> <span class="comment">  /// \brief An abstract class that should be subclassed by any external source</span></div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span> <span class="comment">  /// of preprocessing record entries.</span></div>
+<div class="line"><a name="l00264"></a><span class="lineno"><a class="code" href="classclang_1_1ExternalPreprocessingRecordSource.html">  264</a></span> <span class="comment"></span>  <span class="keyword">class </span><a class="code" href="classclang_1_1ExternalPreprocessingRecordSource.html" title="An abstract class that should be subclassed by any external source of preprocessing record entries...">ExternalPreprocessingRecordSource</a> {</div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span>     <span class="keyword">virtual</span> <a class="code" href="classclang_1_1ExternalPreprocessingRecordSource.html#a0e4ed023f760de0492cc667fd9bd1e73">~ExternalPreprocessingRecordSource</a>();</div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span>     <span class="comment"></span></div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span> <span class="comment">    /// \brief Read a preallocated preprocessed entity from the external source.</span></div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span> <span class="comment">    ///</span></div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span> <span class="comment">    /// \returns null if an error occurred that prevented the preprocessed</span></div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span> <span class="comment">    /// entity from being loaded.</span></div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span> <span class="comment"></span>    <span class="keyword">virtual</span> <a class="code" href="classclang_1_1PreprocessedEntity.html" title="Base class that describes a preprocessed entity, which may be a preprocessor directive or macro expan...">PreprocessedEntity</a> *<a class="code" href="classclang_1_1ExternalPreprocessingRecordSource.html#a202cc17d339416e2add947a8b02c10c8" title="Read a preallocated preprocessed entity from the external source.">ReadPreprocessedEntity</a>(<span class="keywordtype">unsigned</span> Index) = 0;</div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span> <span class="comment"></span></div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span> <span class="comment">    /// \brief Returns a pair of [Begin, End) indices of preallocated</span></div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span> <span class="comment">    /// preprocessed entities that \p Range encompasses.</span></div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span> <span class="comment"></span>    <span class="keyword">virtual</span> std::pair<unsigned, unsigned></div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span>         <a class="code" href="classclang_1_1ExternalPreprocessingRecordSource.html#a16d154184f5e8232bd64f51e3f479e22" title="Returns a pair of [Begin, End) indices of preallocated preprocessed entities that Range encompasses...">findPreprocessedEntitiesInRange</a>(<a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> Range) = 0;</div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span> <span class="comment"></span></div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span> <span class="comment">    /// \brief Optionally returns true or false if the preallocated preprocessed</span></div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span> <span class="comment">    /// entity with index \p Index came from file \p FID.</span></div>
+<div class="line"><a name="l00281"></a><span class="lineno"><a class="code" href="classclang_1_1ExternalPreprocessingRecordSource.html#ad60b78e9d3de24d7d2a8d18d085e2554">  281</a></span> <span class="comment"></span>    <span class="keyword">virtual</span> <a class="code" href="classllvm_1_1Optional.html">Optional<bool></a> <a class="code" href="classclang_1_1ExternalPreprocessingRecordSource.html#ad60b78e9d3de24d7d2a8d18d085e2554" title="Optionally returns true or false if the preallocated preprocessed entity with index Index came from f...">isPreprocessedEntityInFileID</a>(<span class="keywordtype">unsigned</span> Index,</div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span>                                                         <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="l00283"></a><span class="lineno">  283</span>       <span class="keywordflow">return</span> None;</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>   <span class="comment"></span></div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span> <span class="comment">  /// \brief A record of the steps taken while preprocessing a source file,</span></div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span> <span class="comment">  /// including the various preprocessing directives processed, macros </span></div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span> <span class="comment">  /// expanded, etc.</span></div>
+<div class="line"><a name="l00290"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord.html">  290</a></span> <span class="comment"></span>  <span class="keyword">class </span><a class="code" href="classclang_1_1PreprocessingRecord.html" title="A record of the steps taken while preprocessing a source file, including the various preprocessing di...">PreprocessingRecord</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1PPCallbacks.html" title="This interface provides a way to observe the actions of the preprocessor as it does its thing...">PPCallbacks</a> {</div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span>     <a class="code" href="classclang_1_1SourceManager.html" title="This class handles loading and caching of source files into memory.">SourceManager</a> &SourceMgr;</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">    /// \brief Allocator used to store preprocessing objects.</span></div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span> <span class="comment"></span>    llvm::BumpPtrAllocator BumpAlloc;</div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span> <span class="comment"></span></div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span> <span class="comment">    /// \brief The set of preprocessed entities in this record, in order they</span></div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span> <span class="comment">    /// were seen.</span></div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span> <span class="comment"></span>    std::vector<PreprocessedEntity *> PreprocessedEntities;</div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span>     <span class="comment"></span></div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span> <span class="comment">    /// \brief The set of preprocessed entities in this record that have been</span></div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span> <span class="comment">    /// loaded from external sources.</span></div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span> <span class="comment">    ///</span></div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span> <span class="comment">    /// The entries in this vector are loaded lazily from the external source,</span></div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span> <span class="comment">    /// and are referenced by the iterator using negative indices.</span></div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span> <span class="comment"></span>    std::vector<PreprocessedEntity *> LoadedPreprocessedEntities;</div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span> <span class="comment"></span></div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span> <span class="comment">    /// \brief Global (loaded or local) ID for a preprocessed entity.</span></div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span> <span class="comment">    /// Negative values are used to indicate preprocessed entities</span></div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span> <span class="comment">    /// loaded from the external source while non-negative values are used to</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span> <span class="comment">    /// indicate preprocessed entities introduced by the current preprocessor.</span></div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span> <span class="comment">    /// Value -1 corresponds to element 0 in the loaded entities vector,</span></div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span> <span class="comment">    /// value -2 corresponds to element 1 in the loaded entities vector, etc.</span></div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span> <span class="comment">    /// Value 0 is an invalid value, the index to local entities is 1-based,</span></div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span> <span class="comment">    /// value 1 corresponds to element 0 in the local entities vector,</span></div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span> <span class="comment">    /// value 2 corresponds to element 1 in the local entities vector, etc.</span></div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span> <span class="comment"></span>    <span class="keyword">class </span>PPEntityID {</div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span>       <span class="keywordtype">int</span> <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>;</div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span>       <span class="keyword">explicit</span> PPEntityID(<span class="keywordtype">int</span> <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>) : <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>(ID) {}</div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span>       <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classclang_1_1PreprocessingRecord.html" title="A record of the steps taken while preprocessing a source file, including the various preprocessing di...">PreprocessingRecord</a>;</div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span>     <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span>       PPEntityID() : <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>(0) {}</div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span>     };</div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span> </div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span>     <span class="keyword">static</span> PPEntityID getPPEntityID(<span class="keywordtype">unsigned</span> Index, <span class="keywordtype">bool</span> isLoaded) {</div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span>       <span class="keywordflow">return</span> isLoaded ? PPEntityID(-<span class="keywordtype">int</span>(Index)-1) : PPEntityID(Index+1);</div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span>     }</div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span> <span class="comment"></span></div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span> <span class="comment">    /// \brief Mapping from MacroInfo structures to their definitions.</span></div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span> <span class="comment"></span>    llvm::DenseMap<const MacroInfo *, MacroDefinition *> MacroDefinitions;</div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span> <span class="comment"></span></div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span> <span class="comment">    /// \brief External source of preprocessed entities.</span></div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span> <span class="comment"></span>    <a class="code" href="classclang_1_1ExternalPreprocessingRecordSource.html" title="An abstract class that should be subclassed by any external source of preprocessing record entries...">ExternalPreprocessingRecordSource</a> *ExternalSource;</div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span> <span class="comment"></span></div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span> <span class="comment">    /// \brief Retrieve the preprocessed entity at the given ID.</span></div>
+<div class="line"><a name="l00335"></a><span class="lineno">  335</span> <span class="comment"></span>    <a class="code" href="classclang_1_1PreprocessedEntity.html" title="Base class that describes a preprocessed entity, which may be a preprocessor directive or macro expan...">PreprocessedEntity</a> *getPreprocessedEntity(PPEntityID PPID);</div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span> <span class="comment"></span></div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span> <span class="comment">    /// \brief Retrieve the loaded preprocessed entity at the given index.</span></div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span> <span class="comment"></span>    <a class="code" href="classclang_1_1PreprocessedEntity.html" title="Base class that describes a preprocessed entity, which may be a preprocessor directive or macro expan...">PreprocessedEntity</a> *getLoadedPreprocessedEntity(<span class="keywordtype">unsigned</span> Index);</div>
+<div class="line"><a name="l00339"></a><span class="lineno">  339</span>     <span class="comment"></span></div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span> <span class="comment">    /// \brief Determine the number of preprocessed entities that were</span></div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span> <span class="comment">    /// loaded (or can be loaded) from an external source.</span></div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span> <span class="comment"></span>    <span class="keywordtype">unsigned</span> getNumLoadedPreprocessedEntities()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00343"></a><span class="lineno">  343</span>       <span class="keywordflow">return</span> LoadedPreprocessedEntities.size();</div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span>     }</div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span> <span class="comment"></span></div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span> <span class="comment">    /// \brief Returns a pair of [Begin, End) indices of local preprocessed</span></div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span> <span class="comment">    /// entities that \p Range encompasses.</span></div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span> <span class="comment"></span>    std::pair<unsigned, unsigned></div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span>       findLocalPreprocessedEntitiesInRange(<a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> <a class="code" href="classclang_1_1PreprocessingRecord.html#a68d2acbaefbc5533b604ec29e92c6a28">Range</a>) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span>     <span class="keywordtype">unsigned</span> findBeginLocalPreprocessedEntity(<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) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span>     <span class="keywordtype">unsigned</span> findEndLocalPreprocessedEntity(<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) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span> <span class="comment"></span></div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span> <span class="comment">    /// \brief Allocate space for a new set of loaded preprocessed entities.</span></div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span> <span class="comment">    ///</span></div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span> <span class="comment">    /// \returns The index into the set of loaded preprocessed entities, which</span></div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span> <span class="comment">    /// corresponds to the first newly-allocated entity.</span></div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span> <span class="comment"></span>    <span class="keywordtype">unsigned</span> allocateLoadedEntities(<span class="keywordtype">unsigned</span> NumEntities);</div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span> <span class="comment"></span></div>
+<div class="line"><a name="l00359"></a><span class="lineno">  359</span> <span class="comment">    /// \brief Register a new macro definition.</span></div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span> <span class="comment"></span>    <span class="keywordtype">void</span> RegisterMacroDefinition(<a class="code" href="classclang_1_1MacroInfo.html" title="Encapsulates the data about a macro definition (e.g. its tokens).">MacroInfo</a> *Macro, <a class="code" href="classclang_1_1MacroDefinition.html" title="Record the location of a macro definition.">MacroDefinition</a> *Def);</div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span>     </div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span>   <span class="keyword">public</span>:<span class="comment"></span></div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span> <span class="comment">    /// \brief Construct a new preprocessing record.</span></div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span> <span class="comment"></span>    <span class="keyword">explicit</span> <a class="code" href="classclang_1_1PreprocessingRecord.html#a0a8359ec4e9e611de238108c8a704a94" title="Construct a new preprocessing record.">PreprocessingRecord</a>(<a class="code" href="classclang_1_1SourceManager.html" title="This class handles loading and caching of source files into memory.">SourceManager</a> &<a class="code" href="AnalysisBasedWarnings_8cpp.html#afe4356a77609114d8df0bfc9c2b8701f">SM</a>);</div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span>     <span class="comment"></span></div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span> <span class="comment">    /// \brief Allocate memory in the preprocessing record.</span></div>
+<div class="line"><a name="l00367"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord.html#af65267ec5250a5092910bd8ba848863c">  367</a></span> <span class="comment"></span>    <span class="keywordtype">void</span> *<a class="code" href="classclang_1_1PreprocessingRecord.html#af65267ec5250a5092910bd8ba848863c" title="Allocate memory in the preprocessing record.">Allocate</a>(<span class="keywordtype">unsigned</span> Size, <span class="keywordtype">unsigned</span> Align = 8) {</div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span>       <span class="keywordflow">return</span> BumpAlloc.Allocate(Size, Align);</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>     <span class="comment"></span></div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span> <span class="comment">    /// \brief Deallocate memory in the preprocessing record.</span></div>
+<div class="line"><a name="l00372"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord.html#a094d6320a5177f35084bf7851bd6d0cc">  372</a></span> <span class="comment"></span>    <span class="keywordtype">void</span> <a class="code" href="classclang_1_1PreprocessingRecord.html#a094d6320a5177f35084bf7851bd6d0cc" title="Deallocate memory in the preprocessing record.">Deallocate</a>(<span class="keywordtype">void</span> *Ptr) { }</div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span> </div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span>     <span class="keywordtype">size_t</span> <a class="code" href="classclang_1_1PreprocessingRecord.html#afed1d64f2b9b03b2a9c3430ef5bc4731">getTotalMemory</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span> </div>
+<div class="line"><a name="l00376"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord.html#a8c161e2ffa428f4f32ebebe4eb4c4c28">  376</a></span>     <a class="code" href="classclang_1_1SourceManager.html" title="This class handles loading and caching of source files into memory.">SourceManager</a> &<a class="code" href="classclang_1_1PreprocessingRecord.html#a8c161e2ffa428f4f32ebebe4eb4c4c28">getSourceManager</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="Format_8cpp.html#a8b28f9f83ac8256fbde7e45b0f874f27">SourceMgr</a>; }</div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span> </div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span>     <span class="comment">// Iteration over the preprocessed entities.</span></div>
+<div class="line"><a name="l00379"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html">  379</a></span>     <span class="keyword">class </span><a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html">iterator</a> {</div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span>       <a class="code" href="classclang_1_1PreprocessingRecord.html" title="A record of the steps taken while preprocessing a source file, including the various preprocessing di...">PreprocessingRecord</a> *Self;</div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span>       <span class="comment"></span></div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span> <span class="comment">      /// \brief Position within the preprocessed entity sequence.</span></div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span> <span class="comment">      ///</span></div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span> <span class="comment">      /// In a complete iteration, the Position field walks the range [-M, N),</span></div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span> <span class="comment">      /// where negative values are used to indicate preprocessed entities</span></div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span> <span class="comment">      /// loaded from the external source while non-negative values are used to</span></div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span> <span class="comment">      /// indicate preprocessed entities introduced by the current preprocessor.</span></div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span> <span class="comment">      /// However, to provide iteration in source order (for, e.g., chained</span></div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span> <span class="comment">      /// precompiled headers), dereferencing the iterator flips the negative</span></div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span> <span class="comment">      /// values (corresponding to loaded entities), so that position -M </span></div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span> <span class="comment">      /// corresponds to element 0 in the loaded entities vector, position -M+1</span></div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span> <span class="comment">      /// corresponds to element 1 in the loaded entities vector, etc. This</span></div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span> <span class="comment">      /// gives us a reasonably efficient, source-order walk.</span></div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span> <span class="comment"></span>      <span class="keywordtype">int</span> Position;</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>     <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00397"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#a8a25be112aa3854f10bbd3e06c49f3ce">  397</a></span>       <span class="keyword">typedef</span> <a class="code" href="classclang_1_1PreprocessedEntity.html" title="Base class that describes a preprocessed entity, which may be a preprocessor directive or macro expan...">PreprocessedEntity</a> *<a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#a8a25be112aa3854f10bbd3e06c49f3ce">value_type</a>;</div>
+<div class="line"><a name="l00398"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#ae0119c669df30d0b308296ebf4d5e453">  398</a></span>       <span class="keyword">typedef</span> <a class="code" href="classclang_1_1PreprocessedEntity.html" title="Base class that describes a preprocessed entity, which may be a preprocessor directive or macro expan...">value_type</a>&         <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#ae0119c669df30d0b308296ebf4d5e453">reference</a>;</div>
+<div class="line"><a name="l00399"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#a1be79b02ad39020b52f53f3f56c21616">  399</a></span>       <span class="keyword">typedef</span> <a class="code" href="classclang_1_1PreprocessedEntity.html" title="Base class that describes a preprocessed entity, which may be a preprocessor directive or macro expan...">value_type</a>*         <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#a1be79b02ad39020b52f53f3f56c21616">pointer</a>;</div>
+<div class="line"><a name="l00400"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#a1175f6194c0afdc1414ef647b488152d">  400</a></span>       <span class="keyword">typedef</span> std::random_access_iterator_tag <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#a1175f6194c0afdc1414ef647b488152d">iterator_category</a>;</div>
+<div class="line"><a name="l00401"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#a7e2641419bfa1d10e80ad38b1036ddff">  401</a></span>       <span class="keyword">typedef</span> <span class="keywordtype">int</span>                 <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#a7e2641419bfa1d10e80ad38b1036ddff">difference_type</a>;</div>
+<div class="line"><a name="l00402"></a><span class="lineno">  402</span>       </div>
+<div class="line"><a name="l00403"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#a23394ba37433f372a0b632ad002ff7fa">  403</a></span>       <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#a23394ba37433f372a0b632ad002ff7fa">iterator</a>() : Self(0), Position(0) { }</div>
+<div class="line"><a name="l00404"></a><span class="lineno">  404</span>       </div>
+<div class="line"><a name="l00405"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#aa57ddfe5434e83ec3670f6a36d903427">  405</a></span>       <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#a23394ba37433f372a0b632ad002ff7fa">iterator</a>(<a class="code" href="classclang_1_1PreprocessingRecord.html" title="A record of the steps taken while preprocessing a source file, including the various preprocessing di...">PreprocessingRecord</a> *Self, <span class="keywordtype">int</span> Position)</div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span>         : Self(Self), Position(Position) { }</div>
+<div class="line"><a name="l00407"></a><span class="lineno">  407</span>       </div>
+<div class="line"><a name="l00408"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#ad3525e6443e953419c27d009bfe791a2">  408</a></span>       <a class="code" href="classclang_1_1PreprocessedEntity.html" title="Base class that describes a preprocessed entity, which may be a preprocessor directive or macro expan...">value_type</a> <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#ad3525e6443e953419c27d009bfe791a2">operator*</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00409"></a><span class="lineno">  409</span>         <span class="keywordtype">bool</span> isLoaded = Position < 0;</div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span>         <span class="keywordtype">unsigned</span> Index = isLoaded ?</div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span>             Self->LoadedPreprocessedEntities.size() + Position : Position;</div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span>         PPEntityID <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a> = Self->getPPEntityID(Index, isLoaded);</div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</span>         <span class="keywordflow">return</span> Self->getPreprocessedEntity(ID);</div>
+<div class="line"><a name="l00414"></a><span class="lineno">  414</span>       }</div>
+<div class="line"><a name="l00415"></a><span class="lineno">  415</span>       </div>
+<div class="line"><a name="l00416"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#acf73d2cdb5932588acfe508d85de0e16">  416</a></span>       <a class="code" href="classclang_1_1PreprocessedEntity.html" title="Base class that describes a preprocessed entity, which may be a preprocessor directive or macro expan...">value_type</a> <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#acf73d2cdb5932588acfe508d85de0e16">operator[]</a>(<a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#a7e2641419bfa1d10e80ad38b1036ddff">difference_type</a> D) {</div>
+<div class="line"><a name="l00417"></a><span class="lineno">  417</span>         <span class="keywordflow">return</span> *(*<span class="keyword">this</span> + D);</div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span>       }</div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span>       </div>
+<div class="line"><a name="l00420"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#aebd1af2ebd1c837b809492d916533cd9">  420</a></span>       <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html">iterator</a> &<a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#aebd1af2ebd1c837b809492d916533cd9">operator++</a>() {</div>
+<div class="line"><a name="l00421"></a><span class="lineno">  421</span>         ++Position;</div>
+<div class="line"><a name="l00422"></a><span class="lineno">  422</span>         <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00423"></a><span class="lineno">  423</span>       }</div>
+<div class="line"><a name="l00424"></a><span class="lineno">  424</span>       </div>
+<div class="line"><a name="l00425"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#a232183dfb1cd60c97379db08bac2aa85">  425</a></span>       <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html">iterator</a> <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#a232183dfb1cd60c97379db08bac2aa85">operator++</a>(<span class="keywordtype">int</span>) {</div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span>         <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html">iterator</a> Prev(*<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00427"></a><span class="lineno">  427</span>         ++Position;</div>
+<div class="line"><a name="l00428"></a><span class="lineno">  428</span>         <span class="keywordflow">return</span> Prev;</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> </div>
+<div class="line"><a name="l00431"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#a2273d7927ad013140bad5de20b0b5ea7">  431</a></span>       <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html">iterator</a> &<a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#a2273d7927ad013140bad5de20b0b5ea7">operator--</a>() {</div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span>         --Position;</div>
+<div class="line"><a name="l00433"></a><span class="lineno">  433</span>         <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00434"></a><span class="lineno">  434</span>       }</div>
+<div class="line"><a name="l00435"></a><span class="lineno">  435</span>       </div>
+<div class="line"><a name="l00436"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#a3b59eba74d49f30ef3e7249d4fa15be5">  436</a></span>       <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html">iterator</a> <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#a3b59eba74d49f30ef3e7249d4fa15be5">operator--</a>(<span class="keywordtype">int</span>) {</div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span>         <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html">iterator</a> Prev(*<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00438"></a><span class="lineno">  438</span>         --Position;</div>
+<div class="line"><a name="l00439"></a><span class="lineno">  439</span>         <span class="keywordflow">return</span> Prev;</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> </div>
+<div class="line"><a name="l00442"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#ab27a6e65e990477cbb8a961f2783f2c7">  442</a></span>       <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#ab27a6e65e990477cbb8a961f2783f2c7">operator==</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html">iterator</a> &<a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>, <span class="keyword">const</span> <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html">iterator</a> &Y) {</div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</span>         <span class="keywordflow">return</span> X.Position == Y.Position;</div>
+<div class="line"><a name="l00444"></a><span class="lineno">  444</span>       }</div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span> </div>
+<div class="line"><a name="l00446"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#a683156b0dd6e6d834c39a2edeef12f89">  446</a></span>       <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#a683156b0dd6e6d834c39a2edeef12f89">operator!=</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html">iterator</a> &<a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>, <span class="keyword">const</span> <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html">iterator</a> &Y) {</div>
+<div class="line"><a name="l00447"></a><span class="lineno">  447</span>         <span class="keywordflow">return</span> X.Position != Y.Position;</div>
+<div class="line"><a name="l00448"></a><span class="lineno">  448</span>       }</div>
+<div class="line"><a name="l00449"></a><span class="lineno">  449</span>       </div>
+<div class="line"><a name="l00450"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#a16c56746062da161064dbe769e15f1e3">  450</a></span>       <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#a16c56746062da161064dbe769e15f1e3">operator<</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html">iterator</a> &<a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>, <span class="keyword">const</span> <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html">iterator</a> &Y) {</div>
+<div class="line"><a name="l00451"></a><span class="lineno">  451</span>         <span class="keywordflow">return</span> X.Position < Y.Position;</div>
+<div class="line"><a name="l00452"></a><span class="lineno">  452</span>       }</div>
+<div class="line"><a name="l00453"></a><span class="lineno">  453</span> </div>
+<div class="line"><a name="l00454"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#a246316911ffafafaf2aec3b19c9533c6">  454</a></span>       <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#a246316911ffafafaf2aec3b19c9533c6">operator></a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html">iterator</a> &<a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>, <span class="keyword">const</span> <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html">iterator</a> &Y) {</div>
+<div class="line"><a name="l00455"></a><span class="lineno">  455</span>         <span class="keywordflow">return</span> X.Position > Y.Position;</div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span>       }</div>
+<div class="line"><a name="l00457"></a><span class="lineno">  457</span> </div>
+<div class="line"><a name="l00458"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#aee835b4e38047244a00a41bb5f57f97f">  458</a></span>       <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#aee835b4e38047244a00a41bb5f57f97f">operator<=</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html">iterator</a> &<a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>, <span class="keyword">const</span> <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html">iterator</a> &Y) {</div>
+<div class="line"><a name="l00459"></a><span class="lineno">  459</span>         <span class="keywordflow">return</span> X.Position < Y.Position;</div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span>       }</div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span>       </div>
+<div class="line"><a name="l00462"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#a853b1c71fc48404da8d510759465f57f">  462</a></span>       <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#a853b1c71fc48404da8d510759465f57f">operator>=</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html">iterator</a> &<a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>, <span class="keyword">const</span> <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html">iterator</a> &Y) {</div>
+<div class="line"><a name="l00463"></a><span class="lineno">  463</span>         <span class="keywordflow">return</span> X.Position > Y.Position;</div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</span>       }</div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span> </div>
+<div class="line"><a name="l00466"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#a5d8ae53fb74725a47db55e144a83f31d">  466</a></span>       <span class="keyword">friend</span> <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html">iterator</a>& <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#a5d8ae53fb74725a47db55e144a83f31d">operator+=</a>(<a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html">iterator</a> &<a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>, <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#a7e2641419bfa1d10e80ad38b1036ddff">difference_type</a> D) {</div>
+<div class="line"><a name="l00467"></a><span class="lineno">  467</span>         X.Position += D;</div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span>         <span class="keywordflow">return</span> <a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>;</div>
+<div class="line"><a name="l00469"></a><span class="lineno">  469</span>       }</div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span> </div>
+<div class="line"><a name="l00471"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#aaa7eddbe7cf61a4051be453cd1ed5233">  471</a></span>       <span class="keyword">friend</span> <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html">iterator</a>& <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#aaa7eddbe7cf61a4051be453cd1ed5233">operator-=</a>(<a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html">iterator</a> &<a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>, <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#a7e2641419bfa1d10e80ad38b1036ddff">difference_type</a> D) {</div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span>         X.Position -= D;</div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span>         <span class="keywordflow">return</span> <a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>;</div>
+<div class="line"><a name="l00474"></a><span class="lineno">  474</span>       }</div>
+<div class="line"><a name="l00475"></a><span class="lineno">  475</span> </div>
+<div class="line"><a name="l00476"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#a64def7717343acfb647f7b57c477c2f6">  476</a></span>       <span class="keyword">friend</span> <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html">iterator</a> <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#a64def7717343acfb647f7b57c477c2f6">operator+</a>(<a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html">iterator</a> <a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>, <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#a7e2641419bfa1d10e80ad38b1036ddff">difference_type</a> D) {</div>
+<div class="line"><a name="l00477"></a><span class="lineno">  477</span>         X.Position += D;</div>
+<div class="line"><a name="l00478"></a><span class="lineno">  478</span>         <span class="keywordflow">return</span> <a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>;</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> </div>
+<div class="line"><a name="l00481"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#a369cc0848881c5ae4ff798981331f4a6">  481</a></span>       <span class="keyword">friend</span> <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html">iterator</a> <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#a369cc0848881c5ae4ff798981331f4a6">operator+</a>(<a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#a7e2641419bfa1d10e80ad38b1036ddff">difference_type</a> D, <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html">iterator</a> <a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>) {</div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span>         X.Position += D;</div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span>         <span class="keywordflow">return</span> <a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>;</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> </div>
+<div class="line"><a name="l00486"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#afd0f779f8620f57d322cf44cfb415a62">  486</a></span>       <span class="keyword">friend</span> <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#a7e2641419bfa1d10e80ad38b1036ddff">difference_type</a> <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#afd0f779f8620f57d322cf44cfb415a62">operator-</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html">iterator</a> &<a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>, <span class="keyword">const</span> <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html">iterator</a> &Y) {</div>
+<div class="line"><a name="l00487"></a><span class="lineno">  487</span>         <span class="keywordflow">return</span> X.Position - Y.Position;</div>
+<div class="line"><a name="l00488"></a><span class="lineno">  488</span>       }</div>
+<div class="line"><a name="l00489"></a><span class="lineno">  489</span> </div>
+<div class="line"><a name="l00490"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#ae1a7da5801cb53f76c7372570b4a4c83">  490</a></span>       <span class="keyword">friend</span> <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html">iterator</a> <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#ae1a7da5801cb53f76c7372570b4a4c83">operator-</a>(<a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html">iterator</a> <a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>, <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#a7e2641419bfa1d10e80ad38b1036ddff">difference_type</a> D) {</div>
+<div class="line"><a name="l00491"></a><span class="lineno">  491</span>         X.Position -= D;</div>
+<div class="line"><a name="l00492"></a><span class="lineno">  492</span>         <span class="keywordflow">return</span> <a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>;</div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span>       }</div>
+<div class="line"><a name="l00494"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html#ad1dd29c752be945c6ae3a3edac56441b">  494</a></span>       <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classclang_1_1PreprocessingRecord.html" title="A record of the steps taken while preprocessing a source file, including the various preprocessing di...">PreprocessingRecord</a>;</div>
+<div class="line"><a name="l00495"></a><span class="lineno">  495</span>     };</div>
+<div class="line"><a name="l00496"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord.html#a67171474c4da6cc8efe0c7fafefd2b2d">  496</a></span>     <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html">iterator</a>;</div>
+<div class="line"><a name="l00497"></a><span class="lineno">  497</span> <span class="comment"></span></div>
+<div class="line"><a name="l00498"></a><span class="lineno">  498</span> <span class="comment">    /// \brief Begin iterator for all preprocessed entities.</span></div>
+<div class="line"><a name="l00499"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord.html#aa82cbd78c5845dba748a5b5acc4384b9">  499</a></span> <span class="comment"></span>    <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html">iterator</a> <a class="code" href="classclang_1_1PreprocessingRecord.html#aa82cbd78c5845dba748a5b5acc4384b9" title="Begin iterator for all preprocessed entities.">begin</a>() {</div>
+<div class="line"><a name="l00500"></a><span class="lineno">  500</span>       <span class="keywordflow">return</span> <a class="code" href="classclang_1_1PreprocessingRecord.html#a67171474c4da6cc8efe0c7fafefd2b2d">iterator</a>(<span class="keyword">this</span>, -(<span class="keywordtype">int</span>)LoadedPreprocessedEntities.size());</div>
+<div class="line"><a name="l00501"></a><span class="lineno">  501</span>     }</div>
+<div class="line"><a name="l00502"></a><span class="lineno">  502</span> <span class="comment"></span></div>
+<div class="line"><a name="l00503"></a><span class="lineno">  503</span> <span class="comment">    /// \brief End iterator for all preprocessed entities.</span></div>
+<div class="line"><a name="l00504"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord.html#a20bfb2157896c33649e7927e242b278e">  504</a></span> <span class="comment"></span>    <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html">iterator</a> <a class="code" href="classclang_1_1PreprocessingRecord.html#a20bfb2157896c33649e7927e242b278e" title="End iterator for all preprocessed entities.">end</a>() {</div>
+<div class="line"><a name="l00505"></a><span class="lineno">  505</span>       <span class="keywordflow">return</span> <a class="code" href="classclang_1_1PreprocessingRecord.html#a67171474c4da6cc8efe0c7fafefd2b2d">iterator</a>(<span class="keyword">this</span>, PreprocessedEntities.size());</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"></span></div>
+<div class="line"><a name="l00508"></a><span class="lineno">  508</span> <span class="comment">    /// \brief Begin iterator for local, non-loaded, preprocessed entities.</span></div>
+<div class="line"><a name="l00509"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord.html#aaaa2e2cf0907cfcc1f61e5d4c80332e8">  509</a></span> <span class="comment"></span>    <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html">iterator</a> <a class="code" href="classclang_1_1PreprocessingRecord.html#aaaa2e2cf0907cfcc1f61e5d4c80332e8" title="Begin iterator for local, non-loaded, preprocessed entities.">local_begin</a>() {</div>
+<div class="line"><a name="l00510"></a><span class="lineno">  510</span>       <span class="keywordflow">return</span> <a class="code" href="classclang_1_1PreprocessingRecord.html#a67171474c4da6cc8efe0c7fafefd2b2d">iterator</a>(<span class="keyword">this</span>, 0);</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"></span></div>
+<div class="line"><a name="l00513"></a><span class="lineno">  513</span> <span class="comment">    /// \brief End iterator for local, non-loaded, preprocessed entities.</span></div>
+<div class="line"><a name="l00514"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord.html#ace2c19eb1c655a2ef328a91815d8a2bc">  514</a></span> <span class="comment"></span>    <a class="code" href="classclang_1_1PreprocessingRecord_1_1iterator.html">iterator</a> <a class="code" href="classclang_1_1PreprocessingRecord.html#ace2c19eb1c655a2ef328a91815d8a2bc" title="End iterator for local, non-loaded, preprocessed entities.">local_end</a>() {</div>
+<div class="line"><a name="l00515"></a><span class="lineno">  515</span>       <span class="keywordflow">return</span> <a class="code" href="classclang_1_1PreprocessingRecord.html#a67171474c4da6cc8efe0c7fafefd2b2d">iterator</a>(<span class="keyword">this</span>, PreprocessedEntities.size());</div>
+<div class="line"><a name="l00516"></a><span class="lineno">  516</span>     }</div>
+<div class="line"><a name="l00517"></a><span class="lineno">  517</span> <span class="comment"></span></div>
+<div class="line"><a name="l00518"></a><span class="lineno">  518</span> <span class="comment">    /// \brief begin/end iterator pair for the given range of loaded</span></div>
+<div class="line"><a name="l00519"></a><span class="lineno">  519</span> <span class="comment">    /// preprocessed entities.</span></div>
+<div class="line"><a name="l00520"></a><span class="lineno">  520</span> <span class="comment"></span>    std::pair<iterator, iterator></div>
+<div class="line"><a name="l00521"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord.html#ad75355e2fa517ce4b5d54ef26b03c6ed">  521</a></span>     <a class="code" href="classclang_1_1PreprocessingRecord.html#ad75355e2fa517ce4b5d54ef26b03c6ed" title="begin/end iterator pair for the given range of loaded preprocessed entities.">getIteratorsForLoadedRange</a>(<span class="keywordtype">unsigned</span> start, <span class="keywordtype">unsigned</span> count) {</div>
+<div class="line"><a name="l00522"></a><span class="lineno">  522</span>       <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1PreprocessingRecord.html#a20bfb2157896c33649e7927e242b278e" title="End iterator for all preprocessed entities.">end</a> = start + count;</div>
+<div class="line"><a name="l00523"></a><span class="lineno">  523</span>       assert(end <= LoadedPreprocessedEntities.size());</div>
+<div class="line"><a name="l00524"></a><span class="lineno">  524</span>       <span class="keywordflow">return</span> std::make_pair(</div>
+<div class="line"><a name="l00525"></a><span class="lineno">  525</span>                    <a class="code" href="classclang_1_1PreprocessingRecord.html#a67171474c4da6cc8efe0c7fafefd2b2d">iterator</a>(<span class="keyword">this</span>, <span class="keywordtype">int</span>(start)-LoadedPreprocessedEntities.size()),</div>
+<div class="line"><a name="l00526"></a><span class="lineno">  526</span>                    <a class="code" href="classclang_1_1PreprocessingRecord.html#a67171474c4da6cc8efe0c7fafefd2b2d">iterator</a>(<span class="keyword">this</span>, <span class="keywordtype">int</span>(end)-LoadedPreprocessedEntities.size()));</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="comment"></span></div>
+<div class="line"><a name="l00529"></a><span class="lineno">  529</span> <span class="comment">    /// \brief Returns a pair of [Begin, End) iterators of preprocessed entities</span></div>
+<div class="line"><a name="l00530"></a><span class="lineno">  530</span> <span class="comment">    /// that source range \p R encompasses.</span></div>
+<div class="line"><a name="l00531"></a><span class="lineno">  531</span> <span class="comment">    ///</span></div>
+<div class="line"><a name="l00532"></a><span class="lineno">  532</span> <span class="comment">    /// \param R the range to look for preprocessed entities.</span></div>
+<div class="line"><a name="l00533"></a><span class="lineno">  533</span> <span class="comment">    ///</span></div>
+<div class="line"><a name="l00534"></a><span class="lineno">  534</span> <span class="comment"></span>    std::pair<iterator, iterator> <a class="code" href="classclang_1_1PreprocessingRecord.html#a3f8922942fa8e9c38c8deb5f970c89f2" title="Returns a pair of [Begin, End) iterators of preprocessed entities that source range R encompasses...">getPreprocessedEntitiesInRange</a>(<a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> R);</div>
+<div class="line"><a name="l00535"></a><span class="lineno">  535</span> <span class="comment"></span></div>
+<div class="line"><a name="l00536"></a><span class="lineno">  536</span> <span class="comment">    /// \brief Returns true if the preprocessed entity that \p PPEI iterator</span></div>
+<div class="line"><a name="l00537"></a><span class="lineno">  537</span> <span class="comment">    /// points to is coming from the file \p FID.</span></div>
+<div class="line"><a name="l00538"></a><span class="lineno">  538</span> <span class="comment">    ///</span></div>
+<div class="line"><a name="l00539"></a><span class="lineno">  539</span> <span class="comment">    /// Can be used to avoid implicit deserializations of preallocated</span></div>
+<div class="line"><a name="l00540"></a><span class="lineno">  540</span> <span class="comment">    /// preprocessed entities if we only care about entities of a specific file</span></div>
+<div class="line"><a name="l00541"></a><span class="lineno">  541</span> <span class="comment">    /// and not from files \#included in the range given at</span></div>
+<div class="line"><a name="l00542"></a><span class="lineno">  542</span> <span class="comment">    /// \see getPreprocessedEntitiesInRange.</span></div>
+<div class="line"><a name="l00543"></a><span class="lineno">  543</span> <span class="comment"></span>    <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1PreprocessingRecord.html#a8b9b24ff461eae09b50c656333408452" title="Returns true if the preprocessed entity that PPEI iterator points to is coming from the file FID...">isEntityInFileID</a>(<a class="code" href="classclang_1_1PreprocessingRecord.html#a67171474c4da6cc8efe0c7fafefd2b2d">iterator</a> PPEI, <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="l00544"></a><span class="lineno">  544</span> <span class="comment"></span></div>
+<div class="line"><a name="l00545"></a><span class="lineno">  545</span> <span class="comment">    /// \brief Add a new preprocessed entity to this record.</span></div>
+<div class="line"><a name="l00546"></a><span class="lineno">  546</span> <span class="comment"></span>    PPEntityID <a class="code" href="classclang_1_1PreprocessingRecord.html#a3b57783346757f1ca94159b0ef52ae31" title="Add a new preprocessed entity to this record.">addPreprocessedEntity</a>(<a class="code" href="classclang_1_1PreprocessedEntity.html" title="Base class that describes a preprocessed entity, which may be a preprocessor directive or macro expan...">PreprocessedEntity</a> *Entity);</div>
+<div class="line"><a name="l00547"></a><span class="lineno">  547</span> <span class="comment"></span></div>
+<div class="line"><a name="l00548"></a><span class="lineno">  548</span> <span class="comment">    /// \brief Set the external source for preprocessed entities.</span></div>
+<div class="line"><a name="l00549"></a><span class="lineno">  549</span> <span class="comment"></span>    <span class="keywordtype">void</span> <a class="code" href="classclang_1_1PreprocessingRecord.html#ae04fdf86859a931db7af05a820f8bf23" title="Set the external source for preprocessed entities.">SetExternalSource</a>(<a class="code" href="classclang_1_1ExternalPreprocessingRecordSource.html" title="An abstract class that should be subclassed by any external source of preprocessing record entries...">ExternalPreprocessingRecordSource</a> &Source);</div>
+<div class="line"><a name="l00550"></a><span class="lineno">  550</span> <span class="comment"></span></div>
+<div class="line"><a name="l00551"></a><span class="lineno">  551</span> <span class="comment">    /// \brief Retrieve the external source for preprocessed entities.</span></div>
+<div class="line"><a name="l00552"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord.html#ab0135978421ed57f44dcbfb5da1550e4">  552</a></span> <span class="comment"></span>    <a class="code" href="classclang_1_1ExternalPreprocessingRecordSource.html" title="An abstract class that should be subclassed by any external source of preprocessing record entries...">ExternalPreprocessingRecordSource</a> *<a class="code" href="classclang_1_1PreprocessingRecord.html#ab0135978421ed57f44dcbfb5da1550e4" title="Retrieve the external source for preprocessed entities.">getExternalSource</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00553"></a><span class="lineno">  553</span>       <span class="keywordflow">return</span> ExternalSource;</div>
+<div class="line"><a name="l00554"></a><span class="lineno">  554</span>     }</div>
+<div class="line"><a name="l00555"></a><span class="lineno">  555</span>     <span class="comment"></span></div>
+<div class="line"><a name="l00556"></a><span class="lineno">  556</span> <span class="comment">    /// \brief Retrieve the macro definition that corresponds to the given</span></div>
+<div class="line"><a name="l00557"></a><span class="lineno">  557</span> <span class="comment">    /// \c MacroInfo.</span></div>
+<div class="line"><a name="l00558"></a><span class="lineno">  558</span> <span class="comment"></span>    <a class="code" href="classclang_1_1MacroDefinition.html" title="Record the location of a macro definition.">MacroDefinition</a> *<a class="code" href="classclang_1_1PreprocessingRecord.html#aaebcce69d158b8e7b60d6315eb8518e5" title="Retrieve the macro definition that corresponds to the given MacroInfo.">findMacroDefinition</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="l00559"></a><span class="lineno">  559</span>         </div>
+<div class="line"><a name="l00560"></a><span class="lineno">  560</span>   <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00561"></a><span class="lineno">  561</span>     <span class="keyword">virtual</span> <span class="keywordtype">void</span> MacroExpands(<span class="keyword">const</span> <a class="code" href="classclang_1_1Token.html">Token</a> &Id, <span class="keyword">const</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="l00562"></a><span class="lineno">  562</span>                               <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> Range, <span class="keyword">const</span> <a class="code" href="classclang_1_1MacroArgs.html">MacroArgs</a> *<a class="code" href="SemaOverload_8cpp.html#ab0970fce5a85028c7eac6fb99797fea5">Args</a>);</div>
+<div class="line"><a name="l00563"></a><span class="lineno">  563</span>     <span class="keyword">virtual</span> <span class="keywordtype">void</span> MacroDefined(<span class="keyword">const</span> <a class="code" href="classclang_1_1Token.html">Token</a> &Id, <span class="keyword">const</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="l00564"></a><span class="lineno">  564</span>     <span class="keyword">virtual</span> <span class="keywordtype">void</span> MacroUndefined(<span class="keyword">const</span> <a class="code" href="classclang_1_1Token.html">Token</a> &Id, <span class="keyword">const</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="l00565"></a><span class="lineno">  565</span>     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1InclusionDirective.html" title="Record the location of an inclusion directive, such as an #include or #import statement.">InclusionDirective</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> HashLoc,</div>
+<div class="line"><a name="l00566"></a><span class="lineno">  566</span>                                     <span class="keyword">const</span> <a class="code" href="classclang_1_1Token.html">Token</a> &IncludeTok,</div>
+<div class="line"><a name="l00567"></a><span class="lineno">  567</span>                                     StringRef FileName,</div>
+<div class="line"><a name="l00568"></a><span class="lineno">  568</span>                                     <span class="keywordtype">bool</span> IsAngled,</div>
+<div class="line"><a name="l00569"></a><span class="lineno">  569</span>                                     <a class="code" href="classclang_1_1CharSourceRange.html" title="Represents a character-granular source range.">CharSourceRange</a> FilenameRange,</div>
+<div class="line"><a name="l00570"></a><span class="lineno">  570</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="l00571"></a><span class="lineno">  571</span>                                     StringRef SearchPath,</div>
+<div class="line"><a name="l00572"></a><span class="lineno">  572</span>                                     StringRef RelativePath,</div>
+<div class="line"><a name="l00573"></a><span class="lineno">  573</span>                                     <span class="keyword">const</span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Imported);</div>
+<div class="line"><a name="l00574"></a><span class="lineno">  574</span>     <span class="keyword">virtual</span> <span class="keywordtype">void</span> Ifdef(<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, <span class="keyword">const</span> <a class="code" href="classclang_1_1Token.html">Token</a> &MacroNameTok,</div>
+<div class="line"><a name="l00575"></a><span class="lineno">  575</span>                        <span class="keyword">const</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="l00576"></a><span class="lineno">  576</span>     <span class="keyword">virtual</span> <span class="keywordtype">void</span> Ifndef(<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, <span class="keyword">const</span> <a class="code" href="classclang_1_1Token.html">Token</a> &MacroNameTok,</div>
+<div class="line"><a name="l00577"></a><span class="lineno">  577</span>                         <span class="keyword">const</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);<span class="comment"></span></div>
+<div class="line"><a name="l00578"></a><span class="lineno">  578</span> <span class="comment">    /// \brief Hook called whenever the 'defined' operator is seen.</span></div>
+<div class="line"><a name="l00579"></a><span class="lineno">  579</span> <span class="comment"></span>    <span class="keyword">virtual</span> <span class="keywordtype">void</span> Defined(<span class="keyword">const</span> <a class="code" href="classclang_1_1Token.html">Token</a> &MacroNameTok, <span class="keyword">const</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="l00580"></a><span class="lineno">  580</span>                          <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> Range);</div>
+<div class="line"><a name="l00581"></a><span class="lineno">  581</span> </div>
+<div class="line"><a name="l00582"></a><span class="lineno">  582</span>     <span class="keywordtype">void</span> addMacroExpansion(<span class="keyword">const</span> <a class="code" href="classclang_1_1Token.html">Token</a> &Id, <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="l00583"></a><span class="lineno">  583</span>                            <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> Range);</div>
+<div class="line"><a name="l00584"></a><span class="lineno">  584</span> <span class="comment"></span></div>
+<div class="line"><a name="l00585"></a><span class="lineno">  585</span> <span class="comment">    /// \brief Cached result of the last \see getPreprocessedEntitiesInRange</span></div>
+<div class="line"><a name="l00586"></a><span class="lineno">  586</span> <span class="comment">    /// query.</span></div>
+<div class="line"><a name="l00587"></a><span class="lineno">  587</span> <span class="comment"></span>    <span class="keyword">struct </span>{</div>
+<div class="line"><a name="l00588"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord.html#a68d2acbaefbc5533b604ec29e92c6a28">  588</a></span>       <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> <a class="code" href="classclang_1_1PreprocessingRecord.html#a68d2acbaefbc5533b604ec29e92c6a28">Range</a>;</div>
+<div class="line"><a name="l00589"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord.html#ab063831fc4182e4977fbaabedf7c0c80">  589</a></span>       std::pair<int, int> <a class="code" href="classclang_1_1PreprocessingRecord.html#ab063831fc4182e4977fbaabedf7c0c80">Result</a>;</div>
+<div class="line"><a name="l00590"></a><span class="lineno">  590</span>     } CachedRangeQuery;</div>
+<div class="line"><a name="l00591"></a><span class="lineno">  591</span> </div>
+<div class="line"><a name="l00592"></a><span class="lineno">  592</span>     std::pair<int, int> getPreprocessedEntitiesInRangeSlow(<a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> R);</div>
+<div class="line"><a name="l00593"></a><span class="lineno">  593</span> </div>
+<div class="line"><a name="l00594"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord.html#a5d8560551ea81515968dd468e2e4082e">  594</a></span>     <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classclang_1_1ASTReader.html" title="Reads an AST files chain containing the contents of a translation unit.">ASTReader</a>;</div>
+<div class="line"><a name="l00595"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessingRecord.html#a05a0d9d61e00c31d180a2a8f1d6f7903">  595</a></span>     <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classclang_1_1ASTWriter.html" title="Writes an AST file containing the contents of a translation unit.">ASTWriter</a>;</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">// end namespace clang</span></div>
+<div class="line"><a name="l00598"></a><span class="lineno">  598</span> </div>
+<div class="line"><a name="l00599"></a><span class="lineno"><a class="code" href="PreprocessingRecord_8h.html#a9992adabaa6c95a734cb5e8dab3e6d8c">  599</a></span> <span class="keyword">inline</span> <span class="keywordtype">void</span>* <span class="keyword">operator</span> <span class="keyword">new</span>(<span class="keywordtype">size_t</span> bytes, <a class="code" href="classclang_1_1PreprocessingRecord.html" title="A record of the steps taken while preprocessing a source file, including the various preprocessing di...">clang::PreprocessingRecord</a>& PR,</div>
+<div class="line"><a name="l00600"></a><span class="lineno">  600</span>                           <span class="keywordtype">unsigned</span> alignment) <span class="keywordflow">throw</span>() {</div>
+<div class="line"><a name="l00601"></a><span class="lineno">  601</span>   <span class="keywordflow">return</span> PR.Allocate(bytes, alignment);</div>
+<div class="line"><a name="l00602"></a><span class="lineno">  602</span> }</div>
+<div class="line"><a name="l00603"></a><span class="lineno">  603</span> </div>
+<div class="line"><a name="l00604"></a><span class="lineno"><a class="code" href="PreprocessingRecord_8h.html#a9d461e64e06db0ce5f7d0aff214f8324">  604</a></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <span class="keyword">operator</span> <span class="keyword">delete</span>(<span class="keywordtype">void</span>* ptr, <a class="code" href="classclang_1_1PreprocessingRecord.html" title="A record of the steps taken while preprocessing a source file, including the various preprocessing di...">clang::PreprocessingRecord</a>& PR,</div>
+<div class="line"><a name="l00605"></a><span class="lineno">  605</span>                             <a class="code" href="classunsigned.html">unsigned</a>) <span class="keywordflow">throw</span>() {</div>
+<div class="line"><a name="l00606"></a><span class="lineno">  606</span>   PR.Deallocate(ptr);</div>
+<div class="line"><a name="l00607"></a><span class="lineno">  607</span> }</div>
+<div class="line"><a name="l00608"></a><span class="lineno">  608</span> </div>
+<div class="line"><a name="l00609"></a><span class="lineno">  609</span> <span class="preprocessor">#endif // LLVM_CLANG_LEX_PREPROCESSINGRECORD_H</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/PreprocessorLexer_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PreprocessorLexer_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PreprocessorLexer_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PreprocessorLexer_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,137 @@
+<!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: PreprocessorLexer.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">PreprocessorLexer.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="PreprocessorLexer_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">//===--- PreprocessorLexer.cpp - C Language Family Lexer ------------------===//</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 PreprocessorLexer and Token interfaces.</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="PreprocessorLexer_8h.html" title="Defines the PreprocessorLexer interface.">clang/Lex/PreprocessorLexer.h</a>"</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</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="l00016"></a><span class="lineno">   16</span> <span class="preprocessor">#include "<a class="code" href="LexDiagnostic_8h.html">clang/Lex/LexDiagnostic.h</a>"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="preprocessor">#include "<a class="code" href="Preprocessor_8h.html">clang/Lex/Preprocessor.h</a>"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="keyword">using namespace </span>clang;</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="keywordtype">void</span> PreprocessorLexer::anchor() { }</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="classclang_1_1PreprocessorLexer.html#a8f212e0710adf9e2e50eb5a0f56fedd8">   22</a></span> <a class="code" href="classclang_1_1PreprocessorLexer.html#a9495c74dcf161c7b34b24d26d7810be5">PreprocessorLexer::PreprocessorLexer</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> fid)</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>   : PP(pp), FID(fid), InitialNumSLocEntries(0),</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>     ParsingPreprocessorDirective(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>),</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>     ParsingFilename(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>), LexingRawMode(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>) {</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>   <span class="keywordflow">if</span> (pp)</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>     <a class="code" href="classclang_1_1PreprocessorLexer.html#accca7faf25860afb98a8abcb82678324" title="Number of SLocEntries before lexing the file.">InitialNumSLocEntries</a> = pp-><a class="code" href="classclang_1_1Preprocessor.html#afca276c0a87d413e51e8848edf8f911b">getSourceManager</a>().<a class="code" href="classclang_1_1SourceManager.html#a6ce8e7c14e399ddc5efa3d0d19b541f1" title="Get the number of local SLocEntries we have.">local_sloc_entry_size</a>();</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> }</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="comment"></span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="comment">/// \brief After the preprocessor has parsed a \#include, lex and</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span> <span class="comment">/// (potentially) macro expand the filename.</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorLexer.html#a0c0bbb460799347ef2b9a1b92fd8524a">   32</a></span> <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="classclang_1_1PreprocessorLexer.html#a0c0bbb460799347ef2b9a1b92fd8524a" title="After the preprocessor has parsed a #include, lex and (potentially) macro expand the filename...">PreprocessorLexer::LexIncludeFilename</a>(<a class="code" href="classclang_1_1Token.html">Token</a> &FilenameTok) {</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</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="l00034"></a><span class="lineno">   34</span>          <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="l00035"></a><span class="lineno">   35</span>          <span class="stringliteral">"Must be in a preprocessing directive!"</span>);</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span> </div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>   <span class="comment">// We are now parsing a filename!</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>   <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">true</span>;</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span> </div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>   <span class="comment">// Lex the filename.</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1PreprocessorLexer.html#a4aefb1afcc979348454179d95d28a5ba" title="True if in raw mode.">LexingRawMode</a>)</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>     <a class="code" href="classclang_1_1PreprocessorLexer.html#a274f969baffa6358d478d006ae41b4a6">IndirectLex</a>(FilenameTok);</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>   <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>     <a class="code" href="classclang_1_1PreprocessorLexer.html#a790cb1b9650fc3ffa24a4af996426e6c">PP</a>-><a class="code" href="classclang_1_1Preprocessor.html#a4c7cf0c496e4a7744bc1731d92a4431e" title="Lex - Lex the next token for this preprocessor.">Lex</a>(FilenameTok);</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>   <span class="comment">// We should have obtained the filename now.</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>   <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="l00048"></a><span class="lineno">   48</span> </div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>   <span class="comment">// No filename?</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>   <span class="keywordflow">if</span> (FilenameTok.<a class="code" href="classclang_1_1Token.html#abc7c8cc4d8598e2c07148189157cf066">is</a>(tok::eod))</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>     <a class="code" href="classclang_1_1PreprocessorLexer.html#a790cb1b9650fc3ffa24a4af996426e6c">PP</a>-><a class="code" href="classclang_1_1Preprocessor.html#a6baeb25e8bb853d4ed0d8acca0666cc0">Diag</a>(FilenameTok.<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="l00052"></a><span class="lineno">   52</span> }</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span> <span class="comment"></span></div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span> <span class="comment">/// getFileEntry - Return the FileEntry corresponding to this FileID.  Like</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span> <span class="comment">/// getFileID(), this only works for lexers with attached preprocessors.</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorLexer.html#a422d0d7c1a03b38d7589792ef711a945">   56</a></span> <span class="comment"></span><span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a> *<a class="code" href="classclang_1_1PreprocessorLexer.html#a422d0d7c1a03b38d7589792ef711a945">PreprocessorLexer::getFileEntry</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</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#afca276c0a87d413e51e8848edf8f911b">getSourceManager</a>().<a class="code" href="classclang_1_1SourceManager.html#a89a4d1fa8ccc458bce84b0d72b4545db" title="Returns the FileEntry record for the provided FileID.">getFileEntryForID</a>(<a class="code" href="classclang_1_1PreprocessorLexer.html#a3c74055525c62d0053fec3c0084abca8">getFileID</a>());</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</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/PreprocessorLexer_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PreprocessorLexer_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PreprocessorLexer_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PreprocessorLexer_8d_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,322 @@
+<!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: PreprocessorLexer.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">PreprocessorLexer.d</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="PreprocessorLexer_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/PreprocessorLexer.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/PreprocessorLexer.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>  PreprocessorLexer.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>/PreprocessorLexer.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>/MultipleIncludeOpt.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/SourceLocation.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/LLVM.h \</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>  /home/tstellar/llvm/include/llvm/Support/Casting.h \</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>  /home/tstellar/llvm/include/llvm/Support/type_traits.h \</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>  /home/tstellar/llvm/include/llvm/Support/DataTypes.h \</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>  /home/tstellar/llvm/include/llvm/ADT/None.h \</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>  /home/tstellar/llvm/include/llvm/Support/Compiler.h \</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>  /home/tstellar/llvm/include/llvm/Config/llvm-config.h \</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>  /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h \</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>  /home/tstellar/llvm/tools/clang/lib/<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="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/Basic/OperatorKinds.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.def \</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/TemplateKinds.h \</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/TokenKinds.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.def \</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>  /home/tstellar/llvm/include/llvm/ADT/SmallVector.h \</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>  /home/tstellar/llvm/include/llvm/Support/AlignOf.h \</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>  /home/tstellar/llvm/include/llvm/Support/MathExtras.h \</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>  /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h \</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</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="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/include/llvm/ADT/ArrayRef.h \</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>  /home/tstellar/llvm/include/llvm/ADT/DenseSet.h \</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>  /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h \</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>  /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h \</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>  /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h \</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>  /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h \</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>  /home/tstellar/llvm/include/llvm-c/Core.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/LexDiagnostic.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/Diagnostic.h \</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/DiagnosticIDs.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/DiagnosticCommonKinds.inc \</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/Basic/DiagnosticOptions.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/DiagnosticOptions.def \</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/Basic/DiagnosticLexKinds.inc \</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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/Preprocessor.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/Builtins.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/Builtins.def \</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/IdentifierTable.h \</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</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="l00060"></a><span class="lineno">   60</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="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/CommentOptions.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/ObjCRuntime.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/VersionTuple.h \</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>  /home/tstellar/llvm/include/llvm/ADT/Optional.h \</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>  /home/tstellar/llvm/include/llvm/ADT/Triple.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/<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="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/<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="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/Sanitizers.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/Basic/LangOptions.def \</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/Basic/OpenCLExtensions.def \</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>/MacroInfo.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleMap.h \</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</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="l00074"></a><span class="lineno">   74</span>  /home/tstellar/llvm/include/llvm/ADT/SetVector.h \</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>  /home/tstellar/llvm/include/llvm/ADT/SmallSet.h \</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>  /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.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>/PPCallbacks.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>/DirectoryLookup.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>/ModuleLoader.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>/Pragma.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>/PTHLexer.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>/PTHManager.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>/TokenLexer.h</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span> </div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span> /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="l00086"></a><span class="lineno">   86</span> </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>/MultipleIncludeOpt.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/SourceLocation.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/LLVM.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/include/llvm/Support/Casting.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/include/llvm/Support/type_traits.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/DataTypes.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/ADT/None.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/Compiler.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/Config/llvm-config.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/Support/PointerLikeTypeTraits.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/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="l00108"></a><span class="lineno">  108</span> </div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</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="l00110"></a><span class="lineno">  110</span> </div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</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="l00112"></a><span class="lineno">  112</span> </div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</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="l00114"></a><span class="lineno">  114</span> </div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</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="l00116"></a><span class="lineno">  116</span> </div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</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="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/ADT/SmallVector.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/AlignOf.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/Support/MathExtras.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/Support/SwapByteOrder.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/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/SourceManager.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/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/FileManager.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/FileSystemOptions.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/include/llvm/ADT/DenseMap.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/include/llvm/ADT/DenseMapInfo.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/include/llvm/ADT/IntrusiveRefCntPtr.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/include/llvm/ADT/OwningPtr.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/include/llvm/ADT/StringMap.h:</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/include/llvm/ADT/StringRef.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/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h:</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/Support/FileSystem.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/SmallString.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/Twine.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/ErrorHandling.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/include/llvm/Support/TimeValue.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/include/llvm/Support/system_error.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/include/llvm/ADT/ArrayRef.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/DenseSet.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/include/llvm/ADT/PointerIntPair.h:</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/include/llvm/ADT/PointerUnion.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/include/llvm/Support/MemoryBuffer.h:</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span> </div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span> /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.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-c/Core.h:</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span> </div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span> /home/tstellar/llvm/tools/clang/lib/<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="l00174"></a><span class="lineno">  174</span> </div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</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="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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticIDs.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticCommonKinds.inc:</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/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticOptions.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticOptions.def:</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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/DiagnosticLexKinds.inc:</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/<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="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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Builtins.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Builtins.def:</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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/IdentifierTable.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/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="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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/LangOptions.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/CommentOptions.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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/ObjCRuntime.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/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/VersionTuple.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/Optional.h:</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span> </div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span> /home/tstellar/llvm/include/llvm/ADT/Triple.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/<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="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/<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="l00212"></a><span class="lineno">  212</span> </div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Sanitizers.def:</div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span> </div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/LangOptions.def:</div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span> </div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span> /home/tstellar/llvm/tools/clang/lib/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/OpenCLExtensions.def:</div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span> </div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span> /home/tstellar/llvm/tools/clang/lib/<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="l00220"></a><span class="lineno">  220</span> </div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span> /home/tstellar/llvm/tools/clang/lib/<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="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/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/../../include/clang/Basic/Module.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/include/llvm/ADT/SetVector.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/include/llvm/ADT/SmallSet.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/include/llvm/ADT/SmallPtrSet.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/<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="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/<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="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/<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="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/<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="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/<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="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/<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="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/<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><!-- 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/PreprocessorLexer_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PreprocessorLexer_8h_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PreprocessorLexer_8h_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PreprocessorLexer_8h_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,262 @@
+<!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: PreprocessorLexer.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">PreprocessorLexer.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="PreprocessorLexer_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">//===--- PreprocessorLexer.h - C Language Family Lexer ----------*- C++ -*-===//</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">//                     The LLVM Compiler Infrastructure</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment">// This file is distributed under the University of Illinois Open Source</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">// License. See LICENSE.TXT for details.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span> <span class="comment">//===----------------------------------------------------------------------===//</span><span class="comment"></span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span> <span class="comment">/// \file</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="comment">/// \brief Defines the PreprocessorLexer interface.</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> <span class="comment"></span><span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> <span class="preprocessor">#ifndef LLVM_CLANG_PreprocessorLexer_H</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="preprocessor"></span><span class="preprocessor">#define LLVM_CLANG_PreprocessorLexer_H</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="preprocessor">#include "<a class="code" href="MultipleIncludeOpt_8h.html" title="Defines the MultipleIncludeOpt interface.">clang/Lex/MultipleIncludeOpt.h</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="preprocessor">#include "<a class="code" href="Token_8h.html">clang/Lex/Token.h</a>"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="preprocessor">#include "llvm/ADT/SmallVector.h"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="keyword">namespace </span>clang {</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> </div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="keyword">class </span>FileEntry;</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="keyword">class </span>Preprocessor;</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> </div>
+<div class="line"><a name="l00027"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorLexer.html">   27</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1PreprocessorLexer.html">PreprocessorLexer</a> {</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> anchor();</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00030"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorLexer.html#a790cb1b9650fc3ffa24a4af996426e6c">   30</a></span>   <a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> *<a class="code" href="classclang_1_1PreprocessorLexer.html#a790cb1b9650fc3ffa24a4af996426e6c">PP</a>;              <span class="comment">// Preprocessor object controlling lexing.</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span> <span class="comment"></span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span> <span class="comment">  /// The SourceManager FileID corresponding to the file being lexed.</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorLexer.html#af4c32e695548ed31f7b8e169aeae405a">   33</a></span> <span class="comment"></span>  <span class="keyword">const</span> <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>;</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">  /// \brief Number of SLocEntries before lexing the file.</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorLexer.html#accca7faf25860afb98a8abcb82678324">   36</a></span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1PreprocessorLexer.html#accca7faf25860afb98a8abcb82678324" title="Number of SLocEntries before lexing the file.">InitialNumSLocEntries</a>;</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span> </div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>   <span class="comment">//===--------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>   <span class="comment">// Context-specific lexing flags set by the preprocessor.</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>   <span class="comment">//===--------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span> <span class="comment"></span></div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span> <span class="comment">  /// \brief True when parsing \#XXX; turns '\\n' into a tok::eod token.</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorLexer.html#a6388ce47d19b9f7d0c703c643ab903a5">   43</a></span> <span class="comment"></span>  <span class="keywordtype">bool</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="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">  /// \brief True after \#include; turns <xx> into a tok::angle_string_literal</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span> <span class="comment">  /// token.</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorLexer.html#a908e862105c869ab8c205fdd08431b74">   47</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1PreprocessorLexer.html#a908e862105c869ab8c205fdd08431b74" title="True after #include; turns <xx> into a tok::angle_string_literal token.">ParsingFilename</a>;</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">  /// \brief True if in raw mode.</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span> <span class="comment">  /// Raw mode disables interpretation of tokens and is a far faster mode to</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span> <span class="comment">  /// lex in than non-raw-mode.  This flag:</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span> <span class="comment">  ///  1. If EOF of the current lexer is found, the include stack isn't popped.</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span> <span class="comment">  ///  2. Identifier information is not looked up for identifier tokens.  As an</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span> <span class="comment">  ///     effect of this, implicit macro expansion is naturally disabled.</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span> <span class="comment">  ///  3. "#" tokens at the start of a line are treated as normal tokens, not</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span> <span class="comment">  ///     implicitly transformed by the lexer.</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span> <span class="comment">  ///  4. All diagnostic messages are disabled.</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span> <span class="comment">  ///  5. No callbacks are made into the preprocessor.</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span> <span class="comment">  /// Note that in raw mode that the PP pointer may be null.</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorLexer.html#a4aefb1afcc979348454179d95d28a5ba">   62</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1PreprocessorLexer.html#a4aefb1afcc979348454179d95d28a5ba" title="True if in raw mode.">LexingRawMode</a>;</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span> <span class="comment"></span></div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span> <span class="comment">  /// \brief A state machine that detects the \#ifndef-wrapping a file</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span> <span class="comment">  /// idiom for the multiple-include optimization.</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorLexer.html#a76b00d43f7518b466f922843f6fbb138">   66</a></span> <span class="comment"></span>  <a class="code" href="classclang_1_1MultipleIncludeOpt.html" title="Implements the simple state machine that the Lexer class uses to detect files subject to the 'multipl...">MultipleIncludeOpt</a> <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>;</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> <span class="comment">  /// \brief Information about the set of \#if/\#ifdef/\#ifndef blocks</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span> <span class="comment">  /// we are currently in.</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorLexer.html#a61ced6f2bac7be5b564b1329ccc63300">   70</a></span> <span class="comment"></span>  <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<PPConditionalInfo, 4></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>;</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span> </div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>   <a class="code" href="classclang_1_1PreprocessorLexer.html#a9495c74dcf161c7b34b24d26d7810be5">PreprocessorLexer</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1PreprocessorLexer.html">PreprocessorLexer</a> &) LLVM_DELETED_FUNCTION;</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>   <span class="keywordtype">void</span> operator=(const <a class="code" href="classclang_1_1PreprocessorLexer.html">PreprocessorLexer</a> &) LLVM_DELETED_FUNCTION;</div>
+<div class="line"><a name="l00074"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorLexer.html#a0254e5634dcb921b63c1f7507b19b359">   74</a></span>   friend class <a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a>;</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span> </div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>   <a class="code" href="classclang_1_1PreprocessorLexer.html">PreprocessorLexer</a>(Preprocessor *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);</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span> </div>
+<div class="line"><a name="l00078"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorLexer.html#a9495c74dcf161c7b34b24d26d7810be5">   78</a></span>   <a class="code" href="classclang_1_1PreprocessorLexer.html">PreprocessorLexer</a>()</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>     : <a class="code" href="classclang_1_1PreprocessorLexer.html#a790cb1b9650fc3ffa24a4af996426e6c">PP</a>(0), <a class="code" href="classclang_1_1PreprocessorLexer.html#accca7faf25860afb98a8abcb82678324" title="Number of SLocEntries before lexing the file.">InitialNumSLocEntries</a>(0),</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>       <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="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>),</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>       <a class="code" href="classclang_1_1PreprocessorLexer.html#a908e862105c869ab8c205fdd08431b74" title="True after #include; turns <xx> into a tok::angle_string_literal token.">ParsingFilename</a>(false),</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>       <a class="code" href="classclang_1_1PreprocessorLexer.html#a4aefb1afcc979348454179d95d28a5ba" title="True if in raw mode.">LexingRawMode</a>(false) {}</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span> </div>
+<div class="line"><a name="l00084"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorLexer.html#ad4e09c50ece548b079522a87b525b334">   84</a></span>   <span class="keyword">virtual</span> <a class="code" href="classclang_1_1PreprocessorLexer.html#ad4e09c50ece548b079522a87b525b334">~PreprocessorLexer</a>() {}</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span> </div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1PreprocessorLexer.html#a274f969baffa6358d478d006ae41b4a6">IndirectLex</a>(<a class="code" href="classclang_1_1Token.html">Token</a>& Result) = 0;</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span> <span class="comment"></span></div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span> <span class="comment">  /// \brief Return the source location for the next observable location.</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span> <span class="comment"></span>  <span class="keyword">virtual</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_1PreprocessorLexer.html#af283a26175e7b01c780a610c802a5767" title="Return the source location for the next observable location.">getSourceLocation</a>() = 0;</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span> </div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>   <span class="comment">//===--------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>   <span class="comment">// #if directive handling.</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span> <span class="comment"></span></div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span> <span class="comment">  /// pushConditionalLevel - When we enter a \#if directive, this keeps track of</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span> <span class="comment">  /// what we are currently in for diagnostic emission (e.g. \#if with missing</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span> <span class="comment">  /// \#endif).</span></div>
+<div class="line"><a name="l00097"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorLexer.html#a3968b8c3fa5d9d2541a15d8af2e9414d">   97</a></span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1PreprocessorLexer.html#a3968b8c3fa5d9d2541a15d8af2e9414d">pushConditionalLevel</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> DirectiveStart, <span class="keywordtype">bool</span> WasSkipping,</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>                             <span class="keywordtype">bool</span> FoundNonSkip, <span class="keywordtype">bool</span> FoundElse) {</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>     <a class="code" href="structclang_1_1PPConditionalInfo.html" title="Information about the conditional stack (#if directives) currently active.">PPConditionalInfo</a> CI;</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>     CI.<a class="code" href="structclang_1_1PPConditionalInfo.html#aaa75bd80b87e1f8712996d0e0444b1ea" title="Location where the conditional started.">IfLoc</a> = DirectiveStart;</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>     CI.<a class="code" href="structclang_1_1PPConditionalInfo.html#aeb024e3de8d2e6f7e0884348af7413ce" title="True if this was contained in a skipping directive, e.g., in a "\#if 0" block.">WasSkipping</a> = WasSkipping;</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>     CI.<a class="code" href="structclang_1_1PPConditionalInfo.html#a714136e4346529961e233fd178432b49" title="True if we have emitted tokens already, and now we're in an #else block or something. Only useful in Skipping blocks.">FoundNonSkip</a> = FoundNonSkip;</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>     CI.<a class="code" href="structclang_1_1PPConditionalInfo.html#aff1da110bfe6ed2e109de6a791fec9d7" title="True if we've seen a #else in this block. If so, #elif/#else directives are not allowed.">FoundElse</a> = FoundElse;</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</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>.push_back(CI);</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>   }</div>
+<div class="line"><a name="l00106"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorLexer.html#a689d2d4e49981805fe1fcb6d302dbc05">  106</a></span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1PreprocessorLexer.html#a689d2d4e49981805fe1fcb6d302dbc05">pushConditionalLevel</a>(<span class="keyword">const</span> <a class="code" href="structclang_1_1PPConditionalInfo.html" title="Information about the conditional stack (#if directives) currently active.">PPConditionalInfo</a> &CI) {</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</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>.push_back(CI);</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"></span></div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span> <span class="comment">  /// popConditionalLevel - Remove an entry off the top of the conditional</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span> <span class="comment">  /// stack, returning information about it.  If the conditional stack is empty,</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span> <span class="comment">  /// this returns true and does not fill in the arguments.</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorLexer.html#a8b08635b456503da08924de9ebb30ed2">  113</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1PreprocessorLexer.html#a8b08635b456503da08924de9ebb30ed2">popConditionalLevel</a>(<a class="code" href="structclang_1_1PPConditionalInfo.html" title="Information about the conditional stack (#if directives) currently active.">PPConditionalInfo</a> &CI) {</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>     <span class="keywordflow">if</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="l00115"></a><span class="lineno">  115</span>       <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>     CI = <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_val();</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</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> <span class="comment"></span></div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span> <span class="comment">  /// \brief Return the top of the conditional stack.</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span> <span class="comment">  /// \pre This requires that there be a conditional active.</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorLexer.html#ac1d2977a512b1bbc8fa802d92564810d">  122</a></span> <span class="comment"></span>  <a class="code" href="structclang_1_1PPConditionalInfo.html" title="Information about the conditional stack (#if directives) currently active.">PPConditionalInfo</a> &<a class="code" href="classclang_1_1PreprocessorLexer.html#ac1d2977a512b1bbc8fa802d92564810d" title="Return the top of the conditional stack.">peekConditionalLevel</a>() {</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>     assert(!<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() && <span class="stringliteral">"No conditionals active!"</span>);</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>     <span class="keywordflow">return</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>.back();</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"><a class="code" href="classclang_1_1PreprocessorLexer.html#a36a7490cb33de4544dad12b7af760cfd">  127</a></span>   <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1PreprocessorLexer.html#a36a7490cb33de4544dad12b7af760cfd">getConditionalStackDepth</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</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>.size(); }</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="keyword">public</span>:</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span> </div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>   <span class="comment">//===--------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>   <span class="comment">// Misc. lexing methods.</span></div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span> <span class="comment"></span></div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span> <span class="comment">  /// \brief After the preprocessor has parsed a \#include, lex and</span></div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span> <span class="comment">  /// (potentially) macro expand the filename.</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span> <span class="comment">  /// If the sequence parsed is not lexically legal, emit a diagnostic and</span></div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span> <span class="comment">  /// return a result EOD token.</span></div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span> <span class="comment"></span>  <span class="keywordtype">void</span> <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>(<a class="code" href="classclang_1_1Token.html">Token</a> &Result);</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span> <span class="comment"></span></div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span> <span class="comment">  /// \brief Inform the lexer whether or not we are currently lexing a</span></div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span> <span class="comment">  /// preprocessor directive.</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorLexer.html#a6177768dde6e4d313d27fb585569c17c">  143</a></span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1PreprocessorLexer.html#a6177768dde6e4d313d27fb585569c17c" title="Inform the lexer whether or not we are currently lexing a preprocessor directive.">setParsingPreprocessorDirective</a>(<span class="keywordtype">bool</span> f) {</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>     <a class="code" href="classclang_1_1PreprocessorLexer.html#a6388ce47d19b9f7d0c703c643ab903a5" title="True when parsing #XXX; turns '\n' into a tok::eod token.">ParsingPreprocessorDirective</a> = f;</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"></span></div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span> <span class="comment">  /// \brief Return true if this lexer is in raw mode or not.</span></div>
+<div class="line"><a name="l00148"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorLexer.html#a0b5599b639eac3ce0ddd4c12399f36c8">  148</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1PreprocessorLexer.html#a0b5599b639eac3ce0ddd4c12399f36c8" title="Return true if this lexer is in raw mode or not.">isLexingRawMode</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classclang_1_1PreprocessorLexer.html#a4aefb1afcc979348454179d95d28a5ba" title="True if in raw mode.">LexingRawMode</a>; }</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span> <span class="comment"></span></div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span> <span class="comment">  /// \brief Return the preprocessor object for this lexer.</span></div>
+<div class="line"><a name="l00151"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorLexer.html#a613fe75b25faf2e31ac309a110e8ea4b">  151</a></span> <span class="comment"></span>  <a class="code" href="classclang_1_1Preprocessor.html">Preprocessor</a> *<a class="code" href="classclang_1_1PreprocessorLexer.html#a613fe75b25faf2e31ac309a110e8ea4b" title="Return the preprocessor object for this lexer.">getPP</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classclang_1_1PreprocessorLexer.html#a790cb1b9650fc3ffa24a4af996426e6c">PP</a>; }</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span> </div>
+<div class="line"><a name="l00153"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorLexer.html#a3c74055525c62d0053fec3c0084abca8">  153</a></span>   <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#a3c74055525c62d0053fec3c0084abca8">getFileID</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>     assert(<a class="code" href="classclang_1_1PreprocessorLexer.html#a790cb1b9650fc3ffa24a4af996426e6c">PP</a> &&</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>       <span class="stringliteral">"PreprocessorLexer::getFileID() should only be used with a Preprocessor"</span>);</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1PreprocessorLexer.html#af4c32e695548ed31f7b8e169aeae405a" title="The SourceManager FileID corresponding to the file being lexed.">FID</a>;</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> <span class="comment"></span></div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span> <span class="comment">  /// \brief Number of SLocEntries before lexing the file.</span></div>
+<div class="line"><a name="l00160"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorLexer.html#ab16c7adb9c9fb156bd32c23b3706c291">  160</a></span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1PreprocessorLexer.html#ab16c7adb9c9fb156bd32c23b3706c291" title="Number of SLocEntries before lexing the file.">getInitialNumSLocEntries</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1PreprocessorLexer.html#accca7faf25860afb98a8abcb82678324" title="Number of SLocEntries before lexing the file.">InitialNumSLocEntries</a>;</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>   }</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span> <span class="comment"></span></div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span> <span class="comment">  /// getFileEntry - Return the FileEntry corresponding to this FileID.  Like</span></div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span> <span class="comment">  /// getFileID(), this only works for lexers with attached preprocessors.</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span> <span class="comment"></span>  <span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a> *<a class="code" href="classclang_1_1PreprocessorLexer.html#a422d0d7c1a03b38d7589792ef711a945">getFileEntry</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span> <span class="comment"></span></div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span> <span class="comment">  /// \brief Iterator that traverses the current stack of preprocessor</span></div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span> <span class="comment">  /// conditional directives (\#if/\#ifdef/\#ifndef).</span></div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span> <span class="comment"></span>  <span class="keyword">typedef</span> <a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<PPConditionalInfo>::const_iterator</a> </div>
+<div class="line"><a name="l00171"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorLexer.html#a5a712d5ee3c47fa8277f090ad2209ec2">  171</a></span>     <a class="code" href="classclang_1_1PreprocessorLexer.html#a5a712d5ee3c47fa8277f090ad2209ec2" title="Iterator that traverses the current stack of preprocessor conditional directives (#if/#ifdef/#ifndef)...">conditional_iterator</a>;</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span> </div>
+<div class="line"><a name="l00173"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorLexer.html#a57a6aab135f6f3f1884a320f55826af1">  173</a></span>   <a class="code" href="classclang_1_1PreprocessorLexer.html#a5a712d5ee3c47fa8277f090ad2209ec2" title="Iterator that traverses the current stack of preprocessor conditional directives (#if/#ifdef/#ifndef)...">conditional_iterator</a> <a class="code" href="classclang_1_1PreprocessorLexer.html#a57a6aab135f6f3f1884a320f55826af1">conditional_begin</a>()<span class="keyword"> const </span>{ </div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>     <span class="keywordflow">return</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>.begin(); </div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>   }</div>
+<div class="line"><a name="l00176"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorLexer.html#a7b258ca268ee0feca7065f5bc85f165b">  176</a></span>   <a class="code" href="classclang_1_1PreprocessorLexer.html#a5a712d5ee3c47fa8277f090ad2209ec2" title="Iterator that traverses the current stack of preprocessor conditional directives (#if/#ifdef/#ifndef)...">conditional_iterator</a> <a class="code" href="classclang_1_1PreprocessorLexer.html#a7b258ca268ee0feca7065f5bc85f165b">conditional_end</a>()<span class="keyword"> const </span>{ </div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>     <span class="keywordflow">return</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>.end(); </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> };</div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span> </div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span> }  <span class="comment">// end namespace clang</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span> </div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span> <span class="preprocessor">#endif</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/PreprocessorOptions_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PreprocessorOptions_8h_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PreprocessorOptions_8h_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PreprocessorOptions_8h_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,312 @@
+<!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: PreprocessorOptions.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">PreprocessorOptions.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="PreprocessorOptions_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">//===--- PreprocessorOptions.h ----------------------------------*- C++ -*-===//</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">//                     The LLVM Compiler Infrastructure</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment">// This file is distributed under the University of Illinois Open Source</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">// License. See LICENSE.TXT for details.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span> </div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span> <span class="preprocessor">#ifndef LLVM_CLANG_LEX_PREPROCESSOROPTIONS_H_</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="preprocessor"></span><span class="preprocessor">#define LLVM_CLANG_LEX_PREPROCESSOROPTIONS_H_</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> <span class="preprocessor">#include "<a class="code" href="SourceLocation_8h.html" title="Defines the clang::SourceLocation class and associated facilities.">clang/Basic/SourceLocation.h</a>"</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> <span class="preprocessor">#include "llvm/ADT/IntrusiveRefCntPtr.h"</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> <span class="preprocessor">#include "llvm/ADT/SmallVector.h"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="preprocessor">#include "llvm/ADT/StringRef.h"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="preprocessor">#include "llvm/ADT/StringSet.h"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="preprocessor">#include <cassert></span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="preprocessor">#include <set></span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="preprocessor">#include <string></span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="preprocessor">#include <utility></span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="preprocessor">#include <vector></span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> </div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="keyword">namespace </span>llvm {</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>   <span class="keyword">class </span>MemoryBuffer;</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> }</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> </div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="keyword">namespace </span>clang {</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="keyword">class </span>Preprocessor;</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span> <span class="keyword">class </span>LangOptions;</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span> <span class="comment"></span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span> <span class="comment">/// \brief Enumerate the kinds of standard library that </span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"><a class="code" href="namespaceclang.html#a6d30ae8d7e08d15996da55cf93877d55">   34</a></span> <span class="comment"></span><span class="keyword">enum</span> <a class="code" href="namespaceclang.html#a6d30ae8d7e08d15996da55cf93877d55" title="Enumerate the kinds of standard library that.">ObjCXXARCStandardLibraryKind</a> {</div>
+<div class="line"><a name="l00035"></a><span class="lineno"><a class="code" href="namespaceclang.html#a6d30ae8d7e08d15996da55cf93877d55a6ff99b448e2797128b7f2065f3043d36">   35</a></span>   <a class="code" href="namespaceclang.html#a6d30ae8d7e08d15996da55cf93877d55a6ff99b448e2797128b7f2065f3043d36">ARCXX_nolib</a>,<span class="comment"></span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span> <span class="comment">  /// \brief libc++</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"><a class="code" href="namespaceclang.html#a6d30ae8d7e08d15996da55cf93877d55a33c6ddd125a3f144029d859dc45b5c01">   37</a></span> <span class="comment"></span>  <a class="code" href="namespaceclang.html#a6d30ae8d7e08d15996da55cf93877d55a33c6ddd125a3f144029d859dc45b5c01" title="libc++">ARCXX_libcxx</a>,<span class="comment"></span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span> <span class="comment">  /// \brief libstdc++</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"><a class="code" href="namespaceclang.html#a6d30ae8d7e08d15996da55cf93877d55a9fd85370c60b0ff305cd2203fb1646f7">   39</a></span> <span class="comment"></span>  <a class="code" href="namespaceclang.html#a6d30ae8d7e08d15996da55cf93877d55a9fd85370c60b0ff305cd2203fb1646f7" title="libstdc++">ARCXX_libstdcxx</a></div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span> };</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>   <span class="comment"></span></div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span> <span class="comment">/// PreprocessorOptions - This class is used for passing the various options</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span> <span class="comment">/// used in preprocessor initialization to InitializePreprocessor().</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOptions.html">   44</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1PreprocessorOptions.html">PreprocessorOptions</a> : <span class="keyword">public</span> <a class="code" href="classllvm_1_1RefCountedBase.html">RefCountedBase</a><PreprocessorOptions> {</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00046"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOptions.html#ae048445dc7b1036784a71d057eb803c1">   46</a></span>   std::vector<std::pair<std::string, <span class="keywordtype">bool</span><span class="comment">/*isUndef*/</span>> > <a class="code" href="classclang_1_1PreprocessorOptions.html#ae048445dc7b1036784a71d057eb803c1">Macros</a>;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOptions.html#a1d10fb5b3335d765ea61e5a5cf3e1821">   47</a></span>   std::vector<std::string> <a class="code" href="classclang_1_1PreprocessorOptions.html#a1d10fb5b3335d765ea61e5a5cf3e1821">Includes</a>;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOptions.html#a1ab7a198bfde2831a06b9716986eab3b">   48</a></span>   std::vector<std::string> <a class="code" href="classclang_1_1PreprocessorOptions.html#a1ab7a198bfde2831a06b9716986eab3b">MacroIncludes</a>;</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span> <span class="comment"></span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span> <span class="comment">  /// \brief Initialize the preprocessor with the compiler and target specific</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span> <span class="comment">  /// predefines.</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOptions.html#a6bf6504a1e99a33278fc9918525482be">   52</a></span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1PreprocessorOptions.html#a6bf6504a1e99a33278fc9918525482be" title="Initialize the preprocessor with the compiler and target specific predefines.">UsePredefines</a> : 1;</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span> <span class="comment"></span></div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span> <span class="comment">  /// \brief Whether we should maintain a detailed record of all macro</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span> <span class="comment">  /// definitions and expansions.</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOptions.html#af9425f8ba984d1f17bbf5417bb45fb94">   56</a></span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1PreprocessorOptions.html#af9425f8ba984d1f17bbf5417bb45fb94" title="Whether we should maintain a detailed record of all macro definitions and expansions.">DetailedRecord</a> : 1;</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">  /// The implicit PCH included at the start of the translation unit, or empty.</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOptions.html#ab62f6211f45e53fb6a45ad84d2a87657">   59</a></span> <span class="comment"></span>  std::string <a class="code" href="classclang_1_1PreprocessorOptions.html#ab62f6211f45e53fb6a45ad84d2a87657" title="The implicit PCH included at the start of the translation unit, or empty.">ImplicitPCHInclude</a>;</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span> <span class="comment"></span></div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span> <span class="comment">  /// \brief Headers that will be converted to chained PCHs in memory.</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOptions.html#a9fdef652629b16e746a78455a9edae46">   62</a></span> <span class="comment"></span>  std::vector<std::string> <a class="code" href="classclang_1_1PreprocessorOptions.html#a9fdef652629b16e746a78455a9edae46" title="Headers that will be converted to chained PCHs in memory.">ChainedIncludes</a>;</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span> <span class="comment"></span></div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span> <span class="comment">  /// \brief When true, disables most of the normal validation performed on</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span> <span class="comment">  /// precompiled headers.</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOptions.html#afbbf74f590f04a8fb30bb1c63547d828">   66</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1PreprocessorOptions.html#afbbf74f590f04a8fb30bb1c63547d828" title="When true, disables most of the normal validation performed on precompiled headers.">DisablePCHValidation</a>;</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> <span class="comment">  /// \brief When true, a PCH with compiler errors will not be rejected.</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOptions.html#af6e9d99354f380a90bb472af9e036f0b">   69</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1PreprocessorOptions.html#af6e9d99354f380a90bb472af9e036f0b" title="When true, a PCH with compiler errors will not be rejected.">AllowPCHWithCompilerErrors</a>;</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">  /// \brief Dump declarations that are deserialized from PCH, for testing.</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOptions.html#acadb5dbd310ada9e432ad75bd121ee57">   72</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1PreprocessorOptions.html#acadb5dbd310ada9e432ad75bd121ee57" title="Dump declarations that are deserialized from PCH, for testing.">DumpDeserializedPCHDecls</a>;</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span> <span class="comment"></span></div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span> <span class="comment">  /// \brief This is a set of names for decls that we do not want to be</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span> <span class="comment">  /// deserialized, and we emit an error if they are; for testing purposes.</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOptions.html#a7c59d36494a0b72f4a87e75f05b25d14">   76</a></span> <span class="comment"></span>  std::set<std::string> <a class="code" href="classclang_1_1PreprocessorOptions.html#a7c59d36494a0b72f4a87e75f05b25d14" title="This is a set of names for decls that we do not want to be deserialized, and we emit an error if they...">DeserializedPCHDeclsToErrorOn</a>;</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span> <span class="comment"></span></div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span> <span class="comment">  /// \brief If non-zero, the implicit PCH include is actually a precompiled</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span> <span class="comment">  /// preamble that covers this number of bytes in the main source file.</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span> <span class="comment">  /// The boolean indicates whether the preamble ends at the start of a new</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span> <span class="comment">  /// line.</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOptions.html#a24671d094917020114917c55ee0c7a11">   83</a></span> <span class="comment"></span>  std::pair<unsigned, bool> <a class="code" href="classclang_1_1PreprocessorOptions.html#a24671d094917020114917c55ee0c7a11" title="If non-zero, the implicit PCH include is actually a precompiled preamble that covers this number of b...">PrecompiledPreambleBytes</a>;</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">  /// The implicit PTH input included at the start of the translation unit, or</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span> <span class="comment">  /// empty.</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOptions.html#a0c36fcce055469acd070d560240f6179">   87</a></span> <span class="comment"></span>  std::string <a class="code" href="classclang_1_1PreprocessorOptions.html#a0c36fcce055469acd070d560240f6179">ImplicitPTHInclude</a>;</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span> <span class="comment"></span></div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span> <span class="comment">  /// If given, a PTH cache file to use for speeding up header parsing.</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOptions.html#ac38e47eee0f784a0d059cffb5d5e568d">   90</a></span> <span class="comment"></span>  std::string <a class="code" href="classclang_1_1PreprocessorOptions.html#ac38e47eee0f784a0d059cffb5d5e568d" title="If given, a PTH cache file to use for speeding up header parsing.">TokenCache</a>;</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span> <span class="comment"></span></div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span> <span class="comment">  /// \brief True if the SourceManager should report the original file name for</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span> <span class="comment">  /// contents of files that were remapped to other files. Defaults to true.</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOptions.html#a30f576ae311b7fd39a265a41ab6ab09c">   94</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1PreprocessorOptions.html#a30f576ae311b7fd39a265a41ab6ab09c" title="True if the SourceManager should report the original file name for contents of files that were remapp...">RemappedFilesKeepOriginalName</a>;</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span> <span class="comment"></span></div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span> <span class="comment">  /// \brief The set of file remappings, which take existing files on</span></div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span> <span class="comment">  /// the system (the first part of each pair) and gives them the</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span> <span class="comment">  /// contents of other files on the system (the second part of each</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span> <span class="comment">  /// pair).</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOptions.html#a11b97305b8df1f4e76020ff6af11acbc">  100</a></span> <span class="comment"></span>  std::vector<std::pair<std::string, std::string> >  <a class="code" href="classclang_1_1PreprocessorOptions.html#a11b97305b8df1f4e76020ff6af11acbc" title="The set of file remappings, which take existing files on the system (the first part of each pair) and...">RemappedFiles</a>;</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span> <span class="comment"></span></div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span> <span class="comment">  /// \brief The set of file-to-buffer remappings, which take existing files</span></div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span> <span class="comment">  /// on the system (the first part of each pair) and gives them the contents</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span> <span class="comment">  /// of the specified memory buffer (the second part of each pair).</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span> <span class="comment"></span>  std::vector<std::pair<std::string, const llvm::MemoryBuffer *> > </div>
+<div class="line"><a name="l00106"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOptions.html#a8873b10c898edc978ee7e9cb242077bf">  106</a></span>     <a class="code" href="classclang_1_1PreprocessorOptions.html#a8873b10c898edc978ee7e9cb242077bf" title="The set of file-to-buffer remappings, which take existing files on the system (the first part of each...">RemappedFileBuffers</a>;</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>   <span class="comment"></span></div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span> <span class="comment">  /// \brief Whether the compiler instance should retain (i.e., not free)</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span> <span class="comment">  /// the buffers associated with remapped files.</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span> <span class="comment">  /// This flag defaults to false; it can be set true only through direct</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span> <span class="comment">  /// manipulation of the compiler invocation object, in cases where the </span></div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span> <span class="comment">  /// compiler invocation and its buffers will be reused.</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOptions.html#a47eb4ea58ec9f1b60266df38f6840ed6">  114</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1PreprocessorOptions.html#a47eb4ea58ec9f1b60266df38f6840ed6" title="Whether the compiler instance should retain (i.e., not free) the buffers associated with remapped fil...">RetainRemappedFileBuffers</a>;</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>   <span class="comment"></span></div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span> <span class="comment">  /// \brief The Objective-C++ ARC standard library that we should support,</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span> <span class="comment">  /// by providing appropriate definitions to retrofit the standard library</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span> <span class="comment">  /// with support for lifetime-qualified pointers.</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOptions.html#a539b6d0619bceaaf15a2cee0d0280fe8">  119</a></span> <span class="comment"></span>  <a class="code" href="namespaceclang.html#a6d30ae8d7e08d15996da55cf93877d55" title="Enumerate the kinds of standard library that.">ObjCXXARCStandardLibraryKind</a> <a class="code" href="classclang_1_1PreprocessorOptions.html#a539b6d0619bceaaf15a2cee0d0280fe8" title="The Objective-C++ ARC standard library that we should support, by providing appropriate definitions t...">ObjCXXARCStandardLibrary</a>;</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>     <span class="comment"></span></div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span> <span class="comment">  /// \brief Records the set of modules</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOptions_1_1FailedModulesSet.html">  122</a></span> <span class="comment"></span>  <span class="keyword">class </span><a class="code" href="classclang_1_1PreprocessorOptions_1_1FailedModulesSet.html" title="Records the set of modules.">FailedModulesSet</a> : <span class="keyword">public</span> <a class="code" href="classllvm_1_1RefCountedBase.html">RefCountedBase</a><FailedModulesSet> {</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>     llvm::StringSet<> Failed;</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>   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00126"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOptions_1_1FailedModulesSet.html#a15852d5afc4fd4bdcc240a1b226c5d84">  126</a></span>     <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1PreprocessorOptions_1_1FailedModulesSet.html#a15852d5afc4fd4bdcc240a1b226c5d84">hasAlreadyFailed</a>(StringRef module) {</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>       <span class="keywordflow">return</span> Failed.count(module) > 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> </div>
+<div class="line"><a name="l00130"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOptions_1_1FailedModulesSet.html#a90e5563bfb8cee4efb908ae1b5761cf9">  130</a></span>     <span class="keywordtype">void</span> <a class="code" href="classclang_1_1PreprocessorOptions_1_1FailedModulesSet.html#a90e5563bfb8cee4efb908ae1b5761cf9">addFailed</a>(StringRef module) {</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>       Failed.insert(module);</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>   };</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>   <span class="comment"></span></div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span> <span class="comment">  /// \brief The set of modules that failed to build.</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span> <span class="comment">  /// This pointer will be shared among all of the compiler instances created</span></div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span> <span class="comment">  /// to (re)build modules, so that once a module fails to build anywhere,</span></div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span> <span class="comment">  /// other instances will see that the module has failed and won't try to</span></div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span> <span class="comment">  /// build it again.</span></div>
+<div class="line"><a name="l00141"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOptions.html#adb8e88ad71e7890a8d54a6911fb1f8a6">  141</a></span> <span class="comment"></span>  <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">IntrusiveRefCntPtr<FailedModulesSet></a> <a class="code" href="classclang_1_1PreprocessorOptions.html#adb8e88ad71e7890a8d54a6911fb1f8a6" title="The set of modules that failed to build.">FailedModules</a>;</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>   <span class="keyword">typedef</span> std::vector<std::pair<std::string, std::string> >::iterator</div>
+<div class="line"><a name="l00144"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOptions.html#aef94959d8758bafb3c055b60f60f36e1">  144</a></span>     <a class="code" href="classclang_1_1PreprocessorOptions.html#aef94959d8758bafb3c055b60f60f36e1">remapped_file_iterator</a>;</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>   <span class="keyword">typedef</span> std::vector<std::pair<std::string, std::string> >::const_iterator</div>
+<div class="line"><a name="l00146"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOptions.html#a5fa3de1bfdb51e0eafc436af0218dcac">  146</a></span>     <a class="code" href="classclang_1_1PreprocessorOptions.html#a5fa3de1bfdb51e0eafc436af0218dcac">const_remapped_file_iterator</a>;</div>
+<div class="line"><a name="l00147"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOptions.html#abe25a6b063b462346902351a75bb6543">  147</a></span>   <a class="code" href="classclang_1_1PreprocessorOptions.html#aef94959d8758bafb3c055b60f60f36e1">remapped_file_iterator</a> <a class="code" href="classclang_1_1PreprocessorOptions.html#abe25a6b063b462346902351a75bb6543">remapped_file_begin</a>() { </div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1PreprocessorOptions.html#a11b97305b8df1f4e76020ff6af11acbc" title="The set of file remappings, which take existing files on the system (the first part of each pair) and...">RemappedFiles</a>.begin();</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>   }</div>
+<div class="line"><a name="l00150"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOptions.html#a9cc0e1b365deae8ba09c828528914ce1">  150</a></span>   <a class="code" href="classclang_1_1PreprocessorOptions.html#a5fa3de1bfdb51e0eafc436af0218dcac">const_remapped_file_iterator</a> <a class="code" href="classclang_1_1PreprocessorOptions.html#a9cc0e1b365deae8ba09c828528914ce1">remapped_file_begin</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1PreprocessorOptions.html#a11b97305b8df1f4e76020ff6af11acbc" title="The set of file remappings, which take existing files on the system (the first part of each pair) and...">RemappedFiles</a>.begin();</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>   }</div>
+<div class="line"><a name="l00153"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOptions.html#a2f5ff2fffec1ee5f0b8516973d9dbd67">  153</a></span>   <a class="code" href="classclang_1_1PreprocessorOptions.html#aef94959d8758bafb3c055b60f60f36e1">remapped_file_iterator</a> <a class="code" href="classclang_1_1PreprocessorOptions.html#a2f5ff2fffec1ee5f0b8516973d9dbd67">remapped_file_end</a>() { </div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1PreprocessorOptions.html#a11b97305b8df1f4e76020ff6af11acbc" title="The set of file remappings, which take existing files on the system (the first part of each pair) and...">RemappedFiles</a>.end();</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>   }</div>
+<div class="line"><a name="l00156"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOptions.html#a3f4ed815359bd605284e39b49be0ca5a">  156</a></span>   <a class="code" href="classclang_1_1PreprocessorOptions.html#a5fa3de1bfdb51e0eafc436af0218dcac">const_remapped_file_iterator</a> <a class="code" href="classclang_1_1PreprocessorOptions.html#a3f4ed815359bd605284e39b49be0ca5a">remapped_file_end</a>()<span class="keyword"> const </span>{ </div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1PreprocessorOptions.html#a11b97305b8df1f4e76020ff6af11acbc" title="The set of file remappings, which take existing files on the system (the first part of each pair) and...">RemappedFiles</a>.end();</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> </div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>   <span class="keyword">typedef</span> std::vector<std::pair<std::string, const llvm::MemoryBuffer *> >::</div>
+<div class="line"><a name="l00161"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOptions.html#ab5d93562d1b5eeae0b618779ccd34f5a">  161</a></span>                                   iterator <a class="code" href="classclang_1_1PreprocessorOptions.html#ab5d93562d1b5eeae0b618779ccd34f5a">remapped_file_buffer_iterator</a>;</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>   <span class="keyword">typedef</span> std::vector<std::pair<std::string, const llvm::MemoryBuffer *> >::</div>
+<div class="line"><a name="l00163"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOptions.html#aaf3bf659abf17ddfa6b2593cbe048b9e">  163</a></span>                             const_iterator <a class="code" href="classclang_1_1PreprocessorOptions.html#aaf3bf659abf17ddfa6b2593cbe048b9e">const_remapped_file_buffer_iterator</a>;</div>
+<div class="line"><a name="l00164"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOptions.html#af278ce7e3d51c74252c8b4e00dc7f42b">  164</a></span>   <a class="code" href="classclang_1_1PreprocessorOptions.html#ab5d93562d1b5eeae0b618779ccd34f5a">remapped_file_buffer_iterator</a> <a class="code" href="classclang_1_1PreprocessorOptions.html#af278ce7e3d51c74252c8b4e00dc7f42b">remapped_file_buffer_begin</a>() {</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1PreprocessorOptions.html#a8873b10c898edc978ee7e9cb242077bf" title="The set of file-to-buffer remappings, which take existing files on the system (the first part of each...">RemappedFileBuffers</a>.begin();</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>   }</div>
+<div class="line"><a name="l00167"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOptions.html#a9808a1a3fb785d34adf2287012e062ea">  167</a></span>   <a class="code" href="classclang_1_1PreprocessorOptions.html#aaf3bf659abf17ddfa6b2593cbe048b9e">const_remapped_file_buffer_iterator</a> <a class="code" href="classclang_1_1PreprocessorOptions.html#a9808a1a3fb785d34adf2287012e062ea">remapped_file_buffer_begin</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1PreprocessorOptions.html#a8873b10c898edc978ee7e9cb242077bf" title="The set of file-to-buffer remappings, which take existing files on the system (the first part of each...">RemappedFileBuffers</a>.begin();</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>   }</div>
+<div class="line"><a name="l00170"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOptions.html#af80ead86d2fa9d64e8e3cd8f76a65263">  170</a></span>   <a class="code" href="classclang_1_1PreprocessorOptions.html#ab5d93562d1b5eeae0b618779ccd34f5a">remapped_file_buffer_iterator</a> <a class="code" href="classclang_1_1PreprocessorOptions.html#af80ead86d2fa9d64e8e3cd8f76a65263">remapped_file_buffer_end</a>() {</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1PreprocessorOptions.html#a8873b10c898edc978ee7e9cb242077bf" title="The set of file-to-buffer remappings, which take existing files on the system (the first part of each...">RemappedFileBuffers</a>.end();</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>   }</div>
+<div class="line"><a name="l00173"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOptions.html#ad78bb67ece62a236edaf35d4b1acbec1">  173</a></span>   <a class="code" href="classclang_1_1PreprocessorOptions.html#aaf3bf659abf17ddfa6b2593cbe048b9e">const_remapped_file_buffer_iterator</a> <a class="code" href="classclang_1_1PreprocessorOptions.html#ad78bb67ece62a236edaf35d4b1acbec1">remapped_file_buffer_end</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1PreprocessorOptions.html#a8873b10c898edc978ee7e9cb242077bf" title="The set of file-to-buffer remappings, which take existing files on the system (the first part of each...">RemappedFileBuffers</a>.end();</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>   }</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>   </div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00178"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOptions.html#aceabececff778137c45c7331ec9cc1c3">  178</a></span>   <a class="code" href="classclang_1_1PreprocessorOptions.html#aceabececff778137c45c7331ec9cc1c3">PreprocessorOptions</a>() : <a class="code" href="classclang_1_1PreprocessorOptions.html#a6bf6504a1e99a33278fc9918525482be" title="Initialize the preprocessor with the compiler and target specific predefines.">UsePredefines</a>(<a class="code" href="stdbool_8h.html#a41f9c5fb8b08eb5dc3edce4dcb37fee7">true</a>), <a class="code" href="classclang_1_1PreprocessorOptions.html#af9425f8ba984d1f17bbf5417bb45fb94" title="Whether we should maintain a detailed record of all macro definitions and expansions.">DetailedRecord</a>(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>),</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>                           <a class="code" href="classclang_1_1PreprocessorOptions.html#afbbf74f590f04a8fb30bb1c63547d828" title="When true, disables most of the normal validation performed on precompiled headers.">DisablePCHValidation</a>(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>),</div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>                           <a class="code" href="classclang_1_1PreprocessorOptions.html#af6e9d99354f380a90bb472af9e036f0b" title="When true, a PCH with compiler errors will not be rejected.">AllowPCHWithCompilerErrors</a>(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>),</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>                           <a class="code" href="classclang_1_1PreprocessorOptions.html#acadb5dbd310ada9e432ad75bd121ee57" title="Dump declarations that are deserialized from PCH, for testing.">DumpDeserializedPCHDecls</a>(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>),</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>                           <a class="code" href="classclang_1_1PreprocessorOptions.html#a24671d094917020114917c55ee0c7a11" title="If non-zero, the implicit PCH include is actually a precompiled preamble that covers this number of b...">PrecompiledPreambleBytes</a>(0, <a class="code" href="stdbool_8h.html#a41f9c5fb8b08eb5dc3edce4dcb37fee7">true</a>),</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>                           <a class="code" href="classclang_1_1PreprocessorOptions.html#a30f576ae311b7fd39a265a41ab6ab09c" title="True if the SourceManager should report the original file name for contents of files that were remapp...">RemappedFilesKeepOriginalName</a>(<a class="code" href="stdbool_8h.html#a41f9c5fb8b08eb5dc3edce4dcb37fee7">true</a>),</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>                           <a class="code" href="classclang_1_1PreprocessorOptions.html#a47eb4ea58ec9f1b60266df38f6840ed6" title="Whether the compiler instance should retain (i.e., not free) the buffers associated with remapped fil...">RetainRemappedFileBuffers</a>(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>),</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>                           <a class="code" href="classclang_1_1PreprocessorOptions.html#a539b6d0619bceaaf15a2cee0d0280fe8" title="The Objective-C++ ARC standard library that we should support, by providing appropriate definitions t...">ObjCXXARCStandardLibrary</a>(<a class="code" href="namespaceclang.html#a6d30ae8d7e08d15996da55cf93877d55a6ff99b448e2797128b7f2065f3043d36">ARCXX_nolib</a>) { }</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span> </div>
+<div class="line"><a name="l00187"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOptions.html#a8cd0a8b49f2a5daf7a2397f2ffe037e2">  187</a></span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1PreprocessorOptions.html#a8cd0a8b49f2a5daf7a2397f2ffe037e2">addMacroDef</a>(StringRef Name) {</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>     <a class="code" href="classclang_1_1PreprocessorOptions.html#ae048445dc7b1036784a71d057eb803c1">Macros</a>.push_back(std::make_pair(Name, <span class="keyword">false</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"><a class="code" href="classclang_1_1PreprocessorOptions.html#a60d52bb936d5075235618c7f17fae70b">  190</a></span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1PreprocessorOptions.html#a60d52bb936d5075235618c7f17fae70b">addMacroUndef</a>(StringRef Name) {</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>     <a class="code" href="classclang_1_1PreprocessorOptions.html#ae048445dc7b1036784a71d057eb803c1">Macros</a>.push_back(std::make_pair(Name, <span class="keyword">true</span>));</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>   }</div>
+<div class="line"><a name="l00193"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOptions.html#ad3696370ca31e4f1b5871cb7d58f589f">  193</a></span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1PreprocessorOptions.html#ad3696370ca31e4f1b5871cb7d58f589f">addRemappedFile</a>(StringRef From, StringRef To) {</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>     <a class="code" href="classclang_1_1PreprocessorOptions.html#a11b97305b8df1f4e76020ff6af11acbc" title="The set of file remappings, which take existing files on the system (the first part of each pair) and...">RemappedFiles</a>.push_back(std::make_pair(From, To));</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>   }</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>   </div>
+<div class="line"><a name="l00197"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOptions.html#add722741ec7cbaef2e78c0b7fda1918b">  197</a></span>   <a class="code" href="classclang_1_1PreprocessorOptions.html#aef94959d8758bafb3c055b60f60f36e1">remapped_file_iterator</a> <a class="code" href="classclang_1_1PreprocessorOptions.html#add722741ec7cbaef2e78c0b7fda1918b">eraseRemappedFile</a>(<a class="code" href="classclang_1_1PreprocessorOptions.html#aef94959d8758bafb3c055b60f60f36e1">remapped_file_iterator</a> Remapped) {</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1PreprocessorOptions.html#a11b97305b8df1f4e76020ff6af11acbc" title="The set of file remappings, which take existing files on the system (the first part of each pair) and...">RemappedFiles</a>.erase(Remapped);</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>   </div>
+<div class="line"><a name="l00201"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOptions.html#a1857bcdfd56c0b332d432083ef309f27">  201</a></span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1PreprocessorOptions.html#a1857bcdfd56c0b332d432083ef309f27">addRemappedFile</a>(StringRef From, <span class="keyword">const</span> llvm::MemoryBuffer * To) {</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>     <a class="code" href="classclang_1_1PreprocessorOptions.html#a8873b10c898edc978ee7e9cb242077bf" title="The set of file-to-buffer remappings, which take existing files on the system (the first part of each...">RemappedFileBuffers</a>.push_back(std::make_pair(From, To));</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>   }</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>   </div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>   <a class="code" href="classclang_1_1PreprocessorOptions.html#ab5d93562d1b5eeae0b618779ccd34f5a">remapped_file_buffer_iterator</a></div>
+<div class="line"><a name="l00206"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOptions.html#ab1224bd2694f4c7493df83d3283cde11">  206</a></span>   <a class="code" href="classclang_1_1PreprocessorOptions.html#ab1224bd2694f4c7493df83d3283cde11">eraseRemappedFile</a>(<a class="code" href="classclang_1_1PreprocessorOptions.html#ab5d93562d1b5eeae0b618779ccd34f5a">remapped_file_buffer_iterator</a> Remapped) {</div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1PreprocessorOptions.html#a8873b10c898edc978ee7e9cb242077bf" title="The set of file-to-buffer remappings, which take existing files on the system (the first part of each...">RemappedFileBuffers</a>.erase(Remapped);</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>   </div>
+<div class="line"><a name="l00210"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOptions.html#aabd9512af78b2b8d7dae7eb62fc65001">  210</a></span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1PreprocessorOptions.html#aabd9512af78b2b8d7dae7eb62fc65001">clearRemappedFiles</a>() {</div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>     <a class="code" href="classclang_1_1PreprocessorOptions.html#a11b97305b8df1f4e76020ff6af11acbc" title="The set of file remappings, which take existing files on the system (the first part of each pair) and...">RemappedFiles</a>.clear();</div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span>     <a class="code" href="classclang_1_1PreprocessorOptions.html#a8873b10c898edc978ee7e9cb242077bf" title="The set of file-to-buffer remappings, which take existing files on the system (the first part of each...">RemappedFileBuffers</a>.clear();</div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span>   }</div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>   <span class="comment"></span></div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span> <span class="comment">  /// \brief Reset any options that are not considered when building a</span></div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span> <span class="comment">  /// module.</span></div>
+<div class="line"><a name="l00217"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOptions.html#a41dd3a6021d41915f33fa423c7257d36">  217</a></span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1PreprocessorOptions.html#a41dd3a6021d41915f33fa423c7257d36" title="Reset any options that are not considered when building a module.">resetNonModularOptions</a>() {</div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>     <a class="code" href="classclang_1_1PreprocessorOptions.html#a1d10fb5b3335d765ea61e5a5cf3e1821">Includes</a>.clear();</div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>     <a class="code" href="classclang_1_1PreprocessorOptions.html#a1ab7a198bfde2831a06b9716986eab3b">MacroIncludes</a>.clear();</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>     <a class="code" href="classclang_1_1PreprocessorOptions.html#a9fdef652629b16e746a78455a9edae46" title="Headers that will be converted to chained PCHs in memory.">ChainedIncludes</a>.clear();</div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span>     <a class="code" href="classclang_1_1PreprocessorOptions.html#acadb5dbd310ada9e432ad75bd121ee57" title="Dump declarations that are deserialized from PCH, for testing.">DumpDeserializedPCHDecls</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span>     <a class="code" href="classclang_1_1PreprocessorOptions.html#ab62f6211f45e53fb6a45ad84d2a87657" title="The implicit PCH included at the start of the translation unit, or empty.">ImplicitPCHInclude</a>.clear();</div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span>     <a class="code" href="classclang_1_1PreprocessorOptions.html#a0c36fcce055469acd070d560240f6179">ImplicitPTHInclude</a>.clear();</div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>     <a class="code" href="classclang_1_1PreprocessorOptions.html#ac38e47eee0f784a0d059cffb5d5e568d" title="If given, a PTH cache file to use for speeding up header parsing.">TokenCache</a>.clear();</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>     <a class="code" href="classclang_1_1PreprocessorOptions.html#a47eb4ea58ec9f1b60266df38f6840ed6" title="Whether the compiler instance should retain (i.e., not free) the buffers associated with remapped fil...">RetainRemappedFileBuffers</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>     <a class="code" href="classclang_1_1PreprocessorOptions.html#a24671d094917020114917c55ee0c7a11" title="If non-zero, the implicit PCH include is actually a precompiled preamble that covers this number of b...">PrecompiledPreambleBytes</a>.first = 0;</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>     <a class="code" href="classclang_1_1PreprocessorOptions.html#a24671d094917020114917c55ee0c7a11" title="If non-zero, the implicit PCH include is actually a precompiled preamble that covers this number of b...">PrecompiledPreambleBytes</a>.second = 0;</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> };</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> } <span class="comment">// end namespace clang</span></div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span> </div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span> <span class="preprocessor">#endif</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/PreprocessorOutputOptions_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PreprocessorOutputOptions_8h_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PreprocessorOutputOptions_8h_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/PreprocessorOutputOptions_8h_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,118 @@
+<!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: PreprocessorOutputOptions.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_86a50fedfdd177331e407e41b0c0394f.html">Frontend</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">PreprocessorOutputOptions.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="PreprocessorOutputOptions_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">//===--- PreprocessorOutputOptions.h ----------------------------*- C++ -*-===//</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">//                     The LLVM Compiler Infrastructure</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment">// This file is distributed under the University of Illinois Open Source</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">// License. See LICENSE.TXT for details.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span> </div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span> <span class="preprocessor">#ifndef LLVM_CLANG_FRONTEND_PREPROCESSOROUTPUTOPTIONS_H</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="preprocessor"></span><span class="preprocessor">#define LLVM_CLANG_FRONTEND_PREPROCESSOROUTPUTOPTIONS_H</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> <span class="keyword">namespace </span>clang {</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> <span class="comment"></span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> <span class="comment">/// PreprocessorOutputOptions - Options for controlling the C preprocessor</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="comment">/// output (e.g., -E).</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOutputOptions.html">   17</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1PreprocessorOutputOptions.html">PreprocessorOutputOptions</a> {</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00019"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOutputOptions.html#a4c3a9a3720c104c31ed2badb28dea000">   19</a></span>   <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1PreprocessorOutputOptions.html#a4c3a9a3720c104c31ed2badb28dea000" title="Print normal preprocessed output.">ShowCPP</a> : 1;            <span class="comment">///< Print normal preprocessed output.</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOutputOptions.html#a81d6aa1fffa6fd1493ca043b6e62d57c">   20</a></span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1PreprocessorOutputOptions.html#a81d6aa1fffa6fd1493ca043b6e62d57c" title="Show comments.">ShowComments</a> : 1;       <span class="comment">///< Show comments.</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOutputOptions.html#ab576171c718194972386e246a0a79cb3">   21</a></span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1PreprocessorOutputOptions.html#ab576171c718194972386e246a0a79cb3" title="Show #line markers.">ShowLineMarkers</a> : 1;    <span class="comment">///< Show \#line markers.</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOutputOptions.html#a4227e11e9188ccbb434d687819fb89ec">   22</a></span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1PreprocessorOutputOptions.html#a4227e11e9188ccbb434d687819fb89ec" title="Show comments, even in macros.">ShowMacroComments</a> : 1;  <span class="comment">///< Show comments, even in macros.</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOutputOptions.html#a30109a33ee837a7426261965346eddba">   23</a></span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1PreprocessorOutputOptions.html#a30109a33ee837a7426261965346eddba" title="Print macro definitions.">ShowMacros</a> : 1;         <span class="comment">///< Print macro definitions.</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOutputOptions.html#ab6f9ab2044d2627ed30a57983c3c901e">   24</a></span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1PreprocessorOutputOptions.html#ab6f9ab2044d2627ed30a57983c3c901e" title="Preprocess include directives only.">RewriteIncludes</a> : 1;    <span class="comment">///< Preprocess include directives only.</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment"></span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00027"></a><span class="lineno"><a class="code" href="classclang_1_1PreprocessorOutputOptions.html#a22ee626f8737cc006cee9c30c71a2df3">   27</a></span>   <a class="code" href="classclang_1_1PreprocessorOutputOptions.html#a22ee626f8737cc006cee9c30c71a2df3">PreprocessorOutputOptions</a>() {</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>     <a class="code" href="classclang_1_1PreprocessorOutputOptions.html#a4c3a9a3720c104c31ed2badb28dea000" title="Print normal preprocessed output.">ShowCPP</a> = 0;</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>     <a class="code" href="classclang_1_1PreprocessorOutputOptions.html#a81d6aa1fffa6fd1493ca043b6e62d57c" title="Show comments.">ShowComments</a> = 0;</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>     <a class="code" href="classclang_1_1PreprocessorOutputOptions.html#ab576171c718194972386e246a0a79cb3" title="Show #line markers.">ShowLineMarkers</a> = 1;</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>     <a class="code" href="classclang_1_1PreprocessorOutputOptions.html#a4227e11e9188ccbb434d687819fb89ec" title="Show comments, even in macros.">ShowMacroComments</a> = 0;</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>     <a class="code" href="classclang_1_1PreprocessorOutputOptions.html#a30109a33ee837a7426261965346eddba" title="Print macro definitions.">ShowMacros</a> = 0;</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>     <a class="code" href="classclang_1_1PreprocessorOutputOptions.html#ab6f9ab2044d2627ed30a57983c3c901e" title="Preprocess include directives only.">RewriteIncludes</a> = 0;</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> };</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">// end namespace clang</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> <span class="preprocessor">#endif</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>





More information about the llvm-commits mailing list