[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"><a name="l00239"></a><span class="lineno"> 239</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *SubStmt;</div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> </div>
+<div class="line"><a name="l00241"></a><span class="lineno"><a class="code" href="classclang_1_1MSDependentExistsStmt.html#a5d8560551ea81515968dd468e2e4082e"> 241</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="l00242"></a><span class="lineno"><a class="code" href="classclang_1_1MSDependentExistsStmt.html#ad6427d648931017bffcb2f90b8930f9d"> 242</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="l00243"></a><span class="lineno"> 243</span> </div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00245"></a><span class="lineno"><a class="code" href="classclang_1_1MSDependentExistsStmt.html#aa5db19d5c389bf2025089be1877ced3f"> 245</a></span> <a class="code" href="classclang_1_1MSDependentExistsStmt.html#aa5db19d5c389bf2025089be1877ced3f">MSDependentExistsStmt</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> KeywordLoc, <span class="keywordtype">bool</span> IsIfExists,</div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</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="l00247"></a><span class="lineno"> 247</span> <a class="code" href="structclang_1_1DeclarationNameInfo.html">DeclarationNameInfo</a> NameInfo,</div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <a class="code" href="classclang_1_1CompoundStmt.html">CompoundStmt</a> *SubStmt)</div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> : <a class="code" href="classclang_1_1Stmt.html">Stmt</a>(MSDependentExistsStmtClass),</div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> KeywordLoc(KeywordLoc), IsIfExists(IsIfExists),</div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> QualifierLoc(QualifierLoc), NameInfo(NameInfo),</div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> SubStmt(reinterpret_cast<<a class="code" href="classclang_1_1Stmt.html">Stmt</a> *>(SubStmt)) { }</div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> <span class="comment"></span></div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> <span class="comment"> /// \brief Retrieve the location of the __if_exists or __if_not_exists</span></div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> <span class="comment"> /// keyword.</span></div>
+<div class="line"><a name="l00256"></a><span class="lineno"><a class="code" href="classclang_1_1MSDependentExistsStmt.html#ad0b9feaf3748cd4703e318d16aea45ce"> 256</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_1MSDependentExistsStmt.html#ad0b9feaf3748cd4703e318d16aea45ce" title="Retrieve the location of the __if_exists or __if_not_exists keyword.">getKeywordLoc</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> KeywordLoc; }</div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> <span class="comment"></span></div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> <span class="comment"> /// \brief Determine whether this is an __if_exists statement.</span></div>
+<div class="line"><a name="l00259"></a><span class="lineno"><a class="code" href="classclang_1_1MSDependentExistsStmt.html#ad26478e99840089e64f792f678d814ab"> 259</a></span> <span class="comment"></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1MSDependentExistsStmt.html#ad26478e99840089e64f792f678d814ab" title="Determine whether this is an __if_exists statement.">isIfExists</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> IsIfExists; }</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="comment"></span></div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="comment"> /// \brief Determine whether this is an __if_exists statement.</span></div>
+<div class="line"><a name="l00262"></a><span class="lineno"><a class="code" href="classclang_1_1MSDependentExistsStmt.html#a6a31dc508cd9bc2801479da336c4c47b"> 262</a></span> <span class="comment"></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1MSDependentExistsStmt.html#a6a31dc508cd9bc2801479da336c4c47b" title="Determine whether this is an __if_exists statement.">isIfNotExists</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> !IsIfExists; }</div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <span class="comment"></span></div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> <span class="comment"> /// \brief Retrieve the nested-name-specifier that qualifies this name, if</span></div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> <span class="comment"> /// any.</span></div>
+<div class="line"><a name="l00266"></a><span class="lineno"><a class="code" href="classclang_1_1MSDependentExistsStmt.html#aa6231880471cca40a7d212f504e766d1"> 266</a></span> <span class="comment"></span> <a class="code" href="classclang_1_1NestedNameSpecifierLoc.html" title="A C++ nested-name-specifier augmented with source location information.">NestedNameSpecifierLoc</a> <a class="code" href="classclang_1_1MSDependentExistsStmt.html#aa6231880471cca40a7d212f504e766d1" title="Retrieve the nested-name-specifier that qualifies this name, if any.">getQualifierLoc</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> QualifierLoc; }</div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> <span class="comment"></span></div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> <span class="comment"> /// \brief Retrieve the name of the entity we're testing for, along with</span></div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> <span class="comment"> /// location information</span></div>
+<div class="line"><a name="l00270"></a><span class="lineno"><a class="code" href="classclang_1_1MSDependentExistsStmt.html#ab15a2c277154ac79bcd2107b9a3ef1fa"> 270</a></span> <span class="comment"></span> <a class="code" href="structclang_1_1DeclarationNameInfo.html">DeclarationNameInfo</a> <a class="code" href="classclang_1_1MSDependentExistsStmt.html#ab15a2c277154ac79bcd2107b9a3ef1fa" title="Retrieve the name of the entity we're testing for, along with location information.">getNameInfo</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> NameInfo; }</div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> <span class="comment"></span></div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> <span class="comment"> /// \brief Retrieve the compound statement that will be included in the</span></div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> <span class="comment"> /// program only if the existence of the symbol matches the initial keyword.</span></div>
+<div class="line"><a name="l00274"></a><span class="lineno"><a class="code" href="classclang_1_1MSDependentExistsStmt.html#a4d03e7faab3da8faba6ac0a389aa70e8"> 274</a></span> <span class="comment"></span> <a class="code" href="classclang_1_1CompoundStmt.html">CompoundStmt</a> *<a class="code" href="classclang_1_1MSDependentExistsStmt.html#a4d03e7faab3da8faba6ac0a389aa70e8" title="Retrieve the compound statement that will be included in the program only if the existence of the sym...">getSubStmt</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast<</span><a class="code" href="classclang_1_1CompoundStmt.html">CompoundStmt</a> *<span class="keyword">></span>(SubStmt);</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> </div>
+<div class="line"><a name="l00278"></a><span class="lineno"><a class="code" href="classclang_1_1MSDependentExistsStmt.html#af602790cd7274729bc8e1cf5061595fc"> 278</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_1MSDependentExistsStmt.html#af602790cd7274729bc8e1cf5061595fc">getLocStart</a>() const LLVM_READONLY { <span class="keywordflow">return</span> KeywordLoc; }</div>
+<div class="line"><a name="l00279"></a><span class="lineno"><a class="code" href="classclang_1_1MSDependentExistsStmt.html#a7ff3366c3bb36e6187c35b3bc949cb6f"> 279</a></span> <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> <a class="code" href="classclang_1_1MSDependentExistsStmt.html#a7ff3366c3bb36e6187c35b3bc949cb6f">getLocEnd</a>() const LLVM_READONLY { <span class="keywordflow">return</span> SubStmt-><a class="code" href="classclang_1_1Stmt.html#acdd36e45abff718e8134873f9b7448ef">getLocEnd</a>();}</div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> </div>
+<div class="line"><a name="l00281"></a><span class="lineno"><a class="code" href="classclang_1_1MSDependentExistsStmt.html#a584c063c71cb4b50b1f85428f60d9a26"> 281</a></span> <a class="code" href="structclang_1_1StmtRange.html">child_range</a> <a class="code" href="classclang_1_1MSDependentExistsStmt.html#a584c063c71cb4b50b1f85428f60d9a26">children</a>() {</div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Stmt.html#a0e31184b9bde2f0d9bed2d81b4252555">child_range</a>(&SubStmt, &SubStmt+1);</div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> }</div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> </div>
+<div class="line"><a name="l00285"></a><span class="lineno"><a class="code" href="classclang_1_1MSDependentExistsStmt.html#a7af354de982182504fe1ba643d40686e"> 285</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1MSDependentExistsStmt.html#a7af354de982182504fe1ba643d40686e">classof</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *T) {</div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> <span class="keywordflow">return</span> T-><a class="code" href="classclang_1_1Stmt.html#ac881a5954ff27d475c1bbab6f5d80150">getStmtClass</a>() == MSDependentExistsStmtClass;</div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> }</div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> };</div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> </div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> } <span class="comment">// end namespace clang</span></div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> </div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> <span class="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/StmtGraphTraits_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/StmtGraphTraits_8h_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/StmtGraphTraits_8h_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/StmtGraphTraits_8h_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,162 @@
+<!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: StmtGraphTraits.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">StmtGraphTraits.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="StmtGraphTraits_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">//===--- StmtGraphTraits.h - Graph Traits for the class Stmt ----*- 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 a template specialization of llvm::GraphTraits to</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// treat ASTs (Stmt*) as graphs</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">#ifndef LLVM_CLANG_AST_STMT_GRAPHTRAITS_H</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor"></span><span class="preprocessor">#define LLVM_CLANG_AST_STMT_GRAPHTRAITS_H</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "<a class="code" href="Stmt_8h.html">clang/AST/Stmt.h</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "llvm/ADT/DepthFirstIterator.h"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "llvm/ADT/GraphTraits.h"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">namespace </span>llvm {</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment">//template <typename T> struct GraphTraits;</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a name="l00027"></a><span class="lineno"><a class="code" href="structllvm_1_1GraphTraits_3_01clang_1_1Stmt_01_5_01_4.html"> 27</a></span> <span class="keyword">template</span> <> <span class="keyword">struct </span>GraphTraits<clang::Stmt*> {</div>
+<div class="line"><a name="l00028"></a><span class="lineno"><a class="code" href="structllvm_1_1GraphTraits_3_01clang_1_1Stmt_01_5_01_4.html#ac2dcd9455346814b134f20bdb50ed2eb"> 28</a></span> <span class="keyword">typedef</span> <a class="code" href="classclang_1_1Stmt.html">clang::Stmt</a> <a class="code" href="structllvm_1_1GraphTraits_3_01clang_1_1Stmt_01_5_01_4.html#ac2dcd9455346814b134f20bdb50ed2eb">NodeType</a>;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"><a class="code" href="structllvm_1_1GraphTraits_3_01clang_1_1Stmt_01_5_01_4.html#a260e0c152f1f9c0fefe1626166838e10"> 29</a></span> <span class="keyword">typedef</span> <a class="code" href="structclang_1_1StmtIterator.html">clang::Stmt::child_iterator</a> <a class="code" href="structllvm_1_1GraphTraits_3_01clang_1_1Stmt_01_5_01_4.html#a260e0c152f1f9c0fefe1626166838e10">ChildIteratorType</a>;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"><a class="code" href="structllvm_1_1GraphTraits_3_01clang_1_1Stmt_01_5_01_4.html#a2c98e033457ad1791514c313070fb108"> 30</a></span> <span class="keyword">typedef</span> llvm::df_iterator<clang::Stmt*> <a class="code" href="structllvm_1_1GraphTraits_3_01clang_1_1Stmt_01_5_01_4.html#a2c98e033457ad1791514c313070fb108">nodes_iterator</a>;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div>
+<div class="line"><a name="l00032"></a><span class="lineno"><a class="code" href="structllvm_1_1GraphTraits_3_01clang_1_1Stmt_01_5_01_4.html#a8ecca5a60a2dd8596cca9f2d9203d6d3"> 32</a></span> <span class="keyword">static</span> <a class="code" href="classclang_1_1Stmt.html">NodeType</a>* <a class="code" href="structllvm_1_1GraphTraits_3_01clang_1_1Stmt_01_5_01_4.html#a8ecca5a60a2dd8596cca9f2d9203d6d3">getEntryNode</a>(<a class="code" href="classclang_1_1Stmt.html">clang::Stmt</a>* <a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>) { <span class="keywordflow">return</span> <a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</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"><a class="code" href="structllvm_1_1GraphTraits_3_01clang_1_1Stmt_01_5_01_4.html#a25fae10036d7aa806835987fb73e759d"> 34</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="structclang_1_1StmtIterator.html">ChildIteratorType</a> <a class="code" href="structllvm_1_1GraphTraits_3_01clang_1_1Stmt_01_5_01_4.html#a25fae10036d7aa806835987fb73e759d">child_begin</a>(<a class="code" href="classclang_1_1Stmt.html">NodeType</a>* N) {</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keywordflow">if</span> (N) <span class="keywordflow">return</span> N-><a class="code" href="classclang_1_1Stmt.html#a52a20468e7b2880de813ed91d75d2617">child_begin</a>();</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="structclang_1_1StmtIterator.html">ChildIteratorType</a>();</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> }</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div>
+<div class="line"><a name="l00039"></a><span class="lineno"><a class="code" href="structllvm_1_1GraphTraits_3_01clang_1_1Stmt_01_5_01_4.html#a9f21be07c345a3e05584e9bb60a949fb"> 39</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="structclang_1_1StmtIterator.html">ChildIteratorType</a> <a class="code" href="structllvm_1_1GraphTraits_3_01clang_1_1Stmt_01_5_01_4.html#a9f21be07c345a3e05584e9bb60a949fb">child_end</a>(<a class="code" href="classclang_1_1Stmt.html">NodeType</a>* N) {</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keywordflow">if</span> (N) <span class="keywordflow">return</span> N-><a class="code" href="classclang_1_1Stmt.html#a7a17d445eb6027180bbdc518e6cdb63a">child_end</a>();</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="structclang_1_1StmtIterator.html">ChildIteratorType</a>();</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> }</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
+<div class="line"><a name="l00044"></a><span class="lineno"><a class="code" href="structllvm_1_1GraphTraits_3_01clang_1_1Stmt_01_5_01_4.html#a442aff541104a1b91a8fe1a0ee7167a0"> 44</a></span> <span class="keyword">static</span> <a class="code" href="structllvm_1_1GraphTraits_3_01clang_1_1Stmt_01_5_01_4.html#a2c98e033457ad1791514c313070fb108">nodes_iterator</a> <a class="code" href="structllvm_1_1GraphTraits_3_01clang_1_1Stmt_01_5_01_4.html#a442aff541104a1b91a8fe1a0ee7167a0">nodes_begin</a>(<a class="code" href="classclang_1_1Stmt.html">clang::Stmt</a>* <a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>) {</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keywordflow">return</span> df_begin(S);</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> }</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
+<div class="line"><a name="l00048"></a><span class="lineno"><a class="code" href="structllvm_1_1GraphTraits_3_01clang_1_1Stmt_01_5_01_4.html#aca3d7837b90afd2ad50f048777be7661"> 48</a></span> <span class="keyword">static</span> <a class="code" href="structllvm_1_1GraphTraits_3_01clang_1_1Stmt_01_5_01_4.html#a2c98e033457ad1791514c313070fb108">nodes_iterator</a> <a class="code" href="structllvm_1_1GraphTraits_3_01clang_1_1Stmt_01_5_01_4.html#aca3d7837b90afd2ad50f048777be7661">nodes_end</a>(<a class="code" href="classclang_1_1Stmt.html">clang::Stmt</a>* <a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>) {</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keywordflow">return</span> df_end(S);</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> }</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> };</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </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="structllvm_1_1GraphTraits_3_01const_01clang_1_1Stmt_01_5_01_4.html"> 54</a></span> <span class="keyword">template</span> <> <span class="keyword">struct </span>GraphTraits<const clang::Stmt*> {</div>
+<div class="line"><a name="l00055"></a><span class="lineno"><a class="code" href="structllvm_1_1GraphTraits_3_01const_01clang_1_1Stmt_01_5_01_4.html#ace3cf5213f9132f8b3c5e7fbdd79a9fd"> 55</a></span> <span class="keyword">typedef</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1Stmt.html">clang::Stmt</a> <a class="code" href="structllvm_1_1GraphTraits_3_01const_01clang_1_1Stmt_01_5_01_4.html#ace3cf5213f9132f8b3c5e7fbdd79a9fd">NodeType</a>;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"><a class="code" href="structllvm_1_1GraphTraits_3_01const_01clang_1_1Stmt_01_5_01_4.html#a69fffe89889cb563e6b5017742fc9587"> 56</a></span> <span class="keyword">typedef</span> <a class="code" href="structclang_1_1ConstStmtIterator.html">clang::Stmt::const_child_iterator</a> <a class="code" href="structllvm_1_1GraphTraits_3_01const_01clang_1_1Stmt_01_5_01_4.html#a69fffe89889cb563e6b5017742fc9587">ChildIteratorType</a>;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"><a class="code" href="structllvm_1_1GraphTraits_3_01const_01clang_1_1Stmt_01_5_01_4.html#a0187d00c78e5fe3bbc1eaaeeafdde278"> 57</a></span> <span class="keyword">typedef</span> llvm::df_iterator<const clang::Stmt*> <a class="code" href="structllvm_1_1GraphTraits_3_01const_01clang_1_1Stmt_01_5_01_4.html#a0187d00c78e5fe3bbc1eaaeeafdde278">nodes_iterator</a>;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div>
+<div class="line"><a name="l00059"></a><span class="lineno"><a class="code" href="structllvm_1_1GraphTraits_3_01const_01clang_1_1Stmt_01_5_01_4.html#ae217181848b86a25b353788de0eed1b9"> 59</a></span> <span class="keyword">static</span> <a class="code" href="classclang_1_1Stmt.html">NodeType</a>* <a class="code" href="structllvm_1_1GraphTraits_3_01const_01clang_1_1Stmt_01_5_01_4.html#ae217181848b86a25b353788de0eed1b9">getEntryNode</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Stmt.html">clang::Stmt</a>* <a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>) { <span class="keywordflow">return</span> <a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>; }</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
+<div class="line"><a name="l00061"></a><span class="lineno"><a class="code" href="structllvm_1_1GraphTraits_3_01const_01clang_1_1Stmt_01_5_01_4.html#a6b844f2b0d2bf3d1b242c7cfff9e0a43"> 61</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="structclang_1_1ConstStmtIterator.html">ChildIteratorType</a> <a class="code" href="structllvm_1_1GraphTraits_3_01const_01clang_1_1Stmt_01_5_01_4.html#a6b844f2b0d2bf3d1b242c7cfff9e0a43">child_begin</a>(<a class="code" href="classclang_1_1Stmt.html">NodeType</a>* N) {</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="keywordflow">if</span> (N) <span class="keywordflow">return</span> N-><a class="code" href="classclang_1_1Stmt.html#a52a20468e7b2880de813ed91d75d2617">child_begin</a>();</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="structclang_1_1ConstStmtIterator.html">ChildIteratorType</a>();</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> }</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div>
+<div class="line"><a name="l00066"></a><span class="lineno"><a class="code" href="structllvm_1_1GraphTraits_3_01const_01clang_1_1Stmt_01_5_01_4.html#aee7a54068179cade26edea90aecfc119"> 66</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="structclang_1_1ConstStmtIterator.html">ChildIteratorType</a> <a class="code" href="structllvm_1_1GraphTraits_3_01const_01clang_1_1Stmt_01_5_01_4.html#aee7a54068179cade26edea90aecfc119">child_end</a>(<a class="code" href="classclang_1_1Stmt.html">NodeType</a>* N) {</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keywordflow">if</span> (N) <span class="keywordflow">return</span> N-><a class="code" href="classclang_1_1Stmt.html#a7a17d445eb6027180bbdc518e6cdb63a">child_end</a>();</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keywordflow">else</span> <span class="keywordflow">return</span> <a class="code" href="structclang_1_1ConstStmtIterator.html">ChildIteratorType</a>();</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> }</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div>
+<div class="line"><a name="l00071"></a><span class="lineno"><a class="code" href="structllvm_1_1GraphTraits_3_01const_01clang_1_1Stmt_01_5_01_4.html#adca82bedea1a05d75b7056a33e174af5"> 71</a></span> <span class="keyword">static</span> <a class="code" href="structllvm_1_1GraphTraits_3_01const_01clang_1_1Stmt_01_5_01_4.html#a0187d00c78e5fe3bbc1eaaeeafdde278">nodes_iterator</a> <a class="code" href="structllvm_1_1GraphTraits_3_01const_01clang_1_1Stmt_01_5_01_4.html#adca82bedea1a05d75b7056a33e174af5">nodes_begin</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Stmt.html">clang::Stmt</a>* <a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>) {</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keywordflow">return</span> df_begin(S);</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> }</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div>
+<div class="line"><a name="l00075"></a><span class="lineno"><a class="code" href="structllvm_1_1GraphTraits_3_01const_01clang_1_1Stmt_01_5_01_4.html#aa67e8bc8958ed7341c159399907d58ae"> 75</a></span> <span class="keyword">static</span> <a class="code" href="structllvm_1_1GraphTraits_3_01const_01clang_1_1Stmt_01_5_01_4.html#a0187d00c78e5fe3bbc1eaaeeafdde278">nodes_iterator</a> <a class="code" href="structllvm_1_1GraphTraits_3_01const_01clang_1_1Stmt_01_5_01_4.html#aa67e8bc8958ed7341c159399907d58ae">nodes_end</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Stmt.html">clang::Stmt</a>* <a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>) {</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="keywordflow">return</span> df_end(S);</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> }</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> };</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="comment">// end namespace llvm</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <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/StmtIterator_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/StmtIterator_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/StmtIterator_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/StmtIterator_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,193 @@
+<!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: StmtIterator.cpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="pages.html"><span>Related Pages</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ <li><a href="globals.html"><span>File Members</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void
(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_87e2a7550f83bd8cbfc92736891468fc.html">lib</a></li><li class="navelem"><a class="el" href="dir_d3636efc55c6148efe36c59ffa01cb41.html">AST</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">StmtIterator.cpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="StmtIterator_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">//===--- StmtIterator.cpp - Iterators for Statements ------------------------===//</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 internal methods for StmtIterator.</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> </div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include "<a class="code" href="StmtIterator_8h.html">clang/AST/StmtIterator.h</a>"</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include "<a class="code" href="Decl_8h.html">clang/AST/Decl.h</a>"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="keyword">using namespace </span>clang;</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">// FIXME: Add support for dependent-sized array types in C++?</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">// Does it even make sense to build a CFG for an uninstantiated template?</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"><a class="code" href="StmtIterator_8cpp.html#af39f694e4e5c5139ec313ee811836ad5"> 21</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1VariableArrayType.html">VariableArrayType</a> *<a class="code" href="StmtIterator_8cpp.html#af39f694e4e5c5139ec313ee811836ad5">FindVA</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Type.html">Type</a>* t) {</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keywordflow">while</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1ArrayType.html">ArrayType</a> *vt = dyn_cast<ArrayType>(t)) {</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1VariableArrayType.html">VariableArrayType</a> *vat = dyn_cast<VariableArrayType>(vt))</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="keywordflow">if</span> (vat->getSizeExpr())</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keywordflow">return</span> vat;</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> t = vt->getElementType().getTypePtr();</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> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keywordflow">return</span> <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> }</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div>
+<div class="line"><a name="l00033"></a><span class="lineno"><a class="code" href="classclang_1_1StmtIteratorBase.html#a708eff8ffb1dc8424908a81e6ea01437"> 33</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1StmtIteratorBase.html#a708eff8ffb1dc8424908a81e6ea01437">StmtIteratorBase::NextVA</a>() {</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> assert (<a class="code" href="classclang_1_1StmtIteratorBase.html#a8c869d3cc772647ce9e8f27aa94bab6a">getVAPtr</a>());</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">const</span> <a class="code" href="classclang_1_1VariableArrayType.html">VariableArrayType</a> *p = <a class="code" href="classclang_1_1StmtIteratorBase.html#a8c869d3cc772647ce9e8f27aa94bab6a">getVAPtr</a>();</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> p = <a class="code" href="StmtIterator_8cpp.html#af39f694e4e5c5139ec313ee811836ad5">FindVA</a>(p-><a class="code" href="classclang_1_1ArrayType.html#ad9681a11b43dc70a3c4db07d2a450d12">getElementType</a>().<a class="code" href="classclang_1_1QualType.html#a669d7ba0645cd05d53508e3c1895075a">getTypePtr</a>());</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <a class="code" href="classclang_1_1StmtIteratorBase.html#a59ade584d263fbb225264a2fe387f6b7">setVAPtr</a>(p);</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keywordflow">if</span> (p)</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1StmtIteratorBase.html#a0b48c72be88b5c36596ecef9a82a9d52">inDeclGroup</a>()) {</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1VarDecl.html">VarDecl</a>* VD = dyn_cast<VarDecl>(*<a class="code" href="classclang_1_1StmtIteratorBase.html#a2faead920bbe732b0920fad80578ab6f">DGI</a>))</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keywordflow">if</span> (VD->Init)</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <a class="code" href="classclang_1_1StmtIteratorBase.html#a176a71a233f5b472f56403f385b7928b">NextDecl</a>();</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> }</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> assert(<a class="code" href="classclang_1_1StmtIteratorBase.html#a0706ace5d5bb7364c7f5f28631af8c37">inSizeOfTypeVA</a>());</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <a class="code" href="classclang_1_1StmtIteratorBase.html#a43338e8466080d4561e227faf988d153">RawVAPtr</a> = 0;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> }</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> }</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div>
+<div class="line"><a name="l00056"></a><span class="lineno"><a class="code" href="classclang_1_1StmtIteratorBase.html#a176a71a233f5b472f56403f385b7928b"> 56</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1StmtIteratorBase.html#a176a71a233f5b472f56403f385b7928b">StmtIteratorBase::NextDecl</a>(<span class="keywordtype">bool</span> ImmediateAdvance) {</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> assert (<a class="code" href="classclang_1_1StmtIteratorBase.html#a8c869d3cc772647ce9e8f27aa94bab6a">getVAPtr</a>() == <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>);</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> assert(<a class="code" href="classclang_1_1StmtIteratorBase.html#a0b48c72be88b5c36596ecef9a82a9d52">inDeclGroup</a>());</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="keywordflow">if</span> (ImmediateAdvance)</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> ++<a class="code" href="classclang_1_1StmtIteratorBase.html#a2faead920bbe732b0920fad80578ab6f">DGI</a>;</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keywordflow">for</span> ( ; <a class="code" href="classclang_1_1StmtIteratorBase.html#a2faead920bbe732b0920fad80578ab6f">DGI</a> != <a class="code" href="classclang_1_1StmtIteratorBase.html#abc09d27ca682c7d67caf0505cd588664">DGE</a>; ++<a class="code" href="classclang_1_1StmtIteratorBase.html#a2faead920bbe732b0920fad80578ab6f">DGI</a>)</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1StmtIteratorBase.html#a52fba4dd18f513521e57ae3da092a6d2">HandleDecl</a>(*<a class="code" href="classclang_1_1StmtIteratorBase.html#a2faead920bbe732b0920fad80578ab6f">DGI</a>))</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <a class="code" href="classclang_1_1StmtIteratorBase.html#a43338e8466080d4561e227faf988d153">RawVAPtr</a> = 0;</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> }</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div>
+<div class="line"><a name="l00070"></a><span class="lineno"><a class="code" href="classclang_1_1StmtIteratorBase.html#a52fba4dd18f513521e57ae3da092a6d2"> 70</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1StmtIteratorBase.html#a52fba4dd18f513521e57ae3da092a6d2">StmtIteratorBase::HandleDecl</a>(<a class="code" href="classclang_1_1Decl.html">Decl</a>* D) {</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1VarDecl.html">VarDecl</a>* VD = dyn_cast<VarDecl>(D)) {</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1VariableArrayType.html">VariableArrayType</a>* VAPtr = <a class="code" href="StmtIterator_8cpp.html#af39f694e4e5c5139ec313ee811836ad5">FindVA</a>(VD->getType().getTypePtr())) {</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <a class="code" href="classclang_1_1StmtIteratorBase.html#a59ade584d263fbb225264a2fe387f6b7">setVAPtr</a>(VAPtr);</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="keywordflow">return</span> <span class="keyword">true</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> </div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="keywordflow">if</span> (VD->getInit())</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> }</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1TypedefNameDecl.html" title="Base class for declarations which introduce a typedef-name.">TypedefNameDecl</a>* TD = dyn_cast<TypedefNameDecl>(D)) {</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1VariableArrayType.html">VariableArrayType</a>* VAPtr =</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <a class="code" href="StmtIterator_8cpp.html#af39f694e4e5c5139ec313ee811836ad5">FindVA</a>(TD->getUnderlyingType().getTypePtr())) {</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <a class="code" href="classclang_1_1StmtIteratorBase.html#a59ade584d263fbb225264a2fe387f6b7">setVAPtr</a>(VAPtr);</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> }</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> }</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1EnumConstantDecl.html">EnumConstantDecl</a>* ECD = dyn_cast<EnumConstantDecl>(D)) {</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="keywordflow">if</span> (ECD->getInitExpr())</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="keywordflow">return</span> <span class="keyword">true</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> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> }</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div>
+<div class="line"><a name="l00095"></a><span class="lineno"><a class="code" href="classclang_1_1StmtIteratorBase.html#aab75c1976cddafc5c30f720b890e3253"> 95</a></span> <a class="code" href="classclang_1_1StmtIteratorBase.html#a86b7f5d2498385b880bd5ee23e3d02c8">StmtIteratorBase::StmtIteratorBase</a>(<a class="code" href="classclang_1_1Decl.html">Decl</a>** dgi, <a class="code" href="classclang_1_1Decl.html">Decl</a>** dge)</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> : <a class="code" href="namespaceclang_1_1ast__matchers.html#afb4ea98cfdb46fdfbea24fd10b8926e7" title="Matches statements.">stmt</a>(0), DGI(dgi), RawVAPtr(DeclGroupMode), DGE(dge) {</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <a class="code" href="classclang_1_1StmtIteratorBase.html#a176a71a233f5b472f56403f385b7928b">NextDecl</a>(<span class="keyword">false</span>);</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> }</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div>
+<div class="line"><a name="l00100"></a><span class="lineno"><a class="code" href="classclang_1_1StmtIteratorBase.html#a228e77db52c3cd6fae0bbe148593aecc"> 100</a></span> <a class="code" href="classclang_1_1StmtIteratorBase.html#a86b7f5d2498385b880bd5ee23e3d02c8">StmtIteratorBase::StmtIteratorBase</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1VariableArrayType.html">VariableArrayType</a>* t)</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> : <a class="code" href="namespaceclang_1_1ast__matchers.html#afb4ea98cfdb46fdfbea24fd10b8926e7" title="Matches statements.">stmt</a>(0), DGI(0), RawVAPtr(SizeOfTypeVAMode) {</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <a class="code" href="classclang_1_1StmtIteratorBase.html#a43338e8466080d4561e227faf988d153">RawVAPtr</a> |= <span class="keyword">reinterpret_cast<</span>uintptr_t<span class="keyword">></span>(t);</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> }</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div>
+<div class="line"><a name="l00105"></a><span class="lineno"><a class="code" href="classclang_1_1StmtIteratorBase.html#ad2e2dbb3dd20779aabf4674f24353a0f"> 105</a></span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a>*& <a class="code" href="classclang_1_1StmtIteratorBase.html#ad2e2dbb3dd20779aabf4674f24353a0f">StmtIteratorBase::GetDeclExpr</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1VariableArrayType.html">VariableArrayType</a>* VAPtr = <a class="code" href="classclang_1_1StmtIteratorBase.html#a8c869d3cc772647ce9e8f27aa94bab6a">getVAPtr</a>()) {</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> assert (VAPtr->SizeExpr);</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="keywordflow">return</span> <span class="keyword">const_cast<</span><a class="code" href="classclang_1_1Stmt.html">Stmt</a>*&<span class="keyword">></span>(VAPtr->SizeExpr);</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"> 111</span> assert (<a class="code" href="classclang_1_1StmtIteratorBase.html#a0b48c72be88b5c36596ecef9a82a9d52">inDeclGroup</a>());</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a>* VD = cast<VarDecl>(*DGI);</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="keywordflow">return</span> *VD-><a class="code" href="classclang_1_1VarDecl.html#adb5b270353ef9536752c499f379e9081" title="Retrieve the address of the initializer expression.">getInitAddress</a>();</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</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/StmtIterator_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/StmtIterator_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/StmtIterator_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/StmtIterator_8d_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,283 @@
+<!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: StmtIterator.d Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="pages.html"><span>Related Pages</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ <li><a href="globals.html"><span>File Members</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void
(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_87e2a7550f83bd8cbfc92736891468fc.html">lib</a></li><li class="navelem"><a class="el" href="dir_d3636efc55c6148efe36c59ffa01cb41.html">AST</a></li><li class="navelem"><a class="el" href="dir_e796beea07674cb14e7827e2d3a82e85.html">Release+Asserts</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">StmtIterator.d</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="StmtIterator_8d.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> /home/tstellar/llvm/tools/clang/lib/AST/Release+Asserts/StmtIterator.o \</div>
+<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> /home/tstellar/llvm/tools/clang/lib/AST/Release+Asserts/StmtIterator.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> StmtIterator.cpp \</div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/StmtIterator.h \</div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> /home/tstellar/llvm/include/llvm/Support/DataTypes.h \</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> /home/tstellar/llvm/include/llvm/Support/Compiler.h \</div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> /home/tstellar/llvm/include/llvm/Config/llvm-config.h \</div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/Decl.h \</div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/APValue.h \</div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/LLVM.h \</div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> /home/tstellar/llvm/include/llvm/Support/Casting.h \</div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> /home/tstellar/llvm/include/llvm/Support/type_traits.h \</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> /home/tstellar/llvm/include/llvm/ADT/None.h \</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> /home/tstellar/llvm/include/llvm/ADT/APFloat.h \</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> /home/tstellar/llvm/include/llvm/ADT/APInt.h \</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h \</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> /home/tstellar/llvm/include/llvm/ADT/SmallVector.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/Support/MathExtras.h \</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h \</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> /home/tstellar/llvm/include/llvm/ADT/APSInt.h \</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h \</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h \</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h \</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclBase.h \</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/AttrIterator.h \</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclarationName.h \</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/IdentifierTable.h \</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/OperatorKinds.h \</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/OperatorKinds.def \</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/TokenKinds.h \</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/TokenKinds.def \</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> /home/tstellar/llvm/include/llvm/ADT/SmallString.h \</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> /home/tstellar/llvm/include/llvm/ADT/StringRef.h \</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> /home/tstellar/llvm/include/llvm/ADT/StringMap.h \</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h \</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/PartialDiagnostic.h \</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/Diagnostic.h \</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/DiagnosticIDs.h \</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h \</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/DiagnosticCommonKinds.inc \</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/DiagnosticOptions.h \</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/DiagnosticOptions.def \</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/SourceLocation.h \</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> /home/tstellar/llvm/include/llvm/ADT/DenseMap.h \</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h \</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> /home/tstellar/llvm/include/llvm/ADT/STLExtras.h \</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/<a class="code" href="namespaceclang.html#a78aadfeaf316ded55fdd2d1a9c8815b6" title="Describes the different kinds of linkage (C++ [basic.link], C99 6.2.2) that an entity may have...">Linkage</a>.h \</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/Specifiers.h \</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> /home/tstellar/llvm/include/llvm/Support/PrettyStackTrace.h \</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclNodes.inc \</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/ExternalASTSource.h \</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/CharUnits.h \</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/Redeclarable.h \</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/Type.h \</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/NestedNameSpecifier.h \</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> /home/tstellar/llvm/include/llvm/ADT/FoldingSet.h \</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/TemplateName.h \</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/<a class="code" href="namespaceclang.html#af8a91eed04532d5da41ef08e7c9c081e" title="The various types of exception specifications that exist in C++11.">ExceptionSpecificationType</a>.h \</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/<a class="code" href="namespaceclang.html#afbab15cd4aa598c4e6d9192f7ac4f102" title="Describes the different kinds of visibility that a declaration may have.">Visibility</a>.h \</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> /home/tstellar/llvm/include/llvm/ADT/Optional.h \</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> /home/tstellar/llvm/include/llvm/ADT/Twine.h \</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h \</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/TypeNodes.def \</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/BuiltinTypes.def \</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> /home/tstellar/llvm/include/llvm/Support/raw_ostream.h \</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> /home/tstellar/llvm/include/llvm/Support/FileSystem.h \</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h \</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> /home/tstellar/llvm/include/llvm/Support/TimeValue.h \</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> /home/tstellar/llvm/include/llvm/Support/system_error.h</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/StmtIterator.h:</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> /home/tstellar/llvm/include/llvm/Support/DataTypes.h:</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> /home/tstellar/llvm/include/llvm/Support/Compiler.h:</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> /home/tstellar/llvm/include/llvm/Config/llvm-config.h:</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> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/Decl.h:</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/APValue.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/AST/../../include/clang/Basic/LLVM.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/include/llvm/Support/Casting.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/include/llvm/Support/type_traits.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/ADT/None.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/ADT/APFloat.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/ADT/APInt.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/ArrayRef.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/include/llvm/ADT/SmallVector.h:</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> /home/tstellar/llvm/include/llvm/Support/AlignOf.h:</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> /home/tstellar/llvm/include/llvm/Support/MathExtras.h:</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.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/APSInt.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/ADT/PointerIntPair.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/Support/PointerLikeTypeTraits.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/ADT/PointerUnion.h:</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclBase.h:</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/AttrIterator.h:</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/DeclarationName.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/tools/clang/lib/AST/../../include/clang/Basic/IdentifierTable.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/AST/../../include/clang/Basic/OperatorKinds.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/AST/../../include/clang/Basic/OperatorKinds.def:</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/TokenKinds.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/AST/../../include/clang/Basic/TokenKinds.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/include/llvm/ADT/SmallString.h:</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> /home/tstellar/llvm/include/llvm/ADT/StringRef.h:</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> </div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> /home/tstellar/llvm/include/llvm/ADT/StringMap.h:</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.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/tools/clang/lib/AST/../../include/clang/Basic/PartialDiagnostic.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/tools/clang/lib/AST/../../include/clang/Basic/Diagnostic.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/tools/clang/lib/AST/../../include/clang/Basic/DiagnosticIDs.h:</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> </div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.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/tools/clang/lib/AST/../../include/clang/Basic/DiagnosticCommonKinds.inc:</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/tools/clang/lib/AST/../../include/clang/Basic/DiagnosticOptions.h:</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> </div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/DiagnosticOptions.def:</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> </div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/SourceLocation.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/DenseMap.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/DenseMapInfo.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/ADT/STLExtras.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/tools/clang/lib/AST/../../include/clang/Basic/<a class="code" href="namespaceclang.html#a78aadfeaf316ded55fdd2d1a9c8815b6" title="Describes the different kinds of linkage (C++ [basic.link], C99 6.2.2) that an entity may have...">Linkage</a>.h:</div>
+<div class="line"><a name="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/AST/../../include/clang/Basic/Specifiers.h:</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> </div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> /home/tstellar/llvm/include/llvm/Support/PrettyStackTrace.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/AST/../../include/clang/AST/DeclNodes.inc:</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/AST/../../include/clang/AST/ExternalASTSource.h:</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> </div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/CharUnits.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/AST/../../include/clang/AST/Redeclarable.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/AST/../../include/clang/AST/Type.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/AST/../../include/clang/AST/NestedNameSpecifier.h:</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> </div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> /home/tstellar/llvm/include/llvm/ADT/FoldingSet.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/AST/../../include/clang/AST/TemplateName.h:</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/<a class="code" href="namespaceclang.html#af8a91eed04532d5da41ef08e7c9c081e" title="The various types of exception specifications that exist in C++11.">ExceptionSpecificationType</a>.h:</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> </div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/Basic/<a class="code" href="namespaceclang.html#afbab15cd4aa598c4e6d9192f7ac4f102" title="Describes the different kinds of visibility that a declaration may have.">Visibility</a>.h:</div>
+<div class="line"><a name="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/Optional.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/Twine.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/Support/ErrorHandling.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/AST/../../include/clang/AST/TypeNodes.def:</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> </div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> /home/tstellar/llvm/tools/clang/lib/AST/../../include/clang/AST/BuiltinTypes.def:</div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> </div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> /home/tstellar/llvm/include/llvm/Support/raw_ostream.h:</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> </div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> /home/tstellar/llvm/include/llvm/Support/FileSystem.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/OwningPtr.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/Support/TimeValue.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/system_error.h:</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/StmtIterator_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/StmtIterator_8h_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/StmtIterator_8h_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/StmtIterator_8h_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,301 @@
+<!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: StmtIterator.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">StmtIterator.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="StmtIterator_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">//===--- StmtIterator.h - Iterators for 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 StmtIterator and ConstStmtIterator 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_STMT_ITR_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_STMT_ITR_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 "llvm/Support/DataTypes.h"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "llvm/Support/Compiler.h"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <cassert></span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <cstddef></span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <iterator></span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <utility></span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">namespace </span>clang {</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">class </span>Stmt;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">class </span>Decl;</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">class </span>VariableArrayType;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"><a class="code" href="classclang_1_1StmtIteratorBase.html"> 30</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1StmtIteratorBase.html">StmtIteratorBase</a> {</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00032"></a><span class="lineno"><a class="code" href="classclang_1_1StmtIteratorBase.html#a7fc916b4c81d2647f25750b166065d99a5a2bc9a2bbc6ea9e41a99a6dd062fd13"> 32</a></span> <span class="keyword">enum</span> { <a class="code" href="classclang_1_1StmtIteratorBase.html#a7fc916b4c81d2647f25750b166065d99a5a2bc9a2bbc6ea9e41a99a6dd062fd13">StmtMode</a> = 0x0, <a class="code" href="classclang_1_1StmtIteratorBase.html#a7fc916b4c81d2647f25750b166065d99ac7c12b75407b41e1ee49553c503ba9f5">SizeOfTypeVAMode</a> = 0x1, <a class="code" href="classclang_1_1StmtIteratorBase.html#a7fc916b4c81d2647f25750b166065d99a639fd25bbe9e36261e682188606e8dc5">DeclGroupMode</a> = 0x2,</div>
+<div class="line"><a name="l00033"></a><span class="lineno"><a class="code" href="classclang_1_1StmtIteratorBase.html#a7fc916b4c81d2647f25750b166065d99a7b1bab0652b6c35b421841cf1a1210eb"> 33</a></span> <a class="code" href="classclang_1_1StmtIteratorBase.html#a7fc916b4c81d2647f25750b166065d99a7b1bab0652b6c35b421841cf1a1210eb">Flags</a> = 0x3 };</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
+<div class="line"><a name="l00035"></a><span class="lineno"><a class="code" href="classclang_1_1StmtIteratorBase.html#a1f63c0a58953af29bff02fee1ff790a9"> 35</a></span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> **<a class="code" href="classclang_1_1StmtIteratorBase.html#a1f63c0a58953af29bff02fee1ff790a9">stmt</a>;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"><a class="code" href="classclang_1_1StmtIteratorBase.html#a2faead920bbe732b0920fad80578ab6f"> 36</a></span> <a class="code" href="classclang_1_1Decl.html">Decl</a> **<a class="code" href="classclang_1_1StmtIteratorBase.html#a2faead920bbe732b0920fad80578ab6f">DGI</a>;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"><a class="code" href="classclang_1_1StmtIteratorBase.html#a43338e8466080d4561e227faf988d153"> 37</a></span> uintptr_t <a class="code" href="classclang_1_1StmtIteratorBase.html#a43338e8466080d4561e227faf988d153">RawVAPtr</a>;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"><a class="code" href="classclang_1_1StmtIteratorBase.html#abc09d27ca682c7d67caf0505cd588664"> 38</a></span> <a class="code" href="classclang_1_1Decl.html">Decl</a> **<a class="code" href="classclang_1_1StmtIteratorBase.html#abc09d27ca682c7d67caf0505cd588664">DGE</a>;</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div>
+<div class="line"><a name="l00040"></a><span class="lineno"><a class="code" href="classclang_1_1StmtIteratorBase.html#a0b48c72be88b5c36596ecef9a82a9d52"> 40</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1StmtIteratorBase.html#a0b48c72be88b5c36596ecef9a82a9d52">inDeclGroup</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keywordflow">return</span> (<a class="code" href="classclang_1_1StmtIteratorBase.html#a43338e8466080d4561e227faf988d153">RawVAPtr</a> & <a class="code" href="classclang_1_1StmtIteratorBase.html#a7fc916b4c81d2647f25750b166065d99a7b1bab0652b6c35b421841cf1a1210eb">Flags</a>) == <a class="code" href="classclang_1_1StmtIteratorBase.html#a7fc916b4c81d2647f25750b166065d99a639fd25bbe9e36261e682188606e8dc5">DeclGroupMode</a>;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> }</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div>
+<div class="line"><a name="l00044"></a><span class="lineno"><a class="code" href="classclang_1_1StmtIteratorBase.html#a0706ace5d5bb7364c7f5f28631af8c37"> 44</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1StmtIteratorBase.html#a0706ace5d5bb7364c7f5f28631af8c37">inSizeOfTypeVA</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keywordflow">return</span> (<a class="code" href="classclang_1_1StmtIteratorBase.html#a43338e8466080d4561e227faf988d153">RawVAPtr</a> & <a class="code" href="classclang_1_1StmtIteratorBase.html#a7fc916b4c81d2647f25750b166065d99a7b1bab0652b6c35b421841cf1a1210eb">Flags</a>) == <a class="code" href="classclang_1_1StmtIteratorBase.html#a7fc916b4c81d2647f25750b166065d99ac7c12b75407b41e1ee49553c503ba9f5">SizeOfTypeVAMode</a>;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> }</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
+<div class="line"><a name="l00048"></a><span class="lineno"><a class="code" href="classclang_1_1StmtIteratorBase.html#af721b9d2c065cd69dbc5b91d3c3c89ec"> 48</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1StmtIteratorBase.html#af721b9d2c065cd69dbc5b91d3c3c89ec">inStmt</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keywordflow">return</span> (<a class="code" href="classclang_1_1StmtIteratorBase.html#a43338e8466080d4561e227faf988d153">RawVAPtr</a> & <a class="code" href="classclang_1_1StmtIteratorBase.html#a7fc916b4c81d2647f25750b166065d99a7b1bab0652b6c35b421841cf1a1210eb">Flags</a>) == <a class="code" href="classclang_1_1StmtIteratorBase.html#a7fc916b4c81d2647f25750b166065d99a5a2bc9a2bbc6ea9e41a99a6dd062fd13">StmtMode</a>;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> }</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div>
+<div class="line"><a name="l00052"></a><span class="lineno"><a class="code" href="classclang_1_1StmtIteratorBase.html#a8c869d3cc772647ce9e8f27aa94bab6a"> 52</a></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1VariableArrayType.html">VariableArrayType</a> *<a class="code" href="classclang_1_1StmtIteratorBase.html#a8c869d3cc772647ce9e8f27aa94bab6a">getVAPtr</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast<</span><span class="keyword">const </span><a class="code" href="classclang_1_1VariableArrayType.html">VariableArrayType</a>*<span class="keyword">></span>(<a class="code" href="classclang_1_1StmtIteratorBase.html#a43338e8466080d4561e227faf988d153">RawVAPtr</a> & ~<a class="code" href="classclang_1_1StmtIteratorBase.html#a7fc916b4c81d2647f25750b166065d99a7b1bab0652b6c35b421841cf1a1210eb">Flags</a>);</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> </div>
+<div class="line"><a name="l00056"></a><span class="lineno"><a class="code" href="classclang_1_1StmtIteratorBase.html#a59ade584d263fbb225264a2fe387f6b7"> 56</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1StmtIteratorBase.html#a59ade584d263fbb225264a2fe387f6b7">setVAPtr</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1VariableArrayType.html">VariableArrayType</a> *<a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a>) {</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> assert (<a class="code" href="classclang_1_1StmtIteratorBase.html#a0b48c72be88b5c36596ecef9a82a9d52">inDeclGroup</a>() || <a class="code" href="classclang_1_1StmtIteratorBase.html#a0706ace5d5bb7364c7f5f28631af8c37">inSizeOfTypeVA</a>());</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <a class="code" href="classclang_1_1StmtIteratorBase.html#a43338e8466080d4561e227faf988d153">RawVAPtr</a> = <span class="keyword">reinterpret_cast<</span>uintptr_t<span class="keyword">></span>(<a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a>) | (<a class="code" href="classclang_1_1StmtIteratorBase.html#a43338e8466080d4561e227faf988d153">RawVAPtr</a> & <a class="code" href="classclang_1_1StmtIteratorBase.html#a7fc916b4c81d2647f25750b166065d99a7b1bab0652b6c35b421841cf1a1210eb">Flags</a>);</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> }</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1StmtIteratorBase.html#a176a71a233f5b472f56403f385b7928b">NextDecl</a>(<span class="keywordtype">bool</span> ImmediateAdvance = <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1StmtIteratorBase.html#a52fba4dd18f513521e57ae3da092a6d2">HandleDecl</a>(<a class="code" href="classclang_1_1Decl.html">Decl</a>* D);</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1StmtIteratorBase.html#a708eff8ffb1dc8424908a81e6ea01437">NextVA</a>();</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a>*& <a class="code" href="classclang_1_1StmtIteratorBase.html#ad2e2dbb3dd20779aabf4674f24353a0f">GetDeclExpr</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div>
+<div class="line"><a name="l00067"></a><span class="lineno"><a class="code" href="classclang_1_1StmtIteratorBase.html#af2f9df218f2e22aa4abc97466822d8ab"> 67</a></span> <a class="code" href="classclang_1_1StmtIteratorBase.html#af2f9df218f2e22aa4abc97466822d8ab">StmtIteratorBase</a>(<a class="code" href="classclang_1_1Stmt.html">Stmt</a> **s) : <a class="code" href="classclang_1_1StmtIteratorBase.html#a1f63c0a58953af29bff02fee1ff790a9">stmt</a>(s), <a class="code" href="classclang_1_1StmtIteratorBase.html#a2faead920bbe732b0920fad80578ab6f">DGI</a>(0), <a class="code" href="classclang_1_1StmtIteratorBase.html#a43338e8466080d4561e227faf988d153">RawVAPtr</a>(0) {}</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <a class="code" href="classclang_1_1StmtIteratorBase.html#a86b7f5d2498385b880bd5ee23e3d02c8">StmtIteratorBase</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1VariableArrayType.html">VariableArrayType</a> *t);</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <a class="code" href="classclang_1_1StmtIteratorBase.html#a86b7f5d2498385b880bd5ee23e3d02c8">StmtIteratorBase</a>(<a class="code" href="classclang_1_1Decl.html">Decl</a> **dgi, <a class="code" href="classclang_1_1Decl.html">Decl</a> **dge);</div>
+<div class="line"><a name="l00070"></a><span class="lineno"><a class="code" href="classclang_1_1StmtIteratorBase.html#a86b7f5d2498385b880bd5ee23e3d02c8"> 70</a></span> <a class="code" href="classclang_1_1StmtIteratorBase.html#a86b7f5d2498385b880bd5ee23e3d02c8">StmtIteratorBase</a>() : <a class="code" href="classclang_1_1StmtIteratorBase.html#a1f63c0a58953af29bff02fee1ff790a9">stmt</a>(0), <a class="code" href="classclang_1_1StmtIteratorBase.html#a2faead920bbe732b0920fad80578ab6f">DGI</a>(0), <a class="code" href="classclang_1_1StmtIteratorBase.html#a43338e8466080d4561e227faf988d153">RawVAPtr</a>(0) {}</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> };</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="keyword">template</span> <<span class="keyword">typename</span> DERIVED, <span class="keyword">typename</span> REFERENCE></div>
+<div class="line"><a name="l00075"></a><span class="lineno"><a class="code" href="classclang_1_1StmtIteratorImpl.html"> 75</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1StmtIteratorImpl.html">StmtIteratorImpl</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1StmtIteratorBase.html">StmtIteratorBase</a>,</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="keyword">public</span> std::iterator<std::forward_iterator_tag,</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> REFERENCE, ptrdiff_t,</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> REFERENCE, REFERENCE> {</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00080"></a><span class="lineno"><a class="code" href="classclang_1_1StmtIteratorImpl.html#acafffa1843e4f779ff9c93578838dbd9"> 80</a></span> <a class="code" href="classclang_1_1StmtIteratorImpl.html#acafffa1843e4f779ff9c93578838dbd9">StmtIteratorImpl</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1StmtIteratorBase.html">StmtIteratorBase</a>& RHS) : <a class="code" href="classclang_1_1StmtIteratorBase.html">StmtIteratorBase</a>(RHS) {}</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"><a class="code" href="classclang_1_1StmtIteratorImpl.html#af72bb172dd5059356101d575765060fc"> 82</a></span> <a class="code" href="classclang_1_1StmtIteratorImpl.html#af72bb172dd5059356101d575765060fc">StmtIteratorImpl</a>() {}</div>
+<div class="line"><a name="l00083"></a><span class="lineno"><a class="code" href="classclang_1_1StmtIteratorImpl.html#a44a610ca0ab7f117cf43b599c7db77aa"> 83</a></span> <a class="code" href="classclang_1_1StmtIteratorImpl.html#a44a610ca0ab7f117cf43b599c7db77aa">StmtIteratorImpl</a>(<a class="code" href="classclang_1_1Stmt.html">Stmt</a> **s) : <a class="code" href="classclang_1_1StmtIteratorBase.html">StmtIteratorBase</a>(s) {}</div>
+<div class="line"><a name="l00084"></a><span class="lineno"><a class="code" href="classclang_1_1StmtIteratorImpl.html#aed953d573d8a4509cc4b8818406bbc07"> 84</a></span> <a class="code" href="classclang_1_1StmtIteratorImpl.html#aed953d573d8a4509cc4b8818406bbc07">StmtIteratorImpl</a>(<a class="code" href="classclang_1_1Decl.html">Decl</a> **dgi, <a class="code" href="classclang_1_1Decl.html">Decl</a> **dge) : <a class="code" href="classclang_1_1StmtIteratorBase.html">StmtIteratorBase</a>(dgi, dge) {}</div>
+<div class="line"><a name="l00085"></a><span class="lineno"><a class="code" href="classclang_1_1StmtIteratorImpl.html#a4e1b47facee259e9544e58fd369501a2"> 85</a></span> <a class="code" href="classclang_1_1StmtIteratorImpl.html#a4e1b47facee259e9544e58fd369501a2">StmtIteratorImpl</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1VariableArrayType.html">VariableArrayType</a> *t) : <a class="code" href="classclang_1_1StmtIteratorBase.html">StmtIteratorBase</a>(t) {}</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div>
+<div class="line"><a name="l00087"></a><span class="lineno"><a class="code" href="classclang_1_1StmtIteratorImpl.html#a4dd35e01a3849184b963ecd7fed68c33"> 87</a></span> DERIVED& <a class="code" href="classclang_1_1StmtIteratorImpl.html#a4dd35e01a3849184b963ecd7fed68c33">operator++</a>() {</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1StmtIteratorBase.html#af721b9d2c065cd69dbc5b91d3c3c89ec">inStmt</a>())</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> ++<a class="code" href="classclang_1_1StmtIteratorBase.html#a1f63c0a58953af29bff02fee1ff790a9">stmt</a>;</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1StmtIteratorBase.html#a8c869d3cc772647ce9e8f27aa94bab6a">getVAPtr</a>())</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <a class="code" href="classclang_1_1StmtIteratorBase.html#a708eff8ffb1dc8424908a81e6ea01437">NextVA</a>();</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <a class="code" href="classclang_1_1StmtIteratorBase.html#a176a71a233f5b472f56403f385b7928b">NextDecl</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> <span class="keywordflow">return</span> <span class="keyword">static_cast<</span>DERIVED&<span class="keyword">></span>(*this);</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> }</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div>
+<div class="line"><a name="l00098"></a><span class="lineno"><a class="code" href="classclang_1_1StmtIteratorImpl.html#af50b69c2eaa2e3a1f6d626a2057b1afa"> 98</a></span> DERIVED <a class="code" href="classclang_1_1StmtIteratorImpl.html#af50b69c2eaa2e3a1f6d626a2057b1afa">operator++</a>(<span class="keywordtype">int</span>) {</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> DERIVED tmp = <span class="keyword">static_cast<</span>DERIVED&<span class="keyword">></span>(*this);</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <a class="code" href="classclang_1_1StmtIteratorImpl.html#a4dd35e01a3849184b963ecd7fed68c33">operator++</a>();</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="keywordflow">return</span> tmp;</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> }</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div>
+<div class="line"><a name="l00104"></a><span class="lineno"><a class="code" href="classclang_1_1StmtIteratorImpl.html#a9248e7e5b5df37ff8cee8739b8f4838e"> 104</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1StmtIteratorImpl.html#a9248e7e5b5df37ff8cee8739b8f4838e">operator==</a>(<span class="keyword">const</span> DERIVED& RHS)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1StmtIteratorBase.html#a1f63c0a58953af29bff02fee1ff790a9">stmt</a> == RHS.stmt && <a class="code" href="classclang_1_1StmtIteratorBase.html#a2faead920bbe732b0920fad80578ab6f">DGI</a> == RHS.DGI && <a class="code" href="classclang_1_1StmtIteratorBase.html#a43338e8466080d4561e227faf988d153">RawVAPtr</a> == RHS.RawVAPtr;</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> }</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div>
+<div class="line"><a name="l00108"></a><span class="lineno"><a class="code" href="classclang_1_1StmtIteratorImpl.html#a7ca762d868a2bc2ccf2a9802c7751e84"> 108</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1StmtIteratorImpl.html#a7ca762d868a2bc2ccf2a9802c7751e84">operator!=</a>(<span class="keyword">const</span> DERIVED& RHS)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1StmtIteratorBase.html#a1f63c0a58953af29bff02fee1ff790a9">stmt</a> != RHS.stmt || <a class="code" href="classclang_1_1StmtIteratorBase.html#a2faead920bbe732b0920fad80578ab6f">DGI</a> != RHS.DGI || <a class="code" href="classclang_1_1StmtIteratorBase.html#a43338e8466080d4561e227faf988d153">RawVAPtr</a> != RHS.RawVAPtr;</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> }</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div>
+<div class="line"><a name="l00112"></a><span class="lineno"><a class="code" href="classclang_1_1StmtIteratorImpl.html#a9bc926527304a3df5235a803b6079f15"> 112</a></span> REFERENCE <a class="code" href="classclang_1_1StmtIteratorImpl.html#a9bc926527304a3df5235a803b6079f15">operator*</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1StmtIteratorBase.html#af721b9d2c065cd69dbc5b91d3c3c89ec">inStmt</a>() ? *<a class="code" href="classclang_1_1StmtIteratorBase.html#a1f63c0a58953af29bff02fee1ff790a9">stmt</a> : <a class="code" href="classclang_1_1StmtIteratorBase.html#ad2e2dbb3dd20779aabf4674f24353a0f">GetDeclExpr</a>();</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> }</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div>
+<div class="line"><a name="l00116"></a><span class="lineno"><a class="code" href="classclang_1_1StmtIteratorImpl.html#a87438048717495f9f68013cd847f5e2e"> 116</a></span> REFERENCE <a class="code" href="classclang_1_1StmtIteratorImpl.html#a87438048717495f9f68013cd847f5e2e">operator-></a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classclang_1_1StmtIteratorImpl.html#a9bc926527304a3df5235a803b6079f15">operator*</a>(); }</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="structclang_1_1StmtIterator.html"> 119</a></span> <span class="keyword">struct </span><a class="code" href="structclang_1_1StmtIterator.html">StmtIterator</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1StmtIteratorImpl.html">StmtIteratorImpl</a><StmtIterator,Stmt*&> {</div>
+<div class="line"><a name="l00120"></a><span class="lineno"><a class="code" href="structclang_1_1StmtIterator.html#af0351a499a7c789b803d516e34569eb5"> 120</a></span> <span class="keyword">explicit</span> <a class="code" href="structclang_1_1StmtIterator.html#af0351a499a7c789b803d516e34569eb5">StmtIterator</a>() : <a class="code" href="classclang_1_1StmtIteratorImpl.html">StmtIteratorImpl</a><<a class="code" href="structclang_1_1StmtIterator.html">StmtIterator</a>,<a class="code" href="classclang_1_1Stmt.html">Stmt</a>*&>() {}</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div>
+<div class="line"><a name="l00122"></a><span class="lineno"><a class="code" href="structclang_1_1StmtIterator.html#a189212df558cc9ba04fbdeb6a61db94f"> 122</a></span> <a class="code" href="structclang_1_1StmtIterator.html#a189212df558cc9ba04fbdeb6a61db94f">StmtIterator</a>(<a class="code" href="classclang_1_1Stmt.html">Stmt</a>** <a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>) : <a class="code" href="classclang_1_1StmtIteratorImpl.html">StmtIteratorImpl</a><<a class="code" href="structclang_1_1StmtIterator.html">StmtIterator</a>,<a class="code" href="classclang_1_1Stmt.html">Stmt</a>*&>(S) {}</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div>
+<div class="line"><a name="l00124"></a><span class="lineno"><a class="code" href="structclang_1_1StmtIterator.html#a0efcd5b9285af3e4089ccfc21ae0aa3e"> 124</a></span> <a class="code" href="structclang_1_1StmtIterator.html#af0351a499a7c789b803d516e34569eb5">StmtIterator</a>(<a class="code" href="classclang_1_1Decl.html">Decl</a>** dgi, <a class="code" href="classclang_1_1Decl.html">Decl</a>** dge)</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> : <a class="code" href="classclang_1_1StmtIteratorImpl.html">StmtIteratorImpl</a><<a class="code" href="structclang_1_1StmtIterator.html">StmtIterator</a>,<a class="code" href="classclang_1_1Stmt.html">Stmt</a>*&>(dgi, dge) {}</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div>
+<div class="line"><a name="l00127"></a><span class="lineno"><a class="code" href="structclang_1_1StmtIterator.html#ac78eadd1fc7eafca3b76cfd99b11707f"> 127</a></span> <a class="code" href="structclang_1_1StmtIterator.html#af0351a499a7c789b803d516e34569eb5">StmtIterator</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1VariableArrayType.html">VariableArrayType</a> *t)</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> : <a class="code" href="classclang_1_1StmtIteratorImpl.html">StmtIteratorImpl</a><<a class="code" href="structclang_1_1StmtIterator.html">StmtIterator</a>,<a class="code" href="classclang_1_1Stmt.html">Stmt</a>*&>(t) {}</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> };</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> </div>
+<div class="line"><a name="l00131"></a><span class="lineno"><a class="code" href="structclang_1_1ConstStmtIterator.html"> 131</a></span> <span class="keyword">struct </span><a class="code" href="structclang_1_1ConstStmtIterator.html">ConstStmtIterator</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1StmtIteratorImpl.html">StmtIteratorImpl</a><ConstStmtIterator,</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> const Stmt*> {</div>
+<div class="line"><a name="l00133"></a><span class="lineno"><a class="code" href="structclang_1_1ConstStmtIterator.html#a41f34bd9aaaa0d9ade54948ae2682744"> 133</a></span> <span class="keyword">explicit</span> <a class="code" href="structclang_1_1ConstStmtIterator.html#a41f34bd9aaaa0d9ade54948ae2682744">ConstStmtIterator</a>() :</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <a class="code" href="classclang_1_1StmtIteratorImpl.html">StmtIteratorImpl</a><<a class="code" href="structclang_1_1ConstStmtIterator.html">ConstStmtIterator</a>,const <a class="code" href="classclang_1_1Stmt.html">Stmt</a>*>() {}</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div>
+<div class="line"><a name="l00136"></a><span class="lineno"><a class="code" href="structclang_1_1ConstStmtIterator.html#a0b993dd98069d1b897fabc24062be391"> 136</a></span> <a class="code" href="structclang_1_1ConstStmtIterator.html#a41f34bd9aaaa0d9ade54948ae2682744">ConstStmtIterator</a>(<span class="keyword">const</span> <a class="code" href="structclang_1_1StmtIterator.html">StmtIterator</a>& RHS) :</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <a class="code" href="classclang_1_1StmtIteratorImpl.html">StmtIteratorImpl</a><<a class="code" href="structclang_1_1ConstStmtIterator.html">ConstStmtIterator</a>,const <a class="code" href="classclang_1_1Stmt.html">Stmt</a>*>(RHS) {}</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> };</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="comment"></span></div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="comment">/// A range of statement iterators.</span></div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="comment">/// This class provides some extra functionality beyond std::pair</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="comment">/// in order to allow the following idiom:</span></div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="comment">/// for (StmtRange range = stmt->children(); range; ++range)</span></div>
+<div class="line"><a name="l00145"></a><span class="lineno"><a class="code" href="structclang_1_1StmtRange.html"> 145</a></span> <span class="comment"></span><span class="keyword">struct </span><a class="code" href="structclang_1_1StmtRange.html">StmtRange</a> : std::pair<StmtIterator,StmtIterator> {</div>
+<div class="line"><a name="l00146"></a><span class="lineno"><a class="code" href="structclang_1_1StmtRange.html#ad096e2d9072dad049b90bbc59d95566c"> 146</a></span> <a class="code" href="structclang_1_1StmtRange.html#ad096e2d9072dad049b90bbc59d95566c">StmtRange</a>() {}</div>
+<div class="line"><a name="l00147"></a><span class="lineno"><a class="code" href="structclang_1_1StmtRange.html#a32ee1ac9284bfac13fe2a63b1c62934f"> 147</a></span> <a class="code" href="structclang_1_1StmtRange.html#ad096e2d9072dad049b90bbc59d95566c">StmtRange</a>(<span class="keyword">const</span> <a class="code" href="structclang_1_1StmtIterator.html">StmtIterator</a> &<a class="code" href="structclang_1_1StmtRange.html#a3bd20644fa5c35bc02086c1a113d3944">begin</a>, <span class="keyword">const</span> <a class="code" href="structclang_1_1StmtIterator.html">StmtIterator</a> &<a class="code" href="structclang_1_1StmtRange.html#a4598425da558ca782c7a43a86ca3b4c9">end</a>)</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> : std::pair<<a class="code" href="structclang_1_1StmtIterator.html">StmtIterator</a>,<a class="code" href="structclang_1_1StmtIterator.html">StmtIterator</a>>(begin, end) {}</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="structclang_1_1StmtRange.html#ac8ccd43e643e90f46b8a912f4a5e9117"> 150</a></span> <span class="keywordtype">bool</span> <a class="code" href="structclang_1_1StmtRange.html#ac8ccd43e643e90f46b8a912f4a5e9117">empty</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> first == second; }</div>
+<div class="line"><a name="l00151"></a><span class="lineno"><a class="code" href="structclang_1_1StmtRange.html#ad6f62424c74df516b5263e849697c432"> 151</a></span> LLVM_EXPLICIT <span class="keyword">operator</span> <a class="code" href="stdbool_8h.html#abb452686968e48b67397da5f97445f5b">bool</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> !<a class="code" href="structclang_1_1StmtRange.html#ac8ccd43e643e90f46b8a912f4a5e9117">empty</a>(); }</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> </div>
+<div class="line"><a name="l00153"></a><span class="lineno"><a class="code" href="structclang_1_1StmtRange.html#afb7762cd7f2decd99af2c848ec8a9971"> 153</a></span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *<a class="code" href="structclang_1_1StmtRange.html#afb7762cd7f2decd99af2c848ec8a9971">operator-></a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> first.operator->(); }</div>
+<div class="line"><a name="l00154"></a><span class="lineno"><a class="code" href="structclang_1_1StmtRange.html#a4e32696dd21f547eda0d3d4a3135599d"> 154</a></span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *&<a class="code" href="structclang_1_1StmtRange.html#a4e32696dd21f547eda0d3d4a3135599d">operator*</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> first.operator*(); }</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div>
+<div class="line"><a name="l00156"></a><span class="lineno"><a class="code" href="structclang_1_1StmtRange.html#a5ffa1e0f6763690f780b1bf82db9e73c"> 156</a></span> <a class="code" href="structclang_1_1StmtRange.html">StmtRange</a> &<a class="code" href="structclang_1_1StmtRange.html#a5ffa1e0f6763690f780b1bf82db9e73c">operator++</a>() {</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> assert(!<a class="code" href="structclang_1_1StmtRange.html#ac8ccd43e643e90f46b8a912f4a5e9117">empty</a>() && <span class="stringliteral">"incrementing on empty range"</span>);</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> ++first;</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="keywordflow">return</span> *<span class="keyword">this</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> </div>
+<div class="line"><a name="l00162"></a><span class="lineno"><a class="code" href="structclang_1_1StmtRange.html#a3f90f5f57473eb536eed798bba3feb9d"> 162</a></span> <a class="code" href="structclang_1_1StmtRange.html">StmtRange</a> <a class="code" href="structclang_1_1StmtRange.html#a3f90f5f57473eb536eed798bba3feb9d">operator++</a>(<span class="keywordtype">int</span>) {</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> assert(!<a class="code" href="structclang_1_1StmtRange.html#ac8ccd43e643e90f46b8a912f4a5e9117">empty</a>() && <span class="stringliteral">"incrementing on empty range"</span>);</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <a class="code" href="structclang_1_1StmtRange.html">StmtRange</a> copy = *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> ++first;</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="keywordflow">return</span> copy;</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> </div>
+<div class="line"><a name="l00169"></a><span class="lineno"><a class="code" href="structclang_1_1StmtRange.html#a3bd20644fa5c35bc02086c1a113d3944"> 169</a></span> <span class="keyword">friend</span> <span class="keyword">const</span> <a class="code" href="structclang_1_1StmtIterator.html">StmtIterator</a> &<a class="code" href="structclang_1_1StmtRange.html#a3bd20644fa5c35bc02086c1a113d3944">begin</a>(<span class="keyword">const</span> <a class="code" href="structclang_1_1StmtRange.html">StmtRange</a> &range) {</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="keywordflow">return</span> range.first;</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> }</div>
+<div class="line"><a name="l00172"></a><span class="lineno"><a class="code" href="structclang_1_1StmtRange.html#a4598425da558ca782c7a43a86ca3b4c9"> 172</a></span> <span class="keyword">friend</span> <span class="keyword">const</span> <a class="code" href="structclang_1_1StmtIterator.html">StmtIterator</a> &<a class="code" href="structclang_1_1StmtRange.html#a4598425da558ca782c7a43a86ca3b4c9">end</a>(<span class="keyword">const</span> <a class="code" href="structclang_1_1StmtRange.html">StmtRange</a> &range) {</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="keywordflow">return</span> range.second;</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> };</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">/// A range of const statement iterators.</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="comment">/// This class provides some extra functionality beyond std::pair</span></div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="comment">/// in order to allow the following idiom:</span></div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="comment">/// for (ConstStmtRange range = stmt->children(); range; ++range)</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno"><a class="code" href="structclang_1_1ConstStmtRange.html"> 182</a></span> <span class="comment"></span><span class="keyword">struct </span><a class="code" href="structclang_1_1ConstStmtRange.html">ConstStmtRange</a> : std::pair<ConstStmtIterator,ConstStmtIterator> {</div>
+<div class="line"><a name="l00183"></a><span class="lineno"><a class="code" href="structclang_1_1ConstStmtRange.html#a0566d943a737b83ad25ed52a8b5b47e2"> 183</a></span> <a class="code" href="structclang_1_1ConstStmtRange.html#a0566d943a737b83ad25ed52a8b5b47e2">ConstStmtRange</a>() {}</div>
+<div class="line"><a name="l00184"></a><span class="lineno"><a class="code" href="structclang_1_1ConstStmtRange.html#ac94b7b623744f169c54079a1c50a2359"> 184</a></span> <a class="code" href="structclang_1_1ConstStmtRange.html#a0566d943a737b83ad25ed52a8b5b47e2">ConstStmtRange</a>(<span class="keyword">const</span> <a class="code" href="structclang_1_1ConstStmtIterator.html">ConstStmtIterator</a> &<a class="code" href="structclang_1_1ConstStmtRange.html#a2db5c774ca19bd87bc0689352f7b693b">begin</a>,</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="keyword">const</span> <a class="code" href="structclang_1_1ConstStmtIterator.html">ConstStmtIterator</a> &<a class="code" href="structclang_1_1ConstStmtRange.html#a9b8244526713ac8ef5d15977fa495d33">end</a>)</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> : std::pair<<a class="code" href="structclang_1_1ConstStmtIterator.html">ConstStmtIterator</a>,<a class="code" href="structclang_1_1ConstStmtIterator.html">ConstStmtIterator</a>>(begin, end) {}</div>
+<div class="line"><a name="l00187"></a><span class="lineno"><a class="code" href="structclang_1_1ConstStmtRange.html#aa36ba69643ed4c10ddc9969b4c32824e"> 187</a></span> <a class="code" href="structclang_1_1ConstStmtRange.html#a0566d943a737b83ad25ed52a8b5b47e2">ConstStmtRange</a>(<span class="keyword">const</span> <a class="code" href="structclang_1_1StmtRange.html">StmtRange</a> &range)</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> : std::pair<<a class="code" href="structclang_1_1ConstStmtIterator.html">ConstStmtIterator</a>,<a class="code" href="structclang_1_1ConstStmtIterator.html">ConstStmtIterator</a>>(range.first, range.second)</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> {}</div>
+<div class="line"><a name="l00190"></a><span class="lineno"><a class="code" href="structclang_1_1ConstStmtRange.html#a922d0047559a052b313c1d18a4e9cd20"> 190</a></span> <a class="code" href="structclang_1_1ConstStmtRange.html#a0566d943a737b83ad25ed52a8b5b47e2">ConstStmtRange</a>(<span class="keyword">const</span> <a class="code" href="structclang_1_1StmtIterator.html">StmtIterator</a> &<a class="code" href="structclang_1_1ConstStmtRange.html#a2db5c774ca19bd87bc0689352f7b693b">begin</a>, <span class="keyword">const</span> <a class="code" href="structclang_1_1StmtIterator.html">StmtIterator</a> &<a class="code" href="structclang_1_1ConstStmtRange.html#a9b8244526713ac8ef5d15977fa495d33">end</a>)</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> : std::pair<<a class="code" href="structclang_1_1ConstStmtIterator.html">ConstStmtIterator</a>,<a class="code" href="structclang_1_1ConstStmtIterator.html">ConstStmtIterator</a>>(begin, end) {}</div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> </div>
+<div class="line"><a name="l00193"></a><span class="lineno"><a class="code" href="structclang_1_1ConstStmtRange.html#a32eebbc5c8baea315418c071d7812d0e"> 193</a></span> <span class="keywordtype">bool</span> <a class="code" href="structclang_1_1ConstStmtRange.html#a32eebbc5c8baea315418c071d7812d0e">empty</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> first == second; }</div>
+<div class="line"><a name="l00194"></a><span class="lineno"><a class="code" href="structclang_1_1ConstStmtRange.html#a06ef7c42c780fb498913bdb4dfbf00f8"> 194</a></span> LLVM_EXPLICIT <span class="keyword">operator</span> <a class="code" href="stdbool_8h.html#abb452686968e48b67397da5f97445f5b">bool</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> !<a class="code" href="structclang_1_1ConstStmtRange.html#a32eebbc5c8baea315418c071d7812d0e">empty</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"><a class="code" href="structclang_1_1ConstStmtRange.html#a941fdc97de854fe5ff1c23d0d4df5abe"> 196</a></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *<a class="code" href="structclang_1_1ConstStmtRange.html#a941fdc97de854fe5ff1c23d0d4df5abe">operator-></a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> first.operator->(); }</div>
+<div class="line"><a name="l00197"></a><span class="lineno"><a class="code" href="structclang_1_1ConstStmtRange.html#a100ceaa11a979686f738f2284e0a3133"> 197</a></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *<a class="code" href="structclang_1_1ConstStmtRange.html#a100ceaa11a979686f738f2284e0a3133">operator*</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> first.operator*(); }</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> </div>
+<div class="line"><a name="l00199"></a><span class="lineno"><a class="code" href="structclang_1_1ConstStmtRange.html#a5b867537bfb58b527c791f91a6caf306"> 199</a></span> <a class="code" href="structclang_1_1ConstStmtRange.html">ConstStmtRange</a> &<a class="code" href="structclang_1_1ConstStmtRange.html#a5b867537bfb58b527c791f91a6caf306">operator++</a>() {</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> assert(!<a class="code" href="structclang_1_1ConstStmtRange.html#a32eebbc5c8baea315418c071d7812d0e">empty</a>() && <span class="stringliteral">"incrementing on empty range"</span>);</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> ++first;</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> }</div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> </div>
+<div class="line"><a name="l00205"></a><span class="lineno"><a class="code" href="structclang_1_1ConstStmtRange.html#a1c3bc2c0cba243e4c7b9b55e55975f5c"> 205</a></span> <a class="code" href="structclang_1_1ConstStmtRange.html">ConstStmtRange</a> <a class="code" href="structclang_1_1ConstStmtRange.html#a1c3bc2c0cba243e4c7b9b55e55975f5c">operator++</a>(<span class="keywordtype">int</span>) {</div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> assert(!<a class="code" href="structclang_1_1ConstStmtRange.html#a32eebbc5c8baea315418c071d7812d0e">empty</a>() && <span class="stringliteral">"incrementing on empty range"</span>);</div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <a class="code" href="structclang_1_1ConstStmtRange.html">ConstStmtRange</a> copy = *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> ++first;</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="keywordflow">return</span> copy;</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> </div>
+<div class="line"><a name="l00212"></a><span class="lineno"><a class="code" href="structclang_1_1ConstStmtRange.html#a2db5c774ca19bd87bc0689352f7b693b"> 212</a></span> <span class="keyword">friend</span> <span class="keyword">const</span> <a class="code" href="structclang_1_1ConstStmtIterator.html">ConstStmtIterator</a> &<a class="code" href="structclang_1_1ConstStmtRange.html#a2db5c774ca19bd87bc0689352f7b693b">begin</a>(<span class="keyword">const</span> <a class="code" href="structclang_1_1ConstStmtRange.html">ConstStmtRange</a> &range) {</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="keywordflow">return</span> range.first;</div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> }</div>
+<div class="line"><a name="l00215"></a><span class="lineno"><a class="code" href="structclang_1_1ConstStmtRange.html#a9b8244526713ac8ef5d15977fa495d33"> 215</a></span> <span class="keyword">friend</span> <span class="keyword">const</span> <a class="code" href="structclang_1_1ConstStmtIterator.html">ConstStmtIterator</a> &<a class="code" href="structclang_1_1ConstStmtRange.html#a9b8244526713ac8ef5d15977fa495d33">end</a>(<span class="keyword">const</span> <a class="code" href="structclang_1_1ConstStmtRange.html">ConstStmtRange</a> &range) {</div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <span class="keywordflow">return</span> range.second;</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> }</div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> };</div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> </div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> } <span class="comment">// end namespace clang</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="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>
More information about the llvm-commits
mailing list