[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/SourceManager_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/SourceManager_8h_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/SourceManager_8h_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/SourceManager_8h_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,1764 @@
+<!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: SourceManager.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_3e61bbac0c8515a3c083eb51d03eb390.html">include</a></li><li class="navelem"><a class="el" href="dir_ee4f288247dc2d9ccd0382aea6916312.html">clang</a></li><li class="navelem"><a class="el" href="dir_84b4cac0f3db7adb733be733ea7bc48e.html">Basic</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">SourceManager.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="SourceManager_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">//===--- SourceManager.h - Track and cache source files ---------*- 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 SourceManager 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">/// There are three different types of locations in a %file: a spelling</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> <span class="comment">/// location, an expansion location, and a presumed location.</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="comment">/// Given an example of:</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="comment">/// \code</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="comment">/// #define min(x, y) x < y ? x : y</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="comment">/// \endcode</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="comment">/// and then later on a use of min:</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="comment">/// \code</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="comment">/// #line 17</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="comment">/// return min(a, b);</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">/// \endcode</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="comment">/// The expansion location is the line in the source code where the macro</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">/// was expanded (the return statement), the spelling location is the</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="comment">/// location in the source where the macro was originally defined,</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="comment">/// and the presumed location is where the line directive states that</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span> <span class="comment">/// the line is 17, or any other line.</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"></span><span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span> </div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span> <span class="preprocessor">#ifndef LLVM_CLANG_SOURCEMANAGER_H</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span> <span class="preprocessor"></span><span class="preprocessor">#define LLVM_CLANG_SOURCEMANAGER_H</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</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="l00039"></a><span class="lineno">   39</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="l00040"></a><span class="lineno">   40</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="l00041"></a><span class="lineno">   41</span> <span class="preprocessor">#include "llvm/ADT/ArrayRef.h"</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span> <span class="preprocessor">#include "llvm/ADT/DenseMap.h"</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span> <span class="preprocessor">#include "llvm/ADT/DenseSet.h"</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span> <span class="preprocessor">#include "llvm/ADT/IntrusiveRefCntPtr.h"</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span> <span class="preprocessor">#include "llvm/ADT/OwningPtr.h"</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span> <span class="preprocessor">#include "llvm/ADT/PointerIntPair.h"</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span> <span class="preprocessor">#include "llvm/ADT/PointerUnion.h"</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span> <span class="preprocessor">#include "llvm/Support/Allocator.h"</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span> <span class="preprocessor">#include "llvm/Support/DataTypes.h"</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span> <span class="preprocessor">#include "llvm/Support/MemoryBuffer.h"</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span> <span class="preprocessor">#include <cassert></span></div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span> <span class="preprocessor">#include <map></span></div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span> <span class="preprocessor">#include <vector></span></div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span> </div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span> <span class="keyword">namespace </span>clang {</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> <span class="keyword">class </span>DiagnosticsEngine;</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span> <span class="keyword">class </span>SourceManager;</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span> <span class="keyword">class </span>FileManager;</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span> <span class="keyword">class </span>FileEntry;</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span> <span class="keyword">class </span>LineTableInfo;</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span> <span class="keyword">class </span>LangOptions;</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span> <span class="keyword">class </span>ASTWriter;</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span> <span class="keyword">class </span>ASTReader;</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span> <span class="comment"></span></div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span> <span class="comment">/// \brief Public enums and private classes that are part of the</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span> <span class="comment">/// SourceManager implementation.</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="namespaceclang_1_1SrcMgr.html">   69</a></span> <span class="comment"></span><span class="keyword">namespace </span>SrcMgr {<span class="comment"></span></div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span> <span class="comment">  /// \brief Indicates whether a file or directory holds normal user code,</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span> <span class="comment">  /// system code, or system code which is implicitly 'extern "C"' in C++ mode.</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span> <span class="comment">  /// Entire directories can be tagged with this (this is maintained by</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span> <span class="comment">  /// DirectoryLookup and friends) as can specific FileInfos when a \#pragma</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span> <span class="comment">  /// system_header is seen or in various other cases.</span></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"><a class="code" href="namespaceclang_1_1SrcMgr.html#a27297b3568f189486de6df08a8cba35d">   77</a></span> <span class="comment"></span>  <span class="keyword">enum</span> <a class="code" href="namespaceclang_1_1SrcMgr.html#a27297b3568f189486de6df08a8cba35d" title="Indicates whether a file or directory holds normal user code, system code, or system code which is im...">CharacteristicKind</a> {</div>
+<div class="line"><a name="l00078"></a><span class="lineno"><a class="code" href="namespaceclang_1_1SrcMgr.html#a27297b3568f189486de6df08a8cba35dab0548ddada8d87ad92e94d67e5af0a4f">   78</a></span>     <a class="code" href="namespaceclang_1_1SrcMgr.html#a27297b3568f189486de6df08a8cba35dab0548ddada8d87ad92e94d67e5af0a4f">C_User</a>, <a class="code" href="namespaceclang_1_1SrcMgr.html#a27297b3568f189486de6df08a8cba35dac3b930a303c855d8864c56fcc992074e">C_System</a>, <a class="code" href="namespaceclang_1_1SrcMgr.html#a27297b3568f189486de6df08a8cba35da9023f6ef1ca01526b946dd690e56d951">C_ExternCSystem</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> <span class="comment"></span></div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span> <span class="comment">  /// \brief One instance of this struct is kept for every file loaded or used.</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span> <span class="comment">  /// This object owns the MemoryBuffer object.</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno"><a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html">   84</a></span> <span class="comment"></span>  <span class="keyword">class </span><a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html" title="One instance of this struct is kept for every file loaded or used.">ContentCache</a> {</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>     <span class="keyword">enum</span> CCFlags {<span class="comment"></span></div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span> <span class="comment">      /// \brief Whether the buffer is invalid.</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span> <span class="comment"></span>      InvalidFlag = 0x01,<span class="comment"></span></div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span> <span class="comment">      /// \brief Whether the buffer should not be freed on destruction.</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span> <span class="comment"></span>      DoNotFreeFlag = 0x02</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">    /// \brief The actual buffer containing the characters from the input</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span> <span class="comment">    /// file.</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span> <span class="comment">    ///</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span> <span class="comment">    /// This is owned by the ContentCache object.  The bits indicate</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span> <span class="comment">    /// whether the buffer is invalid.</span></div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span> <span class="comment"></span>    <span class="keyword">mutable</span> llvm::PointerIntPair<const llvm::MemoryBuffer *, 2> Buffer;</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>   <span class="keyword">public</span>:<span class="comment"></span></div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span> <span class="comment">    /// \brief Reference to the file entry representing this ContentCache.</span></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">    /// This reference does not own the FileEntry object.</span></div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span> <span class="comment">    ///</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span> <span class="comment">    /// It is possible for this to be NULL if the ContentCache encapsulates</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span> <span class="comment">    /// an imaginary text buffer.</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno"><a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#a9c12b5c698444f94948c0c92f32bcc71">  106</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_1SrcMgr_1_1ContentCache.html#a9c12b5c698444f94948c0c92f32bcc71" title="Reference to the file entry representing this ContentCache.">OrigEntry</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 References the file which the contents were actually loaded from.</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">    /// Can be different from 'Entry' if we overridden the contents of one file</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span> <span class="comment">    /// with the contents of another file.</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno"><a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#a72749d7b00871e22159ff842f1ddc2b7">  112</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_1SrcMgr_1_1ContentCache.html#a72749d7b00871e22159ff842f1ddc2b7" title="References the file which the contents were actually loaded from.">ContentsEntry</a>;</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span> <span class="comment"></span></div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span> <span class="comment">    /// \brief A bump pointer allocated array of offsets for each source line.</span></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">    /// This is lazily computed.  This is owned by the SourceManager</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span> <span class="comment">    /// BumpPointerAllocator object.</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno"><a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#aaf33dce57556ab3c4841a59c63c46be4">  118</a></span> <span class="comment"></span>    <span class="keywordtype">unsigned</span> *<a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#aaf33dce57556ab3c4841a59c63c46be4" title="A bump pointer allocated array of offsets for each source line.">SourceLineCache</a>;</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 The number of lines in this ContentCache.</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span> <span class="comment">    ///</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span> <span class="comment">    /// This is only valid if SourceLineCache is non-null.</span></div>
+<div class="line"><a name="l00123"></a><span class="lineno"><a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#a7547f34e57415ab655a1acb616e24cbd">  123</a></span> <span class="comment"></span>    <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#a7547f34e57415ab655a1acb616e24cbd" title="The number of lines in this ContentCache.">NumLines</a> : 31;</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span> <span class="comment"></span></div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span> <span class="comment">    /// \brief Indicates whether the buffer itself was provided to override</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span> <span class="comment">    /// the actual file contents.</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span> <span class="comment">    ///</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span> <span class="comment">    /// When true, the original entry may be a virtual file that does not</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span> <span class="comment">    /// exist.</span></div>
+<div class="line"><a name="l00130"></a><span class="lineno"><a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#ad03a3e5e9323f3a1701fece2705df276">  130</a></span> <span class="comment"></span>    <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#ad03a3e5e9323f3a1701fece2705df276" title="Indicates whether the buffer itself was provided to override the actual file contents.">BufferOverridden</a> : 1;</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">    /// \brief True if this content cache was initially created for a source</span></div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span> <span class="comment">    /// file considered as a system one.</span></div>
+<div class="line"><a name="l00134"></a><span class="lineno"><a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#a6f69c64e25a406440e3ae3f669fb103e">  134</a></span> <span class="comment"></span>    <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#a6f69c64e25a406440e3ae3f669fb103e" title="True if this content cache was initially created for a source file considered as a system one...">IsSystemFile</a> : 1;</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>     </div>
+<div class="line"><a name="l00136"></a><span class="lineno"><a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#a81d2ae53e223ffea73369242e6d7c9f5">  136</a></span>     <a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#a81d2ae53e223ffea73369242e6d7c9f5">ContentCache</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a> *Ent = 0)</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>       : Buffer(0, <a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>), <a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#a9c12b5c698444f94948c0c92f32bcc71" title="Reference to the file entry representing this ContentCache.">OrigEntry</a>(Ent), <a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#a72749d7b00871e22159ff842f1ddc2b7" title="References the file which the contents were actually loaded from.">ContentsEntry</a>(Ent),</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>         <a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#aaf33dce57556ab3c4841a59c63c46be4" title="A bump pointer allocated array of offsets for each source line.">SourceLineCache</a>(0), <a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#a7547f34e57415ab655a1acb616e24cbd" title="The number of lines in this ContentCache.">NumLines</a>(0), <a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#ad03a3e5e9323f3a1701fece2705df276" title="Indicates whether the buffer itself was provided to override the actual file contents.">BufferOverridden</a>(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>),</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>         <a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#a6f69c64e25a406440e3ae3f669fb103e" title="True if this content cache was initially created for a source file considered as a system one...">IsSystemFile</a>(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>) {}</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>     </div>
+<div class="line"><a name="l00141"></a><span class="lineno"><a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#a9d0faf0aabc741922ceb97b7a9234d6d">  141</a></span>     <a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#a81d2ae53e223ffea73369242e6d7c9f5">ContentCache</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a> *Ent, <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> *contentEnt)</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>       : Buffer(0, <a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>), <a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#a9c12b5c698444f94948c0c92f32bcc71" title="Reference to the file entry representing this ContentCache.">OrigEntry</a>(Ent), <a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#a72749d7b00871e22159ff842f1ddc2b7" title="References the file which the contents were actually loaded from.">ContentsEntry</a>(contentEnt),</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>         <a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#aaf33dce57556ab3c4841a59c63c46be4" title="A bump pointer allocated array of offsets for each source line.">SourceLineCache</a>(0), <a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#a7547f34e57415ab655a1acb616e24cbd" title="The number of lines in this ContentCache.">NumLines</a>(0), <a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#ad03a3e5e9323f3a1701fece2705df276" title="Indicates whether the buffer itself was provided to override the actual file contents.">BufferOverridden</a>(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>),</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>         <a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#a6f69c64e25a406440e3ae3f669fb103e" title="True if this content cache was initially created for a source file considered as a system one...">IsSystemFile</a>(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</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>     <a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#ad66d7273710f04a69e95df98e7ad0a85">~ContentCache</a>();</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">    /// The copy ctor does not allow copies where source object has either</span></div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span> <span class="comment">    /// a non-NULL Buffer or SourceLineCache.  Ownership of allocated memory</span></div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span> <span class="comment">    /// is not transferred, so this is a logical error.</span></div>
+<div class="line"><a name="l00151"></a><span class="lineno"><a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#ae8ef85d9b3aabb137054c8ab81c80888">  151</a></span> <span class="comment"></span>    <a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#a81d2ae53e223ffea73369242e6d7c9f5">ContentCache</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html" title="One instance of this struct is kept for every file loaded or used.">ContentCache</a> &RHS)</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>       : Buffer(0, <a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>), <a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#aaf33dce57556ab3c4841a59c63c46be4" title="A bump pointer allocated array of offsets for each source line.">SourceLineCache</a>(0), <a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#ad03a3e5e9323f3a1701fece2705df276" title="Indicates whether the buffer itself was provided to override the actual file contents.">BufferOverridden</a>(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>),</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>         <a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#a6f69c64e25a406440e3ae3f669fb103e" title="True if this content cache was initially created for a source file considered as a system one...">IsSystemFile</a>(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</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>       <a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#a9c12b5c698444f94948c0c92f32bcc71" title="Reference to the file entry representing this ContentCache.">OrigEntry</a> = RHS.<a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#a9c12b5c698444f94948c0c92f32bcc71" title="Reference to the file entry representing this ContentCache.">OrigEntry</a>;</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>       <a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#a72749d7b00871e22159ff842f1ddc2b7" title="References the file which the contents were actually loaded from.">ContentsEntry</a> = RHS.<a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#a72749d7b00871e22159ff842f1ddc2b7" title="References the file which the contents were actually loaded from.">ContentsEntry</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>       assert (RHS.Buffer.getPointer() == 0 && RHS.<a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#aaf33dce57556ab3c4841a59c63c46be4" title="A bump pointer allocated array of offsets for each source line.">SourceLineCache</a> == 0 &&</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>               <span class="stringliteral">"Passed ContentCache object cannot own a buffer."</span>);</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>       </div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>       <a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#a7547f34e57415ab655a1acb616e24cbd" title="The number of lines in this ContentCache.">NumLines</a> = RHS.<a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#a7547f34e57415ab655a1acb616e24cbd" title="The number of lines in this ContentCache.">NumLines</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">    /// \brief Returns the memory buffer for the associated content.</span></div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span> <span class="comment">    ///</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span> <span class="comment">    /// \param Diag Object through which diagnostics will be emitted if the</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span> <span class="comment">    ///   buffer cannot be retrieved.</span></div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span> <span class="comment">    ///</span></div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span> <span class="comment">    /// \param Loc If specified, is the location that invalid file diagnostics</span></div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span> <span class="comment">    ///   will be emitted at.</span></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">    /// \param Invalid If non-NULL, will be set \c true if an error occurred.</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span> <span class="comment"></span>    <span class="keyword">const</span> llvm::MemoryBuffer *<a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#a0829ce6b26e0511684921dcc97c1752b" title="Returns the memory buffer for the associated content.">getBuffer</a>(<a class="code" href="classclang_1_1DiagnosticsEngine.html" title="Concrete class used by the front-end to report problems and issues.">DiagnosticsEngine</a> &<a class="code" href="LiteralSupport_8cpp.html#a5f4a4a29292c4a1697226abf1d22b9dd" title="Produce a diagnostic highlighting some portion of a literal.">Diag</a>,</div>
+<div class="line"><a name="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>                                         <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 = <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="l00176"></a><span class="lineno">  176</span>                                         <span class="keywordtype">bool</span> *Invalid = 0) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span> <span class="comment"></span></div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span> <span class="comment">    /// \brief Returns the size of the content encapsulated by this</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span> <span class="comment">    /// ContentCache.</span></div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span> <span class="comment">    ///</span></div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span> <span class="comment">    /// This can be the size of the source file or the size of an</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span> <span class="comment">    /// arbitrary scratch buffer.  If the ContentCache encapsulates a source</span></div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span> <span class="comment">    /// file this size is retrieved from the file's FileEntry.</span></div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span> <span class="comment"></span>    <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#acc9c428493a60627352975562d8b429e" title="Returns the size of the content encapsulated by this ContentCache.">getSize</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span> <span class="comment"></span></div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span> <span class="comment">    /// \brief Returns the number of bytes actually mapped for this</span></div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span> <span class="comment">    /// ContentCache.</span></div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span> <span class="comment">    ///</span></div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span> <span class="comment">    /// This can be 0 if the MemBuffer was not actually expanded.</span></div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span> <span class="comment"></span>    <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#a52d19f66d40162631c689e728fa4a983" title="Returns the number of bytes actually mapped for this ContentCache.">getSizeBytesMapped</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span> <span class="comment"></span></div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span> <span class="comment">    /// Returns the kind of memory used to back the memory buffer for</span></div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span> <span class="comment">    /// this content cache.  This is used for performance analysis.</span></div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span> <span class="comment"></span>    llvm::MemoryBuffer::BufferKind <a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#ab4207e36c7693e44711b5414968acdc1">getMemoryBufferKind</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span> </div>
+<div class="line"><a name="l00196"></a><span class="lineno"><a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#ac3f95bfeebace8a1e271f5e60e99726a">  196</a></span>     <span class="keywordtype">void</span> <a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#ac3f95bfeebace8a1e271f5e60e99726a">setBuffer</a>(<span class="keyword">const</span> llvm::MemoryBuffer *B) {</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span>       assert(!Buffer.getPointer() && <span class="stringliteral">"MemoryBuffer already set."</span>);</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>       Buffer.setPointer(B);</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>       Buffer.setInt(<span class="keyword">false</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> <span class="comment"></span></div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span> <span class="comment">    /// \brief Get the underlying buffer, returning NULL if the buffer is not</span></div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span> <span class="comment">    /// yet available.</span></div>
+<div class="line"><a name="l00204"></a><span class="lineno"><a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#a1bd747e8a29948acb64ab889b21dae84">  204</a></span> <span class="comment"></span>    <span class="keyword">const</span> llvm::MemoryBuffer *<a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#a1bd747e8a29948acb64ab889b21dae84" title="Get the underlying buffer, returning NULL if the buffer is not yet available.">getRawBuffer</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>       <span class="keywordflow">return</span> Buffer.getPointer();</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="comment"></span></div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span> <span class="comment">    /// \brief Replace the existing buffer (which will be deleted)</span></div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span> <span class="comment">    /// with the given buffer.</span></div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span> <span class="comment"></span>    <span class="keywordtype">void</span> <a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#ac362b4113acc35fcb87bf01f440a3251" title="Replace the existing buffer (which will be deleted) with the given buffer.">replaceBuffer</a>(<span class="keyword">const</span> llvm::MemoryBuffer *B, <span class="keywordtype">bool</span> DoNotFree = <span class="keyword">false</span>);</div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span> <span class="comment"></span></div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span> <span class="comment">    /// \brief Determine whether the buffer itself is invalid.</span></div>
+<div class="line"><a name="l00213"></a><span class="lineno"><a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#a09fcdb944014c3a41eaafbd6b64642c4">  213</a></span> <span class="comment"></span>    <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#a09fcdb944014c3a41eaafbd6b64642c4" title="Determine whether the buffer itself is invalid.">isBufferInvalid</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>       <span class="keywordflow">return</span> Buffer.getInt() & InvalidFlag;</div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span>     }</div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span> <span class="comment"></span></div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span> <span class="comment">    /// \brief Determine whether the buffer should be freed.</span></div>
+<div class="line"><a name="l00218"></a><span class="lineno"><a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#a7158a68c4318f7695816e56016367f0c">  218</a></span> <span class="comment"></span>    <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#a7158a68c4318f7695816e56016367f0c" title="Determine whether the buffer should be freed.">shouldFreeBuffer</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>       <span class="keywordflow">return</span> (Buffer.getInt() & DoNotFreeFlag) == 0;</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>     }</div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span> </div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span>   <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span>     <span class="comment">// Disable assignments.</span></div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>     <a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html" title="One instance of this struct is kept for every file loaded or used.">ContentCache</a> &operator=(<span class="keyword">const</span> <a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html" title="One instance of this struct is kept for every file loaded or used.">ContentCache</a>& RHS) LLVM_DELETED_FUNCTION;</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>   };</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span> <span class="comment"></span></div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span> <span class="comment">  /// \brief Information about a FileID, basically just the logical file</span></div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span> <span class="comment">  /// that it represents and include stack information.</span></div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span> <span class="comment">  /// Each FileInfo has include stack information, indicating where it came</span></div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span> <span class="comment">  /// from. This information encodes the \#include chain that a token was</span></div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span> <span class="comment">  /// expanded from. The main include file has an invalid IncludeLoc.</span></div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span> <span class="comment">  /// FileInfos contain a "ContentCache *", with the contents of the file.</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00236"></a><span class="lineno"><a class="code" href="classclang_1_1SrcMgr_1_1FileInfo.html">  236</a></span> <span class="comment"></span>  <span class="keyword">class </span><a class="code" href="classclang_1_1SrcMgr_1_1FileInfo.html" title="Information about a FileID, basically just the logical file that it represents and include stack info...">FileInfo</a> {<span class="comment"></span></div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span> <span class="comment">    /// \brief The location of the \#include that brought in this file.</span></div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span> <span class="comment">    ///</span></div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span> <span class="comment">    /// This is an invalid SLOC for the main file (top of the \#include chain).</span></div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span> <span class="comment"></span>    <span class="keywordtype">unsigned</span> IncludeLoc;  <span class="comment">// Really a SourceLocation</span></div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span> <span class="comment"></span></div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span> <span class="comment">    /// \brief Number of FileIDs (files and macros) that were created during</span></div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span> <span class="comment">    /// preprocessing of this \#include, including this SLocEntry.</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span> <span class="comment">    ///</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span> <span class="comment">    /// Zero means the preprocessor didn't provide such info for this SLocEntry.</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span> <span class="comment"></span>    <span class="keywordtype">unsigned</span> NumCreatedFIDs;</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 Contains the ContentCache* and the bits indicating the</span></div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span> <span class="comment">    /// characteristic of the file and whether it has \#line info, all</span></div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span> <span class="comment">    /// bitmangled together.</span></div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span> <span class="comment"></span>    uintptr_t Data;</div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span> </div>
+<div class="line"><a name="l00253"></a><span class="lineno"><a class="code" href="classclang_1_1SrcMgr_1_1FileInfo.html#ae9d3a91138cf3208f6bfd321a7b9bcb7">  253</a></span>     <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classclang_1_1SourceManager.html" title="This class handles loading and caching of source files into memory.">clang::SourceManager</a>;</div>
+<div class="line"><a name="l00254"></a><span class="lineno"><a class="code" href="classclang_1_1SrcMgr_1_1FileInfo.html#a8314b87422b50e0a26644b50666a8b00">  254</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.">clang::ASTWriter</a>;</div>
+<div class="line"><a name="l00255"></a><span class="lineno"><a class="code" href="classclang_1_1SrcMgr_1_1FileInfo.html#a67980bbd7ead074e384d3f266c385579">  255</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.">clang::ASTReader</a>;</div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span>   <span class="keyword">public</span>:<span class="comment"></span></div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span> <span class="comment">    /// \brief Return a FileInfo object.</span></div>
+<div class="line"><a name="l00258"></a><span class="lineno"><a class="code" href="classclang_1_1SrcMgr_1_1FileInfo.html#a3f4ac5e87587daf600c1e7ea4fe76a8d">  258</a></span> <span class="comment"></span>    <span class="keyword">static</span> <a class="code" href="classclang_1_1SrcMgr_1_1FileInfo.html" title="Information about a FileID, basically just the logical file that it represents and include stack info...">FileInfo</a> <span class="keyword">get</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> IL, <span class="keyword">const</span> <a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html" title="One instance of this struct is kept for every file loaded or used.">ContentCache</a> *Con,</div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span>                         <a class="code" href="namespaceclang_1_1SrcMgr.html#a27297b3568f189486de6df08a8cba35d" title="Indicates whether a file or directory holds normal user code, system code, or system code which is im...">CharacteristicKind</a> FileCharacter) {</div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span>       <a class="code" href="classclang_1_1SrcMgr_1_1FileInfo.html" title="Information about a FileID, basically just the logical file that it represents and include stack info...">FileInfo</a> <a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>;</div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span>       X.IncludeLoc = IL.getRawEncoding();</div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span>       X.NumCreatedFIDs = 0;</div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span>       X.Data = (uintptr_t)Con;</div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span>       assert((X.Data & 7) == 0 &&<span class="stringliteral">"ContentCache pointer insufficiently aligned"</span>);</div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span>       assert((<span class="keywordtype">unsigned</span>)FileCharacter < 4 && <span class="stringliteral">"invalid file character"</span>);</div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span>       X.Data |= (<a class="code" href="classunsigned.html">unsigned</a>)FileCharacter;</div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span>       <span class="keywordflow">return</span> <a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>;</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> </div>
+<div class="line"><a name="l00270"></a><span class="lineno"><a class="code" href="classclang_1_1SrcMgr_1_1FileInfo.html#a5045eb47939537fcea0b4906edf2fdcb">  270</a></span>     <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> <a class="code" href="classclang_1_1SrcMgr_1_1FileInfo.html#a5045eb47939537fcea0b4906edf2fdcb">getIncludeLoc</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span>       <span class="keywordflow">return</span> <a class="code" href="classclang_1_1SourceLocation.html#af6ffb91a339feae6d6a5101c533f1494" title="Turn a raw encoding of a SourceLocation object into a real SourceLocation.">SourceLocation::getFromRawEncoding</a>(IncludeLoc);</div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span>     }</div>
+<div class="line"><a name="l00273"></a><span class="lineno"><a class="code" href="classclang_1_1SrcMgr_1_1FileInfo.html#a0dfcfbd07292c9ab7f537f2dd38d14c4">  273</a></span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html" title="One instance of this struct is kept for every file loaded or used.">ContentCache</a>* <a class="code" href="classclang_1_1SrcMgr_1_1FileInfo.html#a0dfcfbd07292c9ab7f537f2dd38d14c4">getContentCache</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span>       <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast<</span><span class="keyword">const </span><a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html" title="One instance of this struct is kept for every file loaded or used.">ContentCache</a>*<span class="keyword">></span>(Data & ~uintptr_t(7));</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"></span></div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span> <span class="comment">    /// \brief Return whether this is a system header or not.</span></div>
+<div class="line"><a name="l00278"></a><span class="lineno"><a class="code" href="classclang_1_1SrcMgr_1_1FileInfo.html#a89208e39e8a93a665ea3358e5b273f49">  278</a></span> <span class="comment"></span>    <a class="code" href="namespaceclang_1_1SrcMgr.html#a27297b3568f189486de6df08a8cba35d" title="Indicates whether a file or directory holds normal user code, system code, or system code which is im...">CharacteristicKind</a> <a class="code" href="classclang_1_1SrcMgr_1_1FileInfo.html#a89208e39e8a93a665ea3358e5b273f49" title="Return whether this is a system header or not.">getFileCharacteristic</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span>       <span class="keywordflow">return</span> (<a class="code" href="namespaceclang_1_1SrcMgr.html#a27297b3568f189486de6df08a8cba35d" title="Indicates whether a file or directory holds normal user code, system code, or system code which is im...">CharacteristicKind</a>)(Data & 3);</div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span>     }</div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span> <span class="comment"></span></div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span> <span class="comment">    /// \brief Return true if this FileID has \#line directives in it.</span></div>
+<div class="line"><a name="l00283"></a><span class="lineno"><a class="code" href="classclang_1_1SrcMgr_1_1FileInfo.html#a6e3a3ddc593c52f403695164f3af62f2">  283</a></span> <span class="comment"></span>    <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1SrcMgr_1_1FileInfo.html#a6e3a3ddc593c52f403695164f3af62f2" title="Return true if this FileID has #line directives in it.">hasLineDirectives</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (Data & 4) != 0; }</div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span> <span class="comment"></span></div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span> <span class="comment">    /// \brief Set the flag that indicates that this FileID has</span></div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span> <span class="comment">    /// line table entries associated with it.</span></div>
+<div class="line"><a name="l00287"></a><span class="lineno"><a class="code" href="classclang_1_1SrcMgr_1_1FileInfo.html#aabfc37ce65b4c44f53acc8477ca8c1c5">  287</a></span> <span class="comment"></span>    <span class="keywordtype">void</span> <a class="code" href="classclang_1_1SrcMgr_1_1FileInfo.html#aabfc37ce65b4c44f53acc8477ca8c1c5" title="Set the flag that indicates that this FileID has line table entries associated with it...">setHasLineDirectives</a>() {</div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span>       Data |= 4;</div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span>     }</div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span>   };</div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span> <span class="comment"></span></div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span> <span class="comment">  /// \brief Each ExpansionInfo encodes the expansion location - where</span></div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span> <span class="comment">  /// the token was ultimately expanded, and the SpellingLoc - where the actual</span></div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span> <span class="comment">  /// character data for the token came from.</span></div>
+<div class="line"><a name="l00295"></a><span class="lineno"><a class="code" href="classclang_1_1SrcMgr_1_1ExpansionInfo.html">  295</a></span> <span class="comment"></span>  <span class="keyword">class </span><a class="code" href="classclang_1_1SrcMgr_1_1ExpansionInfo.html" title="Each ExpansionInfo encodes the expansion location - where the token was ultimately expanded...">ExpansionInfo</a> {</div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span>     <span class="comment">// Really these are all SourceLocations.</span></div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span> <span class="comment"></span></div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span> <span class="comment">    /// \brief Where the spelling for the token can be found.</span></div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span> <span class="comment"></span>    <span class="keywordtype">unsigned</span> SpellingLoc;</div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span> <span class="comment"></span></div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span> <span class="comment">    /// In a macro expansion, ExpansionLocStart and ExpansionLocEnd</span></div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span> <span class="comment">    /// indicate the start and end of the expansion. In object-like macros,</span></div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span> <span class="comment">    /// they will be the same. In a function-like macro expansion, the start</span></div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span> <span class="comment">    /// will be the identifier and the end will be the ')'. Finally, in</span></div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span> <span class="comment">    /// macro-argument instantiations, the end will be 'SourceLocation()', an</span></div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span> <span class="comment">    /// invalid location.</span></div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span> <span class="comment"></span>    <span class="keywordtype">unsigned</span> ExpansionLocStart, ExpansionLocEnd;</div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span> </div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00310"></a><span class="lineno"><a class="code" href="classclang_1_1SrcMgr_1_1ExpansionInfo.html#a14aec0e16875b0f713fdbc942f9aa28e">  310</a></span>     <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> <a class="code" href="classclang_1_1SrcMgr_1_1ExpansionInfo.html#a14aec0e16875b0f713fdbc942f9aa28e">getSpellingLoc</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span>       <span class="keywordflow">return</span> <a class="code" href="classclang_1_1SourceLocation.html#af6ffb91a339feae6d6a5101c533f1494" title="Turn a raw encoding of a SourceLocation object into a real SourceLocation.">SourceLocation::getFromRawEncoding</a>(SpellingLoc);</div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span>     }</div>
+<div class="line"><a name="l00313"></a><span class="lineno"><a class="code" href="classclang_1_1SrcMgr_1_1ExpansionInfo.html#ab8fe7bf9eedf3cfa68847437c6ddab6e">  313</a></span>     <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> <a class="code" href="classclang_1_1SrcMgr_1_1ExpansionInfo.html#ab8fe7bf9eedf3cfa68847437c6ddab6e">getExpansionLocStart</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span>       <span class="keywordflow">return</span> <a class="code" href="classclang_1_1SourceLocation.html#af6ffb91a339feae6d6a5101c533f1494" title="Turn a raw encoding of a SourceLocation object into a real SourceLocation.">SourceLocation::getFromRawEncoding</a>(ExpansionLocStart);</div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span>     }</div>
+<div class="line"><a name="l00316"></a><span class="lineno"><a class="code" href="classclang_1_1SrcMgr_1_1ExpansionInfo.html#a23a06e3e093cb6f9984a79370a55fe95">  316</a></span>     <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> <a class="code" href="classclang_1_1SrcMgr_1_1ExpansionInfo.html#a23a06e3e093cb6f9984a79370a55fe95">getExpansionLocEnd</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</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="l00318"></a><span class="lineno">  318</span>         <a class="code" href="classclang_1_1SourceLocation.html#af6ffb91a339feae6d6a5101c533f1494" title="Turn a raw encoding of a SourceLocation object into a real SourceLocation.">SourceLocation::getFromRawEncoding</a>(ExpansionLocEnd);</div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span>       <span class="keywordflow">return</span> EndLoc.<a class="code" href="classclang_1_1SourceLocation.html#a1936fc09837ff8a195fa63e29f05796f">isInvalid</a>() ? <a class="code" href="classclang_1_1SrcMgr_1_1ExpansionInfo.html#ab8fe7bf9eedf3cfa68847437c6ddab6e">getExpansionLocStart</a>() : EndLoc;</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"><a class="code" href="classclang_1_1SrcMgr_1_1ExpansionInfo.html#a9d875e610d727fdd75be1a8e28a3fd9d">  322</a></span>     std::pair<SourceLocation,SourceLocation> <a class="code" href="classclang_1_1SrcMgr_1_1ExpansionInfo.html#a9d875e610d727fdd75be1a8e28a3fd9d">getExpansionLocRange</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span>       <span class="keywordflow">return</span> std::make_pair(<a class="code" href="classclang_1_1SrcMgr_1_1ExpansionInfo.html#ab8fe7bf9eedf3cfa68847437c6ddab6e">getExpansionLocStart</a>(), <a class="code" href="classclang_1_1SrcMgr_1_1ExpansionInfo.html#a23a06e3e093cb6f9984a79370a55fe95">getExpansionLocEnd</a>());</div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span>     }</div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span> </div>
+<div class="line"><a name="l00326"></a><span class="lineno"><a class="code" href="classclang_1_1SrcMgr_1_1ExpansionInfo.html#aa3253b5ce34eed597ad20c35a5738bb6">  326</a></span>     <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1SrcMgr_1_1ExpansionInfo.html#aa3253b5ce34eed597ad20c35a5738bb6">isMacroArgExpansion</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span>       <span class="comment">// Note that this needs to return false for default constructed objects.</span></div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span>       <span class="keywordflow">return</span> <a class="code" href="classclang_1_1SrcMgr_1_1ExpansionInfo.html#ab8fe7bf9eedf3cfa68847437c6ddab6e">getExpansionLocStart</a>().<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="l00329"></a><span class="lineno">  329</span>         <a class="code" href="classclang_1_1SourceLocation.html#af6ffb91a339feae6d6a5101c533f1494" title="Turn a raw encoding of a SourceLocation object into a real SourceLocation.">SourceLocation::getFromRawEncoding</a>(ExpansionLocEnd).<a class="code" href="classclang_1_1SourceLocation.html#a1936fc09837ff8a195fa63e29f05796f">isInvalid</a>();</div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span>     }</div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span> </div>
+<div class="line"><a name="l00332"></a><span class="lineno"><a class="code" href="classclang_1_1SrcMgr_1_1ExpansionInfo.html#af10d256955253b4c070e600a195e3abe">  332</a></span>     <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1SrcMgr_1_1ExpansionInfo.html#af10d256955253b4c070e600a195e3abe">isMacroBodyExpansion</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span>       <span class="keywordflow">return</span> <a class="code" href="classclang_1_1SrcMgr_1_1ExpansionInfo.html#ab8fe7bf9eedf3cfa68847437c6ddab6e">getExpansionLocStart</a>().<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="l00334"></a><span class="lineno">  334</span>         <a class="code" href="classclang_1_1SourceLocation.html#af6ffb91a339feae6d6a5101c533f1494" title="Turn a raw encoding of a SourceLocation object into a real SourceLocation.">SourceLocation::getFromRawEncoding</a>(ExpansionLocEnd).<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="l00335"></a><span class="lineno">  335</span>     }</div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span> </div>
+<div class="line"><a name="l00337"></a><span class="lineno"><a class="code" href="classclang_1_1SrcMgr_1_1ExpansionInfo.html#a036e425b6d3764b53aabd345d0f1f215">  337</a></span>     <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1SrcMgr_1_1ExpansionInfo.html#a036e425b6d3764b53aabd345d0f1f215">isFunctionMacroExpansion</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span>       <span class="keywordflow">return</span> <a class="code" href="classclang_1_1SrcMgr_1_1ExpansionInfo.html#ab8fe7bf9eedf3cfa68847437c6ddab6e">getExpansionLocStart</a>().<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="l00339"></a><span class="lineno">  339</span>           <a class="code" href="classclang_1_1SrcMgr_1_1ExpansionInfo.html#ab8fe7bf9eedf3cfa68847437c6ddab6e">getExpansionLocStart</a>() != <a class="code" href="classclang_1_1SrcMgr_1_1ExpansionInfo.html#a23a06e3e093cb6f9984a79370a55fe95">getExpansionLocEnd</a>();</div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span>     }</div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span> <span class="comment"></span></div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span> <span class="comment">    /// \brief Return a ExpansionInfo for an expansion.</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">    /// Start and End specify the expansion range (where the macro is</span></div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span> <span class="comment">    /// expanded), and SpellingLoc specifies the spelling location (where</span></div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span> <span class="comment">    /// the characters from the token come from). All three can refer to</span></div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span> <span class="comment">    /// normal File SLocs or expansion locations.</span></div>
+<div class="line"><a name="l00348"></a><span class="lineno"><a class="code" href="classclang_1_1SrcMgr_1_1ExpansionInfo.html#a04557aaac01c3771f5fcc8cf20cd1c4b">  348</a></span> <span class="comment"></span>    <span class="keyword">static</span> <a class="code" href="classclang_1_1SrcMgr_1_1ExpansionInfo.html" title="Each ExpansionInfo encodes the expansion location - where the token was ultimately expanded...">ExpansionInfo</a> <a class="code" href="classclang_1_1SrcMgr_1_1ExpansionInfo.html#a04557aaac01c3771f5fcc8cf20cd1c4b" title="Return a ExpansionInfo for an expansion.">create</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> SpellingLoc,</div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</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> Start, <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="l00350"></a><span class="lineno">  350</span>       <a class="code" href="classclang_1_1SrcMgr_1_1ExpansionInfo.html" title="Each ExpansionInfo encodes the expansion location - where the token was ultimately expanded...">ExpansionInfo</a> <a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>;</div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span>       X.SpellingLoc = SpellingLoc.<a class="code" href="classclang_1_1SourceLocation.html#a3b9eca838127c4105fd77fd0d3b5962a" title="When a SourceLocation itself cannot be used, this returns an (opaque) 32-bit integer encoding for it...">getRawEncoding</a>();</div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span>       X.ExpansionLocStart = Start.<a class="code" href="classclang_1_1SourceLocation.html#a3b9eca838127c4105fd77fd0d3b5962a" title="When a SourceLocation itself cannot be used, this returns an (opaque) 32-bit integer encoding for it...">getRawEncoding</a>();</div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span>       X.ExpansionLocEnd = End.<a class="code" href="classclang_1_1SourceLocation.html#a3b9eca838127c4105fd77fd0d3b5962a" title="When a SourceLocation itself cannot be used, this returns an (opaque) 32-bit integer encoding for it...">getRawEncoding</a>();</div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span>       <span class="keywordflow">return</span> <a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>;</div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span>     }</div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span> <span class="comment"></span></div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span> <span class="comment">    /// \brief Return a special ExpansionInfo for the expansion of</span></div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span> <span class="comment">    /// a macro argument into a function-like macro's body.</span></div>
+<div class="line"><a name="l00359"></a><span class="lineno">  359</span> <span class="comment">    ///</span></div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span> <span class="comment">    /// ExpansionLoc specifies the expansion location (where the macro is</span></div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span> <span class="comment">    /// expanded). This doesn't need to be a range because a macro is always</span></div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span> <span class="comment">    /// expanded at a macro parameter reference, and macro parameters are</span></div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span> <span class="comment">    /// always exactly one token. SpellingLoc specifies the spelling location</span></div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span> <span class="comment">    /// (where the characters from the token come from). ExpansionLoc and</span></div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span> <span class="comment">    /// SpellingLoc can both refer to normal File SLocs or expansion locations.</span></div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span> <span class="comment">    ///</span></div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span> <span class="comment">    /// Given the code:</span></div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span> <span class="comment">    /// \code</span></div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span> <span class="comment">    ///   #define F(x) f(x)</span></div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span> <span class="comment">    ///   F(42);</span></div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span> <span class="comment">    /// \endcode</span></div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span> <span class="comment">    ///</span></div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span> <span class="comment">    /// When expanding '\c F(42)', the '\c x' would call this with an</span></div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span> <span class="comment">    /// SpellingLoc pointing at '\c 42' and an ExpansionLoc pointing at its</span></div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span> <span class="comment">    /// location in the definition of '\c F'.</span></div>
+<div class="line"><a name="l00376"></a><span class="lineno"><a class="code" href="classclang_1_1SrcMgr_1_1ExpansionInfo.html#ab65e52d70f9c1fdc8358ef035bd33060">  376</a></span> <span class="comment"></span>    <span class="keyword">static</span> <a class="code" href="classclang_1_1SrcMgr_1_1ExpansionInfo.html" title="Each ExpansionInfo encodes the expansion location - where the token was ultimately expanded...">ExpansionInfo</a> <a class="code" href="classclang_1_1SrcMgr_1_1ExpansionInfo.html#ab65e52d70f9c1fdc8358ef035bd33060" title="Return a special ExpansionInfo for the expansion of a macro argument into a function-like macro's bod...">createForMacroArg</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> SpellingLoc,</div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</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> ExpansionLoc) {</div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span>       <span class="comment">// We store an intentionally invalid source location for the end of the</span></div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span>       <span class="comment">// expansion range to mark that this is a macro argument ion rather than</span></div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span>       <span class="comment">// a normal one.</span></div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span>       <span class="keywordflow">return</span> <a class="code" href="classclang_1_1SrcMgr_1_1ExpansionInfo.html#a04557aaac01c3771f5fcc8cf20cd1c4b" title="Return a ExpansionInfo for an expansion.">create</a>(SpellingLoc, ExpansionLoc, <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="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="comment"></span></div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span> <span class="comment">  /// \brief This is a discriminated union of FileInfo and ExpansionInfo.</span></div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span> <span class="comment">  /// SourceManager keeps an array of these objects, and they are uniquely</span></div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span> <span class="comment">  /// identified by the FileID datatype.</span></div>
+<div class="line"><a name="l00389"></a><span class="lineno"><a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html">  389</a></span> <span class="comment"></span>  <span class="keyword">class </span><a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html" title="This is a discriminated union of FileInfo and ExpansionInfo.">SLocEntry</a> {</div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span>     <span class="keywordtype">unsigned</span> Offset;   <span class="comment">// low bit is set for expansion info.</span></div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span>     <span class="keyword">union </span>{</div>
+<div class="line"><a name="l00392"></a><span class="lineno"><a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#a0eef3df21eb2e351a7b288483403233b">  392</a></span>       <a class="code" href="classclang_1_1SrcMgr_1_1FileInfo.html" title="Information about a FileID, basically just the logical file that it represents and include stack info...">FileInfo</a> <a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#a0eef3df21eb2e351a7b288483403233b">File</a>;</div>
+<div class="line"><a name="l00393"></a><span class="lineno"><a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#ac269386d062571eb20bf679d208d3d3e">  393</a></span>       <a class="code" href="classclang_1_1SrcMgr_1_1ExpansionInfo.html" title="Each ExpansionInfo encodes the expansion location - where the token was ultimately expanded...">ExpansionInfo</a> <a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#ac269386d062571eb20bf679d208d3d3e">Expansion</a>;</div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span>     };</div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00396"></a><span class="lineno"><a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#af792006aa81706c77a4b35924e5d9f1c">  396</a></span>     <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#af792006aa81706c77a4b35924e5d9f1c">getOffset</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Offset >> 1; }</div>
+<div class="line"><a name="l00397"></a><span class="lineno">  397</span> </div>
+<div class="line"><a name="l00398"></a><span class="lineno"><a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#a98dd9eca83ab43299e7a2e4659968bd6">  398</a></span>     <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#a98dd9eca83ab43299e7a2e4659968bd6">isExpansion</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Offset & 1; }</div>
+<div class="line"><a name="l00399"></a><span class="lineno"><a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#aa47bccb623f117f7d7c0ed0582e55ce2">  399</a></span>     <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#aa47bccb623f117f7d7c0ed0582e55ce2">isFile</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> !<a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#a98dd9eca83ab43299e7a2e4659968bd6">isExpansion</a>(); }</div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span> </div>
+<div class="line"><a name="l00401"></a><span class="lineno"><a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#a1fb51637aa60930cf8993b7a6dfd0f4d">  401</a></span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1SrcMgr_1_1FileInfo.html" title="Information about a FileID, basically just the logical file that it represents and include stack info...">FileInfo</a> &<a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#a1fb51637aa60930cf8993b7a6dfd0f4d">getFile</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00402"></a><span class="lineno">  402</span>       assert(<a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#aa47bccb623f117f7d7c0ed0582e55ce2">isFile</a>() && <span class="stringliteral">"Not a file SLocEntry!"</span>);</div>
+<div class="line"><a name="l00403"></a><span class="lineno">  403</span>       <span class="keywordflow">return</span> <a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#a0eef3df21eb2e351a7b288483403233b">File</a>;</div>
+<div class="line"><a name="l00404"></a><span class="lineno">  404</span>     }</div>
+<div class="line"><a name="l00405"></a><span class="lineno">  405</span> </div>
+<div class="line"><a name="l00406"></a><span class="lineno"><a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#a70c810882ffb1f90ac48cef5ae359df8">  406</a></span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1SrcMgr_1_1ExpansionInfo.html" title="Each ExpansionInfo encodes the expansion location - where the token was ultimately expanded...">ExpansionInfo</a> &<a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#a70c810882ffb1f90ac48cef5ae359df8">getExpansion</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00407"></a><span class="lineno">  407</span>       assert(<a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#a98dd9eca83ab43299e7a2e4659968bd6">isExpansion</a>() && <span class="stringliteral">"Not a macro expansion SLocEntry!"</span>);</div>
+<div class="line"><a name="l00408"></a><span class="lineno">  408</span>       <span class="keywordflow">return</span> <a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#ac269386d062571eb20bf679d208d3d3e">Expansion</a>;</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> </div>
+<div class="line"><a name="l00411"></a><span class="lineno"><a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#a41d004bf015e090a658fab12624f5d45">  411</a></span>     <span class="keyword">static</span> <a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html" title="This is a discriminated union of FileInfo and ExpansionInfo.">SLocEntry</a> <span class="keyword">get</span>(<span class="keywordtype">unsigned</span> Offset, <span class="keyword">const</span> <a class="code" href="classclang_1_1SrcMgr_1_1FileInfo.html" title="Information about a FileID, basically just the logical file that it represents and include stack info...">FileInfo</a> &FI) {</div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span>       <a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html" title="This is a discriminated union of FileInfo and ExpansionInfo.">SLocEntry</a> E;</div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</span>       E.Offset = Offset << 1;</div>
+<div class="line"><a name="l00414"></a><span class="lineno">  414</span>       E.<a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#a0eef3df21eb2e351a7b288483403233b">File</a> = FI;</div>
+<div class="line"><a name="l00415"></a><span class="lineno">  415</span>       <span class="keywordflow">return</span> E;</div>
+<div class="line"><a name="l00416"></a><span class="lineno">  416</span>     }</div>
+<div class="line"><a name="l00417"></a><span class="lineno">  417</span> </div>
+<div class="line"><a name="l00418"></a><span class="lineno"><a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#a1b197f7bd3be211b9cda14f90d8c5e11">  418</a></span>     <span class="keyword">static</span> <a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html" title="This is a discriminated union of FileInfo and ExpansionInfo.">SLocEntry</a> <span class="keyword">get</span>(<span class="keywordtype">unsigned</span> Offset, <span class="keyword">const</span> <a class="code" href="classclang_1_1SrcMgr_1_1ExpansionInfo.html" title="Each ExpansionInfo encodes the expansion location - where the token was ultimately expanded...">ExpansionInfo</a> &<a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#ac269386d062571eb20bf679d208d3d3e">Expansion</a>) {</div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span>       <a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html" title="This is a discriminated union of FileInfo and ExpansionInfo.">SLocEntry</a> E;</div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span>       E.Offset = (Offset << 1) | 1;</div>
+<div class="line"><a name="l00421"></a><span class="lineno">  421</span>       E.<a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#ac269386d062571eb20bf679d208d3d3e">Expansion</a> = <a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#ac269386d062571eb20bf679d208d3d3e">Expansion</a>;</div>
+<div class="line"><a name="l00422"></a><span class="lineno">  422</span>       <span class="keywordflow">return</span> E;</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">// end SrcMgr namespace.</span></div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span> <span class="comment"></span></div>
+<div class="line"><a name="l00427"></a><span class="lineno">  427</span> <span class="comment">/// \brief External source of source location entries.</span></div>
+<div class="line"><a name="l00428"></a><span class="lineno"><a class="code" href="classclang_1_1ExternalSLocEntrySource.html">  428</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1ExternalSLocEntrySource.html" title="External source of source location entries.">ExternalSLocEntrySource</a> {</div>
+<div class="line"><a name="l00429"></a><span class="lineno">  429</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span>   <span class="keyword">virtual</span> <a class="code" href="classclang_1_1ExternalSLocEntrySource.html#aab51e6e582b1f04347e2b8276ea1e927">~ExternalSLocEntrySource</a>();</div>
+<div class="line"><a name="l00431"></a><span class="lineno">  431</span> <span class="comment"></span></div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span> <span class="comment">  /// \brief Read the source location entry with index ID, which will always be</span></div>
+<div class="line"><a name="l00433"></a><span class="lineno">  433</span> <span class="comment">  /// less than -1.</span></div>
+<div class="line"><a name="l00434"></a><span class="lineno">  434</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00435"></a><span class="lineno">  435</span> <span class="comment">  /// \returns true if an error occurred that prevented the source-location</span></div>
+<div class="line"><a name="l00436"></a><span class="lineno">  436</span> <span class="comment">  /// entry from being loaded.</span></div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span> <span class="comment"></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ExternalSLocEntrySource.html#acb444bab492d1cac7eee6d7ea1f52444" title="Read the source location entry with index ID, which will always be less than -1.">ReadSLocEntry</a>(<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>) = 0;</div>
+<div class="line"><a name="l00438"></a><span class="lineno">  438</span> <span class="comment"></span></div>
+<div class="line"><a name="l00439"></a><span class="lineno">  439</span> <span class="comment">  /// \brief Retrieve the module import location and name for the given ID, if</span></div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span> <span class="comment">  /// in fact it was loaded from a module (rather than, say, a precompiled</span></div>
+<div class="line"><a name="l00441"></a><span class="lineno">  441</span> <span class="comment">  /// header).</span></div>
+<div class="line"><a name="l00442"></a><span class="lineno">  442</span> <span class="comment"></span>  <span class="keyword">virtual</span> std::pair<SourceLocation, StringRef> <a class="code" href="classclang_1_1ExternalSLocEntrySource.html#aede2afd52e039d0f12ab1940362f2123" title="Retrieve the module import location and name for the given ID, if in fact it was loaded from a module...">getModuleImportLoc</a>(<span class="keywordtype">int</span> ID) = 0;</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> </div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span> <span class="comment"></span></div>
+<div class="line"><a name="l00446"></a><span class="lineno">  446</span> <span class="comment">/// \brief Holds the cache used by isBeforeInTranslationUnit.</span></div>
+<div class="line"><a name="l00447"></a><span class="lineno">  447</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00448"></a><span class="lineno">  448</span> <span class="comment">/// The cache structure is complex enough to be worth breaking out of</span></div>
+<div class="line"><a name="l00449"></a><span class="lineno">  449</span> <span class="comment">/// SourceManager.</span></div>
+<div class="line"><a name="l00450"></a><span class="lineno"><a class="code" href="classclang_1_1InBeforeInTUCacheEntry.html">  450</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1InBeforeInTUCacheEntry.html" title="Holds the cache used by isBeforeInTranslationUnit.">InBeforeInTUCacheEntry</a> {<span class="comment"></span></div>
+<div class="line"><a name="l00451"></a><span class="lineno">  451</span> <span class="comment">  /// \brief The FileID's of the cached query.</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">  453</span> <span class="comment">  /// If these match up with a subsequent query, the result can be reused.</span></div>
+<div class="line"><a name="l00454"></a><span class="lineno">  454</span> <span class="comment"></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> LQueryFID, RQueryFID;</div>
+<div class="line"><a name="l00455"></a><span class="lineno">  455</span> <span class="comment"></span></div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span> <span class="comment">  /// \brief True if LQueryFID was created before RQueryFID.</span></div>
+<div class="line"><a name="l00457"></a><span class="lineno">  457</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00458"></a><span class="lineno">  458</span> <span class="comment">  /// This is used to compare macro expansion locations.</span></div>
+<div class="line"><a name="l00459"></a><span class="lineno">  459</span> <span class="comment"></span>  <span class="keywordtype">bool</span> IsLQFIDBeforeRQFID;</div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span> <span class="comment"></span></div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span> <span class="comment">  /// \brief The file found in common between the two \#include traces, i.e.,</span></div>
+<div class="line"><a name="l00462"></a><span class="lineno">  462</span> <span class="comment">  /// the nearest common ancestor of the \#include tree.</span></div>
+<div class="line"><a name="l00463"></a><span class="lineno">  463</span> <span class="comment"></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> CommonFID;</div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</span> <span class="comment"></span></div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span> <span class="comment">  /// \brief The offset of the previous query in CommonFID.</span></div>
+<div class="line"><a name="l00466"></a><span class="lineno">  466</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00467"></a><span class="lineno">  467</span> <span class="comment">  /// Usually, this represents the location of the \#include for QueryFID, but</span></div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span> <span class="comment">  /// if LQueryFID is a parent of RQueryFID (or vice versa) then these can be a</span></div>
+<div class="line"><a name="l00469"></a><span class="lineno">  469</span> <span class="comment">  /// random token in the parent.</span></div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> LCommonOffset, RCommonOffset;</div>
+<div class="line"><a name="l00471"></a><span class="lineno">  471</span> <span class="keyword">public</span>:<span class="comment"></span></div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span> <span class="comment">  /// \brief Return true if the currently cached values match up with</span></div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span> <span class="comment">  /// the specified LHS/RHS query.</span></div>
+<div class="line"><a name="l00474"></a><span class="lineno">  474</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00475"></a><span class="lineno">  475</span> <span class="comment">  /// If not, we can't use the cache.</span></div>
+<div class="line"><a name="l00476"></a><span class="lineno"><a class="code" href="classclang_1_1InBeforeInTUCacheEntry.html#a4e5a760c8f67ee13115afc15f3c33ca2">  476</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1InBeforeInTUCacheEntry.html#a4e5a760c8f67ee13115afc15f3c33ca2" title="Return true if the currently cached values match up with the specified LHS/RHS query.">isCacheValid</a>(<a class="code" href="classclang_1_1FileID.html" title="An opaque identifier used by SourceManager which refers to a source file (MemoryBuffer) along with it...">FileID</a> LHS, <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> RHS)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00477"></a><span class="lineno">  477</span>     <span class="keywordflow">return</span> LQueryFID == LHS && RQueryFID == RHS;</div>
+<div class="line"><a name="l00478"></a><span class="lineno">  478</span>   }</div>
+<div class="line"><a name="l00479"></a><span class="lineno">  479</span> <span class="comment"></span></div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span> <span class="comment">  /// \brief If the cache is valid, compute the result given the</span></div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span> <span class="comment">  /// specified offsets in the LHS/RHS FileID's.</span></div>
+<div class="line"><a name="l00482"></a><span class="lineno"><a class="code" href="classclang_1_1InBeforeInTUCacheEntry.html#abb6639284ed9159d7ebe2f2199cab3a0">  482</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1InBeforeInTUCacheEntry.html#abb6639284ed9159d7ebe2f2199cab3a0" title="If the cache is valid, compute the result given the specified offsets in the LHS/RHS FileID's...">getCachedResult</a>(<span class="keywordtype">unsigned</span> LOffset, <span class="keywordtype">unsigned</span> ROffset)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span>     <span class="comment">// If one of the query files is the common file, use the offset.  Otherwise,</span></div>
+<div class="line"><a name="l00484"></a><span class="lineno">  484</span>     <span class="comment">// use the #include loc in the common file.</span></div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span>     <span class="keywordflow">if</span> (LQueryFID != CommonFID) LOffset = LCommonOffset;</div>
+<div class="line"><a name="l00486"></a><span class="lineno">  486</span>     <span class="keywordflow">if</span> (RQueryFID != CommonFID) ROffset = RCommonOffset;</div>
+<div class="line"><a name="l00487"></a><span class="lineno">  487</span> </div>
+<div class="line"><a name="l00488"></a><span class="lineno">  488</span>     <span class="comment">// It is common for multiple macro expansions to be "included" from the same</span></div>
+<div class="line"><a name="l00489"></a><span class="lineno">  489</span>     <span class="comment">// location (expansion location), in which case use the order of the FileIDs</span></div>
+<div class="line"><a name="l00490"></a><span class="lineno">  490</span>     <span class="comment">// to determine which came first. This will also take care the case where</span></div>
+<div class="line"><a name="l00491"></a><span class="lineno">  491</span>     <span class="comment">// one of the locations points at the inclusion/expansion point of the other</span></div>
+<div class="line"><a name="l00492"></a><span class="lineno">  492</span>     <span class="comment">// in which case its FileID will come before the other.</span></div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span>     <span class="keywordflow">if</span> (LOffset == ROffset)</div>
+<div class="line"><a name="l00494"></a><span class="lineno">  494</span>       <span class="keywordflow">return</span> IsLQFIDBeforeRQFID;</div>
+<div class="line"><a name="l00495"></a><span class="lineno">  495</span> </div>
+<div class="line"><a name="l00496"></a><span class="lineno">  496</span>     <span class="keywordflow">return</span> LOffset < ROffset;</div>
+<div class="line"><a name="l00497"></a><span class="lineno">  497</span>   }</div>
+<div class="line"><a name="l00498"></a><span class="lineno">  498</span> <span class="comment"></span></div>
+<div class="line"><a name="l00499"></a><span class="lineno">  499</span> <span class="comment">  /// \brief Set up a new query.</span></div>
+<div class="line"><a name="l00500"></a><span class="lineno"><a class="code" href="classclang_1_1InBeforeInTUCacheEntry.html#a36a96b7c47af4d17a06d0b779eed01f8">  500</a></span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1InBeforeInTUCacheEntry.html#a36a96b7c47af4d17a06d0b779eed01f8" title="Set up a new query.">setQueryFIDs</a>(<a class="code" href="classclang_1_1FileID.html" title="An opaque identifier used by SourceManager which refers to a source file (MemoryBuffer) along with it...">FileID</a> LHS, <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> RHS, <span class="keywordtype">bool</span> isLFIDBeforeRFID) {</div>
+<div class="line"><a name="l00501"></a><span class="lineno">  501</span>     assert(LHS != RHS);</div>
+<div class="line"><a name="l00502"></a><span class="lineno">  502</span>     LQueryFID = LHS;</div>
+<div class="line"><a name="l00503"></a><span class="lineno">  503</span>     RQueryFID = RHS;</div>
+<div class="line"><a name="l00504"></a><span class="lineno">  504</span>     IsLQFIDBeforeRQFID = isLFIDBeforeRFID;</div>
+<div class="line"><a name="l00505"></a><span class="lineno">  505</span>   }</div>
+<div class="line"><a name="l00506"></a><span class="lineno">  506</span> </div>
+<div class="line"><a name="l00507"></a><span class="lineno"><a class="code" href="classclang_1_1InBeforeInTUCacheEntry.html#abe9883ca0cbfc944dcfbe2791e23e531">  507</a></span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1InBeforeInTUCacheEntry.html#abe9883ca0cbfc944dcfbe2791e23e531">clear</a>() {</div>
+<div class="line"><a name="l00508"></a><span class="lineno">  508</span>     LQueryFID = RQueryFID = <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>();</div>
+<div class="line"><a name="l00509"></a><span class="lineno">  509</span>     IsLQFIDBeforeRQFID = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00510"></a><span class="lineno">  510</span>   }</div>
+<div class="line"><a name="l00511"></a><span class="lineno">  511</span> </div>
+<div class="line"><a name="l00512"></a><span class="lineno"><a class="code" href="classclang_1_1InBeforeInTUCacheEntry.html#a6d8ec5e46c8361388d6fb15022852a83">  512</a></span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1InBeforeInTUCacheEntry.html#a6d8ec5e46c8361388d6fb15022852a83">setCommonLoc</a>(<a class="code" href="classclang_1_1FileID.html" title="An opaque identifier used by SourceManager which refers to a source file (MemoryBuffer) along with it...">FileID</a> commonFID, <span class="keywordtype">unsigned</span> lCommonOffset,</div>
+<div class="line"><a name="l00513"></a><span class="lineno">  513</span>                     <span class="keywordtype">unsigned</span> rCommonOffset) {</div>
+<div class="line"><a name="l00514"></a><span class="lineno">  514</span>     CommonFID = commonFID;</div>
+<div class="line"><a name="l00515"></a><span class="lineno">  515</span>     LCommonOffset = lCommonOffset;</div>
+<div class="line"><a name="l00516"></a><span class="lineno">  516</span>     RCommonOffset = rCommonOffset;</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> </div>
+<div class="line"><a name="l00519"></a><span class="lineno">  519</span> };</div>
+<div class="line"><a name="l00520"></a><span class="lineno">  520</span> <span class="comment"></span></div>
+<div class="line"><a name="l00521"></a><span class="lineno">  521</span> <span class="comment">/// \brief The stack used when building modules on demand, which is used</span></div>
+<div class="line"><a name="l00522"></a><span class="lineno">  522</span> <span class="comment">/// to provide a link between the source managers of the different compiler</span></div>
+<div class="line"><a name="l00523"></a><span class="lineno">  523</span> <span class="comment">/// instances.</span></div>
+<div class="line"><a name="l00524"></a><span class="lineno"><a class="code" href="namespaceclang.html#a53ef35596c9b16ccf351850c98dec907">  524</a></span> <span class="comment"></span><span class="keyword">typedef</span> <a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<std::pair<std::string, FullSourceLoc></a> > <a class="code" href="namespaceclang.html#a53ef35596c9b16ccf351850c98dec907" title="The stack used when building modules on demand, which is used to provide a link between the source ma...">ModuleBuildStack</a>;</div>
+<div class="line"><a name="l00525"></a><span class="lineno">  525</span> <span class="comment"></span></div>
+<div class="line"><a name="l00526"></a><span class="lineno">  526</span> <span class="comment">/// \brief This class handles loading and caching of source files into memory.</span></div>
+<div class="line"><a name="l00527"></a><span class="lineno">  527</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00528"></a><span class="lineno">  528</span> <span class="comment">/// This object owns the MemoryBuffer objects for all of the loaded</span></div>
+<div class="line"><a name="l00529"></a><span class="lineno">  529</span> <span class="comment">/// files and assigns unique FileID's for each unique \#include chain.</span></div>
+<div class="line"><a name="l00530"></a><span class="lineno">  530</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00531"></a><span class="lineno">  531</span> <span class="comment">/// The SourceManager can be queried for information about SourceLocation</span></div>
+<div class="line"><a name="l00532"></a><span class="lineno">  532</span> <span class="comment">/// objects, turning them into either spelling or expansion locations. Spelling</span></div>
+<div class="line"><a name="l00533"></a><span class="lineno">  533</span> <span class="comment">/// locations represent where the bytes corresponding to a token came from and</span></div>
+<div class="line"><a name="l00534"></a><span class="lineno">  534</span> <span class="comment">/// expansion locations represent where the location is in the user's view. In</span></div>
+<div class="line"><a name="l00535"></a><span class="lineno">  535</span> <span class="comment">/// the case of a macro expansion, for example, the spelling location indicates</span></div>
+<div class="line"><a name="l00536"></a><span class="lineno">  536</span> <span class="comment">/// where the expanded token came from and the expansion location specifies</span></div>
+<div class="line"><a name="l00537"></a><span class="lineno">  537</span> <span class="comment">/// where it was expanded.</span></div>
+<div class="line"><a name="l00538"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html">  538</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1SourceManager.html" title="This class handles loading and caching of source files into memory.">SourceManager</a> : <span class="keyword">public</span> <a class="code" href="classllvm_1_1RefCountedBase.html">RefCountedBase</a><SourceManager> {<span class="comment"></span></div>
+<div class="line"><a name="l00539"></a><span class="lineno">  539</span> <span class="comment">  /// \brief DiagnosticsEngine object.</span></div>
+<div class="line"><a name="l00540"></a><span class="lineno">  540</span> <span class="comment"></span>  <a class="code" href="classclang_1_1DiagnosticsEngine.html" title="Concrete class used by the front-end to report problems and issues.">DiagnosticsEngine</a> &Diag;</div>
+<div class="line"><a name="l00541"></a><span class="lineno">  541</span> </div>
+<div class="line"><a name="l00542"></a><span class="lineno">  542</span>   <a class="code" href="classclang_1_1FileManager.html" title="Implements support for file system lookup, file system caching, and directory search management...">FileManager</a> &FileMgr;</div>
+<div class="line"><a name="l00543"></a><span class="lineno">  543</span> </div>
+<div class="line"><a name="l00544"></a><span class="lineno">  544</span>   <span class="keyword">mutable</span> llvm::BumpPtrAllocator ContentCacheAlloc;</div>
+<div class="line"><a name="l00545"></a><span class="lineno">  545</span> <span class="comment"></span></div>
+<div class="line"><a name="l00546"></a><span class="lineno">  546</span> <span class="comment">  /// \brief Memoized information about all of the files tracked by this</span></div>
+<div class="line"><a name="l00547"></a><span class="lineno">  547</span> <span class="comment">  /// SourceManager.</span></div>
+<div class="line"><a name="l00548"></a><span class="lineno">  548</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00549"></a><span class="lineno">  549</span> <span class="comment">  /// This map allows us to merge ContentCache entries based</span></div>
+<div class="line"><a name="l00550"></a><span class="lineno">  550</span> <span class="comment">  /// on their FileEntry*.  All ContentCache objects will thus have unique,</span></div>
+<div class="line"><a name="l00551"></a><span class="lineno">  551</span> <span class="comment">  /// non-null, FileEntry pointers.</span></div>
+<div class="line"><a name="l00552"></a><span class="lineno">  552</span> <span class="comment"></span>  llvm::DenseMap<const FileEntry*, SrcMgr::ContentCache*> FileInfos;</div>
+<div class="line"><a name="l00553"></a><span class="lineno">  553</span> <span class="comment"></span></div>
+<div class="line"><a name="l00554"></a><span class="lineno">  554</span> <span class="comment">  /// \brief True if the ContentCache for files that are overriden by other</span></div>
+<div class="line"><a name="l00555"></a><span class="lineno">  555</span> <span class="comment">  /// files, should report the original file name. Defaults to true.</span></div>
+<div class="line"><a name="l00556"></a><span class="lineno">  556</span> <span class="comment"></span>  <span class="keywordtype">bool</span> OverridenFilesKeepOriginalName;</div>
+<div class="line"><a name="l00557"></a><span class="lineno">  557</span> <span class="comment"></span></div>
+<div class="line"><a name="l00558"></a><span class="lineno">  558</span> <span class="comment">  /// \brief True if non-system source files should be treated as volatile</span></div>
+<div class="line"><a name="l00559"></a><span class="lineno">  559</span> <span class="comment">  /// (likely to change while trying to use them). Defaults to false.</span></div>
+<div class="line"><a name="l00560"></a><span class="lineno">  560</span> <span class="comment"></span>  <span class="keywordtype">bool</span> UserFilesAreVolatile;</div>
+<div class="line"><a name="l00561"></a><span class="lineno">  561</span> </div>
+<div class="line"><a name="l00562"></a><span class="lineno">  562</span>   <span class="keyword">struct </span>OverriddenFilesInfoTy {<span class="comment"></span></div>
+<div class="line"><a name="l00563"></a><span class="lineno">  563</span> <span class="comment">    /// \brief Files that have been overriden with the contents from another</span></div>
+<div class="line"><a name="l00564"></a><span class="lineno">  564</span> <span class="comment">    /// file.</span></div>
+<div class="line"><a name="l00565"></a><span class="lineno">  565</span> <span class="comment"></span>    llvm::DenseMap<const FileEntry *, const FileEntry *> OverriddenFiles;<span class="comment"></span></div>
+<div class="line"><a name="l00566"></a><span class="lineno">  566</span> <span class="comment">    /// \brief Files that were overridden with a memory buffer.</span></div>
+<div class="line"><a name="l00567"></a><span class="lineno">  567</span> <span class="comment"></span>    <a class="code" href="classllvm_1_1DenseSet.html">llvm::DenseSet<const FileEntry *></a> OverriddenFilesWithBuffer;</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="comment"></span></div>
+<div class="line"><a name="l00570"></a><span class="lineno">  570</span> <span class="comment">  /// \brief Lazily create the object keeping overridden files info, since</span></div>
+<div class="line"><a name="l00571"></a><span class="lineno">  571</span> <span class="comment">  /// it is uncommonly used.</span></div>
+<div class="line"><a name="l00572"></a><span class="lineno">  572</span> <span class="comment"></span>  <a class="code" href="classllvm_1_1OwningPtr.html">OwningPtr<OverriddenFilesInfoTy></a> OverriddenFilesInfo;</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>   OverriddenFilesInfoTy &getOverriddenFilesInfo() {</div>
+<div class="line"><a name="l00575"></a><span class="lineno">  575</span>     <span class="keywordflow">if</span> (!OverriddenFilesInfo)</div>
+<div class="line"><a name="l00576"></a><span class="lineno">  576</span>       OverriddenFilesInfo.reset(<span class="keyword">new</span> OverriddenFilesInfoTy);</div>
+<div class="line"><a name="l00577"></a><span class="lineno">  577</span>     <span class="keywordflow">return</span> *OverriddenFilesInfo;</div>
+<div class="line"><a name="l00578"></a><span class="lineno">  578</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">  /// \brief Information about various memory buffers that we have read in.</span></div>
+<div class="line"><a name="l00581"></a><span class="lineno">  581</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00582"></a><span class="lineno">  582</span> <span class="comment">  /// All FileEntry* within the stored ContentCache objects are NULL,</span></div>
+<div class="line"><a name="l00583"></a><span class="lineno">  583</span> <span class="comment">  /// as they do not refer to a file.</span></div>
+<div class="line"><a name="l00584"></a><span class="lineno">  584</span> <span class="comment"></span>  std::vector<SrcMgr::ContentCache*> MemBufferInfos;</div>
+<div class="line"><a name="l00585"></a><span class="lineno">  585</span> <span class="comment"></span></div>
+<div class="line"><a name="l00586"></a><span class="lineno">  586</span> <span class="comment">  /// \brief The table of SLocEntries that are local to this module.</span></div>
+<div class="line"><a name="l00587"></a><span class="lineno">  587</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00588"></a><span class="lineno">  588</span> <span class="comment">  /// Positive FileIDs are indexes into this table. Entry 0 indicates an invalid</span></div>
+<div class="line"><a name="l00589"></a><span class="lineno">  589</span> <span class="comment">  /// expansion.</span></div>
+<div class="line"><a name="l00590"></a><span class="lineno">  590</span> <span class="comment"></span>  <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<SrcMgr::SLocEntry, 0></a> LocalSLocEntryTable;</div>
+<div class="line"><a name="l00591"></a><span class="lineno">  591</span> <span class="comment"></span></div>
+<div class="line"><a name="l00592"></a><span class="lineno">  592</span> <span class="comment">  /// \brief The table of SLocEntries that are loaded from other modules.</span></div>
+<div class="line"><a name="l00593"></a><span class="lineno">  593</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00594"></a><span class="lineno">  594</span> <span class="comment">  /// Negative FileIDs are indexes into this table. To get from ID to an index,</span></div>
+<div class="line"><a name="l00595"></a><span class="lineno">  595</span> <span class="comment">  /// use (-ID - 2).</span></div>
+<div class="line"><a name="l00596"></a><span class="lineno">  596</span> <span class="comment"></span>  <span class="keyword">mutable</span> <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<SrcMgr::SLocEntry, 0></a> LoadedSLocEntryTable;</div>
+<div class="line"><a name="l00597"></a><span class="lineno">  597</span> <span class="comment"></span></div>
+<div class="line"><a name="l00598"></a><span class="lineno">  598</span> <span class="comment">  /// \brief The starting offset of the next local SLocEntry.</span></div>
+<div class="line"><a name="l00599"></a><span class="lineno">  599</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00600"></a><span class="lineno">  600</span> <span class="comment">  /// This is LocalSLocEntryTable.back().Offset + the size of that entry.</span></div>
+<div class="line"><a name="l00601"></a><span class="lineno">  601</span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> NextLocalOffset;</div>
+<div class="line"><a name="l00602"></a><span class="lineno">  602</span> <span class="comment"></span></div>
+<div class="line"><a name="l00603"></a><span class="lineno">  603</span> <span class="comment">  /// \brief The starting offset of the latest batch of loaded SLocEntries.</span></div>
+<div class="line"><a name="l00604"></a><span class="lineno">  604</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00605"></a><span class="lineno">  605</span> <span class="comment">  /// This is LoadedSLocEntryTable.back().Offset, except that that entry might</span></div>
+<div class="line"><a name="l00606"></a><span class="lineno">  606</span> <span class="comment">  /// not have been loaded, so that value would be unknown.</span></div>
+<div class="line"><a name="l00607"></a><span class="lineno">  607</span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> CurrentLoadedOffset;</div>
+<div class="line"><a name="l00608"></a><span class="lineno">  608</span> <span class="comment"></span></div>
+<div class="line"><a name="l00609"></a><span class="lineno">  609</span> <span class="comment">  /// \brief The highest possible offset is 2^31-1, so CurrentLoadedOffset</span></div>
+<div class="line"><a name="l00610"></a><span class="lineno">  610</span> <span class="comment">  /// starts at 2^31.</span></div>
+<div class="line"><a name="l00611"></a><span class="lineno">  611</span> <span class="comment"></span>  <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> MaxLoadedOffset = 1U << 31U;</div>
+<div class="line"><a name="l00612"></a><span class="lineno">  612</span> <span class="comment"></span></div>
+<div class="line"><a name="l00613"></a><span class="lineno">  613</span> <span class="comment">  /// \brief A bitmap that indicates whether the entries of LoadedSLocEntryTable</span></div>
+<div class="line"><a name="l00614"></a><span class="lineno">  614</span> <span class="comment">  /// have already been loaded from the external source.</span></div>
+<div class="line"><a name="l00615"></a><span class="lineno">  615</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00616"></a><span class="lineno">  616</span> <span class="comment">  /// Same indexing as LoadedSLocEntryTable.</span></div>
+<div class="line"><a name="l00617"></a><span class="lineno">  617</span> <span class="comment"></span>  std::vector<bool> SLocEntryLoaded;</div>
+<div class="line"><a name="l00618"></a><span class="lineno">  618</span> <span class="comment"></span></div>
+<div class="line"><a name="l00619"></a><span class="lineno">  619</span> <span class="comment">  /// \brief An external source for source location entries.</span></div>
+<div class="line"><a name="l00620"></a><span class="lineno">  620</span> <span class="comment"></span>  <a class="code" href="classclang_1_1ExternalSLocEntrySource.html" title="External source of source location entries.">ExternalSLocEntrySource</a> *ExternalSLocEntries;</div>
+<div class="line"><a name="l00621"></a><span class="lineno">  621</span> <span class="comment"></span></div>
+<div class="line"><a name="l00622"></a><span class="lineno">  622</span> <span class="comment">  /// \brief A one-entry cache to speed up getFileID.</span></div>
+<div class="line"><a name="l00623"></a><span class="lineno">  623</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00624"></a><span class="lineno">  624</span> <span class="comment">  /// LastFileIDLookup records the last FileID looked up or created, because it</span></div>
+<div class="line"><a name="l00625"></a><span class="lineno">  625</span> <span class="comment">  /// is very common to look up many tokens from the same file.</span></div>
+<div class="line"><a name="l00626"></a><span class="lineno">  626</span> <span class="comment"></span>  <span class="keyword">mutable</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> LastFileIDLookup;</div>
+<div class="line"><a name="l00627"></a><span class="lineno">  627</span> <span class="comment"></span></div>
+<div class="line"><a name="l00628"></a><span class="lineno">  628</span> <span class="comment">  /// \brief Holds information for \#line directives.</span></div>
+<div class="line"><a name="l00629"></a><span class="lineno">  629</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00630"></a><span class="lineno">  630</span> <span class="comment">  /// This is referenced by indices from SLocEntryTable.</span></div>
+<div class="line"><a name="l00631"></a><span class="lineno">  631</span> <span class="comment"></span>  <a class="code" href="classclang_1_1LineTableInfo.html" title="Used to hold and unique data used to represent #line information.">LineTableInfo</a> *LineTable;</div>
+<div class="line"><a name="l00632"></a><span class="lineno">  632</span> <span class="comment"></span></div>
+<div class="line"><a name="l00633"></a><span class="lineno">  633</span> <span class="comment">  /// \brief These ivars serve as a cache used in the getLineNumber</span></div>
+<div class="line"><a name="l00634"></a><span class="lineno">  634</span> <span class="comment">  /// method which is used to speedup getLineNumber calls to nearby locations.</span></div>
+<div class="line"><a name="l00635"></a><span class="lineno">  635</span> <span class="comment"></span>  <span class="keyword">mutable</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> LastLineNoFileIDQuery;</div>
+<div class="line"><a name="l00636"></a><span class="lineno">  636</span>   <span class="keyword">mutable</span> <a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html" title="One instance of this struct is kept for every file loaded or used.">SrcMgr::ContentCache</a> *LastLineNoContentCache;</div>
+<div class="line"><a name="l00637"></a><span class="lineno">  637</span>   <span class="keyword">mutable</span> <span class="keywordtype">unsigned</span> LastLineNoFilePos;</div>
+<div class="line"><a name="l00638"></a><span class="lineno">  638</span>   <span class="keyword">mutable</span> <span class="keywordtype">unsigned</span> LastLineNoResult;</div>
+<div class="line"><a name="l00639"></a><span class="lineno">  639</span> <span class="comment"></span></div>
+<div class="line"><a name="l00640"></a><span class="lineno">  640</span> <span class="comment">  /// \brief The file ID for the main source file of the translation unit.</span></div>
+<div class="line"><a name="l00641"></a><span class="lineno">  641</span> <span class="comment"></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> MainFileID;</div>
+<div class="line"><a name="l00642"></a><span class="lineno">  642</span> <span class="comment"></span></div>
+<div class="line"><a name="l00643"></a><span class="lineno">  643</span> <span class="comment">  /// \brief The file ID for the precompiled preamble there is one.</span></div>
+<div class="line"><a name="l00644"></a><span class="lineno">  644</span> <span class="comment"></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> PreambleFileID;</div>
+<div class="line"><a name="l00645"></a><span class="lineno">  645</span> </div>
+<div class="line"><a name="l00646"></a><span class="lineno">  646</span>   <span class="comment">// Statistics for -print-stats.</span></div>
+<div class="line"><a name="l00647"></a><span class="lineno">  647</span>   <span class="keyword">mutable</span> <span class="keywordtype">unsigned</span> NumLinearScans, NumBinaryProbes;</div>
+<div class="line"><a name="l00648"></a><span class="lineno">  648</span> <span class="comment"></span></div>
+<div class="line"><a name="l00649"></a><span class="lineno">  649</span> <span class="comment">  /// \brief Associates a FileID with its "included/expanded in" decomposed</span></div>
+<div class="line"><a name="l00650"></a><span class="lineno">  650</span> <span class="comment">  /// location.</span></div>
+<div class="line"><a name="l00651"></a><span class="lineno">  651</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00652"></a><span class="lineno">  652</span> <span class="comment">  /// Used to cache results from and speed-up \c getDecomposedIncludedLoc</span></div>
+<div class="line"><a name="l00653"></a><span class="lineno">  653</span> <span class="comment">  /// function.</span></div>
+<div class="line"><a name="l00654"></a><span class="lineno">  654</span> <span class="comment"></span>  <span class="keyword">mutable</span> llvm::DenseMap<FileID, std::pair<FileID, unsigned> > IncludedLocMap;</div>
+<div class="line"><a name="l00655"></a><span class="lineno">  655</span> <span class="comment"></span></div>
+<div class="line"><a name="l00656"></a><span class="lineno">  656</span> <span class="comment">  /// The key value into the IsBeforeInTUCache table.</span></div>
+<div class="line"><a name="l00657"></a><span class="lineno">  657</span> <span class="comment"></span>  <span class="keyword">typedef</span> std::pair<FileID, FileID> IsBeforeInTUCacheKey;</div>
+<div class="line"><a name="l00658"></a><span class="lineno">  658</span> <span class="comment"></span></div>
+<div class="line"><a name="l00659"></a><span class="lineno">  659</span> <span class="comment">  /// The IsBeforeInTranslationUnitCache is a mapping from FileID pairs</span></div>
+<div class="line"><a name="l00660"></a><span class="lineno">  660</span> <span class="comment">  /// to cache results.</span></div>
+<div class="line"><a name="l00661"></a><span class="lineno">  661</span> <span class="comment"></span>  <span class="keyword">typedef</span> llvm::DenseMap<IsBeforeInTUCacheKey, InBeforeInTUCacheEntry></div>
+<div class="line"><a name="l00662"></a><span class="lineno">  662</span>           InBeforeInTUCache;</div>
+<div class="line"><a name="l00663"></a><span class="lineno">  663</span> <span class="comment"></span></div>
+<div class="line"><a name="l00664"></a><span class="lineno">  664</span> <span class="comment">  /// Cache results for the isBeforeInTranslationUnit method.</span></div>
+<div class="line"><a name="l00665"></a><span class="lineno">  665</span> <span class="comment"></span>  <span class="keyword">mutable</span> InBeforeInTUCache IBTUCache;</div>
+<div class="line"><a name="l00666"></a><span class="lineno">  666</span>   <span class="keyword">mutable</span> <a class="code" href="classclang_1_1InBeforeInTUCacheEntry.html" title="Holds the cache used by isBeforeInTranslationUnit.">InBeforeInTUCacheEntry</a> IBTUCacheOverflow;</div>
+<div class="line"><a name="l00667"></a><span class="lineno">  667</span> <span class="comment"></span></div>
+<div class="line"><a name="l00668"></a><span class="lineno">  668</span> <span class="comment">  /// Return the cache entry for comparing the given file IDs</span></div>
+<div class="line"><a name="l00669"></a><span class="lineno">  669</span> <span class="comment">  /// for isBeforeInTranslationUnit.</span></div>
+<div class="line"><a name="l00670"></a><span class="lineno">  670</span> <span class="comment"></span>  <a class="code" href="classclang_1_1InBeforeInTUCacheEntry.html" title="Holds the cache used by isBeforeInTranslationUnit.">InBeforeInTUCacheEntry</a> &getInBeforeInTUCache(<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> LFID, <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> RFID) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00671"></a><span class="lineno">  671</span> </div>
+<div class="line"><a name="l00672"></a><span class="lineno">  672</span>   <span class="comment">// Cache for the "fake" buffer used for error-recovery purposes.</span></div>
+<div class="line"><a name="l00673"></a><span class="lineno">  673</span>   <span class="keyword">mutable</span> llvm::MemoryBuffer *FakeBufferForRecovery;</div>
+<div class="line"><a name="l00674"></a><span class="lineno">  674</span> </div>
+<div class="line"><a name="l00675"></a><span class="lineno">  675</span>   <span class="keyword">mutable</span> <a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html" title="One instance of this struct is kept for every file loaded or used.">SrcMgr::ContentCache</a> *FakeContentCacheForRecovery;</div>
+<div class="line"><a name="l00676"></a><span class="lineno">  676</span> <span class="comment"></span></div>
+<div class="line"><a name="l00677"></a><span class="lineno">  677</span> <span class="comment">  /// \brief Lazily computed map of macro argument chunks to their expanded</span></div>
+<div class="line"><a name="l00678"></a><span class="lineno">  678</span> <span class="comment">  /// source location.</span></div>
+<div class="line"><a name="l00679"></a><span class="lineno">  679</span> <span class="comment"></span>  <span class="keyword">typedef</span> std::map<unsigned, SourceLocation> MacroArgsMap;</div>
+<div class="line"><a name="l00680"></a><span class="lineno">  680</span> </div>
+<div class="line"><a name="l00681"></a><span class="lineno">  681</span>   <span class="keyword">mutable</span> llvm::DenseMap<FileID, MacroArgsMap *> MacroArgsCacheMap;</div>
+<div class="line"><a name="l00682"></a><span class="lineno">  682</span> <span class="comment"></span></div>
+<div class="line"><a name="l00683"></a><span class="lineno">  683</span> <span class="comment">  /// \brief The stack of modules being built, which is used to detect</span></div>
+<div class="line"><a name="l00684"></a><span class="lineno">  684</span> <span class="comment">  /// cycles in the module dependency graph as modules are being built, as</span></div>
+<div class="line"><a name="l00685"></a><span class="lineno">  685</span> <span class="comment">  /// well as to describe why we're rebuilding a particular module.</span></div>
+<div class="line"><a name="l00686"></a><span class="lineno">  686</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00687"></a><span class="lineno">  687</span> <span class="comment">  /// There is no way to set this value from the command line. If we ever need</span></div>
+<div class="line"><a name="l00688"></a><span class="lineno">  688</span> <span class="comment">  /// to do so (e.g., if on-demand module construction moves out-of-process),</span></div>
+<div class="line"><a name="l00689"></a><span class="lineno">  689</span> <span class="comment">  /// we can add a cc1-level option to do so.</span></div>
+<div class="line"><a name="l00690"></a><span class="lineno">  690</span> <span class="comment"></span>  <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<std::pair<std::string, FullSourceLoc></a>, 2> StoredModuleBuildStack;</div>
+<div class="line"><a name="l00691"></a><span class="lineno">  691</span> </div>
+<div class="line"><a name="l00692"></a><span class="lineno">  692</span>   <span class="comment">// SourceManager doesn't support copy construction.</span></div>
+<div class="line"><a name="l00693"></a><span class="lineno">  693</span>   <span class="keyword">explicit</span> <a class="code" href="classclang_1_1SourceManager.html" title="This class handles loading and caching of source files into memory.">SourceManager</a>(<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>&) LLVM_DELETED_FUNCTION;</div>
+<div class="line"><a name="l00694"></a><span class="lineno">  694</span>   <span class="keywordtype">void</span> operator=(<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>&) LLVM_DELETED_FUNCTION;</div>
+<div class="line"><a name="l00695"></a><span class="lineno">  695</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00696"></a><span class="lineno">  696</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_1DiagnosticsEngine.html" title="Concrete class used by the front-end to report problems and issues.">DiagnosticsEngine</a> &Diag, <a class="code" href="classclang_1_1FileManager.html" title="Implements support for file system lookup, file system caching, and directory search management...">FileManager</a> &FileMgr,</div>
+<div class="line"><a name="l00697"></a><span class="lineno">  697</span>                 <span class="keywordtype">bool</span> UserFilesAreVolatile = <span class="keyword">false</span>);</div>
+<div class="line"><a name="l00698"></a><span class="lineno">  698</span>   <a class="code" href="classclang_1_1SourceManager.html#a1aaf363af19e27658a8d45d1b66a6c60">~SourceManager</a>();</div>
+<div class="line"><a name="l00699"></a><span class="lineno">  699</span> </div>
+<div class="line"><a name="l00700"></a><span class="lineno">  700</span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1SourceManager.html#a68af6d1635e6105adaa25a4205af33a6">clearIDTables</a>();</div>
+<div class="line"><a name="l00701"></a><span class="lineno">  701</span> </div>
+<div class="line"><a name="l00702"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#ad66017ba8d0863bbfb1ef9c2c2c7ee34">  702</a></span>   <a class="code" href="classclang_1_1DiagnosticsEngine.html" title="Concrete class used by the front-end to report problems and issues.">DiagnosticsEngine</a> &<a class="code" href="classclang_1_1SourceManager.html#ad66017ba8d0863bbfb1ef9c2c2c7ee34">getDiagnostics</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Diag; }</div>
+<div class="line"><a name="l00703"></a><span class="lineno">  703</span> </div>
+<div class="line"><a name="l00704"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#aa80ae8266b98edd041407e7f96fa7501">  704</a></span>   <a class="code" href="classclang_1_1FileManager.html" title="Implements support for file system lookup, file system caching, and directory search management...">FileManager</a> &<a class="code" href="classclang_1_1SourceManager.html#aa80ae8266b98edd041407e7f96fa7501">getFileManager</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> FileMgr; }</div>
+<div class="line"><a name="l00705"></a><span class="lineno">  705</span> <span class="comment"></span></div>
+<div class="line"><a name="l00706"></a><span class="lineno">  706</span> <span class="comment">  /// \brief Set true if the SourceManager should report the original file name</span></div>
+<div class="line"><a name="l00707"></a><span class="lineno">  707</span> <span class="comment">  /// for contents of files that were overriden by other files.Defaults to true.</span></div>
+<div class="line"><a name="l00708"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#a7af232b260b207f1bb138309a2465ee3">  708</a></span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1SourceManager.html#a7af232b260b207f1bb138309a2465ee3" title="Set true if the SourceManager should report the original file name for contents of files that were ov...">setOverridenFilesKeepOriginalName</a>(<span class="keywordtype">bool</span> value) {</div>
+<div class="line"><a name="l00709"></a><span class="lineno">  709</span>     OverridenFilesKeepOriginalName = value;</div>
+<div class="line"><a name="l00710"></a><span class="lineno">  710</span>   }</div>
+<div class="line"><a name="l00711"></a><span class="lineno">  711</span> <span class="comment"></span></div>
+<div class="line"><a name="l00712"></a><span class="lineno">  712</span> <span class="comment">  /// \brief True if non-system source files should be treated as volatile</span></div>
+<div class="line"><a name="l00713"></a><span class="lineno">  713</span> <span class="comment">  /// (likely to change while trying to use them).</span></div>
+<div class="line"><a name="l00714"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#adb1befb02533b06cde5abccc872c4a1b">  714</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1SourceManager.html#adb1befb02533b06cde5abccc872c4a1b" title="True if non-system source files should be treated as volatile (likely to change while trying to use t...">userFilesAreVolatile</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> UserFilesAreVolatile; }</div>
+<div class="line"><a name="l00715"></a><span class="lineno">  715</span> <span class="comment"></span></div>
+<div class="line"><a name="l00716"></a><span class="lineno">  716</span> <span class="comment">  /// \brief Retrieve the module build stack.</span></div>
+<div class="line"><a name="l00717"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#a5aa4cea4f2b00c10ee13f0fc05b273ea">  717</a></span> <span class="comment"></span>  <a class="code" href="classllvm_1_1ArrayRef.html">ModuleBuildStack</a> <a class="code" href="classclang_1_1SourceManager.html#a5aa4cea4f2b00c10ee13f0fc05b273ea" title="Retrieve the module build stack.">getModuleBuildStack</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00718"></a><span class="lineno">  718</span>     <span class="keywordflow">return</span> StoredModuleBuildStack;</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="comment"></span></div>
+<div class="line"><a name="l00721"></a><span class="lineno">  721</span> <span class="comment">  /// \brief Set the module build stack.</span></div>
+<div class="line"><a name="l00722"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#a599a8c8f35afca49e1addd1d3d4a34d0">  722</a></span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1SourceManager.html#a599a8c8f35afca49e1addd1d3d4a34d0" title="Set the module build stack.">setModuleBuildStack</a>(<a class="code" href="classllvm_1_1ArrayRef.html">ModuleBuildStack</a> stack) {</div>
+<div class="line"><a name="l00723"></a><span class="lineno">  723</span>     StoredModuleBuildStack.clear();</div>
+<div class="line"><a name="l00724"></a><span class="lineno">  724</span>     StoredModuleBuildStack.append(stack.begin(), stack.end());</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">  /// \brief Push an entry to the module build stack.</span></div>
+<div class="line"><a name="l00728"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#a8cae93c3d36adb141e3dbf403b74f76c">  728</a></span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1SourceManager.html#a8cae93c3d36adb141e3dbf403b74f76c" title="Push an entry to the module build stack.">pushModuleBuildStack</a>(StringRef moduleName, <a class="code" href="classclang_1_1FullSourceLoc.html" title="A SourceLocation and its associated SourceManager.">FullSourceLoc</a> importLoc) {</div>
+<div class="line"><a name="l00729"></a><span class="lineno">  729</span>     StoredModuleBuildStack.push_back(std::make_pair(moduleName.str(),importLoc));</div>
+<div class="line"><a name="l00730"></a><span class="lineno">  730</span>   }</div>
+<div class="line"><a name="l00731"></a><span class="lineno">  731</span> <span class="comment"></span></div>
+<div class="line"><a name="l00732"></a><span class="lineno">  732</span> <span class="comment">  /// \brief Create the FileID for a memory buffer that will represent the</span></div>
+<div class="line"><a name="l00733"></a><span class="lineno">  733</span> <span class="comment">  /// FileID for the main source.</span></div>
+<div class="line"><a name="l00734"></a><span class="lineno">  734</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00735"></a><span class="lineno">  735</span> <span class="comment">  /// One example of when this would be used is when the main source is read</span></div>
+<div class="line"><a name="l00736"></a><span class="lineno">  736</span> <span class="comment">  /// from STDIN.</span></div>
+<div class="line"><a name="l00737"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#ae3e67280d1ff333470c8104ecf4e2b9e">  737</a></span> <span class="comment"></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_1SourceManager.html#ae3e67280d1ff333470c8104ecf4e2b9e" title="Create the FileID for a memory buffer that will represent the FileID for the main source...">createMainFileIDForMemBuffer</a>(<span class="keyword">const</span> llvm::MemoryBuffer *Buffer,</div>
+<div class="line"><a name="l00738"></a><span class="lineno">  738</span>                              <a class="code" href="namespaceclang_1_1SrcMgr.html#a27297b3568f189486de6df08a8cba35d" title="Indicates whether a file or directory holds normal user code, system code, or system code which is im...">SrcMgr::CharacteristicKind</a> <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a> = <a class="code" href="namespaceclang_1_1SrcMgr.html#a27297b3568f189486de6df08a8cba35dab0548ddada8d87ad92e94d67e5af0a4f">SrcMgr::C_User</a>) {</div>
+<div class="line"><a name="l00739"></a><span class="lineno">  739</span>     assert(MainFileID.<a class="code" href="classclang_1_1FileID.html#a89ac6cca1064b7275a777f86450c7863">isInvalid</a>() && <span class="stringliteral">"MainFileID already set!"</span>);</div>
+<div class="line"><a name="l00740"></a><span class="lineno">  740</span>     MainFileID = <a class="code" href="classclang_1_1SourceManager.html#a765dbc1395783dd688dd0f5029b17088" title="Create a new FileID that represents the specified memory buffer.">createFileIDForMemBuffer</a>(Buffer, <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a>);</div>
+<div class="line"><a name="l00741"></a><span class="lineno">  741</span>     <span class="keywordflow">return</span> MainFileID;</div>
+<div class="line"><a name="l00742"></a><span class="lineno">  742</span>   }</div>
+<div class="line"><a name="l00743"></a><span class="lineno">  743</span> </div>
+<div class="line"><a name="l00744"></a><span class="lineno">  744</span>   <span class="comment">//===--------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00745"></a><span class="lineno">  745</span>   <span class="comment">// MainFileID creation and querying methods.</span></div>
+<div class="line"><a name="l00746"></a><span class="lineno">  746</span>   <span class="comment">//===--------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00747"></a><span class="lineno">  747</span> <span class="comment"></span></div>
+<div class="line"><a name="l00748"></a><span class="lineno">  748</span> <span class="comment">  /// \brief Returns the FileID of the main source file.</span></div>
+<div class="line"><a name="l00749"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#ad3ac47ab7380c82d19243a2db765479c">  749</a></span> <span class="comment"></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_1SourceManager.html#ad3ac47ab7380c82d19243a2db765479c" title="Returns the FileID of the main source file.">getMainFileID</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> MainFileID; }</div>
+<div class="line"><a name="l00750"></a><span class="lineno">  750</span> <span class="comment"></span></div>
+<div class="line"><a name="l00751"></a><span class="lineno">  751</span> <span class="comment">  /// \brief Create the FileID for the main source file.</span></div>
+<div class="line"><a name="l00752"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#a652eb33fbe7222fd717b491be1738ecf">  752</a></span> <span class="comment"></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_1SourceManager.html#a652eb33fbe7222fd717b491be1738ecf" title="Create the FileID for the main source file.">createMainFileID</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a> *SourceFile, </div>
+<div class="line"><a name="l00753"></a><span class="lineno">  753</span>                           <a class="code" href="namespaceclang_1_1SrcMgr.html#a27297b3568f189486de6df08a8cba35d" title="Indicates whether a file or directory holds normal user code, system code, or system code which is im...">SrcMgr::CharacteristicKind</a> <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a> = <a class="code" href="namespaceclang_1_1SrcMgr.html#a27297b3568f189486de6df08a8cba35dab0548ddada8d87ad92e94d67e5af0a4f">SrcMgr::C_User</a>) {</div>
+<div class="line"><a name="l00754"></a><span class="lineno">  754</span>     assert(MainFileID.<a class="code" href="classclang_1_1FileID.html#a89ac6cca1064b7275a777f86450c7863">isInvalid</a>() && <span class="stringliteral">"MainFileID already set!"</span>);</div>
+<div class="line"><a name="l00755"></a><span class="lineno">  755</span>     MainFileID = <a class="code" href="classclang_1_1SourceManager.html#acefb5d310242160b1910104bbf4d8b2d" title="Create a new FileID that represents the specified file being #included from the specified IncludePosi...">createFileID</a>(SourceFile, <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="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a>);</div>
+<div class="line"><a name="l00756"></a><span class="lineno">  756</span>     <span class="keywordflow">return</span> MainFileID;</div>
+<div class="line"><a name="l00757"></a><span class="lineno">  757</span>   }</div>
+<div class="line"><a name="l00758"></a><span class="lineno">  758</span> <span class="comment"></span></div>
+<div class="line"><a name="l00759"></a><span class="lineno">  759</span> <span class="comment">  /// \brief Set the file ID for the main source file.</span></div>
+<div class="line"><a name="l00760"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#a988b53661bb5ac2515b122debccc9ef6">  760</a></span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1SourceManager.html#a988b53661bb5ac2515b122debccc9ef6" title="Set the file ID for the main source file.">setMainFileID</a>(<a class="code" href="classclang_1_1FileID.html" title="An opaque identifier used by SourceManager which refers to a source file (MemoryBuffer) along with it...">FileID</a> FID) {</div>
+<div class="line"><a name="l00761"></a><span class="lineno">  761</span>     assert(MainFileID.<a class="code" href="classclang_1_1FileID.html#a89ac6cca1064b7275a777f86450c7863">isInvalid</a>() && <span class="stringliteral">"MainFileID already set!"</span>);</div>
+<div class="line"><a name="l00762"></a><span class="lineno">  762</span>     MainFileID = FID;</div>
+<div class="line"><a name="l00763"></a><span class="lineno">  763</span>   }</div>
+<div class="line"><a name="l00764"></a><span class="lineno">  764</span> <span class="comment"></span></div>
+<div class="line"><a name="l00765"></a><span class="lineno">  765</span> <span class="comment">  /// \brief Set the file ID for the precompiled preamble.</span></div>
+<div class="line"><a name="l00766"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#a71953d377b54b96a09576d0319df8a83">  766</a></span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1SourceManager.html#a71953d377b54b96a09576d0319df8a83" title="Set the file ID for the precompiled preamble.">setPreambleFileID</a>(<a class="code" href="classclang_1_1FileID.html" title="An opaque identifier used by SourceManager which refers to a source file (MemoryBuffer) along with it...">FileID</a> Preamble) {</div>
+<div class="line"><a name="l00767"></a><span class="lineno">  767</span>     assert(PreambleFileID.<a class="code" href="classclang_1_1FileID.html#a89ac6cca1064b7275a777f86450c7863">isInvalid</a>() && <span class="stringliteral">"PreambleFileID already set!"</span>);</div>
+<div class="line"><a name="l00768"></a><span class="lineno">  768</span>     PreambleFileID = Preamble;</div>
+<div class="line"><a name="l00769"></a><span class="lineno">  769</span>   }</div>
+<div class="line"><a name="l00770"></a><span class="lineno">  770</span> <span class="comment"></span></div>
+<div class="line"><a name="l00771"></a><span class="lineno">  771</span> <span class="comment">  /// \brief Get the file ID for the precompiled preamble if there is one.</span></div>
+<div class="line"><a name="l00772"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#a0cecf294e287bdaa16731595bbbe7efc">  772</a></span> <span class="comment"></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_1SourceManager.html#a0cecf294e287bdaa16731595bbbe7efc" title="Get the file ID for the precompiled preamble if there is one.">getPreambleFileID</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> PreambleFileID; }</div>
+<div class="line"><a name="l00773"></a><span class="lineno">  773</span> </div>
+<div class="line"><a name="l00774"></a><span class="lineno">  774</span>   <span class="comment">//===--------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00775"></a><span class="lineno">  775</span>   <span class="comment">// Methods to create new FileID's and macro expansions.</span></div>
+<div class="line"><a name="l00776"></a><span class="lineno">  776</span>   <span class="comment">//===--------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00777"></a><span class="lineno">  777</span> <span class="comment"></span></div>
+<div class="line"><a name="l00778"></a><span class="lineno">  778</span> <span class="comment">  /// \brief Create a new FileID that represents the specified file</span></div>
+<div class="line"><a name="l00779"></a><span class="lineno">  779</span> <span class="comment">  /// being \#included from the specified IncludePosition.</span></div>
+<div class="line"><a name="l00780"></a><span class="lineno">  780</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00781"></a><span class="lineno">  781</span> <span class="comment">  /// This translates NULL into standard input.</span></div>
+<div class="line"><a name="l00782"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#acefb5d310242160b1910104bbf4d8b2d">  782</a></span> <span class="comment"></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_1SourceManager.html#acefb5d310242160b1910104bbf4d8b2d" title="Create a new FileID that represents the specified file being #included from the specified IncludePosi...">createFileID</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a> *SourceFile, <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> IncludePo
 s,</div>
+<div class="line"><a name="l00783"></a><span class="lineno">  783</span>                       <a class="code" href="namespaceclang_1_1SrcMgr.html#a27297b3568f189486de6df08a8cba35d" title="Indicates whether a file or directory holds normal user code, system code, or system code which is im...">SrcMgr::CharacteristicKind</a> FileCharacter,</div>
+<div class="line"><a name="l00784"></a><span class="lineno">  784</span>                       <span class="keywordtype">int</span> LoadedID = 0, <span class="keywordtype">unsigned</span> LoadedOffset = 0) {</div>
+<div class="line"><a name="l00785"></a><span class="lineno">  785</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html" title="One instance of this struct is kept for every file loaded or used.">SrcMgr::ContentCache</a> *</div>
+<div class="line"><a name="l00786"></a><span class="lineno">  786</span>       IR = getOrCreateContentCache(SourceFile,</div>
+<div class="line"><a name="l00787"></a><span class="lineno">  787</span>                               <span class="comment">/*isSystemFile=*/</span>FileCharacter != <a class="code" href="namespaceclang_1_1SrcMgr.html#a27297b3568f189486de6df08a8cba35dab0548ddada8d87ad92e94d67e5af0a4f">SrcMgr::C_User</a>);</div>
+<div class="line"><a name="l00788"></a><span class="lineno">  788</span>     assert(IR && <span class="stringliteral">"getOrCreateContentCache() cannot return NULL"</span>);</div>
+<div class="line"><a name="l00789"></a><span class="lineno">  789</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1SourceManager.html#acefb5d310242160b1910104bbf4d8b2d" title="Create a new FileID that represents the specified file being #included from the specified IncludePosi...">createFileID</a>(IR, IncludePos, FileCharacter, LoadedID, LoadedOffset);</div>
+<div class="line"><a name="l00790"></a><span class="lineno">  790</span>   }</div>
+<div class="line"><a name="l00791"></a><span class="lineno">  791</span> <span class="comment"></span></div>
+<div class="line"><a name="l00792"></a><span class="lineno">  792</span> <span class="comment">  /// \brief Create a new FileID that represents the specified memory buffer.</span></div>
+<div class="line"><a name="l00793"></a><span class="lineno">  793</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00794"></a><span class="lineno">  794</span> <span class="comment">  /// This does no caching of the buffer and takes ownership of the</span></div>
+<div class="line"><a name="l00795"></a><span class="lineno">  795</span> <span class="comment">  /// MemoryBuffer, so only pass a MemoryBuffer to this once.</span></div>
+<div class="line"><a name="l00796"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#a765dbc1395783dd688dd0f5029b17088">  796</a></span> <span class="comment"></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_1SourceManager.html#a765dbc1395783dd688dd0f5029b17088" title="Create a new FileID that represents the specified memory buffer.">createFileIDForMemBuffer</a>(<span class="keyword">const</span> llvm::MemoryBuffer *Buffer,</div>
+<div class="line"><a name="l00797"></a><span class="lineno">  797</span>                       <a class="code" href="namespaceclang_1_1SrcMgr.html#a27297b3568f189486de6df08a8cba35d" title="Indicates whether a file or directory holds normal user code, system code, or system code which is im...">SrcMgr::CharacteristicKind</a> FileCharacter = <a class="code" href="namespaceclang_1_1SrcMgr.html#a27297b3568f189486de6df08a8cba35dab0548ddada8d87ad92e94d67e5af0a4f">SrcMgr::C_User</a>,</div>
+<div class="line"><a name="l00798"></a><span class="lineno">  798</span>                                   <span class="keywordtype">int</span> LoadedID = 0, <span class="keywordtype">unsigned</span> LoadedOffset = 0,</div>
+<div class="line"><a name="l00799"></a><span class="lineno">  799</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> IncludeLoc = <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="l00800"></a><span class="lineno">  800</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1SourceManager.html#acefb5d310242160b1910104bbf4d8b2d" title="Create a new FileID that represents the specified file being #included from the specified IncludePosi...">createFileID</a>(createMemBufferContentCache(Buffer), IncludeLoc,</div>
+<div class="line"><a name="l00801"></a><span class="lineno">  801</span>                         FileCharacter, LoadedID, LoadedOffset);</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> <span class="comment"></span></div>
+<div class="line"><a name="l00804"></a><span class="lineno">  804</span> <span class="comment">  /// \brief Return a new SourceLocation that encodes the</span></div>
+<div class="line"><a name="l00805"></a><span class="lineno">  805</span> <span class="comment">  /// fact that a token from SpellingLoc should actually be referenced from</span></div>
+<div class="line"><a name="l00806"></a><span class="lineno">  806</span> <span class="comment">  /// ExpansionLoc, and that it represents the expansion of a macro argument</span></div>
+<div class="line"><a name="l00807"></a><span class="lineno">  807</span> <span class="comment">  /// into the function-like macro body.</span></div>
+<div class="line"><a name="l00808"></a><span class="lineno">  808</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_1SourceManager.html#a06c95caa63ece5301e14273ae5b6e411" title="Return a new SourceLocation that encodes the fact that a token from SpellingLoc should actually be re...">createMacroArgExpansionLoc</a>(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc,</div>
+<div class="line"><a name="l00809"></a><span class="lineno">  809</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> ExpansionLoc,</div>
+<div class="line"><a name="l00810"></a><span class="lineno">  810</span>                                             <span class="keywordtype">unsigned</span> TokLength);</div>
+<div class="line"><a name="l00811"></a><span class="lineno">  811</span> <span class="comment"></span></div>
+<div class="line"><a name="l00812"></a><span class="lineno">  812</span> <span class="comment">  /// \brief Return a new SourceLocation that encodes the fact</span></div>
+<div class="line"><a name="l00813"></a><span class="lineno">  813</span> <span class="comment">  /// that a token from SpellingLoc should actually be referenced from</span></div>
+<div class="line"><a name="l00814"></a><span class="lineno">  814</span> <span class="comment">  /// ExpansionLoc.</span></div>
+<div class="line"><a name="l00815"></a><span class="lineno">  815</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_1SourceManager.html#a2b7a4407834ab69d127968813cb33111" title="Return a new SourceLocation that encodes the fact that a token from SpellingLoc should actually be re...">createExpansionLoc</a>(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc,</div>
+<div class="line"><a name="l00816"></a><span class="lineno">  816</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> ExpansionLocStart,</div>
+<div class="line"><a name="l00817"></a><span class="lineno">  817</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> ExpansionLocEnd,</div>
+<div class="line"><a name="l00818"></a><span class="lineno">  818</span>                                     <span class="keywordtype">unsigned</span> TokLength,</div>
+<div class="line"><a name="l00819"></a><span class="lineno">  819</span>                                     <span class="keywordtype">int</span> LoadedID = 0,</div>
+<div class="line"><a name="l00820"></a><span class="lineno">  820</span>                                     <span class="keywordtype">unsigned</span> LoadedOffset = 0);</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">  /// \brief Retrieve the memory buffer associated with the given file.</span></div>
+<div class="line"><a name="l00823"></a><span class="lineno">  823</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00824"></a><span class="lineno">  824</span> <span class="comment">  /// \param Invalid If non-NULL, will be set \c true if an error</span></div>
+<div class="line"><a name="l00825"></a><span class="lineno">  825</span> <span class="comment">  /// occurs while retrieving the memory buffer.</span></div>
+<div class="line"><a name="l00826"></a><span class="lineno">  826</span> <span class="comment"></span>  <span class="keyword">const</span> llvm::MemoryBuffer *<a class="code" href="classclang_1_1SourceManager.html#a1e4ef3487a9b54b2d733e0dd38cffeb6" title="Retrieve the memory buffer associated with the given file.">getMemoryBufferForFile</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a> *File,</div>
+<div class="line"><a name="l00827"></a><span class="lineno">  827</span>                                                    <span class="keywordtype">bool</span> *Invalid = 0);</div>
+<div class="line"><a name="l00828"></a><span class="lineno">  828</span> <span class="comment"></span></div>
+<div class="line"><a name="l00829"></a><span class="lineno">  829</span> <span class="comment">  /// \brief Override the contents of the given source file by providing an</span></div>
+<div class="line"><a name="l00830"></a><span class="lineno">  830</span> <span class="comment">  /// already-allocated buffer.</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">  /// \param SourceFile the source file whose contents will be overriden.</span></div>
+<div class="line"><a name="l00833"></a><span class="lineno">  833</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00834"></a><span class="lineno">  834</span> <span class="comment">  /// \param Buffer the memory buffer whose contents will be used as the</span></div>
+<div class="line"><a name="l00835"></a><span class="lineno">  835</span> <span class="comment">  /// data in the given source file.</span></div>
+<div class="line"><a name="l00836"></a><span class="lineno">  836</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00837"></a><span class="lineno">  837</span> <span class="comment">  /// \param DoNotFree If true, then the buffer will not be freed when the</span></div>
+<div class="line"><a name="l00838"></a><span class="lineno">  838</span> <span class="comment">  /// source manager is destroyed.</span></div>
+<div class="line"><a name="l00839"></a><span class="lineno">  839</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1SourceManager.html#a0eb85320100e00c98e4bc3305e6e8753" title="Override the contents of the given source file by providing an already-allocated buffer.">overrideFileContents</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a> *SourceFile,</div>
+<div class="line"><a name="l00840"></a><span class="lineno">  840</span>                             <span class="keyword">const</span> llvm::MemoryBuffer *Buffer,</div>
+<div class="line"><a name="l00841"></a><span class="lineno">  841</span>                             <span class="keywordtype">bool</span> DoNotFree = <span class="keyword">false</span>);</div>
+<div class="line"><a name="l00842"></a><span class="lineno">  842</span> <span class="comment"></span></div>
+<div class="line"><a name="l00843"></a><span class="lineno">  843</span> <span class="comment">  /// \brief Override the given source file with another one.</span></div>
+<div class="line"><a name="l00844"></a><span class="lineno">  844</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00845"></a><span class="lineno">  845</span> <span class="comment">  /// \param SourceFile the source file which will be overriden.</span></div>
+<div class="line"><a name="l00846"></a><span class="lineno">  846</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00847"></a><span class="lineno">  847</span> <span class="comment">  /// \param NewFile the file whose contents will be used as the</span></div>
+<div class="line"><a name="l00848"></a><span class="lineno">  848</span> <span class="comment">  /// data instead of the contents of the given source file.</span></div>
+<div class="line"><a name="l00849"></a><span class="lineno">  849</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1SourceManager.html#a0eb85320100e00c98e4bc3305e6e8753" title="Override the contents of the given source file by providing an already-allocated buffer.">overrideFileContents</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a> *SourceFile,</div>
+<div class="line"><a name="l00850"></a><span class="lineno">  850</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> *NewFile);</div>
+<div class="line"><a name="l00851"></a><span class="lineno">  851</span> <span class="comment"></span></div>
+<div class="line"><a name="l00852"></a><span class="lineno">  852</span> <span class="comment">  /// \brief Returns true if the file contents have been overridden.</span></div>
+<div class="line"><a name="l00853"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#acd8be94be8664d7d60b03b4f136d4f8f">  853</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1SourceManager.html#acd8be94be8664d7d60b03b4f136d4f8f" title="Returns true if the file contents have been overridden.">isFileOverridden</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a> *File) {</div>
+<div class="line"><a name="l00854"></a><span class="lineno">  854</span>     <span class="keywordflow">if</span> (OverriddenFilesInfo) {</div>
+<div class="line"><a name="l00855"></a><span class="lineno">  855</span>       <span class="keywordflow">if</span> (OverriddenFilesInfo->OverriddenFilesWithBuffer.count(File))</div>
+<div class="line"><a name="l00856"></a><span class="lineno">  856</span>         <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00857"></a><span class="lineno">  857</span>       <span class="keywordflow">if</span> (OverriddenFilesInfo->OverriddenFiles.find(File) !=</div>
+<div class="line"><a name="l00858"></a><span class="lineno">  858</span>           OverriddenFilesInfo->OverriddenFiles.end())</div>
+<div class="line"><a name="l00859"></a><span class="lineno">  859</span>         <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00860"></a><span class="lineno">  860</span>     }</div>
+<div class="line"><a name="l00861"></a><span class="lineno">  861</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00862"></a><span class="lineno">  862</span>   }</div>
+<div class="line"><a name="l00863"></a><span class="lineno">  863</span> <span class="comment"></span></div>
+<div class="line"><a name="l00864"></a><span class="lineno">  864</span> <span class="comment">  /// \brief Disable overridding the contents of a file, previously enabled</span></div>
+<div class="line"><a name="l00865"></a><span class="lineno">  865</span> <span class="comment">  /// with #overrideFileContents.</span></div>
+<div class="line"><a name="l00866"></a><span class="lineno">  866</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00867"></a><span class="lineno">  867</span> <span class="comment">  /// This should be called before parsing has begun.</span></div>
+<div class="line"><a name="l00868"></a><span class="lineno">  868</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1SourceManager.html#a11ed5cf983a0dabc74cb8defba573ddd" title="Disable overridding the contents of a file, previously enabled with overrideFileContents.">disableFileContentsOverride</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a> *File);</div>
+<div class="line"><a name="l00869"></a><span class="lineno">  869</span> </div>
+<div class="line"><a name="l00870"></a><span class="lineno">  870</span>   <span class="comment">//===--------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00871"></a><span class="lineno">  871</span>   <span class="comment">// FileID manipulation methods.</span></div>
+<div class="line"><a name="l00872"></a><span class="lineno">  872</span>   <span class="comment">//===--------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00873"></a><span class="lineno">  873</span> <span class="comment"></span></div>
+<div class="line"><a name="l00874"></a><span class="lineno">  874</span> <span class="comment">  /// \brief Return the buffer for the specified FileID.</span></div>
+<div class="line"><a name="l00875"></a><span class="lineno">  875</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00876"></a><span class="lineno">  876</span> <span class="comment">  /// If there is an error opening this buffer the first time, this</span></div>
+<div class="line"><a name="l00877"></a><span class="lineno">  877</span> <span class="comment">  /// manufactures a temporary buffer and returns a non-empty error string.</span></div>
+<div class="line"><a name="l00878"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#a35f2a3fbf5cf9bff34b1d7f613096437">  878</a></span> <span class="comment"></span>  <span class="keyword">const</span> llvm::MemoryBuffer *<a class="code" href="classclang_1_1SourceManager.html#a35f2a3fbf5cf9bff34b1d7f613096437" title="Return the buffer for the specified FileID.">getBuffer</a>(<a class="code" href="classclang_1_1FileID.html" title="An opaque identifier used by SourceManager which refers to a source file (MemoryBuffer) along with it...">FileID</a> FID, <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc,</div>
+<div class="line"><a name="l00879"></a><span class="lineno">  879</span>                                       <span class="keywordtype">bool</span> *Invalid = 0)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00880"></a><span class="lineno">  880</span>     <span class="keywordtype">bool</span> MyInvalid = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00881"></a><span class="lineno">  881</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html" title="This is a discriminated union of FileInfo and ExpansionInfo.">SrcMgr::SLocEntry</a> &Entry = <a class="code" href="classclang_1_1SourceManager.html#ad1585a31ee5f93aaca7cce35f3f6922c">getSLocEntry</a>(FID, &MyInvalid);</div>
+<div class="line"><a name="l00882"></a><span class="lineno">  882</span>     <span class="keywordflow">if</span> (MyInvalid || !Entry.<a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#aa47bccb623f117f7d7c0ed0582e55ce2">isFile</a>()) {</div>
+<div class="line"><a name="l00883"></a><span class="lineno">  883</span>       <span class="keywordflow">if</span> (Invalid)</div>
+<div class="line"><a name="l00884"></a><span class="lineno">  884</span>         *Invalid = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00885"></a><span class="lineno">  885</span> </div>
+<div class="line"><a name="l00886"></a><span class="lineno">  886</span>       <span class="keywordflow">return</span> getFakeBufferForRecovery();</div>
+<div class="line"><a name="l00887"></a><span class="lineno">  887</span>     }</div>
+<div class="line"><a name="l00888"></a><span class="lineno">  888</span> </div>
+<div class="line"><a name="l00889"></a><span class="lineno">  889</span>     <span class="keywordflow">return</span> Entry.<a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#a1fb51637aa60930cf8993b7a6dfd0f4d">getFile</a>().<a class="code" href="classclang_1_1SrcMgr_1_1FileInfo.html#a0dfcfbd07292c9ab7f537f2dd38d14c4">getContentCache</a>()-><a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#a0829ce6b26e0511684921dcc97c1752b" title="Returns the memory buffer for the associated content.">getBuffer</a>(Diag, *<span class="keyword">this</span>, Loc,</div>
+<div class="line"><a name="l00890"></a><span class="lineno">  890</span>                                                         Invalid);</div>
+<div class="line"><a name="l00891"></a><span class="lineno">  891</span>   }</div>
+<div class="line"><a name="l00892"></a><span class="lineno">  892</span> </div>
+<div class="line"><a name="l00893"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#a1876e6f02bf3b930af2d5acbcc04123d">  893</a></span>   <span class="keyword">const</span> llvm::MemoryBuffer *<a class="code" href="classclang_1_1SourceManager.html#a1876e6f02bf3b930af2d5acbcc04123d">getBuffer</a>(<a class="code" href="classclang_1_1FileID.html" title="An opaque identifier used by SourceManager which refers to a source file (MemoryBuffer) along with it...">FileID</a> FID, <span class="keywordtype">bool</span> *Invalid = 0)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00894"></a><span class="lineno">  894</span>     <span class="keywordtype">bool</span> MyInvalid = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00895"></a><span class="lineno">  895</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html" title="This is a discriminated union of FileInfo and ExpansionInfo.">SrcMgr::SLocEntry</a> &Entry = <a class="code" href="classclang_1_1SourceManager.html#ad1585a31ee5f93aaca7cce35f3f6922c">getSLocEntry</a>(FID, &MyInvalid);</div>
+<div class="line"><a name="l00896"></a><span class="lineno">  896</span>     <span class="keywordflow">if</span> (MyInvalid || !Entry.<a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#aa47bccb623f117f7d7c0ed0582e55ce2">isFile</a>()) {</div>
+<div class="line"><a name="l00897"></a><span class="lineno">  897</span>       <span class="keywordflow">if</span> (Invalid)</div>
+<div class="line"><a name="l00898"></a><span class="lineno">  898</span>         *Invalid = <span class="keyword">true</span>;</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>       <span class="keywordflow">return</span> getFakeBufferForRecovery();</div>
+<div class="line"><a name="l00901"></a><span class="lineno">  901</span>     }</div>
+<div class="line"><a name="l00902"></a><span class="lineno">  902</span> </div>
+<div class="line"><a name="l00903"></a><span class="lineno">  903</span>     <span class="keywordflow">return</span> Entry.<a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#a1fb51637aa60930cf8993b7a6dfd0f4d">getFile</a>().<a class="code" href="classclang_1_1SrcMgr_1_1FileInfo.html#a0dfcfbd07292c9ab7f537f2dd38d14c4">getContentCache</a>()-><a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#a0829ce6b26e0511684921dcc97c1752b" title="Returns the memory buffer for the associated content.">getBuffer</a>(Diag, *<span class="keyword">this</span>,</div>
+<div class="line"><a name="l00904"></a><span class="lineno">  904</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>(),</div>
+<div class="line"><a name="l00905"></a><span class="lineno">  905</span>                                                         Invalid);</div>
+<div class="line"><a name="l00906"></a><span class="lineno">  906</span>   }</div>
+<div class="line"><a name="l00907"></a><span class="lineno">  907</span> <span class="comment"></span></div>
+<div class="line"><a name="l00908"></a><span class="lineno">  908</span> <span class="comment">  /// \brief Returns the FileEntry record for the provided FileID.</span></div>
+<div class="line"><a name="l00909"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#a89a4d1fa8ccc458bce84b0d72b4545db">  909</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_1SourceManager.html#a89a4d1fa8ccc458bce84b0d72b4545db" title="Returns the FileEntry record for the provided FileID.">getFileEntryForID</a>(<a class="code" href="classclang_1_1FileID.html" title="An opaque identifier used by SourceManager which refers to a source file (MemoryBuffer) along with it...">FileID</a> FID)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00910"></a><span class="lineno">  910</span>     <span class="keywordtype">bool</span> MyInvalid = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00911"></a><span class="lineno">  911</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html" title="This is a discriminated union of FileInfo and ExpansionInfo.">SrcMgr::SLocEntry</a> &Entry = <a class="code" href="classclang_1_1SourceManager.html#ad1585a31ee5f93aaca7cce35f3f6922c">getSLocEntry</a>(FID, &MyInvalid);</div>
+<div class="line"><a name="l00912"></a><span class="lineno">  912</span>     <span class="keywordflow">if</span> (MyInvalid || !Entry.<a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#aa47bccb623f117f7d7c0ed0582e55ce2">isFile</a>())</div>
+<div class="line"><a name="l00913"></a><span class="lineno">  913</span>       <span class="keywordflow">return</span> 0;</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>     <span class="keyword">const</span> <a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html" title="One instance of this struct is kept for every file loaded or used.">SrcMgr::ContentCache</a> *Content = Entry.<a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#a1fb51637aa60930cf8993b7a6dfd0f4d">getFile</a>().<a class="code" href="classclang_1_1SrcMgr_1_1FileInfo.html#a0dfcfbd07292c9ab7f537f2dd38d14c4">getContentCache</a>();</div>
+<div class="line"><a name="l00916"></a><span class="lineno">  916</span>     <span class="keywordflow">if</span> (!Content)</div>
+<div class="line"><a name="l00917"></a><span class="lineno">  917</span>       <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00918"></a><span class="lineno">  918</span>     <span class="keywordflow">return</span> Content-><a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#a9c12b5c698444f94948c0c92f32bcc71" title="Reference to the file entry representing this ContentCache.">OrigEntry</a>;</div>
+<div class="line"><a name="l00919"></a><span class="lineno">  919</span>   }</div>
+<div class="line"><a name="l00920"></a><span class="lineno">  920</span> <span class="comment"></span></div>
+<div class="line"><a name="l00921"></a><span class="lineno">  921</span> <span class="comment">  /// \brief Returns the FileEntry record for the provided SLocEntry.</span></div>
+<div class="line"><a name="l00922"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#a99e50248ff9ee9a9eae6433c12eb351d">  922</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_1SourceManager.html#a99e50248ff9ee9a9eae6433c12eb351d" title="Returns the FileEntry record for the provided SLocEntry.">getFileEntryForSLocEntry</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html" title="This is a discriminated union of FileInfo and ExpansionInfo.">SrcMgr::SLocEntry</a> &sloc)<span class="keyword"> const</span></div>
+<div class="line"><a name="l00923"></a><span class="lineno">  923</span> <span class="keyword">  </span>{</div>
+<div class="line"><a name="l00924"></a><span class="lineno">  924</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html" title="One instance of this struct is kept for every file loaded or used.">SrcMgr::ContentCache</a> *Content = sloc.<a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#a1fb51637aa60930cf8993b7a6dfd0f4d">getFile</a>().<a class="code" href="classclang_1_1SrcMgr_1_1FileInfo.html#a0dfcfbd07292c9ab7f537f2dd38d14c4">getContentCache</a>();</div>
+<div class="line"><a name="l00925"></a><span class="lineno">  925</span>     <span class="keywordflow">if</span> (!Content)</div>
+<div class="line"><a name="l00926"></a><span class="lineno">  926</span>       <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00927"></a><span class="lineno">  927</span>     <span class="keywordflow">return</span> Content-><a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html#a9c12b5c698444f94948c0c92f32bcc71" title="Reference to the file entry representing this ContentCache.">OrigEntry</a>;</div>
+<div class="line"><a name="l00928"></a><span class="lineno">  928</span>   }</div>
+<div class="line"><a name="l00929"></a><span class="lineno">  929</span> <span class="comment"></span></div>
+<div class="line"><a name="l00930"></a><span class="lineno">  930</span> <span class="comment">  /// \brief Return a StringRef to the source buffer data for the</span></div>
+<div class="line"><a name="l00931"></a><span class="lineno">  931</span> <span class="comment">  /// specified FileID.</span></div>
+<div class="line"><a name="l00932"></a><span class="lineno">  932</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00933"></a><span class="lineno">  933</span> <span class="comment">  /// \param FID The file ID whose contents will be returned.</span></div>
+<div class="line"><a name="l00934"></a><span class="lineno">  934</span> <span class="comment">  /// \param Invalid If non-NULL, will be set true if an error occurred.</span></div>
+<div class="line"><a name="l00935"></a><span class="lineno">  935</span> <span class="comment"></span>  StringRef <a class="code" href="classclang_1_1SourceManager.html#a57e483ae7710c8b23eeb4f119026d662" title="Return a StringRef to the source buffer data for the specified FileID.">getBufferData</a>(<a class="code" href="classclang_1_1FileID.html" title="An opaque identifier used by SourceManager which refers to a source file (MemoryBuffer) along with it...">FileID</a> FID, <span class="keywordtype">bool</span> *Invalid = 0) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00936"></a><span class="lineno">  936</span> <span class="comment"></span></div>
+<div class="line"><a name="l00937"></a><span class="lineno">  937</span> <span class="comment">  /// \brief Get the number of FileIDs (files and macros) that were created</span></div>
+<div class="line"><a name="l00938"></a><span class="lineno">  938</span> <span class="comment">  /// during preprocessing of \p FID, including it.</span></div>
+<div class="line"><a name="l00939"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#a4153063a56ffb5089a44c59ce16e8b6e">  939</a></span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1SourceManager.html#a4153063a56ffb5089a44c59ce16e8b6e" title="Get the number of FileIDs (files and macros) that were created during preprocessing of FID...">getNumCreatedFIDsForFileID</a>(<a class="code" href="classclang_1_1FileID.html" title="An opaque identifier used by SourceManager which refers to a source file (MemoryBuffer) along with it...">FileID</a> FID)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00940"></a><span class="lineno">  940</span>     <span class="keywordtype">bool</span> Invalid = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00941"></a><span class="lineno">  941</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html" title="This is a discriminated union of FileInfo and ExpansionInfo.">SrcMgr::SLocEntry</a> &Entry = <a class="code" href="classclang_1_1SourceManager.html#ad1585a31ee5f93aaca7cce35f3f6922c">getSLocEntry</a>(FID, &Invalid);</div>
+<div class="line"><a name="l00942"></a><span class="lineno">  942</span>     <span class="keywordflow">if</span> (Invalid || !Entry.<a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#aa47bccb623f117f7d7c0ed0582e55ce2">isFile</a>())</div>
+<div class="line"><a name="l00943"></a><span class="lineno">  943</span>       <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00944"></a><span class="lineno">  944</span> </div>
+<div class="line"><a name="l00945"></a><span class="lineno">  945</span>     <span class="keywordflow">return</span> Entry.<a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#a1fb51637aa60930cf8993b7a6dfd0f4d">getFile</a>().NumCreatedFIDs;</div>
+<div class="line"><a name="l00946"></a><span class="lineno">  946</span>   }</div>
+<div class="line"><a name="l00947"></a><span class="lineno">  947</span> <span class="comment"></span></div>
+<div class="line"><a name="l00948"></a><span class="lineno">  948</span> <span class="comment">  /// \brief Set the number of FileIDs (files and macros) that were created</span></div>
+<div class="line"><a name="l00949"></a><span class="lineno">  949</span> <span class="comment">  /// during preprocessing of \p FID, including it.</span></div>
+<div class="line"><a name="l00950"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#ad901cb130fd9e3c6c2d811fed253c289">  950</a></span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1SourceManager.html#ad901cb130fd9e3c6c2d811fed253c289" title="Set the number of FileIDs (files and macros) that were created during preprocessing of FID...">setNumCreatedFIDsForFileID</a>(<a class="code" href="classclang_1_1FileID.html" title="An opaque identifier used by SourceManager which refers to a source file (MemoryBuffer) along with it...">FileID</a> FID, <span class="keywordtype">unsigned</span> NumFIDs)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00951"></a><span class="lineno">  951</span>     <span class="keywordtype">bool</span> Invalid = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00952"></a><span class="lineno">  952</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html" title="This is a discriminated union of FileInfo and ExpansionInfo.">SrcMgr::SLocEntry</a> &Entry = <a class="code" href="classclang_1_1SourceManager.html#ad1585a31ee5f93aaca7cce35f3f6922c">getSLocEntry</a>(FID, &Invalid);</div>
+<div class="line"><a name="l00953"></a><span class="lineno">  953</span>     <span class="keywordflow">if</span> (Invalid || !Entry.<a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#aa47bccb623f117f7d7c0ed0582e55ce2">isFile</a>())</div>
+<div class="line"><a name="l00954"></a><span class="lineno">  954</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00955"></a><span class="lineno">  955</span> </div>
+<div class="line"><a name="l00956"></a><span class="lineno">  956</span>     assert(Entry.<a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#a1fb51637aa60930cf8993b7a6dfd0f4d">getFile</a>().NumCreatedFIDs == 0 && <span class="stringliteral">"Already set!"</span>);</div>
+<div class="line"><a name="l00957"></a><span class="lineno">  957</span>     <span class="keyword">const_cast<</span><a class="code" href="classclang_1_1SrcMgr_1_1FileInfo.html" title="Information about a FileID, basically just the logical file that it represents and include stack info...">SrcMgr::FileInfo</a> &<span class="keyword">></span>(Entry.<a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#a1fb51637aa60930cf8993b7a6dfd0f4d">getFile</a>()).NumCreatedFIDs = NumFIDs;</div>
+<div class="line"><a name="l00958"></a><span class="lineno">  958</span>   }</div>
+<div class="line"><a name="l00959"></a><span class="lineno">  959</span> </div>
+<div class="line"><a name="l00960"></a><span class="lineno">  960</span>   <span class="comment">//===--------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00961"></a><span class="lineno">  961</span>   <span class="comment">// SourceLocation manipulation methods.</span></div>
+<div class="line"><a name="l00962"></a><span class="lineno">  962</span>   <span class="comment">//===--------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00963"></a><span class="lineno">  963</span> <span class="comment"></span></div>
+<div class="line"><a name="l00964"></a><span class="lineno">  964</span> <span class="comment">  /// \brief Return the FileID for a SourceLocation.</span></div>
+<div class="line"><a name="l00965"></a><span class="lineno">  965</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00966"></a><span class="lineno">  966</span> <span class="comment">  /// This is a very hot method that is used for all SourceManager queries</span></div>
+<div class="line"><a name="l00967"></a><span class="lineno">  967</span> <span class="comment">  /// that start with a SourceLocation object.  It is responsible for finding</span></div>
+<div class="line"><a name="l00968"></a><span class="lineno">  968</span> <span class="comment">  /// the entry in SLocEntryTable which contains the specified location.</span></div>
+<div class="line"><a name="l00969"></a><span class="lineno">  969</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00970"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#a2689190a49ad77cb4f5d022d48d92a9a">  970</a></span> <span class="comment"></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_1SourceManager.html#a2689190a49ad77cb4f5d022d48d92a9a" title="Return the FileID for a SourceLocation.">getFileID</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> SpellingLoc)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00971"></a><span class="lineno">  971</span>     <span class="keywordtype">unsigned</span> SLocOffset = SpellingLoc.getOffset();</div>
+<div class="line"><a name="l00972"></a><span class="lineno">  972</span> </div>
+<div class="line"><a name="l00973"></a><span class="lineno">  973</span>     <span class="comment">// If our one-entry cache covers this offset, just return it.</span></div>
+<div class="line"><a name="l00974"></a><span class="lineno">  974</span>     <span class="keywordflow">if</span> (isOffsetInFileID(LastFileIDLookup, SLocOffset))</div>
+<div class="line"><a name="l00975"></a><span class="lineno">  975</span>       <span class="keywordflow">return</span> LastFileIDLookup;</div>
+<div class="line"><a name="l00976"></a><span class="lineno">  976</span> </div>
+<div class="line"><a name="l00977"></a><span class="lineno">  977</span>     <span class="keywordflow">return</span> getFileIDSlow(SLocOffset);</div>
+<div class="line"><a name="l00978"></a><span class="lineno">  978</span>   }</div>
+<div class="line"><a name="l00979"></a><span class="lineno">  979</span> <span class="comment"></span></div>
+<div class="line"><a name="l00980"></a><span class="lineno">  980</span> <span class="comment">  /// \brief Return the filename of the file containing a SourceLocation.</span></div>
+<div class="line"><a name="l00981"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#a1b7402699ef496ecc9b2db28a83f0c1b">  981</a></span> <span class="comment"></span>  StringRef <a class="code" href="classclang_1_1SourceManager.html#a1b7402699ef496ecc9b2db28a83f0c1b" title="Return the filename of the file containing a SourceLocation.">getFilename</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> SpellingLoc)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00982"></a><span class="lineno">  982</span>     <span class="keywordflow">if</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> *F = <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_1SourceManager.html#a2689190a49ad77cb4f5d022d48d92a9a" title="Return the FileID for a SourceLocation.">getFileID</a>(SpellingLoc)))</div>
+<div class="line"><a name="l00983"></a><span class="lineno">  983</span>       <span class="keywordflow">return</span> F->getName();</div>
+<div class="line"><a name="l00984"></a><span class="lineno">  984</span>     <span class="keywordflow">return</span> StringRef();</div>
+<div class="line"><a name="l00985"></a><span class="lineno">  985</span>   }</div>
+<div class="line"><a name="l00986"></a><span class="lineno">  986</span> <span class="comment"></span></div>
+<div class="line"><a name="l00987"></a><span class="lineno">  987</span> <span class="comment">  /// \brief Return the source location corresponding to the first byte of</span></div>
+<div class="line"><a name="l00988"></a><span class="lineno">  988</span> <span class="comment">  /// the specified file.</span></div>
+<div class="line"><a name="l00989"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#ae1f1d6c242c1db7b224a7a6dd35cb82e">  989</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_1SourceManager.html#ae1f1d6c242c1db7b224a7a6dd35cb82e" title="Return the source location corresponding to the first byte of the specified file.">getLocForStartOfFile</a>(<a class="code" href="classclang_1_1FileID.html" title="An opaque identifier used by SourceManager which refers to a source file (MemoryBuffer) along with it...">FileID</a> FID)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00990"></a><span class="lineno">  990</span>     <span class="keywordtype">bool</span> Invalid = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00991"></a><span class="lineno">  991</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html" title="This is a discriminated union of FileInfo and ExpansionInfo.">SrcMgr::SLocEntry</a> &Entry = <a class="code" href="classclang_1_1SourceManager.html#ad1585a31ee5f93aaca7cce35f3f6922c">getSLocEntry</a>(FID, &Invalid);</div>
+<div class="line"><a name="l00992"></a><span class="lineno">  992</span>     <span class="keywordflow">if</span> (Invalid || !Entry.<a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#aa47bccb623f117f7d7c0ed0582e55ce2">isFile</a>())</div>
+<div class="line"><a name="l00993"></a><span class="lineno">  993</span>       <span class="keywordflow">return</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>();</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="keywordtype">unsigned</span> FileOffset = Entry.<a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#af792006aa81706c77a4b35924e5d9f1c">getOffset</a>();</div>
+<div class="line"><a name="l00996"></a><span class="lineno">  996</span>     <span class="keywordflow">return</span> SourceLocation::getFileLoc(FileOffset);</div>
+<div class="line"><a name="l00997"></a><span class="lineno">  997</span>   }</div>
+<div class="line"><a name="l00998"></a><span class="lineno">  998</span>   <span class="comment"></span></div>
+<div class="line"><a name="l00999"></a><span class="lineno">  999</span> <span class="comment">  /// \brief Return the source location corresponding to the last byte of the</span></div>
+<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span> <span class="comment">  /// specified file.</span></div>
+<div class="line"><a name="l01001"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#addb07c2f2e315023e10ceff3c67b63b5"> 1001</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_1SourceManager.html#addb07c2f2e315023e10ceff3c67b63b5" title="Return the source location corresponding to the last byte of the specified file.">getLocForEndOfFile</a>(<a class="code" href="classclang_1_1FileID.html" title="An opaque identifier used by SourceManager which refers to a source file (MemoryBuffer) along with it...">FileID</a> FID)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>     <span class="keywordtype">bool</span> Invalid = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html" title="This is a discriminated union of FileInfo and ExpansionInfo.">SrcMgr::SLocEntry</a> &Entry = <a class="code" href="classclang_1_1SourceManager.html#ad1585a31ee5f93aaca7cce35f3f6922c">getSLocEntry</a>(FID, &Invalid);</div>
+<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>     <span class="keywordflow">if</span> (Invalid || !Entry.<a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#aa47bccb623f117f7d7c0ed0582e55ce2">isFile</a>())</div>
+<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>       <span class="keywordflow">return</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>();</div>
+<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>     </div>
+<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>     <span class="keywordtype">unsigned</span> FileOffset = Entry.<a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#af792006aa81706c77a4b35924e5d9f1c">getOffset</a>();</div>
+<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>     <span class="keywordflow">return</span> SourceLocation::getFileLoc(FileOffset + <a class="code" href="classclang_1_1SourceManager.html#a7b5bb88f511c0f332a8e1275613088db" title="The size of the SLocEnty that FID represents.">getFileIDSize</a>(FID));</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"></span></div>
+<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span> <span class="comment">  /// \brief Returns the include location if \p FID is a \#include'd file</span></div>
+<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span> <span class="comment">  /// otherwise it returns an invalid location.</span></div>
+<div class="line"><a name="l01013"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#a995d8d7843d3e79ecd3f1fbb6c0596a6"> 1013</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_1SourceManager.html#a995d8d7843d3e79ecd3f1fbb6c0596a6" title="Returns the include location if FID is a #include'd file otherwise it returns an invalid location...">getIncludeLoc</a>(<a class="code" href="classclang_1_1FileID.html" title="An opaque identifier used by SourceManager which refers to a source file (MemoryBuffer) along with it...">FileID</a> FID)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>     <span class="keywordtype">bool</span> Invalid = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html" title="This is a discriminated union of FileInfo and ExpansionInfo.">SrcMgr::SLocEntry</a> &Entry = <a class="code" href="classclang_1_1SourceManager.html#ad1585a31ee5f93aaca7cce35f3f6922c">getSLocEntry</a>(FID, &Invalid);</div>
+<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>     <span class="keywordflow">if</span> (Invalid || !Entry.<a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#aa47bccb623f117f7d7c0ed0582e55ce2">isFile</a>())</div>
+<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>       <span class="keywordflow">return</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>();</div>
+<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span> </div>
+<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>     <span class="keywordflow">return</span> Entry.<a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#a1fb51637aa60930cf8993b7a6dfd0f4d">getFile</a>().<a class="code" href="classclang_1_1SrcMgr_1_1FileInfo.html#a5045eb47939537fcea0b4906edf2fdcb">getIncludeLoc</a>();</div>
+<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>   }</div>
+<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span> </div>
+<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>   <span class="comment">// \brief Returns the import location if the given source location is</span></div>
+<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>   <span class="comment">// located within a module, or an invalid location if the source location</span></div>
+<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>   <span class="comment">// is within the current translation unit.</span></div>
+<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>   std::pair<SourceLocation, StringRef></div>
+<div class="line"><a name="l01026"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#a84a51879c874275330c45b80fbc1c30a"> 1026</a></span>   <a class="code" href="classclang_1_1SourceManager.html#a84a51879c874275330c45b80fbc1c30a">getModuleImportLoc</a>(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01027"></a><span class="lineno"> 1027</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 = <a class="code" href="classclang_1_1SourceManager.html#a2689190a49ad77cb4f5d022d48d92a9a" title="Return the FileID for a SourceLocation.">getFileID</a>(Loc);</div>
+<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span> </div>
+<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>     <span class="comment">// Positive file IDs are in the current translation unit, and -1 is a</span></div>
+<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>     <span class="comment">// placeholder.</span></div>
+<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>     <span class="keywordflow">if</span> (FID.ID >= -1)</div>
+<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>       <span class="keywordflow">return</span> std::make_pair(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a>(), <span class="stringliteral">""</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="keywordflow">return</span> ExternalSLocEntries-><a class="code" href="classclang_1_1ExternalSLocEntrySource.html#aede2afd52e039d0f12ab1940362f2123" title="Retrieve the module import location and name for the given ID, if in fact it was loaded from a module...">getModuleImportLoc</a>(FID.ID);</div>
+<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>   }</div>
+<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span> <span class="comment"></span></div>
+<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span> <span class="comment">  /// \brief Given a SourceLocation object \p Loc, return the expansion</span></div>
+<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span> <span class="comment">  /// location referenced by the ID.</span></div>
+<div class="line"><a name="l01039"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#ad3c1ffb876357d92e434a633072e8421"> 1039</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_1SourceManager.html#ad3c1ffb876357d92e434a633072e8421" title="Given a SourceLocation object Loc, return the expansion location referenced by the ID...">getExpansionLoc</a>(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>     <span class="comment">// Handle the non-mapped case inline, defer to out of line code to handle</span></div>
+<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>     <span class="comment">// expansions.</span></div>
+<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>     <span class="keywordflow">if</span> (Loc.<a class="code" href="classclang_1_1SourceLocation.html#a8317aa72ddfd4e2221603217927070cc">isFileID</a>()) <span class="keywordflow">return</span> Loc;</div>
+<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>     <span class="keywordflow">return</span> getExpansionLocSlowCase(Loc);</div>
+<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>   }</div>
+<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span> <span class="comment"></span></div>
+<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span> <span class="comment">  /// \brief Given \p Loc, if it is a macro location return the expansion</span></div>
+<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span> <span class="comment">  /// location or the spelling location, depending on if it comes from a</span></div>
+<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span> <span class="comment">  /// macro argument or not.</span></div>
+<div class="line"><a name="l01049"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#a0a48eea62efa1672fb1da24a310d36db"> 1049</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_1SourceManager.html#a0a48eea62efa1672fb1da24a310d36db" title="Given Loc, if it is a macro location return the expansion location or the spelling location...">getFileLoc</a>(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>     <span class="keywordflow">if</span> (Loc.<a class="code" href="classclang_1_1SourceLocation.html#a8317aa72ddfd4e2221603217927070cc">isFileID</a>()) <span class="keywordflow">return</span> Loc;</div>
+<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>     <span class="keywordflow">return</span> getFileLocSlowCase(Loc);</div>
+<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>   }</div>
+<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span> <span class="comment"></span></div>
+<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span> <span class="comment">  /// \brief Return the start/end of the expansion information for an</span></div>
+<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span> <span class="comment">  /// expansion location.</span></div>
+<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span> <span class="comment">  /// \pre \p Loc is required to be an expansion location.</span></div>
+<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span> <span class="comment"></span>  std::pair<SourceLocation,SourceLocation></div>
+<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>   <a class="code" href="classclang_1_1SourceManager.html#a1068f3643e436b35db1676296142bb9b" title="Return the start/end of the expansion information for an expansion location.">getImmediateExpansionRange</a>(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span> <span class="comment"></span></div>
+<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span> <span class="comment">  /// \brief Given a SourceLocation object, return the range of</span></div>
+<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span> <span class="comment">  /// tokens covered by the expansion the ultimate file.</span></div>
+<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span> <span class="comment"></span>  std::pair<SourceLocation,SourceLocation></div>
+<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>   <a class="code" href="classclang_1_1SourceManager.html#a532619980c29dd7590f84a8abc8dcfcc" title="Given a SourceLocation object, return the range of tokens covered by the expansion the ultimate file...">getExpansionRange</a>(<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="l01065"></a><span class="lineno"> 1065</span> </div>
+<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span> <span class="comment"></span></div>
+<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span> <span class="comment">  /// \brief Given a SourceLocation object, return the spelling</span></div>
+<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span> <span class="comment">  /// location referenced by the ID.</span></div>
+<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span> <span class="comment">  /// This is the place where the characters that make up the lexed token</span></div>
+<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span> <span class="comment">  /// can be found.</span></div>
+<div class="line"><a name="l01072"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#a989650d5a9a5d7f7bd88f2bbe5e5dc29"> 1072</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_1SourceManager.html#a989650d5a9a5d7f7bd88f2bbe5e5dc29" title="Given a SourceLocation object, return the spelling location referenced by the ID.">getSpellingLoc</a>(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>     <span class="comment">// Handle the non-mapped case inline, defer to out of line code to handle</span></div>
+<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>     <span class="comment">// expansions.</span></div>
+<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>     <span class="keywordflow">if</span> (Loc.<a class="code" href="classclang_1_1SourceLocation.html#a8317aa72ddfd4e2221603217927070cc">isFileID</a>()) <span class="keywordflow">return</span> Loc;</div>
+<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>     <span class="keywordflow">return</span> getSpellingLocSlowCase(Loc);</div>
+<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>   }</div>
+<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span> <span class="comment"></span></div>
+<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span> <span class="comment">  /// \brief Given a SourceLocation object, return the spelling location</span></div>
+<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span> <span class="comment">  /// referenced by the ID.</span></div>
+<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span> <span class="comment">  /// This is the first level down towards the place where the characters</span></div>
+<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span> <span class="comment">  /// that make up the lexed token can be found.  This should not generally</span></div>
+<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span> <span class="comment">  /// be used by clients.</span></div>
+<div class="line"><a name="l01085"></a><span class="lineno"> 1085</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_1SourceManager.html#aaa9b1e906f02915b9facd5591e35d985" title="Given a SourceLocation object, return the spelling location referenced by the ID.">getImmediateSpellingLoc</a>(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span> <span class="comment"></span></div>
+<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span> <span class="comment">  /// \brief Decompose the specified location into a raw FileID + Offset pair.</span></div>
+<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span> <span class="comment">  /// The first element is the FileID, the second is the offset from the</span></div>
+<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span> <span class="comment">  /// start of the buffer of the location.</span></div>
+<div class="line"><a name="l01091"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#a957bbe1ee3d932ad3f82bcbeac422e35"> 1091</a></span> <span class="comment"></span>  std::pair<FileID, unsigned> <a class="code" href="classclang_1_1SourceManager.html#a957bbe1ee3d932ad3f82bcbeac422e35" title="Decompose the specified location into a raw FileID + Offset pair.">getDecomposedLoc</a>(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01092"></a><span class="lineno"> 1092</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 = <a class="code" href="classclang_1_1SourceManager.html#a2689190a49ad77cb4f5d022d48d92a9a" title="Return the FileID for a SourceLocation.">getFileID</a>(Loc);</div>
+<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>     <span class="keywordtype">bool</span> Invalid = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html" title="This is a discriminated union of FileInfo and ExpansionInfo.">SrcMgr::SLocEntry</a> &E = <a class="code" href="classclang_1_1SourceManager.html#ad1585a31ee5f93aaca7cce35f3f6922c">getSLocEntry</a>(FID, &Invalid);</div>
+<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>     <span class="keywordflow">if</span> (Invalid)</div>
+<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>       <span class="keywordflow">return</span> std::make_pair(<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>(), 0);</div>
+<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>     <span class="keywordflow">return</span> std::make_pair(FID, Loc.getOffset()-E.<a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#af792006aa81706c77a4b35924e5d9f1c">getOffset</a>());</div>
+<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>   }</div>
+<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span> <span class="comment"></span></div>
+<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span> <span class="comment">  /// \brief Decompose the specified location into a raw FileID + Offset pair.</span></div>
+<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span> <span class="comment">  /// If the location is an expansion record, walk through it until we find</span></div>
+<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span> <span class="comment">  /// the final location expanded.</span></div>
+<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span> <span class="comment"></span>  std::pair<FileID, unsigned></div>
+<div class="line"><a name="l01105"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#a842245e962ddcee1eaa42b13727adc81"> 1105</a></span>   <a class="code" href="classclang_1_1SourceManager.html#a842245e962ddcee1eaa42b13727adc81" title="Decompose the specified location into a raw FileID + Offset pair.">getDecomposedExpansionLoc</a>(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01106"></a><span class="lineno"> 1106</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 = <a class="code" href="classclang_1_1SourceManager.html#a2689190a49ad77cb4f5d022d48d92a9a" title="Return the FileID for a SourceLocation.">getFileID</a>(Loc);</div>
+<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>     <span class="keywordtype">bool</span> Invalid = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html" title="This is a discriminated union of FileInfo and ExpansionInfo.">SrcMgr::SLocEntry</a> *E = &<a class="code" href="classclang_1_1SourceManager.html#ad1585a31ee5f93aaca7cce35f3f6922c">getSLocEntry</a>(FID, &Invalid);</div>
+<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>     <span class="keywordflow">if</span> (Invalid)</div>
+<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>       <span class="keywordflow">return</span> std::make_pair(<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>(), 0);</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>     <span class="keywordtype">unsigned</span> <a class="code" href="namespaceclang_1_1io.html#ae0bbdf4a2b076935546931e52d48d29b">Offset</a> = Loc.getOffset()-E-><a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#af792006aa81706c77a4b35924e5d9f1c">getOffset</a>();</div>
+<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>     <span class="keywordflow">if</span> (Loc.<a class="code" href="classclang_1_1SourceLocation.html#a8317aa72ddfd4e2221603217927070cc">isFileID</a>())</div>
+<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>       <span class="keywordflow">return</span> std::make_pair(FID, Offset);</div>
+<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span> </div>
+<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>     <span class="keywordflow">return</span> getDecomposedExpansionLocSlowCase(E);</div>
+<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>   }</div>
+<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span> <span class="comment"></span></div>
+<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span> <span class="comment">  /// \brief Decompose the specified location into a raw FileID + Offset pair.</span></div>
+<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span> <span class="comment">  /// If the location is an expansion record, walk through it until we find</span></div>
+<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span> <span class="comment">  /// its spelling record.</span></div>
+<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span> <span class="comment"></span>  std::pair<FileID, unsigned></div>
+<div class="line"><a name="l01124"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#a57a3ffe7381bce64198222dabd736545"> 1124</a></span>   <a class="code" href="classclang_1_1SourceManager.html#a57a3ffe7381bce64198222dabd736545" title="Decompose the specified location into a raw FileID + Offset pair.">getDecomposedSpellingLoc</a>(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01125"></a><span class="lineno"> 1125</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 = <a class="code" href="classclang_1_1SourceManager.html#a2689190a49ad77cb4f5d022d48d92a9a" title="Return the FileID for a SourceLocation.">getFileID</a>(Loc);</div>
+<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>     <span class="keywordtype">bool</span> Invalid = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html" title="This is a discriminated union of FileInfo and ExpansionInfo.">SrcMgr::SLocEntry</a> *E = &<a class="code" href="classclang_1_1SourceManager.html#ad1585a31ee5f93aaca7cce35f3f6922c">getSLocEntry</a>(FID, &Invalid);</div>
+<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>     <span class="keywordflow">if</span> (Invalid)</div>
+<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>       <span class="keywordflow">return</span> std::make_pair(<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>(), 0);</div>
+<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span> </div>
+<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>     <span class="keywordtype">unsigned</span> <a class="code" href="namespaceclang_1_1io.html#ae0bbdf4a2b076935546931e52d48d29b">Offset</a> = Loc.getOffset()-E-><a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#af792006aa81706c77a4b35924e5d9f1c">getOffset</a>();</div>
+<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>     <span class="keywordflow">if</span> (Loc.<a class="code" href="classclang_1_1SourceLocation.html#a8317aa72ddfd4e2221603217927070cc">isFileID</a>())</div>
+<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>       <span class="keywordflow">return</span> std::make_pair(FID, Offset);</div>
+<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>     <span class="keywordflow">return</span> getDecomposedSpellingLocSlowCase(E, Offset);</div>
+<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>   }</div>
+<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span> <span class="comment"></span></div>
+<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span> <span class="comment">  /// \brief Returns the "included/expanded in" decomposed location of the given</span></div>
+<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span> <span class="comment">  /// FileID.</span></div>
+<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span> <span class="comment"></span>  std::pair<FileID, unsigned> <a class="code" href="classclang_1_1SourceManager.html#aadf722b42a44f0693f2a6d008a3b6242" title="Returns the "included/expanded in" decomposed location of the given FileID.">getDecomposedIncludedLoc</a>(<a class="code" href="classclang_1_1FileID.html" title="An opaque identifier used by SourceManager which refers to a source file (MemoryBuffer) along with it...">FileID</a> FID) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span> <span class="comment"></span></div>
+<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span> <span class="comment">  /// \brief Returns the offset from the start of the file that the</span></div>
+<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span> <span class="comment">  /// specified SourceLocation represents.</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">  /// This is not very meaningful for a macro ID.</span></div>
+<div class="line"><a name="l01145"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#a0f516aaeaf42593e9cc0bae4b2f7383b"> 1145</a></span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1SourceManager.html#a0f516aaeaf42593e9cc0bae4b2f7383b" title="Returns the offset from the start of the file that the specified SourceLocation represents.">getFileOffset</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> SpellingLoc)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1SourceManager.html#a957bbe1ee3d932ad3f82bcbeac422e35" title="Decompose the specified location into a raw FileID + Offset pair.">getDecomposedLoc</a>(SpellingLoc).second;</div>
+<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>   }</div>
+<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span> <span class="comment"></span></div>
+<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span> <span class="comment">  /// \brief Tests whether the given source location represents a macro</span></div>
+<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span> <span class="comment">  /// argument's expansion into the function-like macro definition.</span></div>
+<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span> <span class="comment">  /// Such source locations only appear inside of the expansion</span></div>
+<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span> <span class="comment">  /// locations representing where a particular function-like macro was</span></div>
+<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span> <span class="comment">  /// expanded.</span></div>
+<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1SourceManager.html#a1fc782fe692d7647c32ca861bbf697a7" title="Tests whether the given source location represents a macro argument's expansion into the function-lik...">isMacroArgExpansion</a>(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span> <span class="comment"></span></div>
+<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span> <span class="comment">  /// \brief Tests whether the given source location represents the expansion of</span></div>
+<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span> <span class="comment">  /// a macro body.</span></div>
+<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span> <span class="comment">  /// This is equivalent to testing whether the location is part of a macro</span></div>
+<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span> <span class="comment">  /// expansion but not the expansion of an argument to a function-like macro.</span></div>
+<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1SourceManager.html#a118a110590249d67d2a6a62e793dc74b" title="Tests whether the given source location represents the expansion of a macro body.">isMacroBodyExpansion</a>(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span> <span class="comment"></span></div>
+<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span> <span class="comment">  /// \brief Returns true if the given MacroID location points at the beginning</span></div>
+<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span> <span class="comment">  /// of the immediate macro expansion.</span></div>
+<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span> <span class="comment">  /// \param MacroBegin If non-null and function returns true, it is set to the</span></div>
+<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span> <span class="comment">  /// begin location of the immediate macro expansion.</span></div>
+<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1SourceManager.html#ac8208f55b7925dcc170f677c759d0b19" title="Returns true if the given MacroID location points at the beginning of the immediate macro expansion...">isAtStartOfImmediateMacroExpansion</a>(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc,</div>
+<div class="line"><a name="l01170"></a><span class="lineno"> 1170</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> *MacroBegin = 0) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span> <span class="comment"></span></div>
+<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span> <span class="comment">  /// \brief Returns true if the given MacroID location points at the character</span></div>
+<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span> <span class="comment">  /// end of the immediate macro expansion.</span></div>
+<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span> <span class="comment">  /// \param MacroEnd If non-null and function returns true, it is set to the</span></div>
+<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span> <span class="comment">  /// character end location of the immediate macro expansion.</span></div>
+<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1SourceManager.html#a01512adc1838f85b975564197bb86584" title="Returns true if the given MacroID location points at the character end of the immediate macro expansi...">isAtEndOfImmediateMacroExpansion</a>(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc,</div>
+<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>                                         <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> *MacroEnd = 0) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span> <span class="comment"></span></div>
+<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span> <span class="comment">  /// \brief Returns true if \p Loc is inside the [\p Start, +\p Length)</span></div>
+<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span> <span class="comment">  /// chunk of the source location address space.</span></div>
+<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span> <span class="comment">  /// If it's true and \p RelativeOffset is non-null, it will be set to the</span></div>
+<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span> <span class="comment">  /// relative offset of \p Loc inside the chunk.</span></div>
+<div class="line"><a name="l01185"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#ada897120ec1be6ff71b304f1557f8c83"> 1185</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1SourceManager.html#ada897120ec1be6ff71b304f1557f8c83" title="Returns true if Loc is inside the [Start, +Length) chunk of the source location address space...">isInSLocAddrSpace</a>(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc,</div>
+<div class="line"><a name="l01186"></a><span class="lineno"> 1186</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> Start, <span class="keywordtype">unsigned</span> Length,</div>
+<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>                          <span class="keywordtype">unsigned</span> *RelativeOffset = 0)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>     assert(((Start.getOffset() < NextLocalOffset &&</div>
+<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>                Start.getOffset()+Length <= NextLocalOffset) ||</div>
+<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>             (Start.getOffset() >= CurrentLoadedOffset &&</div>
+<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>                 Start.getOffset()+Length < MaxLoadedOffset)) &&</div>
+<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>            <span class="stringliteral">"Chunk is not valid SLoc address space"</span>);</div>
+<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>     <span class="keywordtype">unsigned</span> LocOffs = Loc.getOffset();</div>
+<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>     <span class="keywordtype">unsigned</span> BeginOffs = Start.getOffset();</div>
+<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>     <span class="keywordtype">unsigned</span> EndOffs = BeginOffs + Length;</div>
+<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>     <span class="keywordflow">if</span> (LocOffs >= BeginOffs && LocOffs < EndOffs) {</div>
+<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>       <span class="keywordflow">if</span> (RelativeOffset)</div>
+<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>         *RelativeOffset = LocOffs - BeginOffs;</div>
+<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>       <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>     }</div>
+<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span> </div>
+<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>   }</div>
+<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span> <span class="comment"></span></div>
+<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span> <span class="comment">  /// \brief Return true if both \p LHS and \p RHS are in the local source</span></div>
+<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span> <span class="comment">  /// location address space or the loaded one.</span></div>
+<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span> <span class="comment">  /// If it's true and \p RelativeOffset is non-null, it will be set to the</span></div>
+<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span> <span class="comment">  /// offset of \p RHS relative to \p LHS.</span></div>
+<div class="line"><a name="l01210"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#adc0ad412fd05f2a4db21c2e151ef28f5"> 1210</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1SourceManager.html#adc0ad412fd05f2a4db21c2e151ef28f5" title="Return true if both LHS and RHS are in the local source location address space or the loaded one...">isInSameSLocAddrSpace</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> LHS, <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,</div>
+<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>                              <span class="keywordtype">int</span> *RelativeOffset)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>     <span class="keywordtype">unsigned</span> LHSOffs = LHS.getOffset(), RHSOffs = RHS.getOffset();</div>
+<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>     <span class="keywordtype">bool</span> LHSLoaded = LHSOffs >= CurrentLoadedOffset;</div>
+<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>     <span class="keywordtype">bool</span> RHSLoaded = RHSOffs >= CurrentLoadedOffset;</div>
+<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span> </div>
+<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>     <span class="keywordflow">if</span> (LHSLoaded == RHSLoaded) {</div>
+<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>       <span class="keywordflow">if</span> (RelativeOffset)</div>
+<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>         *RelativeOffset = RHSOffs - LHSOffs;</div>
+<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>       <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>     }</div>
+<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span> </div>
+<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>   }</div>
+<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span> </div>
+<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>   <span class="comment">//===--------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>   <span class="comment">// Queries about the code at a SourceLocation.</span></div>
+<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>   <span class="comment">//===--------------------------------------------------------------------===//</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">  /// \brief Return a pointer to the start of the specified location</span></div>
+<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span> <span class="comment">  /// in the appropriate spelling MemoryBuffer.</span></div>
+<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span> <span class="comment">  /// \param Invalid If non-NULL, will be set \c true if an error occurs.</span></div>
+<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span> <span class="comment"></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="classclang_1_1SourceManager.html#a365885c3cd3833c06fde3f5ed0ff60d8" title="Return a pointer to the start of the specified location in the appropriate spelling MemoryBuffer...">getCharacterData</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> SL, <span class="keywordtype">bool</span> *Invalid = 0) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span> <span class="comment"></span></div>
+<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span> <span class="comment">  /// \brief Return the column # for the specified file position.</span></div>
+<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span> <span class="comment">  /// This is significantly cheaper to compute than the line number.  This</span></div>
+<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span> <span class="comment">  /// returns zero if the column number isn't known.  This may only be called</span></div>
+<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span> <span class="comment">  /// on a file sloc, so you must choose a spelling or expansion location</span></div>
+<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span> <span class="comment">  /// before calling this method.</span></div>
+<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1SourceManager.html#a367f9b21f8c79d800ddf4a416ab2dd5b" title="Return the column # for the specified file position.">getColumnNumber</a>(<a class="code" href="classclang_1_1FileID.html" title="An opaque identifier used by SourceManager which refers to a source file (MemoryBuffer) along with it...">FileID</a> FID, <span class="keywordtype">unsigned</span> FilePos,</div>
+<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>                            <span class="keywordtype">bool</span> *Invalid = 0) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>   <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1SourceManager.html#a87f26d996dbdbb1416dda847d74cb051">getSpellingColumnNumber</a>(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc, <span class="keywordtype">bool</span> *Invalid = 0) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>   <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1SourceManager.html#a7008294144ca7315e608e18d4a672148">getExpansionColumnNumber</a>(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc,</div>
+<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>                                     <span class="keywordtype">bool</span> *Invalid = 0) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>   <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1SourceManager.html#a91eca6e07bda854a5b2d042e9377b3aa">getPresumedColumnNumber</a>(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc, <span class="keywordtype">bool</span> *Invalid = 0) <span class="keyword">const</span>;</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> <span class="comment"></span></div>
+<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span> <span class="comment">  /// \brief Given a SourceLocation, return the spelling line number</span></div>
+<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span> <span class="comment">  /// for the position indicated.</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">  /// This requires building and caching a table of line offsets for the</span></div>
+<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span> <span class="comment">  /// MemoryBuffer, so this is not cheap: use only when about to emit a</span></div>
+<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span> <span class="comment">  /// diagnostic.</span></div>
+<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1SourceManager.html#a3b4adecb909b0c0fe45afcc279f65236" title="Given a SourceLocation, return the spelling line number for the position indicated.">getLineNumber</a>(<a class="code" href="classclang_1_1FileID.html" title="An opaque identifier used by SourceManager which refers to a source file (MemoryBuffer) along with it...">FileID</a> FID, <span class="keywordtype">unsigned</span> FilePos, <span class="keywordtype">bool</span> *Invalid = 0) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>   <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1SourceManager.html#a6fba713e87cd0b876af279e853738e74">getSpellingLineNumber</a>(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc, <span class="keywordtype">bool</span> *Invalid = 0) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>   <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1SourceManager.html#af71b79d2d27b647e3cb1bb922babd587">getExpansionLineNumber</a>(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc, <span class="keywordtype">bool</span> *Invalid = 0) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>   <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1SourceManager.html#ad547682e609a2190dee633ef0a3bf6f6">getPresumedLineNumber</a>(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc, <span class="keywordtype">bool</span> *Invalid = 0) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span> <span class="comment"></span></div>
+<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span> <span class="comment">  /// \brief Return the filename or buffer identifier of the buffer the</span></div>
+<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span> <span class="comment">  /// location is in.</span></div>
+<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span> <span class="comment">  /// Note that this name does not respect \#line directives.  Use</span></div>
+<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span> <span class="comment">  /// getPresumedLoc for normal clients.</span></div>
+<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span> <span class="comment"></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="classclang_1_1SourceManager.html#abe4f1b848fbaa9d9ce39c5ceab826965" title="Return the filename or buffer identifier of the buffer the location is in.">getBufferName</a>(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc, <span class="keywordtype">bool</span> *Invalid = 0) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span> <span class="comment"></span></div>
+<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span> <span class="comment">  /// \brief Return the file characteristic of the specified source</span></div>
+<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span> <span class="comment">  /// location, indicating whether this is a normal file, a system</span></div>
+<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span> <span class="comment">  /// header, or an "implicit extern C" system header.</span></div>
+<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span> <span class="comment">  /// This state can be modified with flags on GNU linemarker directives like:</span></div>
+<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span> <span class="comment">  /// \code</span></div>
+<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span> <span class="comment">  ///   # 4 "foo.h" 3</span></div>
+<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span> <span class="comment">  /// \endcode</span></div>
+<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span> <span class="comment">  /// which changes all source locations in the current file after that to be</span></div>
+<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span> <span class="comment">  /// considered to be from a system header.</span></div>
+<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span> <span class="comment"></span>  <a class="code" href="namespaceclang_1_1SrcMgr.html#a27297b3568f189486de6df08a8cba35d" title="Indicates whether a file or directory holds normal user code, system code, or system code which is im...">SrcMgr::CharacteristicKind</a> <a class="code" href="classclang_1_1SourceManager.html#a0a6faf535b8f3f23e64be0cb4eac99c3" title="Return the file characteristic of the specified source location, indicating whether this is a normal ...">getFileCharacteristic</a>(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span> <span class="comment"></span></div>
+<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span> <span class="comment">  /// \brief Returns the "presumed" location of a SourceLocation specifies.</span></div>
+<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span> <span class="comment">  /// A "presumed location" can be modified by \#line or GNU line marker</span></div>
+<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span> <span class="comment">  /// directives.  This provides a view on the data that a user should see</span></div>
+<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span> <span class="comment">  /// in diagnostics, for example.</span></div>
+<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span> <span class="comment">  /// Note that a presumed location is always given as the expansion point of</span></div>
+<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span> <span class="comment">  /// an expansion location, not at the spelling location.</span></div>
+<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span> <span class="comment">  /// \returns The presumed location of the specified SourceLocation. If the</span></div>
+<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span> <span class="comment">  /// presumed location cannot be calculate (e.g., because \p Loc is invalid</span></div>
+<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span> <span class="comment">  /// or the file containing \p Loc has changed on disk), returns an invalid</span></div>
+<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span> <span class="comment">  /// presumed location.</span></div>
+<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span> <span class="comment"></span>  <a class="code" href="classclang_1_1PresumedLoc.html" title="Represents an unpacked "presumed" location which can be presented to the user.">PresumedLoc</a> <a class="code" href="classclang_1_1SourceManager.html#a28f3fe716f6b9c504beb968f0eb8c17d" title="Returns the "presumed" location of a SourceLocation specifies.">getPresumedLoc</a>(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc,</div>
+<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>                              <span class="keywordtype">bool</span> UseLineDirectives = <span class="keyword">true</span>) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span> <span class="comment"></span></div>
+<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span> <span class="comment">  /// \brief Returns whether the PresumedLoc for a given SourceLocation is </span></div>
+<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span> <span class="comment">  /// in the main file.</span></div>
+<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span> <span class="comment">  /// This computes the "presumed" location for a SourceLocation, then checks</span></div>
+<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span> <span class="comment">  /// whether it came from a file other than the main file. This is different</span></div>
+<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span> <span class="comment">  /// from isWrittenInMainFile() because it takes line marker directives into</span></div>
+<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span> <span class="comment">  /// account.</span></div>
+<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1SourceManager.html#a30bc78248de9022150189daa58ca1397" title="Returns whether the PresumedLoc for a given SourceLocation is in the main file.">isInMainFile</a>(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span> <span class="comment"></span></div>
+<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span> <span class="comment">  /// \brief Returns true if the spelling locations for both SourceLocations</span></div>
+<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span> <span class="comment">  /// are part of the same file buffer.</span></div>
+<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span> <span class="comment">  /// This check ignores line marker directives.</span></div>
+<div class="line"><a name="l01308"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#a6814730f5597006190c6eab908a0b85c"> 1308</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1SourceManager.html#a6814730f5597006190c6eab908a0b85c" title="Returns true if the spelling locations for both SourceLocations are part of the same file buffer...">isWrittenInSameFile</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> Loc1, <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc2)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1SourceManager.html#a2689190a49ad77cb4f5d022d48d92a9a" title="Return the FileID for a SourceLocation.">getFileID</a>(Loc1) == <a class="code" href="classclang_1_1SourceManager.html#a2689190a49ad77cb4f5d022d48d92a9a" title="Return the FileID for a SourceLocation.">getFileID</a>(Loc2);</div>
+<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>   }</div>
+<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span> <span class="comment"></span></div>
+<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span> <span class="comment">  /// \brief Returns true if the spelling location for the given location</span></div>
+<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span> <span class="comment">  /// is in the main file buffer.</span></div>
+<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span> <span class="comment">  /// This check ignores line marker directives.</span></div>
+<div class="line"><a name="l01316"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#a25567eedd23c3698ee819baf131e5953"> 1316</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1SourceManager.html#a25567eedd23c3698ee819baf131e5953" title="Returns true if the spelling location for the given location is in the main file buffer.">isWrittenInMainFile</a>(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1SourceManager.html#a2689190a49ad77cb4f5d022d48d92a9a" title="Return the FileID for a SourceLocation.">getFileID</a>(Loc) == <a class="code" href="classclang_1_1SourceManager.html#ad3ac47ab7380c82d19243a2db765479c" title="Returns the FileID of the main source file.">getMainFileID</a>();</div>
+<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>   }</div>
+<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span> <span class="comment"></span></div>
+<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span> <span class="comment">  /// \brief Returns if a SourceLocation is in a system header.</span></div>
+<div class="line"><a name="l01321"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#a99c639318222119c75ea9c12f1aa5cf2"> 1321</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1SourceManager.html#a99c639318222119c75ea9c12f1aa5cf2" title="Returns if a SourceLocation is in a system header.">isInSystemHeader</a>(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1SourceManager.html#a0a6faf535b8f3f23e64be0cb4eac99c3" title="Return the file characteristic of the specified source location, indicating whether this is a normal ...">getFileCharacteristic</a>(Loc) != <a class="code" href="namespaceclang_1_1SrcMgr.html#a27297b3568f189486de6df08a8cba35dab0548ddada8d87ad92e94d67e5af0a4f">SrcMgr::C_User</a>;</div>
+<div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>   }</div>
+<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span> <span class="comment"></span></div>
+<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span> <span class="comment">  /// \brief Returns if a SourceLocation is in an "extern C" system header.</span></div>
+<div class="line"><a name="l01326"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#aec2f5d68a1e3b8425580087444f26719"> 1326</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1SourceManager.html#aec2f5d68a1e3b8425580087444f26719" title="Returns if a SourceLocation is in an "extern C" system header.">isInExternCSystemHeader</a>(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1SourceManager.html#a0a6faf535b8f3f23e64be0cb4eac99c3" title="Return the file characteristic of the specified source location, indicating whether this is a normal ...">getFileCharacteristic</a>(Loc) == <a class="code" href="namespaceclang_1_1SrcMgr.html#a27297b3568f189486de6df08a8cba35da9023f6ef1ca01526b946dd690e56d951">SrcMgr::C_ExternCSystem</a>;</div>
+<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>   }</div>
+<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span> <span class="comment"></span></div>
+<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span> <span class="comment">  /// \brief Returns whether \p Loc is expanded from a macro in a system header.</span></div>
+<div class="line"><a name="l01331"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#a2222d87fda8fdd794296950190702f7f"> 1331</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1SourceManager.html#a2222d87fda8fdd794296950190702f7f" title="Returns whether Loc is expanded from a macro in a system header.">isInSystemMacro</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> <a class="code" href="namespaceclang_1_1ast__matchers.html#af2a0068a0d7c4962e52a7a70967fa5df" title="Matches TypeLocs for which the given inner QualType-matcher matches.">loc</a>) {</div>
+<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>     <span class="keywordflow">return</span> loc.<a class="code" href="classclang_1_1SourceLocation.html#a83c660ad7c57096011c5f40c50b52c7d">isMacroID</a>() && <a class="code" href="classclang_1_1SourceManager.html#a99c639318222119c75ea9c12f1aa5cf2" title="Returns if a SourceLocation is in a system header.">isInSystemHeader</a>(<a class="code" href="classclang_1_1SourceManager.html#a989650d5a9a5d7f7bd88f2bbe5e5dc29" title="Given a SourceLocation object, return the spelling location referenced by the ID.">getSpellingLoc</a>(loc));</div>
+<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>   }</div>
+<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span> <span class="comment"></span></div>
+<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span> <span class="comment">  /// \brief The size of the SLocEnty that \p FID represents.</span></div>
+<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1SourceManager.html#a7b5bb88f511c0f332a8e1275613088db" title="The size of the SLocEnty that FID represents.">getFileIDSize</a>(<a class="code" href="classclang_1_1FileID.html" title="An opaque identifier used by SourceManager which refers to a source file (MemoryBuffer) along with it...">FileID</a> FID) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span> <span class="comment"></span></div>
+<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span> <span class="comment">  /// \brief Given a specific FileID, returns true if \p Loc is inside that</span></div>
+<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span> <span class="comment">  /// FileID chunk and sets relative offset (offset of \p Loc from beginning</span></div>
+<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span> <span class="comment">  /// of FileID) to \p relativeOffset.</span></div>
+<div class="line"><a name="l01341"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#ab7ef8050c9bcf7a743dab59f2487382c"> 1341</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <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>(<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, <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="l01342"></a><span class="lineno"> 1342</span>                   <span class="keywordtype">unsigned</span> *RelativeOffset = 0)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>     <span class="keywordtype">unsigned</span> Offs = Loc.getOffset();</div>
+<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>     <span class="keywordflow">if</span> (isOffsetInFileID(FID, Offs)) {</div>
+<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>       <span class="keywordflow">if</span> (RelativeOffset)</div>
+<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>         *RelativeOffset = Offs - <a class="code" href="classclang_1_1SourceManager.html#ad1585a31ee5f93aaca7cce35f3f6922c">getSLocEntry</a>(FID).<a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#af792006aa81706c77a4b35924e5d9f1c">getOffset</a>();</div>
+<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>       <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>     }</div>
+<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span> </div>
+<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>   }</div>
+<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span> </div>
+<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>   <span class="comment">//===--------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>   <span class="comment">// Line Table Manipulation Routines</span></div>
+<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>   <span class="comment">//===--------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span> <span class="comment"></span></div>
+<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span> <span class="comment">  /// \brief Return the uniqued ID for the specified filename.</span></div>
+<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1SourceManager.html#aa55166cfda7909fca46877f4c85580ec" title="Return the uniqued ID for the specified filename.">getLineTableFilenameID</a>(StringRef Str);</div>
+<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span> <span class="comment"></span></div>
+<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span> <span class="comment">  /// \brief Add a line note to the line table for the FileID and offset</span></div>
+<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span> <span class="comment">  /// specified by Loc.</span></div>
+<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span> <span class="comment">  /// If FilenameID is -1, it is considered to be unspecified.</span></div>
+<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span> <span class="comment"></span>  <span class="keywordtype">void</span> <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>(<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="keywordtype">unsigned</span> LineNo, <span class="keywordtype">int</span> FilenameID);</div>
+<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>   <span class="keywordtype">void</span> <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>(<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="keywordtype">unsigned</span> LineNo, <span class="keywordtype">int</span> FilenameID,</div>
+<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>                    <span class="keywordtype">bool</span> IsFileEntry, <span class="keywordtype">bool</span> IsFileExit,</div>
+<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>                    <span class="keywordtype">bool</span> IsSystemHeader, <span class="keywordtype">bool</span> IsExternCHeader);</div>
+<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span> <span class="comment"></span></div>
+<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span> <span class="comment">  /// \brief Determine if the source manager has a line table.</span></div>
+<div class="line"><a name="l01371"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#aa10f445df85a98e46437b2db1dffc032"> 1371</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1SourceManager.html#aa10f445df85a98e46437b2db1dffc032" title="Determine if the source manager has a line table.">hasLineTable</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> LineTable != 0; }</div>
+<div class="line"><a name="l01372"></a><span class="lineno"> 1372</span> <span class="comment"></span></div>
+<div class="line"><a name="l01373"></a><span class="lineno"> 1373</span> <span class="comment">  /// \brief Retrieve the stored line table.</span></div>
+<div class="line"><a name="l01374"></a><span class="lineno"> 1374</span> <span class="comment"></span>  <a class="code" href="classclang_1_1LineTableInfo.html" title="Used to hold and unique data used to represent #line information.">LineTableInfo</a> &<a class="code" href="classclang_1_1SourceManager.html#af8b2eab6301eb653ca3ba47e6b65a910" title="Retrieve the stored line table.">getLineTable</a>();</div>
+<div class="line"><a name="l01375"></a><span class="lineno"> 1375</span> </div>
+<div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>   <span class="comment">//===--------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>   <span class="comment">// Queries for performance analysis.</span></div>
+<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>   <span class="comment">//===--------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l01379"></a><span class="lineno"> 1379</span> <span class="comment"></span></div>
+<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span> <span class="comment">  /// \brief Return the total amount of physical memory allocated by the</span></div>
+<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span> <span class="comment">  /// ContentCache allocator.</span></div>
+<div class="line"><a name="l01382"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#a977927c5f4a5c0248422987eba48a5df"> 1382</a></span> <span class="comment"></span>  <span class="keywordtype">size_t</span> <a class="code" href="classclang_1_1SourceManager.html#a977927c5f4a5c0248422987eba48a5df" title="Return the total amount of physical memory allocated by the ContentCache allocator.">getContentCacheSize</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>     <span class="keywordflow">return</span> ContentCacheAlloc.getTotalMemory();</div>
+<div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>   }</div>
+<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span> </div>
+<div class="line"><a name="l01386"></a><span class="lineno"><a class="code" href="structclang_1_1SourceManager_1_1MemoryBufferSizes.html"> 1386</a></span>   <span class="keyword">struct </span><a class="code" href="structclang_1_1SourceManager_1_1MemoryBufferSizes.html">MemoryBufferSizes</a> {</div>
+<div class="line"><a name="l01387"></a><span class="lineno"><a class="code" href="structclang_1_1SourceManager_1_1MemoryBufferSizes.html#a51adfc6ab10228e16b0a2de6adee6651"> 1387</a></span>     <span class="keyword">const</span> <span class="keywordtype">size_t</span> <a class="code" href="structclang_1_1SourceManager_1_1MemoryBufferSizes.html#a51adfc6ab10228e16b0a2de6adee6651">malloc_bytes</a>;</div>
+<div class="line"><a name="l01388"></a><span class="lineno"><a class="code" href="structclang_1_1SourceManager_1_1MemoryBufferSizes.html#a43d247a8f63a975c75d8148f54426eb3"> 1388</a></span>     <span class="keyword">const</span> <span class="keywordtype">size_t</span> <a class="code" href="structclang_1_1SourceManager_1_1MemoryBufferSizes.html#a43d247a8f63a975c75d8148f54426eb3">mmap_bytes</a>;</div>
+<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span> </div>
+<div class="line"><a name="l01390"></a><span class="lineno"><a class="code" href="structclang_1_1SourceManager_1_1MemoryBufferSizes.html#a67dbb53e858a42b41ed820066f4de53a"> 1390</a></span>     <a class="code" href="structclang_1_1SourceManager_1_1MemoryBufferSizes.html#a67dbb53e858a42b41ed820066f4de53a">MemoryBufferSizes</a>(<span class="keywordtype">size_t</span> <a class="code" href="structclang_1_1SourceManager_1_1MemoryBufferSizes.html#a51adfc6ab10228e16b0a2de6adee6651">malloc_bytes</a>, <span class="keywordtype">size_t</span> <a class="code" href="structclang_1_1SourceManager_1_1MemoryBufferSizes.html#a43d247a8f63a975c75d8148f54426eb3">mmap_bytes</a>)</div>
+<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>       : malloc_bytes(malloc_bytes), mmap_bytes(mmap_bytes) {}</div>
+<div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>   };</div>
+<div class="line"><a name="l01393"></a><span class="lineno"> 1393</span> <span class="comment"></span></div>
+<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span> <span class="comment">  /// \brief Return the amount of memory used by memory buffers, breaking down</span></div>
+<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span> <span class="comment">  /// by heap-backed versus mmap'ed memory.</span></div>
+<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span> <span class="comment"></span>  MemoryBufferSizes <a class="code" href="classclang_1_1SourceManager.html#a4f3f9f3eae850e1f58923ceb708c0c60" title="Return the amount of memory used by memory buffers, breaking down by heap-backed versus mmap'ed memor...">getMemoryBufferSizes</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span> <span class="comment"></span></div>
+<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span> <span class="comment">  /// \brief Return the amount of memory used for various side tables and</span></div>
+<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span> <span class="comment">  /// data structures in the SourceManager.</span></div>
+<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span> <span class="comment"></span>  <span class="keywordtype">size_t</span> <a class="code" href="classclang_1_1SourceManager.html#a33363f160ce74156d81d75db5edb0223" title="Return the amount of memory used for various side tables and data structures in the SourceManager...">getDataStructureSizes</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01401"></a><span class="lineno"> 1401</span> </div>
+<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>   <span class="comment">//===--------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>   <span class="comment">// Other miscellaneous methods.</span></div>
+<div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>   <span class="comment">//===--------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span> <span class="comment"></span></div>
+<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span> <span class="comment">  /// \brief Get the source location for the given file:line:col triplet.</span></div>
+<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span> <span class="comment">  /// If the source file is included multiple times, the source location will</span></div>
+<div class="line"><a name="l01409"></a><span class="lineno"> 1409</span> <span class="comment">  /// be based upon the first inclusion.</span></div>
+<div class="line"><a name="l01410"></a><span class="lineno"> 1410</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_1SourceManager.html#a5573aab1578a194e43c7934e6902aeec" title="Get the source location for the given file:line:col triplet.">translateFileLineCol</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a> *SourceFile,</div>
+<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>                                       <span class="keywordtype">unsigned</span> <a class="code" href="TokenAnnotator_8cpp.html#a0d95c6acfc477accd6ff1b1ca93c82cc">Line</a>, <span class="keywordtype">unsigned</span> Col) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span> <span class="comment"></span></div>
+<div class="line"><a name="l01413"></a><span class="lineno"> 1413</span> <span class="comment">  /// \brief Get the FileID for the given file.</span></div>
+<div class="line"><a name="l01414"></a><span class="lineno"> 1414</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span> <span class="comment">  /// If the source file is included multiple times, the FileID will be the</span></div>
+<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span> <span class="comment">  /// first inclusion.</span></div>
+<div class="line"><a name="l01417"></a><span class="lineno"> 1417</span> <span class="comment"></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_1SourceManager.html#aa38ba002ebd85a48ee75eca0b1933028" title="Get the FileID for the given file.">translateFile</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a> *SourceFile) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span> <span class="comment"></span></div>
+<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span> <span class="comment">  /// \brief Get the source location in \p FID for the given line:col.</span></div>
+<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span> <span class="comment">  /// Returns null location if \p FID is not a file SLocEntry.</span></div>
+<div class="line"><a name="l01421"></a><span class="lineno"> 1421</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_1SourceManager.html#a7c3566f61faa445f983b97d30b8577b7" title="Get the source location in FID for the given line:col. Returns null location if FID is not a file SLo...">translateLineCol</a>(<a class="code" href="classclang_1_1FileID.html" title="An opaque identifier used by SourceManager which refers to a source file (MemoryBuffer) along with it...">FileID</a> FID,</div>
+<div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>                                   <span class="keywordtype">unsigned</span> <a class="code" href="TokenAnnotator_8cpp.html#a0d95c6acfc477accd6ff1b1ca93c82cc">Line</a>, <span class="keywordtype">unsigned</span> Col) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span> <span class="comment"></span></div>
+<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span> <span class="comment">  /// \brief If \p Loc points inside a function macro argument, the returned</span></div>
+<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span> <span class="comment">  /// location will be the macro location in which the argument was expanded.</span></div>
+<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span> <span class="comment">  /// If a macro argument is used multiple times, the expanded location will</span></div>
+<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span> <span class="comment">  /// be at the first expansion of the argument.</span></div>
+<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span> <span class="comment">  /// e.g.</span></div>
+<div class="line"><a name="l01429"></a><span class="lineno"> 1429</span> <span class="comment">  ///   MY_MACRO(foo);</span></div>
+<div class="line"><a name="l01430"></a><span class="lineno"> 1430</span> <span class="comment">  ///             ^</span></div>
+<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span> <span class="comment">  /// Passing a file location pointing at 'foo', will yield a macro location</span></div>
+<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span> <span class="comment">  /// where 'foo' was expanded into.</span></div>
+<div class="line"><a name="l01433"></a><span class="lineno"> 1433</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_1SourceManager.html#adbef30eb1b9c876ee96772f16c8e1c50" title="If Loc points inside a function macro argument, the returned location will be the macro location in w...">getMacroArgExpandedLocation</a>(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span> <span class="comment"></span></div>
+<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span> <span class="comment">  /// \brief Determines the order of 2 source locations in the translation unit.</span></div>
+<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span> <span class="comment">  /// \returns true if LHS source location comes before RHS, false otherwise.</span></div>
+<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1SourceManager.html#a80e6af876450686c7811c34fc72fcbdc" title="Determines the order of 2 source locations in the translation unit.">isBeforeInTranslationUnit</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> LHS, <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="l01439"></a><span class="lineno"> 1439</span> <span class="comment"></span></div>
+<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span> <span class="comment">  /// \brief Determines the order of 2 source locations in the "source location</span></div>
+<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span> <span class="comment">  /// address space".</span></div>
+<div class="line"><a name="l01442"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#a63f3be88985682f70c96f8d448032a0e"> 1442</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1SourceManager.html#a63f3be88985682f70c96f8d448032a0e" title="Determines the order of 2 source locations in the "source location address space".">isBeforeInSLocAddrSpace</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> LHS, <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="l01443"></a><span class="lineno"> 1443</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1SourceManager.html#a63f3be88985682f70c96f8d448032a0e" title="Determines the order of 2 source locations in the "source location address space".">isBeforeInSLocAddrSpace</a>(LHS, RHS.getOffset());</div>
+<div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>   }</div>
+<div class="line"><a name="l01445"></a><span class="lineno"> 1445</span> <span class="comment"></span></div>
+<div class="line"><a name="l01446"></a><span class="lineno"> 1446</span> <span class="comment">  /// \brief Determines the order of a source location and a source location</span></div>
+<div class="line"><a name="l01447"></a><span class="lineno"> 1447</span> <span class="comment">  /// offset in the "source location address space".</span></div>
+<div class="line"><a name="l01448"></a><span class="lineno"> 1448</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span> <span class="comment">  /// Note that we always consider source locations loaded from</span></div>
+<div class="line"><a name="l01450"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#a8be6e8c41bdda1113874f1b0c0bf96ee"> 1450</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1SourceManager.html#a8be6e8c41bdda1113874f1b0c0bf96ee" title="Determines the order of a source location and a source location offset in the "source location addres...">isBeforeInSLocAddrSpace</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> LHS, <span class="keywordtype">unsigned</span> RHS)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>     <span class="keywordtype">unsigned</span> LHSOffset = LHS.getOffset();</div>
+<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>     <span class="keywordtype">bool</span> LHSLoaded = LHSOffset >= CurrentLoadedOffset;</div>
+<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>     <span class="keywordtype">bool</span> RHSLoaded = RHS >= CurrentLoadedOffset;</div>
+<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>     <span class="keywordflow">if</span> (LHSLoaded == RHSLoaded)</div>
+<div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>       <span class="keywordflow">return</span> LHSOffset < RHS;</div>
+<div class="line"><a name="l01456"></a><span class="lineno"> 1456</span> </div>
+<div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>     <span class="keywordflow">return</span> LHSLoaded;</div>
+<div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>   }</div>
+<div class="line"><a name="l01459"></a><span class="lineno"> 1459</span> </div>
+<div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>   <span class="comment">// Iterators over FileInfos.</span></div>
+<div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>   <span class="keyword">typedef</span> llvm::DenseMap<const FileEntry*, SrcMgr::ContentCache*></div>
+<div class="line"><a name="l01462"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#a332403dd0769544846b0fe7673b3a4c5"> 1462</a></span>       ::const_iterator <a class="code" href="classclang_1_1SourceManager.html#a332403dd0769544846b0fe7673b3a4c5">fileinfo_iterator</a>;</div>
+<div class="line"><a name="l01463"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#aa8f4e80c390577cd148e99ae22d1d06c"> 1463</a></span>   <a class="code" href="classclang_1_1SourceManager.html#a332403dd0769544846b0fe7673b3a4c5">fileinfo_iterator</a> <a class="code" href="classclang_1_1SourceManager.html#aa8f4e80c390577cd148e99ae22d1d06c">fileinfo_begin</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> FileInfos.begin(); }</div>
+<div class="line"><a name="l01464"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#aac5161c96defcbd56ee7ca4dd5a2c56f"> 1464</a></span>   <a class="code" href="classclang_1_1SourceManager.html#a332403dd0769544846b0fe7673b3a4c5">fileinfo_iterator</a> <a class="code" href="classclang_1_1SourceManager.html#aac5161c96defcbd56ee7ca4dd5a2c56f">fileinfo_end</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> FileInfos.end(); }</div>
+<div class="line"><a name="l01465"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#aae25affd3cdadf3cc5b3b6c1f75a640c"> 1465</a></span>   <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1SourceManager.html#aae25affd3cdadf3cc5b3b6c1f75a640c">hasFileInfo</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a> *File)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>     <span class="keywordflow">return</span> FileInfos.find(File) != FileInfos.end();</div>
+<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>   }</div>
+<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span> <span class="comment"></span></div>
+<div class="line"><a name="l01469"></a><span class="lineno"> 1469</span> <span class="comment">  /// \brief Print statistics to stderr.</span></div>
+<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1SourceManager.html#a16451f8ed013f0e35301b40950074a56" title="Print statistics to stderr.">PrintStats</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span> <span class="comment"></span></div>
+<div class="line"><a name="l01473"></a><span class="lineno"> 1473</span> <span class="comment">  /// \brief Get the number of local SLocEntries we have.</span></div>
+<div class="line"><a name="l01474"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#a6ce8e7c14e399ddc5efa3d0d19b541f1"> 1474</a></span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1SourceManager.html#a6ce8e7c14e399ddc5efa3d0d19b541f1" title="Get the number of local SLocEntries we have.">local_sloc_entry_size</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> LocalSLocEntryTable.size(); }</div>
+<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span> <span class="comment"></span></div>
+<div class="line"><a name="l01476"></a><span class="lineno"> 1476</span> <span class="comment">  /// \brief Get a local SLocEntry. This is exposed for indexing.</span></div>
+<div class="line"><a name="l01477"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#a06bd6d8f9ae3d855d407c226b5ddb8bb"> 1477</a></span> <span class="comment"></span>  <span class="keyword">const</span> <a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html" title="This is a discriminated union of FileInfo and ExpansionInfo.">SrcMgr::SLocEntry</a> &<a class="code" href="classclang_1_1SourceManager.html#a06bd6d8f9ae3d855d407c226b5ddb8bb" title="Get a local SLocEntry. This is exposed for indexing.">getLocalSLocEntry</a>(<span class="keywordtype">unsigned</span> Index,</div>
+<div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>                                              <span class="keywordtype">bool</span> *Invalid = 0)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>     assert(Index < LocalSLocEntryTable.size() && <span class="stringliteral">"Invalid index"</span>);</div>
+<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>     <span class="keywordflow">return</span> LocalSLocEntryTable[Index];</div>
+<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>   }</div>
+<div class="line"><a name="l01482"></a><span class="lineno"> 1482</span> <span class="comment"></span></div>
+<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span> <span class="comment">  /// \brief Get the number of loaded SLocEntries we have.</span></div>
+<div class="line"><a name="l01484"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#a4e22302f7b387c9c3a887a2fafae236e"> 1484</a></span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1SourceManager.html#a4e22302f7b387c9c3a887a2fafae236e" title="Get the number of loaded SLocEntries we have.">loaded_sloc_entry_size</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> LoadedSLocEntryTable.size();}</div>
+<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span> <span class="comment"></span></div>
+<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span> <span class="comment">  /// \brief Get a loaded SLocEntry. This is exposed for indexing.</span></div>
+<div class="line"><a name="l01487"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#ae2c7f11f93fdf974382ff478a89e757b"> 1487</a></span> <span class="comment"></span>  <span class="keyword">const</span> <a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html" title="This is a discriminated union of FileInfo and ExpansionInfo.">SrcMgr::SLocEntry</a> &<a class="code" href="classclang_1_1SourceManager.html#ae2c7f11f93fdf974382ff478a89e757b" title="Get a loaded SLocEntry. This is exposed for indexing.">getLoadedSLocEntry</a>(<span class="keywordtype">unsigned</span> Index,</div>
+<div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>                                               <span class="keywordtype">bool</span> *Invalid = 0)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>     assert(Index < LoadedSLocEntryTable.size() && <span class="stringliteral">"Invalid index"</span>);</div>
+<div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>     <span class="keywordflow">if</span> (SLocEntryLoaded[Index])</div>
+<div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>       <span class="keywordflow">return</span> LoadedSLocEntryTable[Index];</div>
+<div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>     <span class="keywordflow">return</span> loadSLocEntry(Index, Invalid);</div>
+<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>   }</div>
+<div class="line"><a name="l01494"></a><span class="lineno"> 1494</span> </div>
+<div class="line"><a name="l01495"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#ad1585a31ee5f93aaca7cce35f3f6922c"> 1495</a></span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html" title="This is a discriminated union of FileInfo and ExpansionInfo.">SrcMgr::SLocEntry</a> &<a class="code" href="classclang_1_1SourceManager.html#ad1585a31ee5f93aaca7cce35f3f6922c">getSLocEntry</a>(<a class="code" href="classclang_1_1FileID.html" title="An opaque identifier used by SourceManager which refers to a source file (MemoryBuffer) along with it...">FileID</a> FID, <span class="keywordtype">bool</span> *Invalid = 0)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>     <span class="keywordflow">if</span> (FID.ID == 0 || FID.ID == -1) {</div>
+<div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>       <span class="keywordflow">if</span> (Invalid) *Invalid = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>       <span class="keywordflow">return</span> LocalSLocEntryTable[0];</div>
+<div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>     }</div>
+<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>     <span class="keywordflow">return</span> getSLocEntryByID(FID.ID, Invalid);</div>
+<div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>   }</div>
+<div class="line"><a name="l01502"></a><span class="lineno"> 1502</span> </div>
+<div class="line"><a name="l01503"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#a8a50989d1a33eb3f72c9c28d399f1a42"> 1503</a></span>   <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1SourceManager.html#a8a50989d1a33eb3f72c9c28d399f1a42">getNextLocalOffset</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> NextLocalOffset; }</div>
+<div class="line"><a name="l01504"></a><span class="lineno"> 1504</span> </div>
+<div class="line"><a name="l01505"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#aa45c76d9aa0a22da6fa73cf653336705"> 1505</a></span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1SourceManager.html#aa45c76d9aa0a22da6fa73cf653336705">setExternalSLocEntrySource</a>(<a class="code" href="classclang_1_1ExternalSLocEntrySource.html" title="External source of source location entries.">ExternalSLocEntrySource</a> *Source) {</div>
+<div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>     assert(LoadedSLocEntryTable.empty() &&</div>
+<div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>            <span class="stringliteral">"Invalidating existing loaded entries"</span>);</div>
+<div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>     ExternalSLocEntries = Source;</div>
+<div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>   }</div>
+<div class="line"><a name="l01510"></a><span class="lineno"> 1510</span> <span class="comment"></span></div>
+<div class="line"><a name="l01511"></a><span class="lineno"> 1511</span> <span class="comment">  /// \brief Allocate a number of loaded SLocEntries, which will be actually</span></div>
+<div class="line"><a name="l01512"></a><span class="lineno"> 1512</span> <span class="comment">  /// loaded on demand from the external source.</span></div>
+<div class="line"><a name="l01513"></a><span class="lineno"> 1513</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01514"></a><span class="lineno"> 1514</span> <span class="comment">  /// NumSLocEntries will be allocated, which occupy a total of TotalSize space</span></div>
+<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span> <span class="comment">  /// in the global source view. The lowest ID and the base offset of the</span></div>
+<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span> <span class="comment">  /// entries will be returned.</span></div>
+<div class="line"><a name="l01517"></a><span class="lineno"> 1517</span> <span class="comment"></span>  std::pair<int, unsigned></div>
+<div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>   <a class="code" href="classclang_1_1SourceManager.html#aac4833e095c278e8e3e9bcbb7fe5ff77" title="Allocate a number of loaded SLocEntries, which will be actually loaded on demand from the external so...">AllocateLoadedSLocEntries</a>(<span class="keywordtype">unsigned</span> NumSLocEntries, <span class="keywordtype">unsigned</span> TotalSize);</div>
+<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span> <span class="comment"></span></div>
+<div class="line"><a name="l01520"></a><span class="lineno"> 1520</span> <span class="comment">  /// \brief Returns true if \p Loc came from a PCH/Module.</span></div>
+<div class="line"><a name="l01521"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#abcb5b12fef70fb3feba17cccfe7b2e56"> 1521</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1SourceManager.html#abcb5b12fef70fb3feba17cccfe7b2e56" title="Returns true if Loc came from a PCH/Module.">isLoadedSourceLocation</a>(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>     <span class="keywordflow">return</span> Loc.getOffset() >= CurrentLoadedOffset;</div>
+<div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>   }</div>
+<div class="line"><a name="l01524"></a><span class="lineno"> 1524</span> <span class="comment"></span></div>
+<div class="line"><a name="l01525"></a><span class="lineno"> 1525</span> <span class="comment">  /// \brief Returns true if \p Loc did not come from a PCH/Module.</span></div>
+<div class="line"><a name="l01526"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#af1194356bbade1c672011d939b75ebd2"> 1526</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1SourceManager.html#af1194356bbade1c672011d939b75ebd2" title="Returns true if Loc did not come from a PCH/Module.">isLocalSourceLocation</a>(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>     <span class="keywordflow">return</span> Loc.getOffset() < NextLocalOffset;</div>
+<div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>   }</div>
+<div class="line"><a name="l01529"></a><span class="lineno"> 1529</span> <span class="comment"></span></div>
+<div class="line"><a name="l01530"></a><span class="lineno"> 1530</span> <span class="comment">  /// \brief Returns true if \p FID came from a PCH/Module.</span></div>
+<div class="line"><a name="l01531"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#a81afa55a40a09ccd4ae10a5830f85961"> 1531</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1SourceManager.html#a81afa55a40a09ccd4ae10a5830f85961" title="Returns true if FID came from a PCH/Module.">isLoadedFileID</a>(<a class="code" href="classclang_1_1FileID.html" title="An opaque identifier used by SourceManager which refers to a source file (MemoryBuffer) along with it...">FileID</a> FID)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>     assert(FID.ID != -1 && <span class="stringliteral">"Using FileID sentinel value"</span>);</div>
+<div class="line"><a name="l01533"></a><span class="lineno"> 1533</span>     <span class="keywordflow">return</span> FID.ID < 0;</div>
+<div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>   }</div>
+<div class="line"><a name="l01535"></a><span class="lineno"> 1535</span> <span class="comment"></span></div>
+<div class="line"><a name="l01536"></a><span class="lineno"> 1536</span> <span class="comment">  /// \brief Returns true if \p FID did not come from a PCH/Module.</span></div>
+<div class="line"><a name="l01537"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#ab601d6875c7872ea6f7e547d0143b732"> 1537</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1SourceManager.html#ab601d6875c7872ea6f7e547d0143b732" title="Returns true if FID did not come from a PCH/Module.">isLocalFileID</a>(<a class="code" href="classclang_1_1FileID.html" title="An opaque identifier used by SourceManager which refers to a source file (MemoryBuffer) along with it...">FileID</a> FID)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>     <span class="keywordflow">return</span> !<a class="code" href="classclang_1_1SourceManager.html#a81afa55a40a09ccd4ae10a5830f85961" title="Returns true if FID came from a PCH/Module.">isLoadedFileID</a>(FID);</div>
+<div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>   }</div>
+<div class="line"><a name="l01540"></a><span class="lineno"> 1540</span> <span class="comment"></span></div>
+<div class="line"><a name="l01541"></a><span class="lineno"> 1541</span> <span class="comment">  /// Gets the location of the immediate macro caller, one level up the stack</span></div>
+<div class="line"><a name="l01542"></a><span class="lineno"> 1542</span> <span class="comment">  /// toward the initial macro typed into the source.</span></div>
+<div class="line"><a name="l01543"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#a84b7db63db5538fcf9dcc5c25de98b8c"> 1543</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_1SourceManager.html#a84b7db63db5538fcf9dcc5c25de98b8c">getImmediateMacroCallerLoc</a>(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>     <span class="keywordflow">if</span> (!Loc.<a class="code" href="classclang_1_1SourceLocation.html#a83c660ad7c57096011c5f40c50b52c7d">isMacroID</a>()) <span class="keywordflow">return</span> Loc;</div>
+<div class="line"><a name="l01545"></a><span class="lineno"> 1545</span> </div>
+<div class="line"><a name="l01546"></a><span class="lineno"> 1546</span>     <span class="comment">// When we have the location of (part of) an expanded parameter, its</span></div>
+<div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>     <span class="comment">// spelling location points to the argument as expanded in the macro call,</span></div>
+<div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>     <span class="comment">// and therefore is used to locate the macro caller.</span></div>
+<div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1SourceManager.html#a1fc782fe692d7647c32ca861bbf697a7" title="Tests whether the given source location represents a macro argument's expansion into the function-lik...">isMacroArgExpansion</a>(Loc))</div>
+<div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>       <span class="keywordflow">return</span> <a class="code" href="classclang_1_1SourceManager.html#aaa9b1e906f02915b9facd5591e35d985" title="Given a SourceLocation object, return the spelling location referenced by the ID.">getImmediateSpellingLoc</a>(Loc);</div>
+<div class="line"><a name="l01551"></a><span class="lineno"> 1551</span> </div>
+<div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>     <span class="comment">// Otherwise, the caller of the macro is located where this macro is</span></div>
+<div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>     <span class="comment">// expanded (while the spelling is part of the macro definition).</span></div>
+<div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1SourceManager.html#a1068f3643e436b35db1676296142bb9b" title="Return the start/end of the expansion information for an expansion location.">getImmediateExpansionRange</a>(Loc).first;</div>
+<div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>   }</div>
+<div class="line"><a name="l01556"></a><span class="lineno"> 1556</span> </div>
+<div class="line"><a name="l01557"></a><span class="lineno"> 1557</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>   <span class="keyword">const</span> llvm::MemoryBuffer *getFakeBufferForRecovery() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1SrcMgr_1_1ContentCache.html" title="One instance of this struct is kept for every file loaded or used.">SrcMgr::ContentCache</a> *getFakeContentCacheForRecovery() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01560"></a><span class="lineno"> 1560</span> </div>
+<div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html" title="This is a discriminated union of FileInfo and ExpansionInfo.">SrcMgr::SLocEntry</a> &loadSLocEntry(<span class="keywordtype">unsigned</span> Index, <span class="keywordtype">bool</span> *Invalid) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01562"></a><span class="lineno"> 1562</span> <span class="comment"></span></div>
+<div class="line"><a name="l01563"></a><span class="lineno"> 1563</span> <span class="comment">  /// \brief Get the entry with the given unwrapped FileID.</span></div>
+<div class="line"><a name="l01564"></a><span class="lineno"> 1564</span> <span class="comment"></span>  <span class="keyword">const</span> <a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html" title="This is a discriminated union of FileInfo and ExpansionInfo.">SrcMgr::SLocEntry</a> &getSLocEntryByID(<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>, <span class="keywordtype">bool</span> *Invalid = 0)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>     assert(ID != -1 && <span class="stringliteral">"Using FileID sentinel value"</span>);</div>
+<div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>     <span class="keywordflow">if</span> (ID < 0)</div>
+<div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>       <span class="keywordflow">return</span> getLoadedSLocEntryByID(ID, Invalid);</div>
+<div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1SourceManager.html#a06bd6d8f9ae3d855d407c226b5ddb8bb" title="Get a local SLocEntry. This is exposed for indexing.">getLocalSLocEntry</a>(static_cast<unsigned>(ID), Invalid);</div>
+<div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>   }</div>
+<div class="line"><a name="l01570"></a><span class="lineno"> 1570</span> </div>
+<div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>   <span class="keyword">const</span> SrcMgr::SLocEntry &getLoadedSLocEntryByID(<span class="keywordtype">int</span> ID,</div>
+<div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>                                                   <span class="keywordtype">bool</span> *Invalid = 0)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1SourceManager.html#ae2c7f11f93fdf974382ff478a89e757b" title="Get a loaded SLocEntry. This is exposed for indexing.">getLoadedSLocEntry</a>(static_cast<unsigned>(-ID - 2), Invalid);</div>
+<div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>   }</div>
+<div class="line"><a name="l01575"></a><span class="lineno"> 1575</span> <span class="comment"></span></div>
+<div class="line"><a name="l01576"></a><span class="lineno"> 1576</span> <span class="comment">  /// Implements the common elements of storing an expansion info struct into</span></div>
+<div class="line"><a name="l01577"></a><span class="lineno"> 1577</span> <span class="comment">  /// the SLocEntry table and producing a source location that refers to it.</span></div>
+<div class="line"><a name="l01578"></a><span class="lineno"> 1578</span> <span class="comment"></span>  SourceLocation createExpansionLocImpl(<span class="keyword">const</span> SrcMgr::ExpansionInfo &Expansion,</div>
+<div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>                                         <span class="keywordtype">unsigned</span> TokLength,</div>
+<div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>                                         <span class="keywordtype">int</span> LoadedID = 0,</div>
+<div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>                                         <span class="keywordtype">unsigned</span> LoadedOffset = 0);</div>
+<div class="line"><a name="l01582"></a><span class="lineno"> 1582</span> <span class="comment"></span></div>
+<div class="line"><a name="l01583"></a><span class="lineno"> 1583</span> <span class="comment">  /// \brief Return true if the specified FileID contains the</span></div>
+<div class="line"><a name="l01584"></a><span class="lineno"> 1584</span> <span class="comment">  /// specified SourceLocation offset.  This is a very hot method.</span></div>
+<div class="line"><a name="l01585"></a><span class="lineno"> 1585</span> <span class="comment"></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> isOffsetInFileID(FileID FID, <span class="keywordtype">unsigned</span> SLocOffset)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>     <span class="keyword">const</span> SrcMgr::SLocEntry &Entry = <a class="code" href="classclang_1_1SourceManager.html#ad1585a31ee5f93aaca7cce35f3f6922c">getSLocEntry</a>(FID);</div>
+<div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>     <span class="comment">// If the entry is after the offset, it can't contain it.</span></div>
+<div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>     <span class="keywordflow">if</span> (SLocOffset < Entry.getOffset()) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01589"></a><span class="lineno"> 1589</span> </div>
+<div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>     <span class="comment">// If this is the very last entry then it does.</span></div>
+<div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>     <span class="keywordflow">if</span> (FID.ID == -2)</div>
+<div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>       <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01593"></a><span class="lineno"> 1593</span> </div>
+<div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>     <span class="comment">// If it is the last local entry, then it does if the location is local.</span></div>
+<div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>     <span class="keywordflow">if</span> (FID.ID+1 == static_cast<int>(LocalSLocEntryTable.size()))</div>
+<div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>       <span class="keywordflow">return</span> SLocOffset < NextLocalOffset;</div>
+<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span> </div>
+<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>     <span class="comment">// Otherwise, the entry after it has to not include it. This works for both</span></div>
+<div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>     <span class="comment">// local and loaded entries.</span></div>
+<div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>     <span class="keywordflow">return</span> SLocOffset < getSLocEntryByID(FID.ID+1).<a class="code" href="classclang_1_1SrcMgr_1_1SLocEntry.html#af792006aa81706c77a4b35924e5d9f1c">getOffset</a>();</div>
+<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>   }</div>
+<div class="line"><a name="l01602"></a><span class="lineno"> 1602</span> <span class="comment"></span></div>
+<div class="line"><a name="l01603"></a><span class="lineno"> 1603</span> <span class="comment">  /// \brief Returns the previous in-order FileID or an invalid FileID if there</span></div>
+<div class="line"><a name="l01604"></a><span class="lineno"> 1604</span> <span class="comment">  /// is no previous one.</span></div>
+<div class="line"><a name="l01605"></a><span class="lineno"> 1605</span> <span class="comment"></span>  FileID getPreviousFileID(FileID FID) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01606"></a><span class="lineno"> 1606</span> <span class="comment"></span></div>
+<div class="line"><a name="l01607"></a><span class="lineno"> 1607</span> <span class="comment">  /// \brief Returns the next in-order FileID or an invalid FileID if there is</span></div>
+<div class="line"><a name="l01608"></a><span class="lineno"> 1608</span> <span class="comment">  /// no next one.</span></div>
+<div class="line"><a name="l01609"></a><span class="lineno"> 1609</span> <span class="comment"></span>  FileID getNextFileID(FileID FID) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01610"></a><span class="lineno"> 1610</span> <span class="comment"></span></div>
+<div class="line"><a name="l01611"></a><span class="lineno"> 1611</span> <span class="comment">  /// \brief Create a new fileID for the specified ContentCache and</span></div>
+<div class="line"><a name="l01612"></a><span class="lineno"> 1612</span> <span class="comment">  /// include position.</span></div>
+<div class="line"><a name="l01613"></a><span class="lineno"> 1613</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l01614"></a><span class="lineno"> 1614</span> <span class="comment">  /// This works regardless of whether the ContentCache corresponds to a</span></div>
+<div class="line"><a name="l01615"></a><span class="lineno"> 1615</span> <span class="comment">  /// file or some other input source.</span></div>
+<div class="line"><a name="l01616"></a><span class="lineno"> 1616</span> <span class="comment"></span>  FileID <a class="code" href="classclang_1_1SourceManager.html#acefb5d310242160b1910104bbf4d8b2d" title="Create a new FileID that represents the specified file being #included from the specified IncludePosi...">createFileID</a>(<span class="keyword">const</span> SrcMgr::ContentCache* File,</div>
+<div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>                       SourceLocation IncludePos,</div>
+<div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>                       <a class="code" href="namespaceclang_1_1SrcMgr.html#a27297b3568f189486de6df08a8cba35d" title="Indicates whether a file or directory holds normal user code, system code, or system code which is im...">SrcMgr::CharacteristicKind</a> DirCharacter,</div>
+<div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>                       <span class="keywordtype">int</span> LoadedID, <span class="keywordtype">unsigned</span> LoadedOffset);</div>
+<div class="line"><a name="l01620"></a><span class="lineno"> 1620</span> </div>
+<div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>   <span class="keyword">const</span> SrcMgr::ContentCache *</div>
+<div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>     getOrCreateContentCache(<span class="keyword">const</span> FileEntry *SourceFile,</div>
+<div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>                             <span class="keywordtype">bool</span> isSystemFile = <span class="keyword">false</span>);</div>
+<div class="line"><a name="l01624"></a><span class="lineno"> 1624</span> <span class="comment"></span></div>
+<div class="line"><a name="l01625"></a><span class="lineno"> 1625</span> <span class="comment">  /// \brief Create a new ContentCache for the specified  memory buffer.</span></div>
+<div class="line"><a name="l01626"></a><span class="lineno"> 1626</span> <span class="comment"></span>  <span class="keyword">const</span> SrcMgr::ContentCache*</div>
+<div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>   createMemBufferContentCache(<span class="keyword">const</span> llvm::MemoryBuffer *Buf);</div>
+<div class="line"><a name="l01628"></a><span class="lineno"> 1628</span> </div>
+<div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>   FileID getFileIDSlow(<span class="keywordtype">unsigned</span> SLocOffset) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>   FileID getFileIDLocal(<span class="keywordtype">unsigned</span> SLocOffset) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>   FileID getFileIDLoaded(<span class="keywordtype">unsigned</span> SLocOffset) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01632"></a><span class="lineno"> 1632</span> </div>
+<div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>   SourceLocation getExpansionLocSlowCase(SourceLocation Loc) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>   SourceLocation getSpellingLocSlowCase(SourceLocation Loc) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>   SourceLocation getFileLocSlowCase(SourceLocation Loc) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01636"></a><span class="lineno"> 1636</span> </div>
+<div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>   std::pair<FileID, unsigned></div>
+<div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>   getDecomposedExpansionLocSlowCase(<span class="keyword">const</span> SrcMgr::SLocEntry *E) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>   std::pair<FileID, unsigned></div>
+<div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>   getDecomposedSpellingLocSlowCase(<span class="keyword">const</span> SrcMgr::SLocEntry *E,</div>
+<div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>                                    <span class="keywordtype">unsigned</span> <a class="code" href="namespaceclang_1_1io.html#ae0bbdf4a2b076935546931e52d48d29b">Offset</a>) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>   <span class="keywordtype">void</span> computeMacroArgsCache(MacroArgsMap *&MacroArgsCache, FileID FID) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>   <span class="keywordtype">void</span> associateFileChunkWithMacroArgExp(MacroArgsMap &MacroArgsCache,</div>
+<div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>                                          FileID FID,</div>
+<div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>                                          SourceLocation SpellLoc,</div>
+<div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>                                          SourceLocation ExpansionLoc,</div>
+<div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>                                          <span class="keywordtype">unsigned</span> ExpansionLength) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01648"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#a5d8560551ea81515968dd468e2e4082e"> 1648</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="l01649"></a><span class="lineno"><a class="code" href="classclang_1_1SourceManager.html#a05a0d9d61e00c31d180a2a8f1d6f7903"> 1649</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="l01650"></a><span class="lineno"> 1650</span> };</div>
+<div class="line"><a name="l01651"></a><span class="lineno"> 1651</span> <span class="comment"></span></div>
+<div class="line"><a name="l01652"></a><span class="lineno"> 1652</span> <span class="comment">/// \brief Comparison function object.</span></div>
+<div class="line"><a name="l01653"></a><span class="lineno"> 1653</span> <span class="comment"></span><span class="keyword">template</span><<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l01654"></a><span class="lineno"><a class="code" href="classclang_1_1BeforeThanCompare.html"> 1654</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1BeforeThanCompare.html" title="Comparison function object.">BeforeThanCompare</a>;</div>
+<div class="line"><a name="l01655"></a><span class="lineno"> 1655</span> <span class="comment"></span></div>
+<div class="line"><a name="l01656"></a><span class="lineno"> 1656</span> <span class="comment">/// \brief Compare two source locations.</span></div>
+<div class="line"><a name="l01657"></a><span class="lineno"> 1657</span> <span class="comment"></span><span class="keyword">template</span><></div>
+<div class="line"><a name="l01658"></a><span class="lineno"><a class="code" href="classclang_1_1BeforeThanCompare_3_01SourceLocation_01_4.html"> 1658</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1BeforeThanCompare.html" title="Comparison function object.">BeforeThanCompare</a><<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a>> {</div>
+<div class="line"><a name="l01659"></a><span class="lineno"> 1659</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="l01660"></a><span class="lineno"> 1660</span> </div>
+<div class="line"><a name="l01661"></a><span class="lineno"> 1661</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l01662"></a><span class="lineno"><a class="code" href="classclang_1_1BeforeThanCompare_3_01SourceLocation_01_4.html#adc7d8c72a2ca11189ff3eebddae6ec62"> 1662</a></span>   <span class="keyword">explicit</span> <a class="code" href="classclang_1_1BeforeThanCompare_3_01SourceLocation_01_4.html#adc7d8c72a2ca11189ff3eebddae6ec62">BeforeThanCompare</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>) : SM(SM) { }</div>
+<div class="line"><a name="l01663"></a><span class="lineno"> 1663</span> </div>
+<div class="line"><a name="l01664"></a><span class="lineno"><a class="code" href="classclang_1_1BeforeThanCompare_3_01SourceLocation_01_4.html#a6cedbc814f9f598695d3b34f512bd3d4"> 1664</a></span>   <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1BeforeThanCompare_3_01SourceLocation_01_4.html#a6cedbc814f9f598695d3b34f512bd3d4">operator()</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> LHS, <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="l01665"></a><span class="lineno"> 1665</span>     <span class="keywordflow">return</span> <a class="code" href="AnalysisBasedWarnings_8cpp.html#afe4356a77609114d8df0bfc9c2b8701f">SM</a>.isBeforeInTranslationUnit(LHS, RHS);</div>
+<div class="line"><a name="l01666"></a><span class="lineno"> 1666</span>   }</div>
+<div class="line"><a name="l01667"></a><span class="lineno"> 1667</span> };</div>
+<div class="line"><a name="l01668"></a><span class="lineno"> 1668</span> <span class="comment"></span></div>
+<div class="line"><a name="l01669"></a><span class="lineno"> 1669</span> <span class="comment">/// \brief Compare two non-overlapping source ranges.</span></div>
+<div class="line"><a name="l01670"></a><span class="lineno"> 1670</span> <span class="comment"></span><span class="keyword">template</span><></div>
+<div class="line"><a name="l01671"></a><span class="lineno"><a class="code" href="classclang_1_1BeforeThanCompare_3_01SourceRange_01_4.html"> 1671</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1BeforeThanCompare.html" title="Comparison function object.">BeforeThanCompare</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="l01672"></a><span class="lineno"> 1672</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="l01673"></a><span class="lineno"> 1673</span> </div>
+<div class="line"><a name="l01674"></a><span class="lineno"> 1674</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l01675"></a><span class="lineno"><a class="code" href="classclang_1_1BeforeThanCompare_3_01SourceRange_01_4.html#a67420692be32f45c7ec9737e2d440ea8"> 1675</a></span>   <span class="keyword">explicit</span> <a class="code" href="classclang_1_1BeforeThanCompare_3_01SourceRange_01_4.html#a67420692be32f45c7ec9737e2d440ea8">BeforeThanCompare</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>) : SM(SM) { }</div>
+<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span> </div>
+<div class="line"><a name="l01677"></a><span class="lineno"><a class="code" href="classclang_1_1BeforeThanCompare_3_01SourceRange_01_4.html#ab34e5d1d7cdde03e33feb47bd300e63f"> 1677</a></span>   <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1BeforeThanCompare_3_01SourceRange_01_4.html#ab34e5d1d7cdde03e33feb47bd300e63f">operator()</a>(<a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> LHS, <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> RHS) {</div>
+<div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>     <span class="keywordflow">return</span> <a class="code" href="AnalysisBasedWarnings_8cpp.html#afe4356a77609114d8df0bfc9c2b8701f">SM</a>.isBeforeInTranslationUnit(LHS.<a class="code" href="classclang_1_1SourceRange.html#a890dff14560eb9aceb08be18dfe74208">getBegin</a>(), RHS.<a class="code" href="classclang_1_1SourceRange.html#a890dff14560eb9aceb08be18dfe74208">getBegin</a>());</div>
+<div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>   }</div>
+<div class="line"><a name="l01680"></a><span class="lineno"> 1680</span> };</div>
+<div class="line"><a name="l01681"></a><span class="lineno"> 1681</span> </div>
+<div class="line"><a name="l01682"></a><span class="lineno"> 1682</span> }  <span class="comment">// end namespace clang</span></div>
+<div class="line"><a name="l01683"></a><span class="lineno"> 1683</span> </div>
+<div class="line"><a name="l01684"></a><span class="lineno"> 1684</span> </div>
+<div class="line"><a name="l01685"></a><span class="lineno"> 1685</span> <span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:14:10 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/Specifiers_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Specifiers_8h_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Specifiers_8h_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Specifiers_8h_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,325 @@
+<!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: Specifiers.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_3e61bbac0c8515a3c083eb51d03eb390.html">include</a></li><li class="navelem"><a class="el" href="dir_ee4f288247dc2d9ccd0382aea6916312.html">clang</a></li><li class="navelem"><a class="el" href="dir_84b4cac0f3db7adb733be733ea7bc48e.html">Basic</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">Specifiers.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="Specifiers_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">//===--- Specifiers.h - Declaration and Type Specifiers ---------*- 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 various enumerations that describe declaration and</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="comment">/// type specifiers.</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> <span class="comment"></span><span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="preprocessor">#ifndef LLVM_CLANG_BASIC_SPECIFIERS_H</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="preprocessor"></span><span class="preprocessor">#define LLVM_CLANG_BASIC_SPECIFIERS_H</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="keyword">namespace </span>clang {<span class="comment"></span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="comment">  /// \brief Specifies the width of a type, e.g., short, long, or long long.</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"><a class="code" href="namespaceclang.html#aac061dd9d63cb89fb5b657633a794198">   21</a></span> <span class="comment"></span>  <span class="keyword">enum</span> <a class="code" href="namespaceclang.html#aac061dd9d63cb89fb5b657633a794198" title="Specifies the width of a type, e.g., short, long, or long long.">TypeSpecifierWidth</a> {</div>
+<div class="line"><a name="l00022"></a><span class="lineno"><a class="code" href="namespaceclang.html#aac061dd9d63cb89fb5b657633a794198a1e4553e440c9bf65bbd0c8ab5f8a58a3">   22</a></span>     <a class="code" href="namespaceclang.html#aac061dd9d63cb89fb5b657633a794198a1e4553e440c9bf65bbd0c8ab5f8a58a3">TSW_unspecified</a>,</div>
+<div class="line"><a name="l00023"></a><span class="lineno"><a class="code" href="namespaceclang.html#aac061dd9d63cb89fb5b657633a794198a83943adebbdd8a1a3629802ce81dc9b2">   23</a></span>     <a class="code" href="namespaceclang.html#aac061dd9d63cb89fb5b657633a794198a83943adebbdd8a1a3629802ce81dc9b2">TSW_short</a>,</div>
+<div class="line"><a name="l00024"></a><span class="lineno"><a class="code" href="namespaceclang.html#aac061dd9d63cb89fb5b657633a794198ae28b5433cda8fe3c9182cab1a9c6f633">   24</a></span>     <a class="code" href="namespaceclang.html#aac061dd9d63cb89fb5b657633a794198ae28b5433cda8fe3c9182cab1a9c6f633">TSW_long</a>,</div>
+<div class="line"><a name="l00025"></a><span class="lineno"><a class="code" href="namespaceclang.html#aac061dd9d63cb89fb5b657633a794198aaf41e5603581a126da2c03755772f046">   25</a></span>     <a class="code" href="namespaceclang.html#aac061dd9d63cb89fb5b657633a794198aaf41e5603581a126da2c03755772f046">TSW_longlong</a></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="comment"></span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">  /// \brief Specifies the signedness of a type, e.g., signed or unsigned.</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"><a class="code" href="namespaceclang.html#abfbef64d907e6cc318b38af692636fd2">   29</a></span> <span class="comment"></span>  <span class="keyword">enum</span> <a class="code" href="namespaceclang.html#abfbef64d907e6cc318b38af692636fd2" title="Specifies the signedness of a type, e.g., signed or unsigned.">TypeSpecifierSign</a> {</div>
+<div class="line"><a name="l00030"></a><span class="lineno"><a class="code" href="namespaceclang.html#abfbef64d907e6cc318b38af692636fd2a92c838be237a3ecb1f8551751aa34b04">   30</a></span>     <a class="code" href="namespaceclang.html#abfbef64d907e6cc318b38af692636fd2a92c838be237a3ecb1f8551751aa34b04">TSS_unspecified</a>,</div>
+<div class="line"><a name="l00031"></a><span class="lineno"><a class="code" href="namespaceclang.html#abfbef64d907e6cc318b38af692636fd2a3cba497ba9f0ad12a57c5ec737cf2a2c">   31</a></span>     <a class="code" href="namespaceclang.html#abfbef64d907e6cc318b38af692636fd2a3cba497ba9f0ad12a57c5ec737cf2a2c">TSS_signed</a>,</div>
+<div class="line"><a name="l00032"></a><span class="lineno"><a class="code" href="namespaceclang.html#abfbef64d907e6cc318b38af692636fd2a60b58aebe1d78a1e7d202d339ebef0fc">   32</a></span>     <a class="code" href="namespaceclang.html#abfbef64d907e6cc318b38af692636fd2a60b58aebe1d78a1e7d202d339ebef0fc">TSS_unsigned</a></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>   };</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>   <span class="comment"></span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span> <span class="comment">  /// \brief Specifies the kind of type.</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"><a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13">   36</a></span> <span class="comment"></span>  <span class="keyword">enum</span> <a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13" title="Specifies the kind of type.">TypeSpecifierType</a> {</div>
+<div class="line"><a name="l00037"></a><span class="lineno"><a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13a9cddd2a335e41a13e7dbb6e2489bc30a">   37</a></span>     <a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13a9cddd2a335e41a13e7dbb6e2489bc30a">TST_unspecified</a>,</div>
+<div class="line"><a name="l00038"></a><span class="lineno"><a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13adfe1e136e32e4465b5c49aa9929a5003">   38</a></span>     <a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13adfe1e136e32e4465b5c49aa9929a5003">TST_void</a>,</div>
+<div class="line"><a name="l00039"></a><span class="lineno"><a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13a99ac0b2b9d4cf63e46caa9fddd043ce8">   39</a></span>     <a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13a99ac0b2b9d4cf63e46caa9fddd043ce8">TST_char</a>,</div>
+<div class="line"><a name="l00040"></a><span class="lineno"><a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13a9559207efd5eb512e636ccee3d467f8a">   40</a></span>     <a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13a9559207efd5eb512e636ccee3d467f8a">TST_wchar</a>,        <span class="comment">// C++ wchar_t</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"><a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13a98fccb7952e86caa0738e6da04b012df">   41</a></span>     <a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13a98fccb7952e86caa0738e6da04b012df">TST_char16</a>,       <span class="comment">// C++11 char16_t</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"><a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13a5be7ebdd8fb4d348bcf2e62a6200036f">   42</a></span>     <a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13a5be7ebdd8fb4d348bcf2e62a6200036f">TST_char32</a>,       <span class="comment">// C++11 char32_t</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno"><a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13ad8dd677be54bf7b4678995f776561d15">   43</a></span>     <a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13ad8dd677be54bf7b4678995f776561d15">TST_int</a>,</div>
+<div class="line"><a name="l00044"></a><span class="lineno"><a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13a43189bb0e2cf00e668b42fc18c4f197d">   44</a></span>     <a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13a43189bb0e2cf00e668b42fc18c4f197d">TST_int128</a>,</div>
+<div class="line"><a name="l00045"></a><span class="lineno"><a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13a51b038a744512101c2822da22f20aa50">   45</a></span>     <a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13a51b038a744512101c2822da22f20aa50">TST_half</a>,         <span class="comment">// OpenCL half, ARM NEON __fp16</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno"><a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13a0ee34ad32fa60a5d25e6fb46894631ee">   46</a></span>     <a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13a0ee34ad32fa60a5d25e6fb46894631ee">TST_float</a>,</div>
+<div class="line"><a name="l00047"></a><span class="lineno"><a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13ad775761478e61d51dbdc116d6b18feea">   47</a></span>     <a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13ad775761478e61d51dbdc116d6b18feea">TST_double</a>,</div>
+<div class="line"><a name="l00048"></a><span class="lineno"><a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13adc9629dec86856c53e4fd2ba4d2a0ed9">   48</a></span>     <a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13adc9629dec86856c53e4fd2ba4d2a0ed9">TST_bool</a>,         <span class="comment">// _Bool</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"><a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13a365cb389697fb48745115aafdf5dd023">   49</a></span>     <a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13a365cb389697fb48745115aafdf5dd023">TST_decimal32</a>,    <span class="comment">// _Decimal32</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"><a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13a0dfa80dc9072d6e01c1d8a4189124cf5">   50</a></span>     <a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13a0dfa80dc9072d6e01c1d8a4189124cf5">TST_decimal64</a>,    <span class="comment">// _Decimal64</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"><a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13afe54f94360b34fe5d00caa8abc081ead">   51</a></span>     <a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13afe54f94360b34fe5d00caa8abc081ead">TST_decimal128</a>,   <span class="comment">// _Decimal128</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"><a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13ae55173f1e59e511869a9357dc717aebc">   52</a></span>     <a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13ae55173f1e59e511869a9357dc717aebc">TST_enum</a>,</div>
+<div class="line"><a name="l00053"></a><span class="lineno"><a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13ac3a0ed571dbfe00edb38fb29382b69aa">   53</a></span>     <a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13ac3a0ed571dbfe00edb38fb29382b69aa">TST_union</a>,</div>
+<div class="line"><a name="l00054"></a><span class="lineno"><a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13a77f93dd9c20af9b446ea0d85792a94a7">   54</a></span>     <a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13a77f93dd9c20af9b446ea0d85792a94a7">TST_struct</a>,</div>
+<div class="line"><a name="l00055"></a><span class="lineno"><a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13aac5bf4f6561e430c559d9c24b488b219">   55</a></span>     <a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13aac5bf4f6561e430c559d9c24b488b219">TST_class</a>,        <span class="comment">// C++ class type</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno"><a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13af8226e490cc6d28a7e6f67a333b0cfb7">   56</a></span>     <a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13af8226e490cc6d28a7e6f67a333b0cfb7">TST_interface</a>,    <span class="comment">// C++ (Microsoft-specific) __interface type</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"><a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13adf7b6a7abd1467d5eca4163fa2d04ca4">   57</a></span>     <a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13adf7b6a7abd1467d5eca4163fa2d04ca4">TST_typename</a>,     <span class="comment">// Typedef, C++ class-name or enum name, etc.</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno"><a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13a81781ccea113f53d674d54596063b4fa">   58</a></span>     <a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13a81781ccea113f53d674d54596063b4fa">TST_typeofType</a>,</div>
+<div class="line"><a name="l00059"></a><span class="lineno"><a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13ade5eea5998a8ec7376d162fb6ba644dd">   59</a></span>     <a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13ade5eea5998a8ec7376d162fb6ba644dd">TST_typeofExpr</a>,</div>
+<div class="line"><a name="l00060"></a><span class="lineno"><a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13a55670494dc6c74c7e5081f340c79beca">   60</a></span>     <a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13a55670494dc6c74c7e5081f340c79beca">TST_decltype</a>,         <span class="comment">// C++11 decltype</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"><a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13abbf2e2ca6d6cc461d8472ab06699c65a">   61</a></span>     <a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13abbf2e2ca6d6cc461d8472ab06699c65a">TST_underlyingType</a>,   <span class="comment">// __underlying_type for C++11</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"><a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13a181187fb12e42d2806a044e0a7f458f4">   62</a></span>     <a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13a181187fb12e42d2806a044e0a7f458f4">TST_auto</a>,             <span class="comment">// C++11 auto</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"><a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13af444f06365cf549c3e828c490ad8a40a">   63</a></span>     <a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13af444f06365cf549c3e828c490ad8a40a">TST_decltype_auto</a>,    <span class="comment">// C++1y decltype(auto)</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"><a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13ae467ddf4b0f97d58b0ae024362d55e1e">   64</a></span>     <a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13ae467ddf4b0f97d58b0ae024362d55e1e">TST_unknown_anytype</a>,  <span class="comment">// __unknown_anytype extension</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno"><a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13a45ae7c248799c668264cc8d1f1e4308b">   65</a></span>     <a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13a45ae7c248799c668264cc8d1f1e4308b">TST_atomic</a>,           <span class="comment">// C11 _Atomic</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"><a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13abc1f6bd680048461b31f3e262a0e999d">   66</a></span>     <a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13abc1f6bd680048461b31f3e262a0e999d">TST_image1d_t</a>,        <span class="comment">// OpenCL image1d_t</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"><a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13ad6e05c6e14adef5dd7cb368f28e5dce5">   67</a></span>     <a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13ad6e05c6e14adef5dd7cb368f28e5dce5">TST_image1d_array_t</a>,  <span class="comment">// OpenCL image1d_array_t</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno"><a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13a4017de3fb69baea5bac6af34570de284">   68</a></span>     <a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13a4017de3fb69baea5bac6af34570de284">TST_image1d_buffer_t</a>, <span class="comment">// OpenCL image1d_buffer_t</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno"><a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13a44bd36e60c903162aee3fb48e8ad8b16">   69</a></span>     <a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13a44bd36e60c903162aee3fb48e8ad8b16">TST_image2d_t</a>,        <span class="comment">// OpenCL image2d_t</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"><a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13ae3fcdf273b19659e59cc18315ed0828b">   70</a></span>     <a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13ae3fcdf273b19659e59cc18315ed0828b">TST_image2d_array_t</a>,  <span class="comment">// OpenCL image2d_array_t</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"><a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13ad3d347d7747f00dcd83218bf68d90747">   71</a></span>     <a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13ad3d347d7747f00dcd83218bf68d90747">TST_image3d_t</a>,        <span class="comment">// OpenCL image3d_t</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno"><a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13aa5e1eea826c0d0b3d13274624fd37536">   72</a></span>     <a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13aa5e1eea826c0d0b3d13274624fd37536">TST_sampler_t</a>,        <span class="comment">// OpenCL sampler_t</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno"><a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13a6f624ffd134096e4c0cf17cbc400bbd5">   73</a></span>     <a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13a6f624ffd134096e4c0cf17cbc400bbd5">TST_event_t</a>,          <span class="comment">// OpenCL event_t</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"><a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13aebd8ccb1b96ebabdfe90b90308dee689">   74</a></span>     <a class="code" href="namespaceclang.html#a033691a5f00979c1a22d8aa114d07e13aebd8ccb1b96ebabdfe90b90308dee689">TST_error</a>         <span class="comment">// erroneous type</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="comment"></span></div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span> <span class="comment">  /// \brief Structure that packs information about the type specifiers that</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span> <span class="comment">  /// were written in a particular type specifier sequence.</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno"><a class="code" href="structclang_1_1WrittenBuiltinSpecs.html">   79</a></span> <span class="comment"></span>  <span class="keyword">struct </span><a class="code" href="structclang_1_1WrittenBuiltinSpecs.html" title="Structure that packs information about the type specifiers that were written in a particular type spe...">WrittenBuiltinSpecs</a> {</div>
+<div class="line"><a name="l00080"></a><span class="lineno"><a class="code" href="structclang_1_1WrittenBuiltinSpecs.html#a268776a4ccaa7519965a3f23508c0574">   80</a></span>     <span class="comment">/*DeclSpec::TST*/</span> <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1Type.html">Type</a>  : 6;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"><a class="code" href="structclang_1_1WrittenBuiltinSpecs.html#a45cdcec822e188b109e049980e168f5a">   81</a></span>     <span class="comment">/*DeclSpec::TSS*/</span> <span class="keywordtype">unsigned</span> <a class="code" href="structclang_1_1WrittenBuiltinSpecs.html#a45cdcec822e188b109e049980e168f5a">Sign</a>  : 2;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"><a class="code" href="structclang_1_1WrittenBuiltinSpecs.html#ab2d6e3818dc6846d949379eab3de5a5d">   82</a></span>     <span class="comment">/*DeclSpec::TSW*/</span> <span class="keywordtype">unsigned</span> <a class="code" href="structclang_1_1WrittenBuiltinSpecs.html#ab2d6e3818dc6846d949379eab3de5a5d">Width</a> : 2;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"><a class="code" href="structclang_1_1WrittenBuiltinSpecs.html#a5a142db5341e311a82bcd930b0ac997e">   83</a></span>     <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ModeAttr.html">ModeAttr</a> : 1;</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> <span class="comment"></span></div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span> <span class="comment">  /// \brief A C++ access specifier (public, private, protected), plus the</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span> <span class="comment">  /// special value "none" which means different things in different contexts.</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno"><a class="code" href="namespaceclang.html#afc8aabd1f46cf32e805cd0d970ef988f">   88</a></span> <span class="comment"></span>  <span class="keyword">enum</span> <a class="code" href="namespaceclang.html#afc8aabd1f46cf32e805cd0d970ef988f" title="A C++ access specifier (public, private, protected), plus the special value "none" which means differ...">AccessSpecifier</a> {</div>
+<div class="line"><a name="l00089"></a><span class="lineno"><a class="code" href="namespaceclang.html#afc8aabd1f46cf32e805cd0d970ef988fa163ae3a419460301961bc458f8f01fd3">   89</a></span>     <a class="code" href="namespaceclang.html#afc8aabd1f46cf32e805cd0d970ef988fa163ae3a419460301961bc458f8f01fd3">AS_public</a>,</div>
+<div class="line"><a name="l00090"></a><span class="lineno"><a class="code" href="namespaceclang.html#afc8aabd1f46cf32e805cd0d970ef988fa2228b99b74e17dd9730ec288f10842e8">   90</a></span>     <a class="code" href="namespaceclang.html#afc8aabd1f46cf32e805cd0d970ef988fa2228b99b74e17dd9730ec288f10842e8">AS_protected</a>,</div>
+<div class="line"><a name="l00091"></a><span class="lineno"><a class="code" href="namespaceclang.html#afc8aabd1f46cf32e805cd0d970ef988fa7be90b0dcbe2c1b4391457330f68aafa">   91</a></span>     <a class="code" href="namespaceclang.html#afc8aabd1f46cf32e805cd0d970ef988fa7be90b0dcbe2c1b4391457330f68aafa">AS_private</a>,</div>
+<div class="line"><a name="l00092"></a><span class="lineno"><a class="code" href="namespaceclang.html#afc8aabd1f46cf32e805cd0d970ef988fa24d2c10b569678923a7bff78b68cb02b">   92</a></span>     <a class="code" href="namespaceclang.html#afc8aabd1f46cf32e805cd0d970ef988fa24d2c10b569678923a7bff78b68cb02b">AS_none</a></div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>   };</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span> <span class="comment"></span></div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span> <span class="comment">  /// \brief The categorization of expression values, currently following the</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span> <span class="comment">  /// C++11 scheme.</span></div>
+<div class="line"><a name="l00097"></a><span class="lineno"><a class="code" href="namespaceclang.html#ac7b1e4926b152c0385bc7ec72319a340">   97</a></span> <span class="comment"></span>  <span class="keyword">enum</span> <a class="code" href="namespaceclang.html#ac7b1e4926b152c0385bc7ec72319a340" title="The categorization of expression values, currently following the C++11 scheme.">ExprValueKind</a> {<span class="comment"></span></div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span> <span class="comment">    /// \brief An r-value expression (a pr-value in the C++11 taxonomy)</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span> <span class="comment">    /// produces a temporary value.</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno"><a class="code" href="namespaceclang.html#ac7b1e4926b152c0385bc7ec72319a340a7486248bcb086a1f969a9e138208dcd7">  100</a></span> <span class="comment"></span>    <a class="code" href="namespaceclang.html#ac7b1e4926b152c0385bc7ec72319a340a7486248bcb086a1f969a9e138208dcd7" title="An r-value expression (a pr-value in the C++11 taxonomy) produces a temporary value.">VK_RValue</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 An l-value expression is a reference to an object with</span></div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span> <span class="comment">    /// independent storage.</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno"><a class="code" href="namespaceclang.html#ac7b1e4926b152c0385bc7ec72319a340ab67545101f6b01efc1ecf6a0cefc7ee7">  104</a></span> <span class="comment"></span>    <a class="code" href="namespaceclang.html#ac7b1e4926b152c0385bc7ec72319a340ab67545101f6b01efc1ecf6a0cefc7ee7" title="An l-value expression is a reference to an object with independent storage.">VK_LValue</a>,</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span> <span class="comment"></span></div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span> <span class="comment">    /// \brief An x-value expression is a reference to an object with</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span> <span class="comment">    /// independent storage but which can be "moved", i.e.</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span> <span class="comment">    /// efficiently cannibalized for its resources.</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno"><a class="code" href="namespaceclang.html#ac7b1e4926b152c0385bc7ec72319a340a63fc11bfcee4743c02b72657c1adcf27">  109</a></span> <span class="comment"></span>    <a class="code" href="namespaceclang.html#ac7b1e4926b152c0385bc7ec72319a340a63fc11bfcee4743c02b72657c1adcf27" title="An x-value expression is a reference to an object with independent storage but which can be "moved"...">VK_XValue</a></div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>   };</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span> <span class="comment"></span></div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span> <span class="comment">  /// \brief A further classification of the kind of object referenced by an</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span> <span class="comment">  /// l-value or x-value.</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno"><a class="code" href="namespaceclang.html#a3d9d0a7c294c4279add6b726bd3e2bb1">  114</a></span> <span class="comment"></span>  <span class="keyword">enum</span> <a class="code" href="namespaceclang.html#a3d9d0a7c294c4279add6b726bd3e2bb1" title="A further classification of the kind of object referenced by an l-value or x-value.">ExprObjectKind</a> {<span class="comment"></span></div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span> <span class="comment">    /// An ordinary object is located at an address in memory.</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno"><a class="code" href="namespaceclang.html#a3d9d0a7c294c4279add6b726bd3e2bb1a83fc60c978ed1f1be293f1d2fcb6b5c5">  116</a></span> <span class="comment"></span>    <a class="code" href="namespaceclang.html#a3d9d0a7c294c4279add6b726bd3e2bb1a83fc60c978ed1f1be293f1d2fcb6b5c5" title="An ordinary object is located at an address in memory.">OK_Ordinary</a>,</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span> <span class="comment"></span></div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span> <span class="comment">    /// A bitfield object is a bitfield on a C or C++ record.</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno"><a class="code" href="namespaceclang.html#a3d9d0a7c294c4279add6b726bd3e2bb1a9055ba3536b1c12453fbc1c170ed314f">  119</a></span> <span class="comment"></span>    <a class="code" href="namespaceclang.html#a3d9d0a7c294c4279add6b726bd3e2bb1a9055ba3536b1c12453fbc1c170ed314f" title="A bitfield object is a bitfield on a C or C++ record.">OK_BitField</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">    /// A vector component is an element or range of elements on a vector.</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno"><a class="code" href="namespaceclang.html#a3d9d0a7c294c4279add6b726bd3e2bb1a1ff6780e66ce8848bd3350e091db57a2">  122</a></span> <span class="comment"></span>    <a class="code" href="namespaceclang.html#a3d9d0a7c294c4279add6b726bd3e2bb1a1ff6780e66ce8848bd3350e091db57a2" title="A vector component is an element or range of elements on a vector.">OK_VectorComponent</a>,</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span> <span class="comment"></span></div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span> <span class="comment">    /// An Objective-C property is a logical field of an Objective-C</span></div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span> <span class="comment">    /// object which is read and written via Objective-C method calls.</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno"><a class="code" href="namespaceclang.html#a3d9d0a7c294c4279add6b726bd3e2bb1a515e545564007a6528858a9bc912232a">  126</a></span> <span class="comment"></span>    <a class="code" href="namespaceclang.html#a3d9d0a7c294c4279add6b726bd3e2bb1a515e545564007a6528858a9bc912232a">OK_ObjCProperty</a>,</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>     <span class="comment"></span></div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span> <span class="comment">    /// An Objective-C array/dictionary subscripting which reads an</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span> <span class="comment">    /// object or writes at the subscripted array/dictionary element via</span></div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span> <span class="comment">    /// Objective-C method calls.</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno"><a class="code" href="namespaceclang.html#a3d9d0a7c294c4279add6b726bd3e2bb1a53521e1137a95495fa00fd2d13d7bc97">  131</a></span> <span class="comment"></span>    <a class="code" href="namespaceclang.html#a3d9d0a7c294c4279add6b726bd3e2bb1a53521e1137a95495fa00fd2d13d7bc97">OK_ObjCSubscript</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> <span class="comment"></span></div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span> <span class="comment">  /// \brief Describes the kind of template specialization that a</span></div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span> <span class="comment">  /// particular template specialization declaration represents.</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno"><a class="code" href="namespaceclang.html#ae689bf8e3dcc54751a81974a4a12c3d2">  136</a></span> <span class="comment"></span>  <span class="keyword">enum</span> <a class="code" href="namespaceclang.html#ae689bf8e3dcc54751a81974a4a12c3d2" title="Describes the kind of template specialization that a particular template specialization declaration r...">TemplateSpecializationKind</a> {<span class="comment"></span></div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span> <span class="comment">    /// This template specialization was formed from a template-id but</span></div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span> <span class="comment">    /// has not yet been declared, defined, or instantiated.</span></div>
+<div class="line"><a name="l00139"></a><span class="lineno"><a class="code" href="namespaceclang.html#ae689bf8e3dcc54751a81974a4a12c3d2a92763cc9fa42510d19b6689d36e836cb">  139</a></span> <span class="comment"></span>    <a class="code" href="namespaceclang.html#ae689bf8e3dcc54751a81974a4a12c3d2a92763cc9fa42510d19b6689d36e836cb">TSK_Undeclared</a> = 0,<span class="comment"></span></div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span> <span class="comment">    /// This template specialization was implicitly instantiated from a</span></div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span> <span class="comment">    /// template. (C++ [temp.inst]).</span></div>
+<div class="line"><a name="l00142"></a><span class="lineno"><a class="code" href="namespaceclang.html#ae689bf8e3dcc54751a81974a4a12c3d2a62976768097ae1ada5133dca824b7cd8">  142</a></span> <span class="comment"></span>    <a class="code" href="namespaceclang.html#ae689bf8e3dcc54751a81974a4a12c3d2a62976768097ae1ada5133dca824b7cd8">TSK_ImplicitInstantiation</a>,<span class="comment"></span></div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span> <span class="comment">    /// This template specialization was declared or defined by an</span></div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span> <span class="comment">    /// explicit specialization (C++ [temp.expl.spec]) or partial</span></div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span> <span class="comment">    /// specialization (C++ [temp.class.spec]).</span></div>
+<div class="line"><a name="l00146"></a><span class="lineno"><a class="code" href="namespaceclang.html#ae689bf8e3dcc54751a81974a4a12c3d2a5d6a29f74264666bba70d1d1cebd3ea5">  146</a></span> <span class="comment"></span>    <a class="code" href="namespaceclang.html#ae689bf8e3dcc54751a81974a4a12c3d2a5d6a29f74264666bba70d1d1cebd3ea5">TSK_ExplicitSpecialization</a>,<span class="comment"></span></div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span> <span class="comment">    /// This template specialization was instantiated from a template</span></div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span> <span class="comment">    /// due to an explicit instantiation declaration request</span></div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span> <span class="comment">    /// (C++11 [temp.explicit]).</span></div>
+<div class="line"><a name="l00150"></a><span class="lineno"><a class="code" href="namespaceclang.html#ae689bf8e3dcc54751a81974a4a12c3d2a59e44ac54dee956568aa545e9f9bee6f">  150</a></span> <span class="comment"></span>    <a class="code" href="namespaceclang.html#ae689bf8e3dcc54751a81974a4a12c3d2a59e44ac54dee956568aa545e9f9bee6f">TSK_ExplicitInstantiationDeclaration</a>,<span class="comment"></span></div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span> <span class="comment">    /// This template specialization was instantiated from a template</span></div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span> <span class="comment">    /// due to an explicit instantiation definition request</span></div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span> <span class="comment">    /// (C++ [temp.explicit]).</span></div>
+<div class="line"><a name="l00154"></a><span class="lineno"><a class="code" href="namespaceclang.html#ae689bf8e3dcc54751a81974a4a12c3d2a4e1ba3c64fa82dff03cc7e5c6371e098">  154</a></span> <span class="comment"></span>    <a class="code" href="namespaceclang.html#ae689bf8e3dcc54751a81974a4a12c3d2a4e1ba3c64fa82dff03cc7e5c6371e098">TSK_ExplicitInstantiationDefinition</a></div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>   };</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span> <span class="comment"></span></div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span> <span class="comment">  /// \brief Determine whether this template specialization kind refers</span></div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span> <span class="comment">  /// to an instantiation of an entity (as opposed to a non-template or</span></div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span> <span class="comment">  /// an explicit specialization).</span></div>
+<div class="line"><a name="l00160"></a><span class="lineno"><a class="code" href="namespaceclang.html#a0b8388fd083767ec7fc87ac872cb7be3">  160</a></span> <span class="comment"></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceclang.html#a0b8388fd083767ec7fc87ac872cb7be3" title="Determine whether this template specialization kind refers to an instantiation of an entity (as oppos...">isTemplateInstantiation</a>(<a class="code" href="namespaceclang.html#ae689bf8e3dcc54751a81974a4a12c3d2" title="Describes the kind of template specialization that a particular template specialization declaration r...">TemplateSpecializationKind</a> <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a>) {</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>     <span class="keywordflow">return</span> Kind != <a class="code" href="namespaceclang.html#ae689bf8e3dcc54751a81974a4a12c3d2a92763cc9fa42510d19b6689d36e836cb">TSK_Undeclared</a> && Kind != <a class="code" href="namespaceclang.html#ae689bf8e3dcc54751a81974a4a12c3d2a5d6a29f74264666bba70d1d1cebd3ea5">TSK_ExplicitSpecialization</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">  /// \brief Thread storage-class-specifier.</span></div>
+<div class="line"><a name="l00165"></a><span class="lineno"><a class="code" href="namespaceclang.html#a583fcd7bd4c641e26e303d7db6efa11e">  165</a></span> <span class="comment"></span>  <span class="keyword">enum</span> <a class="code" href="namespaceclang.html#a583fcd7bd4c641e26e303d7db6efa11e" title="Thread storage-class-specifier.">ThreadStorageClassSpecifier</a> {</div>
+<div class="line"><a name="l00166"></a><span class="lineno"><a class="code" href="namespaceclang.html#a583fcd7bd4c641e26e303d7db6efa11ea3b0fbbe7fa53bea291ac093fd1ac7421">  166</a></span>     <a class="code" href="namespaceclang.html#a583fcd7bd4c641e26e303d7db6efa11ea3b0fbbe7fa53bea291ac093fd1ac7421">TSCS_unspecified</a>,<span class="comment"></span></div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span> <span class="comment">    /// GNU __thread.</span></div>
+<div class="line"><a name="l00168"></a><span class="lineno"><a class="code" href="namespaceclang.html#a583fcd7bd4c641e26e303d7db6efa11eac60e3e981ed0ee92e48e419c9677f3ee">  168</a></span> <span class="comment"></span>    <a class="code" href="namespaceclang.html#a583fcd7bd4c641e26e303d7db6efa11eac60e3e981ed0ee92e48e419c9677f3ee" title="GNU __thread.">TSCS___thread</a>,<span class="comment"></span></div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span> <span class="comment">    /// C++11 thread_local. Implies 'static' at block scope, but not at</span></div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span> <span class="comment">    /// class scope.</span></div>
+<div class="line"><a name="l00171"></a><span class="lineno"><a class="code" href="namespaceclang.html#a583fcd7bd4c641e26e303d7db6efa11ea01a861a1b88585e59a0ff3a24e9fc720">  171</a></span> <span class="comment"></span>    <a class="code" href="namespaceclang.html#a583fcd7bd4c641e26e303d7db6efa11ea01a861a1b88585e59a0ff3a24e9fc720">TSCS_thread_local</a>,<span class="comment"></span></div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span> <span class="comment">    /// C11 _Thread_local. Must be combined with either 'static' or 'extern'</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span> <span class="comment">    /// if used at block scope.</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno"><a class="code" href="namespaceclang.html#a583fcd7bd4c641e26e303d7db6efa11ea3de264d55db94893e59dbe716c16757d">  174</a></span> <span class="comment"></span>    <a class="code" href="namespaceclang.html#a583fcd7bd4c641e26e303d7db6efa11ea3de264d55db94893e59dbe716c16757d">TSCS__Thread_local</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="comment"></span></div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span> <span class="comment">  /// \brief Storage classes.</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno"><a class="code" href="namespaceclang.html#a56dabc7d0ce7d72b9a35f6f5c3f89370">  178</a></span> <span class="comment"></span>  <span class="keyword">enum</span> <a class="code" href="namespaceclang.html#a56dabc7d0ce7d72b9a35f6f5c3f89370" title="Storage classes.">StorageClass</a> {</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>     <span class="comment">// These are legal on both functions and variables.</span></div>
+<div class="line"><a name="l00180"></a><span class="lineno"><a class="code" href="namespaceclang.html#a56dabc7d0ce7d72b9a35f6f5c3f89370aebf74ba707605e744f1303f997b2477f">  180</a></span>     <a class="code" href="namespaceclang.html#a56dabc7d0ce7d72b9a35f6f5c3f89370aebf74ba707605e744f1303f997b2477f">SC_None</a>,</div>
+<div class="line"><a name="l00181"></a><span class="lineno"><a class="code" href="namespaceclang.html#a56dabc7d0ce7d72b9a35f6f5c3f89370a5d305f71b6e8fb20f648c2aca83753ac">  181</a></span>     <a class="code" href="namespaceclang.html#a56dabc7d0ce7d72b9a35f6f5c3f89370a5d305f71b6e8fb20f648c2aca83753ac">SC_Extern</a>,</div>
+<div class="line"><a name="l00182"></a><span class="lineno"><a class="code" href="namespaceclang.html#a56dabc7d0ce7d72b9a35f6f5c3f89370a8ab15f6f81097ed5c20dd71e5ef4aa00">  182</a></span>     <a class="code" href="namespaceclang.html#a56dabc7d0ce7d72b9a35f6f5c3f89370a8ab15f6f81097ed5c20dd71e5ef4aa00">SC_Static</a>,</div>
+<div class="line"><a name="l00183"></a><span class="lineno"><a class="code" href="namespaceclang.html#a56dabc7d0ce7d72b9a35f6f5c3f89370a1aafacfb14bda4c148d956664759dd0a">  183</a></span>     <a class="code" href="namespaceclang.html#a56dabc7d0ce7d72b9a35f6f5c3f89370a1aafacfb14bda4c148d956664759dd0a">SC_PrivateExtern</a>,</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span> </div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>     <span class="comment">// These are only legal on variables.</span></div>
+<div class="line"><a name="l00186"></a><span class="lineno"><a class="code" href="namespaceclang.html#a56dabc7d0ce7d72b9a35f6f5c3f89370a8d2c0b702a022d8c7f45ef2fc413b8e4">  186</a></span>     <a class="code" href="namespaceclang.html#a56dabc7d0ce7d72b9a35f6f5c3f89370a8d2c0b702a022d8c7f45ef2fc413b8e4">SC_OpenCLWorkGroupLocal</a>,</div>
+<div class="line"><a name="l00187"></a><span class="lineno"><a class="code" href="namespaceclang.html#a56dabc7d0ce7d72b9a35f6f5c3f89370a05562b421144cec9c0bb9feafc45e9ec">  187</a></span>     <a class="code" href="namespaceclang.html#a56dabc7d0ce7d72b9a35f6f5c3f89370a05562b421144cec9c0bb9feafc45e9ec">SC_Auto</a>,</div>
+<div class="line"><a name="l00188"></a><span class="lineno"><a class="code" href="namespaceclang.html#a56dabc7d0ce7d72b9a35f6f5c3f89370a76a85026905d09aaa68c9cba6953c82b">  188</a></span>     <a class="code" href="namespaceclang.html#a56dabc7d0ce7d72b9a35f6f5c3f89370a76a85026905d09aaa68c9cba6953c82b">SC_Register</a></div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>   };</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span> <span class="comment"></span></div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span> <span class="comment">  /// \brief Checks whether the given storage class is legal for functions.</span></div>
+<div class="line"><a name="l00192"></a><span class="lineno"><a class="code" href="namespaceclang.html#a86d72e2815c3ad930773c13cc317c4c9">  192</a></span> <span class="comment"></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceclang.html#a86d72e2815c3ad930773c13cc317c4c9" title="Checks whether the given storage class is legal for functions.">isLegalForFunction</a>(<a class="code" href="namespaceclang.html#a56dabc7d0ce7d72b9a35f6f5c3f89370" title="Storage classes.">StorageClass</a> SC) {</div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span>     <span class="keywordflow">return</span> SC <= <a class="code" href="namespaceclang.html#a56dabc7d0ce7d72b9a35f6f5c3f89370a1aafacfb14bda4c148d956664759dd0a">SC_PrivateExtern</a>;</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>   }</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span> <span class="comment"></span></div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span> <span class="comment">  /// \brief Checks whether the given storage class is legal for variables.</span></div>
+<div class="line"><a name="l00197"></a><span class="lineno"><a class="code" href="namespaceclang.html#ac32a1ef971efe7229217976a481d8a96">  197</a></span> <span class="comment"></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceclang.html#ac32a1ef971efe7229217976a481d8a96" title="Checks whether the given storage class is legal for variables.">isLegalForVariable</a>(<a class="code" href="namespaceclang.html#a56dabc7d0ce7d72b9a35f6f5c3f89370" title="Storage classes.">StorageClass</a> SC) {</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>     <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>   }</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span> <span class="comment"></span></div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span> <span class="comment">  /// \brief In-class initialization styles for non-static data members.</span></div>
+<div class="line"><a name="l00202"></a><span class="lineno"><a class="code" href="namespaceclang.html#a38631de947cb87dc51f30d539410a786">  202</a></span> <span class="comment"></span>  <span class="keyword">enum</span> <a class="code" href="namespaceclang.html#a38631de947cb87dc51f30d539410a786" title="In-class initialization styles for non-static data members.">InClassInitStyle</a> {</div>
+<div class="line"><a name="l00203"></a><span class="lineno"><a class="code" href="namespaceclang.html#a38631de947cb87dc51f30d539410a786aa7e7fcec7cfb08e0975e5fc01e88fb44">  203</a></span>     <a class="code" href="namespaceclang.html#a38631de947cb87dc51f30d539410a786aa7e7fcec7cfb08e0975e5fc01e88fb44" title="No in-class initializer.">ICIS_NoInit</a>,   <span class="comment">///< No in-class initializer.</span></div>
+<div class="line"><a name="l00204"></a><span class="lineno"><a class="code" href="namespaceclang.html#a38631de947cb87dc51f30d539410a786a2995da32d07c91cbbba3aa09fb36832e">  204</a></span> <span class="comment"></span>    <a class="code" href="namespaceclang.html#a38631de947cb87dc51f30d539410a786a2995da32d07c91cbbba3aa09fb36832e" title="Copy initialization.">ICIS_CopyInit</a>, <span class="comment">///< Copy initialization.</span></div>
+<div class="line"><a name="l00205"></a><span class="lineno"><a class="code" href="namespaceclang.html#a38631de947cb87dc51f30d539410a786a64a252886e8ac363f01c806a2313a77e">  205</a></span> <span class="comment"></span>    <a class="code" href="namespaceclang.html#a38631de947cb87dc51f30d539410a786a64a252886e8ac363f01c806a2313a77e" title="Direct list-initialization.">ICIS_ListInit</a>  <span class="comment">///< Direct list-initialization.</span></div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span> <span class="comment"></span>  };</div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span> <span class="comment"></span></div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span> <span class="comment">  /// \brief CallingConv - Specifies the calling convention that a function uses.</span></div>
+<div class="line"><a name="l00209"></a><span class="lineno"><a class="code" href="namespaceclang.html#ae6d16e133294b0b9c8c8d3108aadd25b">  209</a></span> <span class="comment"></span>  <span class="keyword">enum</span> <a class="code" href="namespaceclang.html#ae6d16e133294b0b9c8c8d3108aadd25b" title="CallingConv - Specifies the calling convention that a function uses.">CallingConv</a> {</div>
+<div class="line"><a name="l00210"></a><span class="lineno"><a class="code" href="namespaceclang.html#ae6d16e133294b0b9c8c8d3108aadd25ba7a504297547dacad7f909bc7da059378">  210</a></span>     <a class="code" href="namespaceclang.html#ae6d16e133294b0b9c8c8d3108aadd25ba7a504297547dacad7f909bc7da059378">CC_C</a>,           <span class="comment">// __attribute__((cdecl))</span></div>
+<div class="line"><a name="l00211"></a><span class="lineno"><a class="code" href="namespaceclang.html#ae6d16e133294b0b9c8c8d3108aadd25bab08f1a124e4aaef328ca1459f8b0d710">  211</a></span>     <a class="code" href="namespaceclang.html#ae6d16e133294b0b9c8c8d3108aadd25bab08f1a124e4aaef328ca1459f8b0d710">CC_X86StdCall</a>,  <span class="comment">// __attribute__((stdcall))</span></div>
+<div class="line"><a name="l00212"></a><span class="lineno"><a class="code" href="namespaceclang.html#ae6d16e133294b0b9c8c8d3108aadd25baeee847654c699507e58f40edaef0256a">  212</a></span>     <a class="code" href="namespaceclang.html#ae6d16e133294b0b9c8c8d3108aadd25baeee847654c699507e58f40edaef0256a">CC_X86FastCall</a>, <span class="comment">// __attribute__((fastcall))</span></div>
+<div class="line"><a name="l00213"></a><span class="lineno"><a class="code" href="namespaceclang.html#ae6d16e133294b0b9c8c8d3108aadd25ba49ff8852eacaf74d36536e700613881f">  213</a></span>     <a class="code" href="namespaceclang.html#ae6d16e133294b0b9c8c8d3108aadd25ba49ff8852eacaf74d36536e700613881f">CC_X86ThisCall</a>, <span class="comment">// __attribute__((thiscall))</span></div>
+<div class="line"><a name="l00214"></a><span class="lineno"><a class="code" href="namespaceclang.html#ae6d16e133294b0b9c8c8d3108aadd25ba085f5ddc5db3eaf20e859b71ffa8fb0f">  214</a></span>     <a class="code" href="namespaceclang.html#ae6d16e133294b0b9c8c8d3108aadd25ba085f5ddc5db3eaf20e859b71ffa8fb0f">CC_X86Pascal</a>,   <span class="comment">// __attribute__((pascal))</span></div>
+<div class="line"><a name="l00215"></a><span class="lineno"><a class="code" href="namespaceclang.html#ae6d16e133294b0b9c8c8d3108aadd25ba78cc2d40f70d6a2eda9c848d6c28040f">  215</a></span>     <a class="code" href="namespaceclang.html#ae6d16e133294b0b9c8c8d3108aadd25ba78cc2d40f70d6a2eda9c848d6c28040f">CC_X86_64Win64</a>, <span class="comment">// __attribute__((ms_abi))</span></div>
+<div class="line"><a name="l00216"></a><span class="lineno"><a class="code" href="namespaceclang.html#ae6d16e133294b0b9c8c8d3108aadd25bac0b883ae27291a0b85df3e629d1c14a4">  216</a></span>     <a class="code" href="namespaceclang.html#ae6d16e133294b0b9c8c8d3108aadd25bac0b883ae27291a0b85df3e629d1c14a4">CC_X86_64SysV</a>,  <span class="comment">// __attribute__((sysv_abi))</span></div>
+<div class="line"><a name="l00217"></a><span class="lineno"><a class="code" href="namespaceclang.html#ae6d16e133294b0b9c8c8d3108aadd25ba71c99c14409da8ef2e72ec69e4ed12fe">  217</a></span>     <a class="code" href="namespaceclang.html#ae6d16e133294b0b9c8c8d3108aadd25ba71c99c14409da8ef2e72ec69e4ed12fe">CC_AAPCS</a>,       <span class="comment">// __attribute__((pcs("aapcs")))</span></div>
+<div class="line"><a name="l00218"></a><span class="lineno"><a class="code" href="namespaceclang.html#ae6d16e133294b0b9c8c8d3108aadd25baf0614fbebb3b0d48dc9575b4f5e1caa2">  218</a></span>     <a class="code" href="namespaceclang.html#ae6d16e133294b0b9c8c8d3108aadd25baf0614fbebb3b0d48dc9575b4f5e1caa2">CC_AAPCS_VFP</a>,   <span class="comment">// __attribute__((pcs("aapcs-vfp")))</span></div>
+<div class="line"><a name="l00219"></a><span class="lineno"><a class="code" href="namespaceclang.html#ae6d16e133294b0b9c8c8d3108aadd25bac43407a2649bfcaa4b22e9a9a26196b0">  219</a></span>     <a class="code" href="namespaceclang.html#ae6d16e133294b0b9c8c8d3108aadd25bac43407a2649bfcaa4b22e9a9a26196b0">CC_PnaclCall</a>,   <span class="comment">// __attribute__((pnaclcall))</span></div>
+<div class="line"><a name="l00220"></a><span class="lineno"><a class="code" href="namespaceclang.html#ae6d16e133294b0b9c8c8d3108aadd25ba308ad5c13f13cc72ac772a63583eab64">  220</a></span>     <a class="code" href="namespaceclang.html#ae6d16e133294b0b9c8c8d3108aadd25ba308ad5c13f13cc72ac772a63583eab64">CC_IntelOclBicc</a> <span class="comment">// __attribute__((intel_ocl_bicc))</span></div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span>   };</div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span> <span class="comment"></span></div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span> <span class="comment">  /// \brief Checks whether the given calling convention is callee-cleanup.</span></div>
+<div class="line"><a name="l00224"></a><span class="lineno"><a class="code" href="namespaceclang.html#a11253d4392ff55d6d978de1e064a4c29">  224</a></span> <span class="comment"></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceclang.html#a11253d4392ff55d6d978de1e064a4c29" title="Checks whether the given calling convention is callee-cleanup.">isCalleeCleanup</a>(<a class="code" href="namespaceclang.html#ae6d16e133294b0b9c8c8d3108aadd25b" title="CallingConv - Specifies the calling convention that a function uses.">CallingConv</a> CC) {</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>     <span class="keywordflow">switch</span> (CC) {</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#ae6d16e133294b0b9c8c8d3108aadd25bab08f1a124e4aaef328ca1459f8b0d710">CC_X86StdCall</a>:</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#ae6d16e133294b0b9c8c8d3108aadd25baeee847654c699507e58f40edaef0256a">CC_X86FastCall</a>:</div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#ae6d16e133294b0b9c8c8d3108aadd25ba49ff8852eacaf74d36536e700613881f">CC_X86ThisCall</a>:</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#ae6d16e133294b0b9c8c8d3108aadd25ba085f5ddc5db3eaf20e859b71ffa8fb0f">CC_X86Pascal</a>:</div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span>       <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span>     <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span>       <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span>     }</div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>   }</div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span> <span class="comment"></span></div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span> <span class="comment">  /// \brief The storage duration for an object (per C++ [basic.stc]).</span></div>
+<div class="line"><a name="l00237"></a><span class="lineno"><a class="code" href="namespaceclang.html#a73616c07a633e772603049315dc55554">  237</a></span> <span class="comment"></span>  <span class="keyword">enum</span> <a class="code" href="namespaceclang.html#a73616c07a633e772603049315dc55554" title="The storage duration for an object (per C++ [basic.stc]).">StorageDuration</a> {</div>
+<div class="line"><a name="l00238"></a><span class="lineno"><a class="code" href="namespaceclang.html#a73616c07a633e772603049315dc55554a9de5208d645503542b04e9c3f8392420">  238</a></span>     <a class="code" href="namespaceclang.html#a73616c07a633e772603049315dc55554a9de5208d645503542b04e9c3f8392420" title="Full-expression storage duration (for temporaries).">SD_FullExpression</a>, <span class="comment">///< Full-expression storage duration (for temporaries).</span></div>
+<div class="line"><a name="l00239"></a><span class="lineno"><a class="code" href="namespaceclang.html#a73616c07a633e772603049315dc55554acf9a137faaa271043c56f0008325ecbf">  239</a></span> <span class="comment"></span>    <a class="code" href="namespaceclang.html#a73616c07a633e772603049315dc55554acf9a137faaa271043c56f0008325ecbf" title="Automatic storage duration (most local variables).">SD_Automatic</a>,      <span class="comment">///< Automatic storage duration (most local variables).</span></div>
+<div class="line"><a name="l00240"></a><span class="lineno"><a class="code" href="namespaceclang.html#a73616c07a633e772603049315dc55554a2ecb65725835b618ecc18f8dfb75b4c3">  240</a></span> <span class="comment"></span>    <a class="code" href="namespaceclang.html#a73616c07a633e772603049315dc55554a2ecb65725835b618ecc18f8dfb75b4c3" title="Thread storage duration.">SD_Thread</a>,         <span class="comment">///< Thread storage duration.</span></div>
+<div class="line"><a name="l00241"></a><span class="lineno"><a class="code" href="namespaceclang.html#a73616c07a633e772603049315dc55554a7495dcf7f33e44049d18217454dba7c0">  241</a></span> <span class="comment"></span>    <a class="code" href="namespaceclang.html#a73616c07a633e772603049315dc55554a7495dcf7f33e44049d18217454dba7c0" title="Static storage duration.">SD_Static</a>,         <span class="comment">///< Static storage duration.</span></div>
+<div class="line"><a name="l00242"></a><span class="lineno"><a class="code" href="namespaceclang.html#a73616c07a633e772603049315dc55554af68b8cebf6abb3c5b3467aed22ae9d13">  242</a></span> <span class="comment"></span>    <a class="code" href="namespaceclang.html#a73616c07a633e772603049315dc55554af68b8cebf6abb3c5b3467aed22ae9d13" title="Dynamic storage duration.">SD_Dynamic</a>         <span class="comment">///< Dynamic storage duration.</span></div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span> <span class="comment"></span>  };</div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span> } <span class="comment">// end namespace clang</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> <span class="preprocessor">#endif // LLVM_CLANG_BASIC_SPECIFIERS_H</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:14:10 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/StackAddrEscapeChecker_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/StackAddrEscapeChecker_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/StackAddrEscapeChecker_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/StackAddrEscapeChecker_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,323 @@
+<!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: StackAddrEscapeChecker.cpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_87e2a7550f83bd8cbfc92736891468fc.html">lib</a></li><li class="navelem"><a class="el" href="dir_fd0691f76a19cc33074025cb3a574e66.html">StaticAnalyzer</a></li><li class="navelem"><a class="el" href="dir_5fa4c591fb04e7ea3227105bf6cc3359.html">Checkers</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">StackAddrEscapeChecker.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="StackAddrEscapeChecker_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">//=== StackAddrEscapeChecker.cpp ----------------------------------*- 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 stack address leak checker, which checks if an invalid </span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="comment">// stack address is stored into a global or heap location. See CERT DCL30-C.</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="ClangSACheckers_8h.html">ClangSACheckers.h</a>"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="preprocessor">#include "<a class="code" href="ExprCXX_8h.html" title="Defines the clang::Expr interface and subclasses for C++ expressions.">clang/AST/ExprCXX.h</a>"</span></div>
+<div class="line"><a name="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="BugType_8h.html">clang/StaticAnalyzer/Core/BugReporter/BugType.h</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="preprocessor">#include "<a class="code" href="Checker_8h.html">clang/StaticAnalyzer/Core/Checker.h</a>"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="preprocessor">#include "<a class="code" href="CheckerManager_8h.html">clang/StaticAnalyzer/Core/CheckerManager.h</a>"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="preprocessor">#include "<a class="code" href="CheckerContext_8h.html">clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h</a>"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="preprocessor">#include "<a class="code" href="ProgramState_8h.html">clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h</a>"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="preprocessor">#include "llvm/ADT/SmallString.h"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="preprocessor">#include "llvm/Support/raw_ostream.h"</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="keyword">using namespace </span>clang;</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="keyword">using namespace </span>ento;</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>{</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="keyword">class </span>StackAddrEscapeChecker : <span class="keyword">public</span> <a class="code" href="classclang_1_1ento_1_1Checker.html">Checker</a>< check::PreStmt<ReturnStmt>,</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>                                                check::EndFunction > {</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>   <span class="keyword">mutable</span> <a class="code" href="classllvm_1_1OwningPtr.html">OwningPtr<BuiltinBug></a> BT_stackleak;</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>   <span class="keyword">mutable</span> <a class="code" href="classllvm_1_1OwningPtr.html">OwningPtr<BuiltinBug></a> BT_returnstack;</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span> </div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>   <span class="keywordtype">void</span> checkPreStmt(<span class="keyword">const</span> <a class="code" href="classclang_1_1ReturnStmt.html">ReturnStmt</a> *RS, <a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>   <span class="keywordtype">void</span> checkEndFunction(<a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &Ctx) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>   <span class="keywordtype">void</span> EmitStackError(<a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C, <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html" title="MemRegion - The root abstract class for all memory regions.">MemRegion</a> *R,</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>                       <span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *RetE) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>   <span class="keyword">static</span> <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> genName(raw_ostream &os, <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html" title="MemRegion - The root abstract class for all memory regions.">MemRegion</a> *R,</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>                              <a class="code" href="classclang_1_1ASTContext.html" title="Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...">ASTContext</a> &Ctx);</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span> };</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span> }</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span> </div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span> <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> StackAddrEscapeChecker::genName(raw_ostream &os, <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html" title="MemRegion - The root abstract class for all memory regions.">MemRegion</a> *R,</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>                                             <a class="code" href="classclang_1_1ASTContext.html" title="Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...">ASTContext</a> &Ctx) {</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>     <span class="comment">// Get the base region, stripping away fields and elements.</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>   R = R-><a class="code" href="classclang_1_1ento_1_1MemRegion.html#ae6a57e60007e672aa0444308797d3f57">getBaseRegion</a>();</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</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> = Ctx.<a class="code" href="classclang_1_1ASTContext.html#a091e2575135f7f9f1aeb25ba0090bfde">getSourceManager</a>();</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</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="l00051"></a><span class="lineno">   51</span>   os << <span class="stringliteral">"Address of "</span>;</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>   </div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>   <span class="comment">// Check if the region is a compound literal.</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1CompoundLiteralRegion.html">CompoundLiteralRegion</a>* CR = dyn_cast<CompoundLiteralRegion>(R)) { </div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1CompoundLiteralExpr.html">CompoundLiteralExpr</a> *CL = CR->getLiteralExpr();</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>     os << <span class="stringliteral">"stack memory associated with a compound literal "</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>           <span class="stringliteral">"declared on line "</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>         << SM.<a class="code" href="classclang_1_1SourceManager.html#af71b79d2d27b647e3cb1bb922babd587">getExpansionLineNumber</a>(CL-><a class="code" href="classclang_1_1CompoundLiteralExpr.html#ae63e3dfa7da92153d486353618696b03">getLocStart</a>())</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>         << <span class="stringliteral">" returned to caller"</span>;    </div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>     range = CL-><a class="code" href="classclang_1_1Stmt.html#a6844392ee6148b5fe821f211b95e5d1b">getSourceRange</a>();</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>   }</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>   <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1AllocaRegion.html">AllocaRegion</a>* AR = dyn_cast<AllocaRegion>(R)) {</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *ARE = AR->getExpr();</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>     <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> L = ARE-><a class="code" href="classclang_1_1Stmt.html#a0270d9cff7ed2b38acb39690b96586d2">getLocStart</a>();</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>     range = ARE-><a class="code" href="classclang_1_1Stmt.html#a6844392ee6148b5fe821f211b95e5d1b">getSourceRange</a>();    </div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>     os << <span class="stringliteral">"stack memory allocated by call to alloca() on line "</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>        << SM.<a class="code" href="classclang_1_1SourceManager.html#af71b79d2d27b647e3cb1bb922babd587">getExpansionLineNumber</a>(L);</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>   }</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>   <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1BlockDataRegion.html">BlockDataRegion</a> *BR = dyn_cast<BlockDataRegion>(R)) {</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1BlockDecl.html">BlockDecl</a> *BD = BR->getCodeRegion()->getDecl();</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>     <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> L = BD-><a class="code" href="classclang_1_1Decl.html#ae66a13d419e9cad2f6c3643bfce45c54">getLocStart</a>();</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>     range = BD-><a class="code" href="classclang_1_1BlockDecl.html#a0ca8560355e559540f9603d99a5fa2f5" title="Source range that this declaration covers.">getSourceRange</a>();</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>     os << <span class="stringliteral">"stack-allocated block declared on line "</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>        << SM.<a class="code" href="classclang_1_1SourceManager.html#af71b79d2d27b647e3cb1bb922babd587">getExpansionLineNumber</a>(L);</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">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1VarRegion.html">VarRegion</a> *VR = dyn_cast<VarRegion>(R)) {</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>     os << <span class="stringliteral">"stack memory associated with local variable '"</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>        << VR->getString() << <span class="charliteral">'\''</span>;</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>     range = VR->getDecl()->getSourceRange();</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="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1CXXTempObjectRegion.html">CXXTempObjectRegion</a> *TOR = dyn_cast<CXXTempObjectRegion>(R)) {</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>     <a class="code" href="classclang_1_1QualType.html">QualType</a> Ty = TOR->getValueType().getLocalUnqualifiedType();</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>     os << <span class="stringliteral">"stack memory associated with temporary object of type '"</span>;</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>     Ty.<a class="code" href="classclang_1_1QualType.html#a9b8a1fcc3a196c76d7d3ffe8d69d6d07">print</a>(os, Ctx.<a class="code" href="classclang_1_1ASTContext.html#aefd70c3135737fd07be3cb2cac251e16">getPrintingPolicy</a>());</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>     os << <span class="stringliteral">"'"</span>;</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>     range = TOR->getExpr()->getSourceRange();</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="keywordflow">else</span> {</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>     llvm_unreachable(<span class="stringliteral">"Invalid region in ReturnStackAddressChecker."</span>);</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>   } </div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>   </div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>   <span class="keywordflow">return</span> range;</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span> }</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span> </div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span> <span class="keywordtype">void</span> StackAddrEscapeChecker::EmitStackError(<a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C, <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html" title="MemRegion - The root abstract class for all memory regions.">MemRegion</a> *R,</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>                                           <span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *RetE)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>   <a class="code" href="classclang_1_1ento_1_1ExplodedNode.html">ExplodedNode</a> *N = C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#adeea33a5a2bed190210c4a2bb807a6f0" title="Generate a sink node. Generating a sink stops exploration of the given path.">generateSink</a>();</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>   <span class="keywordflow">if</span> (!N)</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>     <span class="keywordflow">return</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="keywordflow">if</span> (!BT_returnstack)</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>    BT_returnstack.reset(</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>                  <span class="keyword">new</span> <a class="code" href="classclang_1_1ento_1_1BuiltinBug.html">BuiltinBug</a>(<span class="stringliteral">"Return of address to stack-allocated memory"</span>));</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span> </div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>   <span class="comment">// Generate a report for this bug.</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>   <a class="code" href="classllvm_1_1SmallString.html">SmallString<512></a> buf;</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>   llvm::raw_svector_ostream os(buf);</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>   <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> range = genName(os, R, C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#ae6c98ff68628991ee1d07ad7d848b41f">getASTContext</a>());</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>   os << <span class="stringliteral">" returned to caller"</span>;</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>   <a class="code" href="classclang_1_1ento_1_1BugReport.html">BugReport</a> *report = <span class="keyword">new</span> <a class="code" href="classclang_1_1ento_1_1BugReport.html">BugReport</a>(*BT_returnstack, os.str(), N);</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>   report-><a class="code" href="classclang_1_1ento_1_1BugReport.html#a31f1757d10fc4f936ea143a894e51f39" title="Add a range to a bug report.">addRange</a>(RetE-><a class="code" href="classclang_1_1Stmt.html#a6844392ee6148b5fe821f211b95e5d1b">getSourceRange</a>());</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>   <span class="keywordflow">if</span> (range.<a class="code" href="classclang_1_1SourceRange.html#acdaac0809b0eec9ce9ec88e1a9da7fb6">isValid</a>())</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>     report-><a class="code" href="classclang_1_1ento_1_1BugReport.html#a31f1757d10fc4f936ea143a894e51f39" title="Add a range to a bug report.">addRange</a>(range);</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>   C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#ae7738af2cbfd1d713edec33d3203dff5" title="Emit the diagnostics report.">emitReport</a>(report);</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> </div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span> <span class="keywordtype">void</span> StackAddrEscapeChecker::checkPreStmt(<span class="keyword">const</span> <a class="code" href="classclang_1_1ReturnStmt.html">ReturnStmt</a> *RS,</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>                                           <a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C)<span class="keyword"> const </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="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *RetE = RS-><a class="code" href="classclang_1_1ReturnStmt.html#a7de01dadd6eeb10fae138e97d7a8edc7">getRetValue</a>();</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>   <span class="keywordflow">if</span> (!RetE)</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>   RetE = RetE-><a class="code" href="classclang_1_1Expr.html#a6128786ad6c6ad61b66ad4ddf09b1bd8">IgnoreParens</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>   <span class="keyword">const</span> <a class="code" href="classclang_1_1LocationContext.html">LocationContext</a> *LCtx = C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a7581c66c5849fab4a40b321024c9c136">getLocationContext</a>();</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>   <a class="code" href="classclang_1_1ento_1_1SVal.html">SVal</a> V = C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a81bd66f80b18117a9a64a8d0daa62825">getState</a>()->getSVal(RetE, LCtx);</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html" title="MemRegion - The root abstract class for all memory regions.">MemRegion</a> *R = V.<a class="code" href="classclang_1_1ento_1_1SVal.html#a314f514171211c8a941cac378ac55677">getAsRegion</a>();</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span> </div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>   <span class="keywordflow">if</span> (!R)</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>     <span class="keywordflow">return</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="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1StackSpaceRegion.html">StackSpaceRegion</a> *SS =</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>     dyn_cast_or_null<StackSpaceRegion>(R-><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a4d2b2de69f0bb1c7254b4d0447bd275c">getMemorySpace</a>());</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>     </div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>   <span class="keywordflow">if</span> (!SS)</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span> </div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>   <span class="comment">// Return stack memory in an ancestor stack frame is fine.</span></div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1StackFrameContext.html">StackFrameContext</a> *CurFrame = LCtx-><a class="code" href="classclang_1_1LocationContext.html#ad4512d946266fda30b7439564a9f831c">getCurrentStackFrame</a>();</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1StackFrameContext.html">StackFrameContext</a> *MemFrame = SS-><a class="code" href="classclang_1_1ento_1_1StackSpaceRegion.html#a3d380a72e4d0f2277653dfcc1b4e1724">getStackFrame</a>();</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>   <span class="keywordflow">if</span> (MemFrame != CurFrame)</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span> </div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>   <span class="comment">// Automatic reference counting automatically copies blocks.</span></div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>   <span class="keywordflow">if</span> (C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#ae6c98ff68628991ee1d07ad7d848b41f">getASTContext</a>().<a class="code" href="classclang_1_1ASTContext.html#a3faa7b5a5e8d1637c53dea680acca0ff">getLangOpts</a>().ObjCAutoRefCount &&</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>       isa<BlockDataRegion>(R))</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>     <span class="keywordflow">return</span>;</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">// Returning a record by value is fine. (In this case, the returned</span></div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>   <span class="comment">// expression will be a copy-constructor, possibly wrapped in an</span></div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>   <span class="comment">// ExprWithCleanups node.)</span></div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1ExprWithCleanups.html">ExprWithCleanups</a> *Cleanup = dyn_cast<ExprWithCleanups>(RetE))</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>     RetE = Cleanup->getSubExpr();</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>   <span class="keywordflow">if</span> (isa<CXXConstructExpr>(RetE) && RetE-><a class="code" href="classclang_1_1Expr.html#a3dd8850a4ad8a5b5f595dd9e9446187b">getType</a>()-><a class="code" href="classclang_1_1Type.html#a6525adb10d549a7ee372424dcdb6b9bd">isRecordType</a>())</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>     <span class="keywordflow">return</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>   EmitStackError(C, R, RetE);</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span> }</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span> </div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span> <span class="keywordtype">void</span> StackAddrEscapeChecker::checkEndFunction(<a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &Ctx)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>   <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">ProgramStateRef</a> state = Ctx.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a81bd66f80b18117a9a64a8d0daa62825">getState</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="comment">// Iterate over all bindings to global variables and see if it contains</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>   <span class="comment">// a memory region in the stack space.</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>   <span class="keyword">class </span>CallBack : <span class="keyword">public</span> <a class="code" href="classclang_1_1ento_1_1StoreManager_1_1BindingsHandler.html">StoreManager::BindingsHandler</a> {</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>   <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>     <a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &Ctx;</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1StackFrameContext.html">StackFrameContext</a> *CurSFC;</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>     <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<std::pair<const MemRegion*, const MemRegion*></a>, 10> V;</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span> </div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>     CallBack(<a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &CC) :</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>       Ctx(CC),</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>       CurSFC(CC.getLocationContext()->getCurrentStackFrame())</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>     {}</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>     </div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>     <span class="keywordtype">bool</span> HandleBinding(<a class="code" href="classclang_1_1ento_1_1StoreManager.html">StoreManager</a> &SMgr, <a class="code" href="namespaceclang_1_1ento.html#ae512ebf5e0e9f696142c92f5b771ef39">Store</a> store,</div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>                        <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html" title="MemRegion - The root abstract class for all memory regions.">MemRegion</a> *region, <a class="code" href="classclang_1_1ento_1_1SVal.html">SVal</a> val) {</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>       </div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>       <span class="keywordflow">if</span> (!isa<GlobalsSpaceRegion>(region-><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a4d2b2de69f0bb1c7254b4d0447bd275c">getMemorySpace</a>()))</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>         <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>       </div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>       <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html" title="MemRegion - The root abstract class for all memory regions.">MemRegion</a> *vR = val.<a class="code" href="classclang_1_1ento_1_1SVal.html#a314f514171211c8a941cac378ac55677">getAsRegion</a>();</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>       <span class="keywordflow">if</span> (!vR)</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>         <span class="keywordflow">return</span> <span class="keyword">true</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="comment">// Under automated retain release, it is okay to assign a block</span></div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>       <span class="comment">// directly to a global variable.</span></div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>       <span class="keywordflow">if</span> (Ctx.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#ae6c98ff68628991ee1d07ad7d848b41f">getASTContext</a>().<a class="code" href="classclang_1_1ASTContext.html#a3faa7b5a5e8d1637c53dea680acca0ff">getLangOpts</a>().ObjCAutoRefCount &&</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>           isa<BlockDataRegion>(vR))</div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span>         <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span> </div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>       <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1StackSpaceRegion.html">StackSpaceRegion</a> *SSR = </div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>           dyn_cast<StackSpaceRegion>(vR-><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a4d2b2de69f0bb1c7254b4d0447bd275c">getMemorySpace</a>())) {</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span>         <span class="comment">// If the global variable holds a location in the current stack frame,</span></div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>         <span class="comment">// record the binding to emit a warning.</span></div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>         <span class="keywordflow">if</span> (SSR->getStackFrame() == CurSFC)</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>           V.push_back(std::make_pair(region, vR));</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>       }</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>       </div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>       <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>     }</div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>   };</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>     </div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span>   CallBack cb(Ctx);</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span>   state->getStateManager().getStoreManager().iterBindings(state->getStore(),cb);</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>   <span class="keywordflow">if</span> (cb.V.empty())</div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span> </div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span>   <span class="comment">// Generate an error node.</span></div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>   <a class="code" href="classclang_1_1ento_1_1ExplodedNode.html">ExplodedNode</a> *N = Ctx.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a264f48d97809707049689c37aa35af78" title="Generates a new transition in the program state graph (ExplodedGraph). Uses the default CheckerContex...">addTransition</a>(state);</div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span>   <span class="keywordflow">if</span> (!N)</div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span> </div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>   <span class="keywordflow">if</span> (!BT_stackleak)</div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>     BT_stackleak.reset(</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>       <span class="keyword">new</span> <a class="code" href="classclang_1_1ento_1_1BuiltinBug.html">BuiltinBug</a>(<span class="stringliteral">"Stack address stored into global variable"</span>,</div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span>                      <span class="stringliteral">"Stack address was saved into a global variable. "</span></div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span>                      <span class="stringliteral">"This is dangerous because the address will become "</span></div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span>                      <span class="stringliteral">"invalid after returning from the function"</span>));</div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>   </div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = cb.V.size(); i != e; ++i) {</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>     <span class="comment">// Generate a report for this bug.</span></div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>     <a class="code" href="classllvm_1_1SmallString.html">SmallString<512></a> buf;</div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span>     llvm::raw_svector_ostream os(buf);</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span>     <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> range = genName(os, cb.V[i].second, Ctx.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#ae6c98ff68628991ee1d07ad7d848b41f">getASTContext</a>());</div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span>     os << <span class="stringliteral">" is still referred to by the global variable '"</span>;</div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1VarRegion.html">VarRegion</a> *VR = cast<VarRegion>(cb.V[i].first->getBaseRegion());</div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span>     os << *VR-><a class="code" href="classclang_1_1ento_1_1VarRegion.html#ab06cf2729ec224250d044facc6c7d47b">getDecl</a>()</div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span>        << <span class="stringliteral">"' upon returning to the caller.  This will be a dangling reference"</span>;</div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>     <a class="code" href="classclang_1_1ento_1_1BugReport.html">BugReport</a> *report = <span class="keyword">new</span> <a class="code" href="classclang_1_1ento_1_1BugReport.html">BugReport</a>(*BT_stackleak, os.str(), N);</div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span>     <span class="keywordflow">if</span> (range.<a class="code" href="classclang_1_1SourceRange.html#acdaac0809b0eec9ce9ec88e1a9da7fb6">isValid</a>())</div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span>       report-><a class="code" href="classclang_1_1ento_1_1BugReport.html#a31f1757d10fc4f936ea143a894e51f39" title="Add a range to a bug report.">addRange</a>(range);</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>     Ctx.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#ae7738af2cbfd1d713edec33d3203dff5" title="Emit the diagnostics report.">emitReport</a>(report);</div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span>   }</div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span> }</div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span> </div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span> <span class="keywordtype">void</span> ento::registerStackAddrEscapeChecker(<a class="code" href="classclang_1_1ento_1_1CheckerManager.html">CheckerManager</a> &mgr) {</div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span>   mgr.<a class="code" href="classclang_1_1ento_1_1CheckerManager.html#ab3845ff8b66a7617efdadb219829414a" title="Used to register checkers.">registerChecker</a><StackAddrEscapeChecker>();</div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span> }</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:14:10 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/StackAddrEscapeChecker_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/StackAddrEscapeChecker_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/StackAddrEscapeChecker_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/StackAddrEscapeChecker_8d_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,579 @@
+<!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: StackAddrEscapeChecker.d Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_87e2a7550f83bd8cbfc92736891468fc.html">lib</a></li><li class="navelem"><a class="el" href="dir_fd0691f76a19cc33074025cb3a574e66.html">StaticAnalyzer</a></li><li class="navelem"><a class="el" href="dir_5fa4c591fb04e7ea3227105bf6cc3359.html">Checkers</a></li><li class="navelem"><a class="el" href="dir_6f95b71040c11c69a7222376e6764bfb.html">Release+Asserts</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">StackAddrEscapeChecker.d</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="StackAddrEscapeChecker_8d.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/Release+Asserts/StackAddrEscapeChecker.o \</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/Release+Asserts/StackAddrEscapeChecker.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>  StackAddrEscapeChecker.cpp ClangSACheckers.h \</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/BugReporter/CommonBugCategories.h \
+ Checkers.inc \</div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ExprCXX.h \</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/Decl.h \</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/APValue.h \</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/LLVM.h \</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>  /home/tstellar/llvm/include/llvm/Support/Casting.h \</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>  /home/tstellar/llvm/include/llvm/Support/type_traits.h \</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>  /home/tstellar/llvm/include/llvm/Support/DataTypes.h \</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>  /home/tstellar/llvm/include/llvm/ADT/None.h \</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>  /home/tstellar/llvm/include/llvm/ADT/APFloat.h \</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>  /home/tstellar/llvm/include/llvm/ADT/APInt.h \</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>  /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h \</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>  /home/tstellar/llvm/include/llvm/ADT/SmallVector.h \</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>  /home/tstellar/llvm/include/llvm/Support/AlignOf.h \</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>  /home/tstellar/llvm/include/llvm/Support/Compiler.h \</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>  /home/tstellar/llvm/include/llvm/Config/llvm-config.h \</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>  /home/tstellar/llvm/include/llvm/Support/MathExtras.h \</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>  /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h \</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>  /home/tstellar/llvm/include/llvm/ADT/APSInt.h \</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>  /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h \</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>  /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h \</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>  /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h \</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/DeclBase.h \</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/AttrIterator.h \</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/DeclarationName.h \</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/IdentifierTable.h \</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/OperatorKinds.h \</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/OperatorKinds.def \</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/TokenKinds.h \</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/TokenKinds.def \</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>  /home/tstellar/llvm/include/llvm/ADT/SmallString.h \</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>  /home/tstellar/llvm/include/llvm/ADT/StringRef.h \</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>  /home/tstellar/llvm/include/llvm/ADT/StringMap.h \</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>  /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h \</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/PartialDiagnostic.h \</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/Diagnostic.h \</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/DiagnosticIDs.h \</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>  /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h \</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/DiagnosticCommonKinds.inc \</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/DiagnosticOptions.h \</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/DiagnosticOptions.def \</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/SourceLocation.h \</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMap.h \</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h \</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>  /home/tstellar/llvm/include/llvm/ADT/STLExtras.h \</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/<a class="code" href="namespaceclang.html#a78aadfeaf316ded55fdd2d1a9c8815b6" title="Describes the different kinds of linkage (C++ [basic.link], C99 6.2.2) that an entity may have...">Linkage</a>.h \</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/Specifiers.h \</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>  /home/tstellar/llvm/include/llvm/Support/PrettyStackTrace.h \</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/DeclNodes.inc \</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ExternalASTSource.h \</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/CharUnits.h \</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/Redeclarable.h \</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/Type.h \</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/NestedNameSpecifier.h \</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>  /home/tstellar/llvm/include/llvm/ADT/FoldingSet.h \</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/TemplateName.h \</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/<a class="code" href="namespaceclang.html#af8a91eed04532d5da41ef08e7c9c081e" title="The various types of exception specifications that exist in C++11.">ExceptionSpecificationType</a>.h \</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/<a class="code" href="namespaceclang.html#afbab15cd4aa598c4e6d9192f7ac4f102" title="Describes the different kinds of visibility that a declaration may have.">Visibility</a>.h \</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>  /home/tstellar/llvm/include/llvm/ADT/Optional.h \</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>  /home/tstellar/llvm/include/llvm/ADT/Twine.h \</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>  /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h \</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/TypeNodes.def \</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/BuiltinTypes.def \</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>  /home/tstellar/llvm/include/llvm/Support/raw_ostream.h \</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>  /home/tstellar/llvm/include/llvm/Support/FileSystem.h \</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>  /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h \</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>  /home/tstellar/llvm/include/llvm/Support/TimeValue.h \</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>  /home/tstellar/llvm/include/llvm/Support/system_error.h \</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/Expr.h \</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ASTVector.h \</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/DeclAccessPair.h \</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/OperationKinds.h \</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/Stmt.h \</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/DeclGroup.h \</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/StmtIterator.h \</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/CapturedStmt.h \</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/StmtNodes.inc \</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/TemplateBase.h \</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/CharInfo.h \</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/TypeTraits.h \</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/Builtins.def \</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/UnresolvedSet.h \</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/ExpressionTraits.h \</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/Lambda.h \</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/SourceManager.h \</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/FileManager.h \</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/FileSystemOptions.h \</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>  /home/tstellar/llvm/include/llvm/ADT/DenseSet.h \</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>  /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h \</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>  /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h \</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>  /home/tstellar/llvm/include/llvm-c/Core.h \</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/BugReporter/BugType.h \</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/Checker.h \</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Analysis/ProgramPoint.h \</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Analysis/AnalysisContext.h \</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Analysis/CFG.h \</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Analysis/Support/BumpVector.h \</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>  /home/tstellar/llvm/include/llvm/ADT/GraphTraits.h \</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/CheckerManager.h \</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/LangOptions.h \</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/CommentOptions.h \</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/ObjCRuntime.h \</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/VersionTuple.h \</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>  /home/tstellar/llvm/include/llvm/ADT/Triple.h \</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/Sanitizers.def \</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/LangOptions.def \</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/OpenCLExtensions.def \</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/<a class="code" href="namespaceclang_1_1ento.html#ae512ebf5e0e9f696142c92f5b771ef39">Store</a>.h \</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h \</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ASTContext.h \</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ASTTypeTraits.h \</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ASTFwd.h \</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/TypeLoc.h \</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/TypeLocNodes.def \</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/CanonicalType.h \</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/CommentCommandTraits.h \</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/CommentCommandList.inc \</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/PrettyPrinter.h \</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/RawCommentList.h \</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/AddressSpaces.h \</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>  /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.h \</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>  /home/tstellar/llvm/include/llvm/ADT/TinyPtrVector.h \</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ExprObjC.h \</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/DeclObjC.h \</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/<a class="code" href="namespaceclang.html#a0bca8d4a06a5e7175d2177c94788c9b4" title="Whether all locations of the selector identifiers are in a "standard" position.">SelectorLocationsKind</a>.h \</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h \</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState_Fwd.h \</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h \</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/StoreRef.h \</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>  /home/tstellar/llvm/include/llvm/ADT/ImmutableList.h \</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h \</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h \</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/APSIntType.h \</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/AnalyzerOptions.h \</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/<a class="code" href="namespaceclang.html#ae9c75815d0d02c4fb4c86c9f86a8c9b9" title="Analysis - Set of available source code analyses.">Analyses</a>.def \</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h \</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h \</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Analysis/DomainSpecific/ObjCNoReturn.h \</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h \</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitor.h \</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h \</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h \</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ConstraintManager.h \</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>  /home/tstellar/llvm/include/llvm/Support/SaveAndRestore.h \</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/<a class="code" href="ProgramState_8cpp.html#a561991ec13c8d67b74fb26984174e5a5">DynamicTypeInfo</a>.h \</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/Environment.h \</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>  /home/tstellar/llvm/include/llvm/ADT/ImmutableMap.h \</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>  /home/tstellar/llvm/include/llvm/ADT/ImmutableSet.h \</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/TaintTag.h \</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>  /home/tstellar/llvm/include/llvm/ADT/SmallSet.h \</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>  /home/tstellar/llvm/include/llvm/ADT/ilist.h \</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>  /home/tstellar/llvm/include/llvm/ADT/ilist_node.h \</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h \</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/<a class="code" href="namespaceclang_1_1ento.html#a6fdc30c38dd63e730328d865d956562e">PathDiagnosticConsumers</a>.h \</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h \</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/BlockCounter.h \</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h \</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>  /home/tstellar/llvm/include/llvm/ADT/DepthFirstIterator.h \</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/FunctionSummary.h \</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>  /home/tstellar/llvm/include/llvm/ADT/SmallBitVector.h \</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>  /home/tstellar/llvm/include/llvm/ADT/BitVector.h \</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/WorkList.h \</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ProgramStateTrait.h \</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/SubEngine.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> ClangSACheckers.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/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/BugReporter/CommonBugCategories.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> Checkers.inc:</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/StaticAnalyzer/Checkers/../../../include/clang/AST/ExprCXX.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/StaticAnalyzer/Checkers/../../../include/clang/AST/Decl.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/StaticAnalyzer/Checkers/../../../include/clang/AST/APValue.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/StaticAnalyzer/Checkers/../../../include/clang/Basic/LLVM.h:</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span> </div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span> /home/tstellar/llvm/include/llvm/Support/Casting.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/Support/type_traits.h:</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span> </div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span> /home/tstellar/llvm/include/llvm/Support/DataTypes.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/include/llvm/ADT/None.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/APFloat.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/APInt.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/ArrayRef.h:</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span> </div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span> /home/tstellar/llvm/include/llvm/ADT/SmallVector.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/Support/AlignOf.h:</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span> </div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span> /home/tstellar/llvm/include/llvm/Support/Compiler.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/Config/llvm-config.h:</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span> </div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span> /home/tstellar/llvm/include/llvm/Support/MathExtras.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/SwapByteOrder.h:</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span> </div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span> /home/tstellar/llvm/include/llvm/ADT/APSInt.h:</div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span> </div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span> /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.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/include/llvm/Support/PointerLikeTypeTraits.h:</div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span> </div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span> /home/tstellar/llvm/include/llvm/ADT/PointerUnion.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/StaticAnalyzer/Checkers/../../../include/clang/AST/DeclBase.h:</div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span> </div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/AttrIterator.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/StaticAnalyzer/Checkers/../../../include/clang/AST/DeclarationName.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/StaticAnalyzer/Checkers/../../../include/clang/Basic/IdentifierTable.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/StaticAnalyzer/Checkers/../../../include/clang/Basic/OperatorKinds.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/StaticAnalyzer/Checkers/../../../include/clang/Basic/OperatorKinds.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/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/TokenKinds.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/StaticAnalyzer/Checkers/../../../include/clang/Basic/TokenKinds.def:</div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span> </div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span> /home/tstellar/llvm/include/llvm/ADT/SmallString.h:</div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span> </div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span> /home/tstellar/llvm/include/llvm/ADT/StringRef.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/include/llvm/ADT/StringMap.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/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.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/StaticAnalyzer/Checkers/../../../include/clang/Basic/PartialDiagnostic.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/StaticAnalyzer/Checkers/../../../include/clang/Basic/Diagnostic.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/StaticAnalyzer/Checkers/../../../include/clang/Basic/DiagnosticIDs.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/include/llvm/ADT/IntrusiveRefCntPtr.h:</div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span> </div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/DiagnosticCommonKinds.inc:</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/StaticAnalyzer/Checkers/../../../include/clang/Basic/DiagnosticOptions.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/StaticAnalyzer/Checkers/../../../include/clang/Basic/DiagnosticOptions.def:</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/StaticAnalyzer/Checkers/../../../include/clang/Basic/SourceLocation.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/include/llvm/ADT/DenseMap.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/include/llvm/ADT/DenseMapInfo.h:</div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span> </div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span> /home/tstellar/llvm/include/llvm/ADT/STLExtras.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/StaticAnalyzer/Checkers/../../../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="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/StaticAnalyzer/Checkers/../../../include/clang/Basic/Specifiers.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/Support/PrettyStackTrace.h:</div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span> </div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/DeclNodes.inc:</div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span> </div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ExternalASTSource.h:</div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span> </div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/CharUnits.h:</div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span> </div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/Redeclarable.h:</div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span> </div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/Type.h:</div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span> </div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/NestedNameSpecifier.h:</div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span> </div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span> /home/tstellar/llvm/include/llvm/ADT/FoldingSet.h:</div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span> </div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/TemplateName.h:</div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span> </div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/<a class="code" href="namespaceclang.html#af8a91eed04532d5da41ef08e7c9c081e" title="The various types of exception specifications that exist in C++11.">ExceptionSpecificationType</a>.h:</div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span> </div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../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="l00288"></a><span class="lineno">  288</span> </div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span> /home/tstellar/llvm/include/llvm/ADT/Optional.h:</div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span> </div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span> /home/tstellar/llvm/include/llvm/ADT/Twine.h:</div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span> </div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span> /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h:</div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span> </div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/TypeNodes.def:</div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span> </div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/BuiltinTypes.def:</div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span> </div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span> /home/tstellar/llvm/include/llvm/Support/raw_ostream.h:</div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span> </div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span> /home/tstellar/llvm/include/llvm/Support/FileSystem.h:</div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span> </div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span> /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h:</div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span> </div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span> /home/tstellar/llvm/include/llvm/Support/TimeValue.h:</div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span> </div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span> /home/tstellar/llvm/include/llvm/Support/system_error.h:</div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span> </div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/Expr.h:</div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span> </div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ASTVector.h:</div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span> </div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/DeclAccessPair.h:</div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span> </div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/OperationKinds.h:</div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span> </div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/Stmt.h:</div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span> </div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/DeclGroup.h:</div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span> </div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/StmtIterator.h:</div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span> </div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/CapturedStmt.h:</div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span> </div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/StmtNodes.inc:</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> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/TemplateBase.h:</div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span> </div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/CharInfo.h:</div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span> </div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/TypeTraits.h:</div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span> </div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/Builtins.def:</div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span> </div>
+<div class="line"><a name="l00335"></a><span class="lineno">  335</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/UnresolvedSet.h:</div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span> </div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/ExpressionTraits.h:</div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span> </div>
+<div class="line"><a name="l00339"></a><span class="lineno">  339</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/Lambda.h:</div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span> </div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/SourceManager.h:</div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span> </div>
+<div class="line"><a name="l00343"></a><span class="lineno">  343</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/FileManager.h:</div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span> </div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/FileSystemOptions.h:</div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span> </div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span> /home/tstellar/llvm/include/llvm/ADT/DenseSet.h:</div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span> </div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span> /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h:</div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span> </div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span> /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h:</div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span> </div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span> /home/tstellar/llvm/include/llvm-c/Core.h:</div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span> </div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/BugReporter/BugType.h:</div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span> </div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/Checker.h:</div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span> </div>
+<div class="line"><a name="l00359"></a><span class="lineno">  359</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Analysis/ProgramPoint.h:</div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span> </div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Analysis/AnalysisContext.h:</div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span> </div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Analysis/CFG.h:</div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span> </div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Analysis/Support/BumpVector.h:</div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span> </div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span> /home/tstellar/llvm/include/llvm/ADT/GraphTraits.h:</div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span> </div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/CheckerManager.h:</div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span> </div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/LangOptions.h:</div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span> </div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/CommentOptions.h:</div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span> </div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/ObjCRuntime.h:</div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span> </div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/VersionTuple.h:</div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span> </div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span> /home/tstellar/llvm/include/llvm/ADT/Triple.h:</div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span> </div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/Sanitizers.def:</div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span> </div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/LangOptions.def:</div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span> </div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/OpenCLExtensions.def:</div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span> </div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/<a class="code" href="namespaceclang_1_1ento.html#ae512ebf5e0e9f696142c92f5b771ef39">Store</a>.h:</div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span> </div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h:</div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span> </div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ASTContext.h:</div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span> </div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ASTTypeTraits.h:</div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span> </div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ASTFwd.h:</div>
+<div class="line"><a name="l00396"></a><span class="lineno">  396</span> </div>
+<div class="line"><a name="l00397"></a><span class="lineno">  397</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/TypeLoc.h:</div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span> </div>
+<div class="line"><a name="l00399"></a><span class="lineno">  399</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/TypeLocNodes.def:</div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span> </div>
+<div class="line"><a name="l00401"></a><span class="lineno">  401</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/CanonicalType.h:</div>
+<div class="line"><a name="l00402"></a><span class="lineno">  402</span> </div>
+<div class="line"><a name="l00403"></a><span class="lineno">  403</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/CommentCommandTraits.h:</div>
+<div class="line"><a name="l00404"></a><span class="lineno">  404</span> </div>
+<div class="line"><a name="l00405"></a><span class="lineno">  405</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/CommentCommandList.inc:</div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span> </div>
+<div class="line"><a name="l00407"></a><span class="lineno">  407</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/PrettyPrinter.h:</div>
+<div class="line"><a name="l00408"></a><span class="lineno">  408</span> </div>
+<div class="line"><a name="l00409"></a><span class="lineno">  409</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/RawCommentList.h:</div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span> </div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/AddressSpaces.h:</div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span> </div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</span> /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.h:</div>
+<div class="line"><a name="l00414"></a><span class="lineno">  414</span> </div>
+<div class="line"><a name="l00415"></a><span class="lineno">  415</span> /home/tstellar/llvm/include/llvm/ADT/TinyPtrVector.h:</div>
+<div class="line"><a name="l00416"></a><span class="lineno">  416</span> </div>
+<div class="line"><a name="l00417"></a><span class="lineno">  417</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ExprObjC.h:</div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span> </div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/DeclObjC.h:</div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span> </div>
+<div class="line"><a name="l00421"></a><span class="lineno">  421</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/<a class="code" href="namespaceclang.html#a0bca8d4a06a5e7175d2177c94788c9b4" title="Whether all locations of the selector identifiers are in a "standard" position.">SelectorLocationsKind</a>.h:</div>
+<div class="line"><a name="l00422"></a><span class="lineno">  422</span> </div>
+<div class="line"><a name="l00423"></a><span class="lineno">  423</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h:</div>
+<div class="line"><a name="l00424"></a><span class="lineno">  424</span> </div>
+<div class="line"><a name="l00425"></a><span class="lineno">  425</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState_Fwd.h:</div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span> </div>
+<div class="line"><a name="l00427"></a><span class="lineno">  427</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h:</div>
+<div class="line"><a name="l00428"></a><span class="lineno">  428</span> </div>
+<div class="line"><a name="l00429"></a><span class="lineno">  429</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/StoreRef.h:</div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span> </div>
+<div class="line"><a name="l00431"></a><span class="lineno">  431</span> /home/tstellar/llvm/include/llvm/ADT/ImmutableList.h:</div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span> </div>
+<div class="line"><a name="l00433"></a><span class="lineno">  433</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h:</div>
+<div class="line"><a name="l00434"></a><span class="lineno">  434</span> </div>
+<div class="line"><a name="l00435"></a><span class="lineno">  435</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:</div>
+<div class="line"><a name="l00436"></a><span class="lineno">  436</span> </div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/APSIntType.h:</div>
+<div class="line"><a name="l00438"></a><span class="lineno">  438</span> </div>
+<div class="line"><a name="l00439"></a><span class="lineno">  439</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/AnalyzerOptions.h:</div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span> </div>
+<div class="line"><a name="l00441"></a><span class="lineno">  441</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/<a class="code" href="namespaceclang.html#ae9c75815d0d02c4fb4c86c9f86a8c9b9" title="Analysis - Set of available source code analyses.">Analyses</a>.def:</div>
+<div class="line"><a name="l00442"></a><span class="lineno">  442</span> </div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h:</div>
+<div class="line"><a name="l00444"></a><span class="lineno">  444</span> </div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h:</div>
+<div class="line"><a name="l00446"></a><span class="lineno">  446</span> </div>
+<div class="line"><a name="l00447"></a><span class="lineno">  447</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Analysis/DomainSpecific/ObjCNoReturn.h:</div>
+<div class="line"><a name="l00448"></a><span class="lineno">  448</span> </div>
+<div class="line"><a name="l00449"></a><span class="lineno">  449</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h:</div>
+<div class="line"><a name="l00450"></a><span class="lineno">  450</span> </div>
+<div class="line"><a name="l00451"></a><span class="lineno">  451</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitor.h:</div>
+<div class="line"><a name="l00452"></a><span class="lineno">  452</span> </div>
+<div class="line"><a name="l00453"></a><span class="lineno">  453</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h:</div>
+<div class="line"><a name="l00454"></a><span class="lineno">  454</span> </div>
+<div class="line"><a name="l00455"></a><span class="lineno">  455</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h:</div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span> </div>
+<div class="line"><a name="l00457"></a><span class="lineno">  457</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ConstraintManager.h:</div>
+<div class="line"><a name="l00458"></a><span class="lineno">  458</span> </div>
+<div class="line"><a name="l00459"></a><span class="lineno">  459</span> /home/tstellar/llvm/include/llvm/Support/SaveAndRestore.h:</div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span> </div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/<a class="code" href="ProgramState_8cpp.html#a561991ec13c8d67b74fb26984174e5a5">DynamicTypeInfo</a>.h:</div>
+<div class="line"><a name="l00462"></a><span class="lineno">  462</span> </div>
+<div class="line"><a name="l00463"></a><span class="lineno">  463</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/Environment.h:</div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</span> </div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span> /home/tstellar/llvm/include/llvm/ADT/ImmutableMap.h:</div>
+<div class="line"><a name="l00466"></a><span class="lineno">  466</span> </div>
+<div class="line"><a name="l00467"></a><span class="lineno">  467</span> /home/tstellar/llvm/include/llvm/ADT/ImmutableSet.h:</div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span> </div>
+<div class="line"><a name="l00469"></a><span class="lineno">  469</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/TaintTag.h:</div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span> </div>
+<div class="line"><a name="l00471"></a><span class="lineno">  471</span> /home/tstellar/llvm/include/llvm/ADT/SmallSet.h:</div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span> </div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span> /home/tstellar/llvm/include/llvm/ADT/ilist.h:</div>
+<div class="line"><a name="l00474"></a><span class="lineno">  474</span> </div>
+<div class="line"><a name="l00475"></a><span class="lineno">  475</span> /home/tstellar/llvm/include/llvm/ADT/ilist_node.h:</div>
+<div class="line"><a name="l00476"></a><span class="lineno">  476</span> </div>
+<div class="line"><a name="l00477"></a><span class="lineno">  477</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h:</div>
+<div class="line"><a name="l00478"></a><span class="lineno">  478</span> </div>
+<div class="line"><a name="l00479"></a><span class="lineno">  479</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/<a class="code" href="namespaceclang_1_1ento.html#a6fdc30c38dd63e730328d865d956562e">PathDiagnosticConsumers</a>.h:</div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span> </div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h:</div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span> </div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/BlockCounter.h:</div>
+<div class="line"><a name="l00484"></a><span class="lineno">  484</span> </div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h:</div>
+<div class="line"><a name="l00486"></a><span class="lineno">  486</span> </div>
+<div class="line"><a name="l00487"></a><span class="lineno">  487</span> /home/tstellar/llvm/include/llvm/ADT/DepthFirstIterator.h:</div>
+<div class="line"><a name="l00488"></a><span class="lineno">  488</span> </div>
+<div class="line"><a name="l00489"></a><span class="lineno">  489</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/FunctionSummary.h:</div>
+<div class="line"><a name="l00490"></a><span class="lineno">  490</span> </div>
+<div class="line"><a name="l00491"></a><span class="lineno">  491</span> /home/tstellar/llvm/include/llvm/ADT/SmallBitVector.h:</div>
+<div class="line"><a name="l00492"></a><span class="lineno">  492</span> </div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span> /home/tstellar/llvm/include/llvm/ADT/BitVector.h:</div>
+<div class="line"><a name="l00494"></a><span class="lineno">  494</span> </div>
+<div class="line"><a name="l00495"></a><span class="lineno">  495</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/WorkList.h:</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> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ProgramStateTrait.h:</div>
+<div class="line"><a name="l00498"></a><span class="lineno">  498</span> </div>
+<div class="line"><a name="l00499"></a><span class="lineno">  499</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/SubEngine.h:</div>
+<div class="line"><a name="l00500"></a><span class="lineno">  500</span> </div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:14:10 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/StaticAnalyzer_2Frontend_2FrontendActions_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/StaticAnalyzer_2Frontend_2FrontendActions_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/StaticAnalyzer_2Frontend_2FrontendActions_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/StaticAnalyzer_2Frontend_2FrontendActions_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,102 @@
+<!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: FrontendActions.cpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_87e2a7550f83bd8cbfc92736891468fc.html">lib</a></li><li class="navelem"><a class="el" href="dir_fd0691f76a19cc33074025cb3a574e66.html">StaticAnalyzer</a></li><li class="navelem"><a class="el" href="dir_77a799e181883bd6942b25b9d5baa440.html">Frontend</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">StaticAnalyzer/Frontend/FrontendActions.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="StaticAnalyzer_2Frontend_2FrontendActions_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">//===--- FrontendActions.cpp ----------------------------------------------===//</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">//                     The LLVM Compiler Infrastructure</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment">// This file is distributed under the University of Illinois Open Source</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">// License. See LICENSE.TXT for details.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span> </div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span> <span class="preprocessor">#include "<a class="code" href="StaticAnalyzer_2Frontend_2FrontendActions_8h.html">clang/StaticAnalyzer/Frontend/FrontendActions.h</a>"</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="preprocessor">#include "<a class="code" href="AnalysisConsumer_8h.html">AnalysisConsumer.h</a>"</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="preprocessor">#include "<a class="code" href="CompilerInstance_8h.html">clang/Frontend/CompilerInstance.h</a>"</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> <span class="keyword">using namespace </span>clang;</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> <span class="keyword">using namespace </span>ento;</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> </div>
+<div class="line"><a name="l00016"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1AnalysisAction.html#a78f44d016bdfd86e47fbd4e82f1f9cbc">   16</a></span> <a class="code" href="classclang_1_1ASTConsumer.html">ASTConsumer</a> *<a class="code" href="classclang_1_1ento_1_1AnalysisAction.html#a78f44d016bdfd86e47fbd4e82f1f9cbc" title="Create the AST consumer object for this action, if supported.">AnalysisAction::CreateASTConsumer</a>(<a class="code" href="classclang_1_1CompilerInstance.html">CompilerInstance</a> &CI,</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>                                                StringRef InFile) {</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>   <span class="keywordflow">return</span> <a class="code" href="namespaceclang_1_1ento.html#a899ed6e90f9e23a0c136629bcb71ccfa">CreateAnalysisConsumer</a>(CI.<a class="code" href="classclang_1_1CompilerInstance.html#aaf2cc0754c4058a1eb80f973472d694a" title="Return the current preprocessor.">getPreprocessor</a>(),</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>                                 CI.<a class="code" href="classclang_1_1CompilerInstance.html#a422eaf55a6d7121462459a96f23c2ccd">getFrontendOpts</a>().<a class="code" href="classclang_1_1FrontendOptions.html#a7b09d06e2ab796fc22e43f67a6f36b5b" title="The output file, if any.">OutputFile</a>,</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>                                 CI.<a class="code" href="classclang_1_1CompilerInstance.html#ab6658fe8f6f137981576d80163e178d6">getAnalyzerOpts</a>(),</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>                                 CI.<a class="code" href="classclang_1_1CompilerInstance.html#a422eaf55a6d7121462459a96f23c2ccd">getFrontendOpts</a>().<a class="code" href="classclang_1_1FrontendOptions.html#ac94ba317a2282e2b08829e2bfe1b1995" title="The list of plugins to load.">Plugins</a>);</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> }</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> </div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:39 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/StaticAnalyzer_2Frontend_2FrontendActions_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/StaticAnalyzer_2Frontend_2FrontendActions_8h_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/StaticAnalyzer_2Frontend_2FrontendActions_8h_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/StaticAnalyzer_2Frontend_2FrontendActions_8h_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,114 @@
+<!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: FrontendActions.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_70579d56c0ce0f64b5ed66d6a11cf1c7.html">StaticAnalyzer</a></li><li class="navelem"><a class="el" href="dir_23c0091b33cc08e742f3048123515a12.html">Frontend</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">StaticAnalyzer/Frontend/FrontendActions.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="StaticAnalyzer_2Frontend_2FrontendActions_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">//===-- FrontendActions.h - Useful Frontend Actions -------------*- 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_GR_FRONTENDACTIONS_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_GR_FRONTENDACTIONS_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="FrontendAction_8h.html" title="Defines the clang::FrontendAction interface and various convenience abstract classes (clang::ASTFront...">clang/Frontend/FrontendAction.h</a>"</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="keyword">namespace </span>clang {</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> </div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="keyword">namespace </span>ento {</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> </div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="comment">// AST Consumer Actions</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1AnalysisAction.html">   23</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1AnalysisAction.html">AnalysisAction</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1ASTFrontendAction.html" title="Abstract base class to use for AST consumer-based frontend actions.">ASTFrontendAction</a> {</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>   <span class="keyword">virtual</span> <a class="code" href="classclang_1_1ASTConsumer.html">ASTConsumer</a> *<a class="code" href="classclang_1_1ento_1_1AnalysisAction.html#a78f44d016bdfd86e47fbd4e82f1f9cbc" title="Create the AST consumer object for this action, if supported.">CreateASTConsumer</a>(<a class="code" href="classclang_1_1CompilerInstance.html">CompilerInstance</a> &CI,</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>                                          StringRef InFile);</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> };</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="keywordtype">void</span> <a class="code" href="namespaceclang_1_1ento.html#ae15e14a668831f69e539a6a31842c930">printCheckerHelp</a>(raw_ostream &OS, <a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<std::string></a> plugins);</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span> </div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span> } <span class="comment">// end GR namespace</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span> </div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span> } <span class="comment">// end namespace clang</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span> </div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span> <span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:39 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/StaticAnalyzer_2Frontend_2Release_09Asserts_2FrontendActions_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/StaticAnalyzer_2Frontend_2Release_09Asserts_2FrontendActions_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/StaticAnalyzer_2Frontend_2Release_09Asserts_2FrontendActions_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/StaticAnalyzer_2Frontend_2Release_09Asserts_2FrontendActions_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: FrontendActions.d Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_87e2a7550f83bd8cbfc92736891468fc.html">lib</a></li><li class="navelem"><a class="el" href="dir_fd0691f76a19cc33074025cb3a574e66.html">StaticAnalyzer</a></li><li class="navelem"><a class="el" href="dir_77a799e181883bd6942b25b9d5baa440.html">Frontend</a></li><li class="navelem"><a class="el" href="dir_3d271f8f450188760c3128f456788314.html">Release+Asserts</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">StaticAnalyzer/Frontend/Release+Asserts/FrontendActions.d</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="StaticAnalyzer_2Frontend_2Release_09Asserts_2FrontendActions_8d.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/Release+Asserts/FrontendActions.o \</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/Release+Asserts/FrontendActions.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>  FrontendActions.cpp \</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/StaticAnalyzer/Frontend/FrontendActions.h \</div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Frontend/FrontendAction.h \</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../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/StaticAnalyzer/Frontend/../../../include/clang/Basic/LangOptions.h \</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Basic/CommentOptions.h \</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Basic/ObjCRuntime.h \</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Basic/VersionTuple.h \</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>  /home/tstellar/llvm/include/llvm/ADT/Optional.h \</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>  /home/tstellar/llvm/include/llvm/Support/Compiler.h \</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>  /home/tstellar/llvm/include/llvm/Config/llvm-config.h \</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>  /home/tstellar/llvm/include/llvm/Support/AlignOf.h \</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>  /home/tstellar/llvm/include/llvm/ADT/Triple.h \</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>  /home/tstellar/llvm/include/llvm/ADT/Twine.h \</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>  /home/tstellar/llvm/include/llvm/ADT/StringRef.h \</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>  /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h \</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../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="l00024"></a><span class="lineno">   24</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../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="l00025"></a><span class="lineno">   25</span>  /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h \</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Basic/Sanitizers.def \</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Basic/LangOptions.def \</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Basic/OpenCLExtensions.def \</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Frontend/FrontendOptions.h \</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Frontend/CommandLineSourceLoc.h \</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>  /home/tstellar/llvm/include/llvm/Support/<a class="code" href="JSONCompilationDatabase_8cpp.html#aff1eaf11bcfc05c142268512eeb4e134">CommandLine</a>.h \</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>  /home/tstellar/llvm/include/llvm/ADT/SmallVector.h \</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>  /home/tstellar/llvm/include/llvm/Support/MathExtras.h \</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>  /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h \</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>  /home/tstellar/llvm/include/llvm/ADT/StringMap.h \</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>  /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h \</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>  /home/tstellar/llvm/include/llvm/Support/raw_ostream.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/OwningPtr.h \</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>  /home/tstellar/llvm/include/llvm/ADT/SmallString.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/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Sema/<a class="code" href="classCodeCompleteOptions.html" title="Options controlling the behavior of code completion.">CodeCompleteOptions</a>.h \
+ AnalysisConsumer.h \</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/StaticAnalyzer/Core/AnalyzerOptions.h \</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/StaticAnalyzer/Core/<a class="code" href="namespaceclang.html#ae9c75815d0d02c4fb4c86c9f86a8c9b9" title="Analysis - Set of available source code analyses.">Analyses</a>.def \</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Frontend/CompilerInstance.h \</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Basic/Diagnostic.h \</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Basic/DiagnosticIDs.h \</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Basic/DiagnosticCommonKinds.inc \</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Basic/DiagnosticOptions.h \</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Basic/DiagnosticOptions.def \</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Basic/SourceLocation.h \</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>  /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h \</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>  /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h \</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMap.h \</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h \</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Basic/SourceManager.h \</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Basic/FileManager.h \</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Basic/FileSystemOptions.h \</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>  /home/tstellar/llvm/include/llvm/ADT/DenseSet.h \</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>  /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h \</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>  /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h \</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>  /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h \</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>  /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h \</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>  /home/tstellar/llvm/include/llvm-c/Core.h \</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Frontend/CompilerInvocation.h \</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Basic/TargetOptions.h \</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Frontend/CodeGenOptions.h \</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Frontend/CodeGenOptions.def \</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Frontend/DependencyOutputOptions.h \</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Frontend/LangStandard.h \</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Frontend/LangStandards.def \</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Frontend/MigratorOptions.h \</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Frontend/PreprocessorOutputOptions.h \</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/HeaderSearchOptions.h \</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>  /home/tstellar/llvm/include/llvm/ADT/SetVector.h \</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>  /home/tstellar/llvm/include/llvm/ADT/SmallSet.h \</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>  /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.h \</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PreprocessorOptions.h \</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>  /home/tstellar/llvm/include/llvm/ADT/StringSet.h \</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleLoader.h \</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Basic/Module.h</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> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/StaticAnalyzer/Frontend/FrontendActions.h:</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> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Frontend/FrontendAction.h:</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> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Basic/LLVM.h:</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span> </div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span> /home/tstellar/llvm/include/llvm/Support/Casting.h:</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span> </div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span> /home/tstellar/llvm/include/llvm/Support/type_traits.h:</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span> </div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span> /home/tstellar/llvm/include/llvm/Support/DataTypes.h:</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span> </div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span> /home/tstellar/llvm/include/llvm/ADT/None.h:</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span> </div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Basic/LangOptions.h:</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span> </div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Basic/CommentOptions.h:</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span> </div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Basic/ObjCRuntime.h:</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span> </div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Basic/VersionTuple.h:</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span> </div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span> /home/tstellar/llvm/include/llvm/ADT/Optional.h:</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span> </div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span> /home/tstellar/llvm/include/llvm/Support/Compiler.h:</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span> </div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span> /home/tstellar/llvm/include/llvm/Config/llvm-config.h:</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span> </div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span> /home/tstellar/llvm/include/llvm/Support/AlignOf.h:</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span> </div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span> /home/tstellar/llvm/include/llvm/ADT/Triple.h:</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span> </div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span> /home/tstellar/llvm/include/llvm/ADT/Twine.h:</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span> </div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span> /home/tstellar/llvm/include/llvm/ADT/StringRef.h:</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span> </div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span> /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h:</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span> </div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../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="l00123"></a><span class="lineno">  123</span> </div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../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="l00125"></a><span class="lineno">  125</span> </div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span> /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h:</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span> </div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Basic/Sanitizers.def:</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span> </div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Basic/LangOptions.def:</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span> </div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Basic/OpenCLExtensions.def:</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span> </div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Frontend/FrontendOptions.h:</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span> </div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Frontend/CommandLineSourceLoc.h:</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span> </div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span> /home/tstellar/llvm/include/llvm/Support/<a class="code" href="JSONCompilationDatabase_8cpp.html#aff1eaf11bcfc05c142268512eeb4e134">CommandLine</a>.h:</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span> </div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span> /home/tstellar/llvm/include/llvm/ADT/SmallVector.h:</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span> </div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span> /home/tstellar/llvm/include/llvm/Support/MathExtras.h:</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span> </div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span> /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h:</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span> </div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span> /home/tstellar/llvm/include/llvm/ADT/StringMap.h:</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span> </div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span> /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h:</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span> </div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span> /home/tstellar/llvm/include/llvm/Support/raw_ostream.h:</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span> </div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span> /home/tstellar/llvm/include/llvm/Support/FileSystem.h:</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span> </div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span> /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h:</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span> </div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span> /home/tstellar/llvm/include/llvm/ADT/SmallString.h:</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span> </div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span> /home/tstellar/llvm/include/llvm/Support/TimeValue.h:</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span> </div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span> /home/tstellar/llvm/include/llvm/Support/system_error.h:</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span> </div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Sema/<a class="code" href="classCodeCompleteOptions.html" title="Options controlling the behavior of code completion.">CodeCompleteOptions</a>.h:</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span> </div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span> AnalysisConsumer.h:</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span> </div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/StaticAnalyzer/Core/AnalyzerOptions.h:</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span> </div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/StaticAnalyzer/Core/<a class="code" href="namespaceclang.html#ae9c75815d0d02c4fb4c86c9f86a8c9b9" title="Analysis - Set of available source code analyses.">Analyses</a>.def:</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span> </div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Frontend/CompilerInstance.h:</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span> </div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Basic/Diagnostic.h:</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span> </div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Basic/DiagnosticIDs.h:</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span> </div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Basic/DiagnosticCommonKinds.inc:</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span> </div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Basic/DiagnosticOptions.h:</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span> </div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Basic/DiagnosticOptions.def:</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span> </div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Basic/SourceLocation.h:</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span> </div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span> /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h:</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span> </div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span> /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h:</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span> </div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span> /home/tstellar/llvm/include/llvm/ADT/DenseMap.h:</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span> </div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span> /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h:</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span> </div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Basic/SourceManager.h:</div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span> </div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Basic/FileManager.h:</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span> </div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Basic/FileSystemOptions.h:</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span> </div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span> /home/tstellar/llvm/include/llvm/ADT/DenseSet.h:</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span> </div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span> /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h:</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span> </div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span> /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h:</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span> </div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span> /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h:</div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span> </div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span> /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h:</div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span> </div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span> /home/tstellar/llvm/include/llvm-c/Core.h:</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span> </div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Frontend/CompilerInvocation.h:</div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span> </div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Basic/TargetOptions.h:</div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span> </div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Frontend/CodeGenOptions.h:</div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span> </div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Frontend/CodeGenOptions.def:</div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span> </div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Frontend/DependencyOutputOptions.h:</div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span> </div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Frontend/LangStandard.h:</div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span> </div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Frontend/LangStandards.def:</div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span> </div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Frontend/MigratorOptions.h:</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span> </div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Frontend/PreprocessorOutputOptions.h:</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span> </div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/HeaderSearchOptions.h:</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span> </div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span> /home/tstellar/llvm/include/llvm/ADT/SetVector.h:</div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span> </div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span> /home/tstellar/llvm/include/llvm/ADT/SmallSet.h:</div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span> </div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span> /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.h:</div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span> </div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/PreprocessorOptions.h:</div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span> </div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span> /home/tstellar/llvm/include/llvm/ADT/StringSet.h:</div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span> </div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleLoader.h:</div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span> </div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Frontend/../../../include/clang/Basic/Module.h:</div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span> </div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:39 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/StmtCXX_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/StmtCXX_8h_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/StmtCXX_8h_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/StmtCXX_8h_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,371 @@
+<!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: StmtCXX.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_3e61bbac0c8515a3c083eb51d03eb390.html">include</a></li><li class="navelem"><a class="el" href="dir_ee4f288247dc2d9ccd0382aea6916312.html">clang</a></li><li class="navelem"><a class="el" href="dir_6152e82a4845f7e2a2888050f43c34d1.html">AST</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">StmtCXX.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="StmtCXX_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">//===--- StmtCXX.h - Classes for representing C++ statements ----*- 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 C++ statement AST node classes.</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> </div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> <span class="preprocessor">#ifndef LLVM_CLANG_AST_STMTCXX_H</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> <span class="preprocessor"></span><span class="preprocessor">#define LLVM_CLANG_AST_STMTCXX_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="DeclarationName_8h.html">clang/AST/DeclarationName.h</a>"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="preprocessor">#include "<a class="code" href="Expr_8h.html">clang/AST/Expr.h</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="preprocessor">#include "<a class="code" href="NestedNameSpecifier_8h.html">clang/AST/NestedNameSpecifier.h</a>"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="preprocessor">#include "<a class="code" href="Stmt_8h.html">clang/AST/Stmt.h</a>"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="preprocessor">#include "llvm/Support/Compiler.h"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="keyword">namespace </span>clang {</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> </div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="keyword">class </span>VarDecl;</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="comment"></span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="comment">/// CXXCatchStmt - This represents a C++ catch block.</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"><a class="code" href="classclang_1_1CXXCatchStmt.html">   29</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1CXXCatchStmt.html">CXXCatchStmt</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> {</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</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> CatchLoc;<span class="comment"></span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span> <span class="comment">  /// The exception-declaration of the type.</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span> <span class="comment"></span>  <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *ExceptionDecl;<span class="comment"></span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span> <span class="comment">  /// The handler block.</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span> <span class="comment"></span>  <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *HandlerBlock;</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span> </div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00037"></a><span class="lineno"><a class="code" href="classclang_1_1CXXCatchStmt.html#a0dcc02405045f766b704438f42c464c8">   37</a></span>   <a class="code" href="classclang_1_1CXXCatchStmt.html#a0dcc02405045f766b704438f42c464c8">CXXCatchStmt</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> catchLoc, <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *exDecl, <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *handlerBlock)</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>   : <a class="code" href="classclang_1_1Stmt.html">Stmt</a>(CXXCatchStmtClass), CatchLoc(catchLoc), ExceptionDecl(exDecl),</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>     HandlerBlock(handlerBlock) {}</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_1CXXCatchStmt.html#a599c8fb2c3af3de96df2c07a4bdbe53c">   41</a></span>   <a class="code" href="classclang_1_1CXXCatchStmt.html#a0dcc02405045f766b704438f42c464c8">CXXCatchStmt</a>(<a class="code" href="structclang_1_1Stmt_1_1EmptyShell.html" title="A placeholder type used to construct an empty shell of a type, that will be filled in later (e...">EmptyShell</a> Empty)</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>   : <a class="code" href="classclang_1_1Stmt.html">Stmt</a>(CXXCatchStmtClass), ExceptionDecl(0), HandlerBlock(0) {}</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span> </div>
+<div class="line"><a name="l00044"></a><span class="lineno"><a class="code" href="classclang_1_1CXXCatchStmt.html#aef68f2f5bb259cbd19997c0dfaeb0c7c">   44</a></span>   <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> <a class="code" href="classclang_1_1CXXCatchStmt.html#aef68f2f5bb259cbd19997c0dfaeb0c7c">getLocStart</a>() const LLVM_READONLY { <span class="keywordflow">return</span> CatchLoc; }</div>
+<div class="line"><a name="l00045"></a><span class="lineno"><a class="code" href="classclang_1_1CXXCatchStmt.html#a8ddfaa5b0d6ea83ff383150eccd918e9">   45</a></span>   <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> <a class="code" href="classclang_1_1CXXCatchStmt.html#a8ddfaa5b0d6ea83ff383150eccd918e9">getLocEnd</a>() const LLVM_READONLY {</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>     <span class="keywordflow">return</span> HandlerBlock-><a class="code" href="classclang_1_1Stmt.html#acdd36e45abff718e8134873f9b7448ef">getLocEnd</a>();</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>   }</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span> </div>
+<div class="line"><a name="l00049"></a><span class="lineno"><a class="code" href="classclang_1_1CXXCatchStmt.html#a9a94ef26ce4fb500aac7e27d8f498859">   49</a></span>   <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> <a class="code" href="classclang_1_1CXXCatchStmt.html#a9a94ef26ce4fb500aac7e27d8f498859">getCatchLoc</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> CatchLoc; }</div>
+<div class="line"><a name="l00050"></a><span class="lineno"><a class="code" href="classclang_1_1CXXCatchStmt.html#a7eb78e2e8fd238befe06fb565f443d82">   50</a></span>   <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *<a class="code" href="classclang_1_1CXXCatchStmt.html#a7eb78e2e8fd238befe06fb565f443d82">getExceptionDecl</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ExceptionDecl; }</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>   <a class="code" href="classclang_1_1QualType.html">QualType</a> <a class="code" href="classclang_1_1CXXCatchStmt.html#a42eec328f3a31da59c17605300101186">getCaughtType</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00052"></a><span class="lineno"><a class="code" href="classclang_1_1CXXCatchStmt.html#a0083b6599e9a539ccb3b9ea7e9e42452">   52</a></span>   <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *<a class="code" href="classclang_1_1CXXCatchStmt.html#a0083b6599e9a539ccb3b9ea7e9e42452">getHandlerBlock</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> HandlerBlock; }</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span> </div>
+<div class="line"><a name="l00054"></a><span class="lineno"><a class="code" href="classclang_1_1CXXCatchStmt.html#a7149ed37612f5e66037109cf91d705a6">   54</a></span>   <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CXXCatchStmt.html#a7149ed37612f5e66037109cf91d705a6">classof</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *T) {</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>     <span class="keywordflow">return</span> T-><a class="code" href="classclang_1_1Stmt.html#ac881a5954ff27d475c1bbab6f5d80150">getStmtClass</a>() == CXXCatchStmtClass;</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>   }</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span> </div>
+<div class="line"><a name="l00058"></a><span class="lineno"><a class="code" href="classclang_1_1CXXCatchStmt.html#a83dc11d1ec072653d3fd83dc0339184e">   58</a></span>   <a class="code" href="structclang_1_1StmtRange.html">child_range</a> <a class="code" href="classclang_1_1CXXCatchStmt.html#a83dc11d1ec072653d3fd83dc0339184e">children</a>() { <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Stmt.html#a0e31184b9bde2f0d9bed2d81b4252555">child_range</a>(&HandlerBlock, &HandlerBlock+1); }</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span> </div>
+<div class="line"><a name="l00060"></a><span class="lineno"><a class="code" href="classclang_1_1CXXCatchStmt.html#ad6427d648931017bffcb2f90b8930f9d">   60</a></span>   <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classclang_1_1ASTStmtReader.html">ASTStmtReader</a>;</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span> };</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span> <span class="comment"></span></div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span> <span class="comment">/// CXXTryStmt - A C++ try block, including all handlers.</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno"><a class="code" href="classclang_1_1CXXTryStmt.html">   65</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1CXXTryStmt.html">CXXTryStmt</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> {</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</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> TryLoc;</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>   <span class="keywordtype">unsigned</span> NumHandlers;</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span> </div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>   <a class="code" href="classclang_1_1CXXTryStmt.html">CXXTryStmt</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> tryLoc, <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *tryBlock, <a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<Stmt*></a> handlers);</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span> </div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>   <a class="code" href="classclang_1_1CXXTryStmt.html">CXXTryStmt</a>(<a class="code" href="structclang_1_1Stmt_1_1EmptyShell.html" title="A placeholder type used to construct an empty shell of a type, that will be filled in later (e...">EmptyShell</a> Empty, <span class="keywordtype">unsigned</span> numHandlers)</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>     : <a class="code" href="classclang_1_1Stmt.html#a84ec094b6832b4912e576eae8c0dab8e" title="Construct an empty statement.">Stmt</a>(CXXTryStmtClass), NumHandlers(numHandlers) { }</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>   <a class="code" href="classclang_1_1Stmt.html">Stmt</a> <span class="keyword">const</span> * <span class="keyword">const</span> *getStmts()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>     <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast<</span><a class="code" href="classclang_1_1Stmt.html">Stmt</a> <span class="keyword">const </span>* const*<span class="keyword">></span>(<span class="keyword">this</span> + 1);</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>   <a class="code" href="classclang_1_1Stmt.html">Stmt</a> **getStmts() {</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>     <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast<</span><a class="code" href="classclang_1_1Stmt.html">Stmt</a> **<span class="keyword">></span>(<span class="keyword">this</span> + 1);</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>   }</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span> </div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>   <span class="keyword">static</span> <a class="code" href="classclang_1_1CXXTryStmt.html">CXXTryStmt</a> *<a class="code" href="classclang_1_1CXXTryStmt.html#a4395e2405f2e82a40380c5290bad44cd">Create</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ASTContext.html" title="Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...">ASTContext</a> &C, <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> tryLoc,</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>                             <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *tryBlock, <a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<Stmt*></a> handlers);</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>   <span class="keyword">static</span> <a class="code" href="classclang_1_1CXXTryStmt.html">CXXTryStmt</a> *<a class="code" href="classclang_1_1CXXTryStmt.html#a4395e2405f2e82a40380c5290bad44cd">Create</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ASTContext.html" title="Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...">ASTContext</a> &C, <a class="code" href="structclang_1_1Stmt_1_1EmptyShell.html" title="A placeholder type used to construct an empty shell of a type, that will be filled in later (e...">EmptyShell</a> Empty,</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>                             <span class="keywordtype">unsigned</span> numHandlers);</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span> </div>
+<div class="line"><a name="l00088"></a><span class="lineno"><a class="code" href="classclang_1_1CXXTryStmt.html#a88867f7b39de596d960db737404580f7">   88</a></span>   <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> <a class="code" href="classclang_1_1CXXTryStmt.html#a88867f7b39de596d960db737404580f7">getLocStart</a>() const LLVM_READONLY { <span class="keywordflow">return</span> <a class="code" href="classclang_1_1CXXTryStmt.html#a942d11a235d8bbf20a19e88480f7748b">getTryLoc</a>(); }</div>
+<div class="line"><a name="l00089"></a><span class="lineno"><a class="code" href="classclang_1_1CXXTryStmt.html#a505c93ed05655c7fc4c2015ab5440b32">   89</a></span>   <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> <a class="code" href="classclang_1_1CXXTryStmt.html#a505c93ed05655c7fc4c2015ab5440b32">getLocEnd</a>() const LLVM_READONLY { <span class="keywordflow">return</span> <a class="code" href="classclang_1_1CXXTryStmt.html#ac6540037f22671e9fb94e0e1b8ac9bba">getEndLoc</a>(); }</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span> </div>
+<div class="line"><a name="l00091"></a><span class="lineno"><a class="code" href="classclang_1_1CXXTryStmt.html#a942d11a235d8bbf20a19e88480f7748b">   91</a></span>   <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> <a class="code" href="classclang_1_1CXXTryStmt.html#a942d11a235d8bbf20a19e88480f7748b">getTryLoc</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> TryLoc; }</div>
+<div class="line"><a name="l00092"></a><span class="lineno"><a class="code" href="classclang_1_1CXXTryStmt.html#ac6540037f22671e9fb94e0e1b8ac9bba">   92</a></span>   <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> <a class="code" href="classclang_1_1CXXTryStmt.html#ac6540037f22671e9fb94e0e1b8ac9bba">getEndLoc</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>     <span class="keywordflow">return</span> getStmts()[NumHandlers]-><a class="code" href="classclang_1_1Stmt.html#acdd36e45abff718e8134873f9b7448ef">getLocEnd</a>();</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>   }</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span> </div>
+<div class="line"><a name="l00096"></a><span class="lineno"><a class="code" href="classclang_1_1CXXTryStmt.html#a0b14fc308d0e5f78e4f2bd425fc308da">   96</a></span>   <a class="code" href="classclang_1_1CompoundStmt.html">CompoundStmt</a> *<a class="code" href="classclang_1_1CXXTryStmt.html#a0b14fc308d0e5f78e4f2bd425fc308da">getTryBlock</a>() {</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>     <span class="keywordflow">return</span> cast<CompoundStmt>(getStmts()[0]);</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>   }</div>
+<div class="line"><a name="l00099"></a><span class="lineno"><a class="code" href="classclang_1_1CXXTryStmt.html#a3481042c597d32c0e99559175bef00d8">   99</a></span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1CompoundStmt.html">CompoundStmt</a> *<a class="code" href="classclang_1_1CXXTryStmt.html#a3481042c597d32c0e99559175bef00d8">getTryBlock</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>     <span class="keywordflow">return</span> cast<CompoundStmt>(getStmts()[0]);</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>   }</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span> </div>
+<div class="line"><a name="l00103"></a><span class="lineno"><a class="code" href="classclang_1_1CXXTryStmt.html#a35a6bca1856fe488e2cd2ed9d432303d">  103</a></span>   <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1CXXTryStmt.html#a35a6bca1856fe488e2cd2ed9d432303d">getNumHandlers</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> NumHandlers; }</div>
+<div class="line"><a name="l00104"></a><span class="lineno"><a class="code" href="classclang_1_1CXXTryStmt.html#a381a32f527ba09c4be51f49abd3aae8f">  104</a></span>   <a class="code" href="classclang_1_1CXXCatchStmt.html">CXXCatchStmt</a> *<a class="code" href="classclang_1_1CXXTryStmt.html#a381a32f527ba09c4be51f49abd3aae8f">getHandler</a>(<span class="keywordtype">unsigned</span> i) {</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>     <span class="keywordflow">return</span> cast<CXXCatchStmt>(getStmts()[i + 1]);</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>   }</div>
+<div class="line"><a name="l00107"></a><span class="lineno"><a class="code" href="classclang_1_1CXXTryStmt.html#a47719e3b07ec8aa3f05ba9032256dc2f">  107</a></span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1CXXCatchStmt.html">CXXCatchStmt</a> *<a class="code" href="classclang_1_1CXXTryStmt.html#a47719e3b07ec8aa3f05ba9032256dc2f">getHandler</a>(<span class="keywordtype">unsigned</span> i)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>     <span class="keywordflow">return</span> cast<CXXCatchStmt>(getStmts()[i + 1]);</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>   }</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span> </div>
+<div class="line"><a name="l00111"></a><span class="lineno"><a class="code" href="classclang_1_1CXXTryStmt.html#a35572d9355465e9ae4c4837ebb81b6c0">  111</a></span>   <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CXXTryStmt.html#a35572d9355465e9ae4c4837ebb81b6c0">classof</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *T) {</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>     <span class="keywordflow">return</span> T-><a class="code" href="classclang_1_1Stmt.html#ac881a5954ff27d475c1bbab6f5d80150">getStmtClass</a>() == CXXTryStmtClass;</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>   }</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span> </div>
+<div class="line"><a name="l00115"></a><span class="lineno"><a class="code" href="classclang_1_1CXXTryStmt.html#aa126ef4cb8d108be9788a184973d5611">  115</a></span>   <a class="code" href="structclang_1_1StmtRange.html">child_range</a> <a class="code" href="classclang_1_1CXXTryStmt.html#aa126ef4cb8d108be9788a184973d5611">children</a>() {</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Stmt.html#a0e31184b9bde2f0d9bed2d81b4252555">child_range</a>(getStmts(), getStmts() + <a class="code" href="classclang_1_1CXXTryStmt.html#a35a6bca1856fe488e2cd2ed9d432303d">getNumHandlers</a>() + 1);</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> </div>
+<div class="line"><a name="l00119"></a><span class="lineno"><a class="code" href="classclang_1_1CXXTryStmt.html#ad6427d648931017bffcb2f90b8930f9d">  119</a></span>   <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classclang_1_1ASTStmtReader.html">ASTStmtReader</a>;</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span> };</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span> <span class="comment"></span></div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span> <span class="comment">/// CXXForRangeStmt - This represents C++0x [stmt.ranged]'s ranged for</span></div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span> <span class="comment">/// statement, represented as 'for (range-declarator : range-expression)'.</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span> <span class="comment">/// This is stored in a partially-desugared form to allow full semantic</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span> <span class="comment">/// analysis of the constituent components. The original syntactic components</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span> <span class="comment">/// can be extracted using getLoopVariable and getRangeInit.</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno"><a class="code" href="classclang_1_1CXXForRangeStmt.html">  128</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1CXXForRangeStmt.html">CXXForRangeStmt</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> {</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>   <span class="keyword">enum</span> { RANGE, BEGINEND, COND, INC, LOOPVAR, BODY, END };</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>   <span class="comment">// SubExprs[RANGE] is an expression or declstmt.</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>   <span class="comment">// SubExprs[COND] and SubExprs[INC] are expressions.</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>   <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *SubExprs[END];</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</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> ForLoc;</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</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> ColonLoc;</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</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;</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>   <a class="code" href="classclang_1_1CXXForRangeStmt.html#ae269f707e69447ed2ed47cbabf1c2682">CXXForRangeStmt</a>(<a class="code" href="classclang_1_1DeclStmt.html">DeclStmt</a> *Range, <a class="code" href="classclang_1_1DeclStmt.html">DeclStmt</a> *BeginEnd,</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>                   <a class="code" href="classclang_1_1Expr.html">Expr</a> *Cond, <a class="code" href="classclang_1_1Expr.html">Expr</a> *Inc, <a class="code" href="classclang_1_1DeclStmt.html">DeclStmt</a> *LoopVar, <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *Body,</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>                   <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> FL, <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> CL, <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> RPL);</div>
+<div class="line"><a name="l00140"></a><span class="lineno"><a class="code" href="classclang_1_1CXXForRangeStmt.html#ab1f453606e734de4370d8b4502b5b953">  140</a></span>   <a class="code" href="classclang_1_1CXXForRangeStmt.html#ab1f453606e734de4370d8b4502b5b953">CXXForRangeStmt</a>(<a class="code" href="structclang_1_1Stmt_1_1EmptyShell.html" title="A placeholder type used to construct an empty shell of a type, that will be filled in later (e...">EmptyShell</a> Empty) : <a class="code" href="classclang_1_1Stmt.html">Stmt</a>(CXXForRangeStmtClass, Empty) { }</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span> </div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span> </div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>   <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *<a class="code" href="classclang_1_1CXXForRangeStmt.html#a7c1438156559339fbaa8fc0c16facac6">getLoopVariable</a>();</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>   <a class="code" href="classclang_1_1Expr.html">Expr</a> *<a class="code" href="classclang_1_1CXXForRangeStmt.html#a32a18621bada490233ba9c5d1eafa57c">getRangeInit</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>   <span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *<a class="code" href="classclang_1_1CXXForRangeStmt.html#a7c1438156559339fbaa8fc0c16facac6">getLoopVariable</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *<a class="code" href="classclang_1_1CXXForRangeStmt.html#a32a18621bada490233ba9c5d1eafa57c">getRangeInit</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span> </div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span> </div>
+<div class="line"><a name="l00150"></a><span class="lineno"><a class="code" href="classclang_1_1CXXForRangeStmt.html#af6bbdd9e342b0ca0e1662804ccb33138">  150</a></span>   <a class="code" href="classclang_1_1DeclStmt.html">DeclStmt</a> *<a class="code" href="classclang_1_1CXXForRangeStmt.html#af6bbdd9e342b0ca0e1662804ccb33138">getRangeStmt</a>() { <span class="keywordflow">return</span> cast<DeclStmt>(SubExprs[RANGE]); }</div>
+<div class="line"><a name="l00151"></a><span class="lineno"><a class="code" href="classclang_1_1CXXForRangeStmt.html#a3fddb480de579405a437366e543e01f8">  151</a></span>   <a class="code" href="classclang_1_1DeclStmt.html">DeclStmt</a> *<a class="code" href="classclang_1_1CXXForRangeStmt.html#a3fddb480de579405a437366e543e01f8">getBeginEndStmt</a>() {</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>     <span class="keywordflow">return</span> cast_or_null<DeclStmt>(SubExprs[BEGINEND]);</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>   }</div>
+<div class="line"><a name="l00154"></a><span class="lineno"><a class="code" href="classclang_1_1CXXForRangeStmt.html#a06e5bf0adad48dddee1d99a9cd324cf4">  154</a></span>   <a class="code" href="classclang_1_1Expr.html">Expr</a> *<a class="code" href="classclang_1_1CXXForRangeStmt.html#a06e5bf0adad48dddee1d99a9cd324cf4">getCond</a>() { <span class="keywordflow">return</span> cast_or_null<Expr>(SubExprs[COND]); }</div>
+<div class="line"><a name="l00155"></a><span class="lineno"><a class="code" href="classclang_1_1CXXForRangeStmt.html#a61a3df54ce8b0c5cbb72f0bc01f662fc">  155</a></span>   <a class="code" href="classclang_1_1Expr.html">Expr</a> *<a class="code" href="classclang_1_1CXXForRangeStmt.html#a61a3df54ce8b0c5cbb72f0bc01f662fc">getInc</a>() { <span class="keywordflow">return</span> cast_or_null<Expr>(SubExprs[INC]); }</div>
+<div class="line"><a name="l00156"></a><span class="lineno"><a class="code" href="classclang_1_1CXXForRangeStmt.html#aff034c1cb1dd7dc8950d359259806ea6">  156</a></span>   <a class="code" href="classclang_1_1DeclStmt.html">DeclStmt</a> *<a class="code" href="classclang_1_1CXXForRangeStmt.html#aff034c1cb1dd7dc8950d359259806ea6">getLoopVarStmt</a>() { <span class="keywordflow">return</span> cast<DeclStmt>(SubExprs[LOOPVAR]); }</div>
+<div class="line"><a name="l00157"></a><span class="lineno"><a class="code" href="classclang_1_1CXXForRangeStmt.html#ada90abb7b743fcd5bc4a16a67ea6b55e">  157</a></span>   <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *<a class="code" href="classclang_1_1CXXForRangeStmt.html#ada90abb7b743fcd5bc4a16a67ea6b55e">getBody</a>() { <span class="keywordflow">return</span> SubExprs[BODY]; }</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span> </div>
+<div class="line"><a name="l00159"></a><span class="lineno"><a class="code" href="classclang_1_1CXXForRangeStmt.html#ac8f3425240a7002921189f5384e0ab93">  159</a></span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1DeclStmt.html">DeclStmt</a> *<a class="code" href="classclang_1_1CXXForRangeStmt.html#ac8f3425240a7002921189f5384e0ab93">getRangeStmt</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>     <span class="keywordflow">return</span> cast<DeclStmt>(SubExprs[RANGE]);</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>   }</div>
+<div class="line"><a name="l00162"></a><span class="lineno"><a class="code" href="classclang_1_1CXXForRangeStmt.html#a4849e3b77be0e39e2ea18da4a56026ac">  162</a></span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1DeclStmt.html">DeclStmt</a> *<a class="code" href="classclang_1_1CXXForRangeStmt.html#a4849e3b77be0e39e2ea18da4a56026ac">getBeginEndStmt</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>     <span class="keywordflow">return</span> cast_or_null<DeclStmt>(SubExprs[BEGINEND]);</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>   }</div>
+<div class="line"><a name="l00165"></a><span class="lineno"><a class="code" href="classclang_1_1CXXForRangeStmt.html#a04c35522056ef23c62c6d84aa8384a88">  165</a></span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *<a class="code" href="classclang_1_1CXXForRangeStmt.html#a04c35522056ef23c62c6d84aa8384a88">getCond</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>     <span class="keywordflow">return</span> cast_or_null<Expr>(SubExprs[COND]);</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_1CXXForRangeStmt.html#a7324e099ba0cbac17020b566fe831a87">  168</a></span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *<a class="code" href="classclang_1_1CXXForRangeStmt.html#a7324e099ba0cbac17020b566fe831a87">getInc</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>     <span class="keywordflow">return</span> cast_or_null<Expr>(SubExprs[INC]);</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>   }</div>
+<div class="line"><a name="l00171"></a><span class="lineno"><a class="code" href="classclang_1_1CXXForRangeStmt.html#a80d467f756766a4e81cd499fef018e65">  171</a></span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1DeclStmt.html">DeclStmt</a> *<a class="code" href="classclang_1_1CXXForRangeStmt.html#a80d467f756766a4e81cd499fef018e65">getLoopVarStmt</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>     <span class="keywordflow">return</span> cast<DeclStmt>(SubExprs[LOOPVAR]);</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>   }</div>
+<div class="line"><a name="l00174"></a><span class="lineno"><a class="code" href="classclang_1_1CXXForRangeStmt.html#a3b3d06d6216981c50dba26c4d8279be9">  174</a></span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *<a class="code" href="classclang_1_1CXXForRangeStmt.html#a3b3d06d6216981c50dba26c4d8279be9">getBody</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> SubExprs[BODY]; }</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_1CXXForRangeStmt.html#ae3afa67288e146644bde8ca7aff26a1b">  176</a></span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CXXForRangeStmt.html#ae3afa67288e146644bde8ca7aff26a1b">setRangeInit</a>(<a class="code" href="classclang_1_1Expr.html">Expr</a> *E) { SubExprs[RANGE] = <span class="keyword">reinterpret_cast<</span><a class="code" href="classclang_1_1Stmt.html">Stmt</a>*<span class="keyword">></span>(E); }</div>
+<div class="line"><a name="l00177"></a><span class="lineno"><a class="code" href="classclang_1_1CXXForRangeStmt.html#a028bb52952464ec45997c153aa297482">  177</a></span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CXXForRangeStmt.html#a028bb52952464ec45997c153aa297482">setRangeStmt</a>(<a class="code" href="classclang_1_1Stmt.html">Stmt</a> *<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>) { SubExprs[RANGE] = <a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>; }</div>
+<div class="line"><a name="l00178"></a><span class="lineno"><a class="code" href="classclang_1_1CXXForRangeStmt.html#a3718c6a558ecaebfe1267a661bc9767f">  178</a></span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CXXForRangeStmt.html#a3718c6a558ecaebfe1267a661bc9767f">setBeginEndStmt</a>(<a class="code" href="classclang_1_1Stmt.html">Stmt</a> *<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>) { SubExprs[BEGINEND] = <a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>; }</div>
+<div class="line"><a name="l00179"></a><span class="lineno"><a class="code" href="classclang_1_1CXXForRangeStmt.html#ab758dcf09a80a2713e5a39cf2e1b088f">  179</a></span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CXXForRangeStmt.html#ab758dcf09a80a2713e5a39cf2e1b088f">setCond</a>(<a class="code" href="classclang_1_1Expr.html">Expr</a> *E) { SubExprs[COND] = <span class="keyword">reinterpret_cast<</span><a class="code" href="classclang_1_1Stmt.html">Stmt</a>*<span class="keyword">></span>(E); }</div>
+<div class="line"><a name="l00180"></a><span class="lineno"><a class="code" href="classclang_1_1CXXForRangeStmt.html#a45f3145ebfeaa5699b107db6298ade7d">  180</a></span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CXXForRangeStmt.html#a45f3145ebfeaa5699b107db6298ade7d">setInc</a>(<a class="code" href="classclang_1_1Expr.html">Expr</a> *E) { SubExprs[INC] = <span class="keyword">reinterpret_cast<</span><a class="code" href="classclang_1_1Stmt.html">Stmt</a>*<span class="keyword">></span>(E); }</div>
+<div class="line"><a name="l00181"></a><span class="lineno"><a class="code" href="classclang_1_1CXXForRangeStmt.html#a0167094e1755b71b0937fda7cf9004dc">  181</a></span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CXXForRangeStmt.html#a0167094e1755b71b0937fda7cf9004dc">setLoopVarStmt</a>(<a class="code" href="classclang_1_1Stmt.html">Stmt</a> *<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>) { SubExprs[LOOPVAR] = <a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>; }</div>
+<div class="line"><a name="l00182"></a><span class="lineno"><a class="code" href="classclang_1_1CXXForRangeStmt.html#aae994a801e5c48892ffe51bf63979efe">  182</a></span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CXXForRangeStmt.html#aae994a801e5c48892ffe51bf63979efe">setBody</a>(<a class="code" href="classclang_1_1Stmt.html">Stmt</a> *<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>) { SubExprs[BODY] = <a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>; }</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span> </div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span> </div>
+<div class="line"><a name="l00185"></a><span class="lineno"><a class="code" href="classclang_1_1CXXForRangeStmt.html#a5576b648a1953b54e784fd93b8bfbe3e">  185</a></span>   <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> <a class="code" href="classclang_1_1CXXForRangeStmt.html#a5576b648a1953b54e784fd93b8bfbe3e">getForLoc</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ForLoc; }</div>
+<div class="line"><a name="l00186"></a><span class="lineno"><a class="code" href="classclang_1_1CXXForRangeStmt.html#a33204b6fc6b85689b9c64ce404c5807f">  186</a></span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CXXForRangeStmt.html#a33204b6fc6b85689b9c64ce404c5807f">setForLoc</a>(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc) { ForLoc = Loc; }</div>
+<div class="line"><a name="l00187"></a><span class="lineno"><a class="code" href="classclang_1_1CXXForRangeStmt.html#ae98c49562629afad0915d775ea73e3fd">  187</a></span>   <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> <a class="code" href="classclang_1_1CXXForRangeStmt.html#ae98c49562629afad0915d775ea73e3fd">getColonLoc</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ColonLoc; }</div>
+<div class="line"><a name="l00188"></a><span class="lineno"><a class="code" href="classclang_1_1CXXForRangeStmt.html#a991a31ea0e4bd9febe4abf67d4f69fdd">  188</a></span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CXXForRangeStmt.html#a991a31ea0e4bd9febe4abf67d4f69fdd">setColonLoc</a>(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc) { ColonLoc = Loc; }</div>
+<div class="line"><a name="l00189"></a><span class="lineno"><a class="code" href="classclang_1_1CXXForRangeStmt.html#a5dd5c4fb2a21ffb4f79a5aaf1cfa8d7e">  189</a></span>   <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> <a class="code" href="classclang_1_1CXXForRangeStmt.html#a5dd5c4fb2a21ffb4f79a5aaf1cfa8d7e">getRParenLoc</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> RParenLoc; }</div>
+<div class="line"><a name="l00190"></a><span class="lineno"><a class="code" href="classclang_1_1CXXForRangeStmt.html#af8b46330902ae81aa0c4410c20cdc18b">  190</a></span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1CXXForRangeStmt.html#af8b46330902ae81aa0c4410c20cdc18b">setRParenLoc</a>(<a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc) { RParenLoc = Loc; }</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span> </div>
+<div class="line"><a name="l00192"></a><span class="lineno"><a class="code" href="classclang_1_1CXXForRangeStmt.html#ad008f56216de4fbade06731c169432eb">  192</a></span>   <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> <a class="code" href="classclang_1_1CXXForRangeStmt.html#ad008f56216de4fbade06731c169432eb">getLocStart</a>() const LLVM_READONLY { <span class="keywordflow">return</span> ForLoc; }</div>
+<div class="line"><a name="l00193"></a><span class="lineno"><a class="code" href="classclang_1_1CXXForRangeStmt.html#ae31eceb54503e2ec5ed976f2d845806a">  193</a></span>   <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> <a class="code" href="classclang_1_1CXXForRangeStmt.html#ae31eceb54503e2ec5ed976f2d845806a">getLocEnd</a>() const LLVM_READONLY {</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>     <span class="keywordflow">return</span> SubExprs[BODY]-><a class="code" href="classclang_1_1Stmt.html#acdd36e45abff718e8134873f9b7448ef">getLocEnd</a>();</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_1CXXForRangeStmt.html#ac514735c1de00d8839091248d6fc167c">  197</a></span>   <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1CXXForRangeStmt.html#ac514735c1de00d8839091248d6fc167c">classof</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *T) {</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>     <span class="keywordflow">return</span> T-><a class="code" href="classclang_1_1Stmt.html#ac881a5954ff27d475c1bbab6f5d80150">getStmtClass</a>() == CXXForRangeStmtClass;</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>   <span class="comment">// Iterators</span></div>
+<div class="line"><a name="l00202"></a><span class="lineno"><a class="code" href="classclang_1_1CXXForRangeStmt.html#aec3476f9ce94c20510ebb54552b8c4c0">  202</a></span>   <a class="code" href="structclang_1_1StmtRange.html">child_range</a> <a class="code" href="classclang_1_1CXXForRangeStmt.html#aec3476f9ce94c20510ebb54552b8c4c0">children</a>() {</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Stmt.html#a0e31184b9bde2f0d9bed2d81b4252555">child_range</a>(&SubExprs[0], &SubExprs[END]);</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>   }</div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span> };</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span> <span class="comment"></span></div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span> <span class="comment">/// \brief Representation of a Microsoft __if_exists or __if_not_exists</span></div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span> <span class="comment">/// statement with a dependent name.</span></div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span> <span class="comment">/// The __if_exists statement can be used to include a sequence of statements</span></div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span> <span class="comment">/// in the program only when a particular dependent name does not exist. For</span></div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span> <span class="comment">/// example:</span></div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span> <span class="comment">/// \code</span></div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span> <span class="comment">/// template<typename T></span></div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span> <span class="comment">/// void call_foo(T &t) {</span></div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span> <span class="comment">///   __if_exists (T::foo) {</span></div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span> <span class="comment">///     t.foo(); // okay: only called when T::foo exists.</span></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">/// }</span></div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span> <span class="comment">/// \endcode</span></div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span> <span class="comment">/// Similarly, the __if_not_exists statement can be used to include the</span></div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span> <span class="comment">/// statements when a particular name does not exist.</span></div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span> <span class="comment">/// Note that this statement only captures __if_exists and __if_not_exists</span></div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span> <span class="comment">/// statements whose name is dependent. All non-dependent cases are handled</span></div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span> <span class="comment">/// directly in the parser, so that they don't introduce a new scope. Clang</span></div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span> <span class="comment">/// introduces scopes in the dependent case to keep names inside the compound</span></div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span> <span class="comment">/// statement from leaking out into the surround statements, which would</span></div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span> <span class="comment">/// compromise the template instantiation model. This behavior differs from</span></div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span> <span class="comment">/// Visual C++ (which never introduces a scope), but is a fairly reasonable</span></div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span> <span class="comment">/// approximation of the VC++ behavior.</span></div>
+<div class="line"><a name="l00234"></a><span class="lineno"><a class="code" href="classclang_1_1MSDependentExistsStmt.html">  234</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1MSDependentExistsStmt.html" title="Representation of a Microsoft __if_exists or __if_not_exists statement with a dependent name...">MSDependentExistsStmt</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> {</div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</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> KeywordLoc;</div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span>   <span class="keywordtype">bool</span> IsIfExists;</div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span>   <a class="code" href="classclang_1_1NestedNameSpecifierLoc.html" title="A C++ nested-name-specifier augmented with source location information.">NestedNameSpecifierLoc</a> QualifierLoc;</div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span>   <a class="code" href="structclang_1_1DeclarationNameInfo.html">DeclarationNameInfo</a> NameInfo;</div>
+<div class="line">