[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/MemRegion_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/MemRegion_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/MemRegion_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/MemRegion_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,1583 @@
+<!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: MemRegion.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_8c061bf4f1cf580e717ceaf4321c4465.html">Core</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">MemRegion.cpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="MemRegion_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">//== MemRegion.cpp - Abstract memory regions for static analysis --*- 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 MemRegion and its subclasses. MemRegion defines a</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// partially-typed abstraction of memory useful for path-sensitive dataflow</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">// analyses.</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></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">#include "<a class="code" href="MemRegion_8h.html">clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h</a>"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "<a class="code" href="Attr_8h.html">clang/AST/Attr.h</a>"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "<a class="code" href="CharUnits_8h.html">clang/AST/CharUnits.h</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "<a class="code" href="DeclObjC_8h.html">clang/AST/DeclObjC.h</a>"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "<a class="code" href="RecordLayout_8h.html">clang/AST/RecordLayout.h</a>"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include "<a class="code" href="AnalysisContext_8h.html">clang/Analysis/AnalysisContext.h</a>"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include "<a class="code" href="BumpVector_8h.html">clang/Analysis/Support/BumpVector.h</a>"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</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="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include "<a class="code" href="SValBuilder_8h.html">clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h</a>"</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include "llvm/Support/raw_ostream.h"</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">using namespace </span>clang;</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">using namespace </span>ento;</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="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment">// MemRegion Construction.</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> </div>
+<div class="line"><a name="l00034"></a><span class="lineno"><a class="code" href="structMemRegionManagerTrait.html"> 34</a></span> <span class="keyword">template</span><<span class="keyword">typename</span> RegionTy> <span class="keyword">struct </span><a class="code" href="structMemRegionManagerTrait.html">MemRegionManagerTrait</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">template</span> <<span class="keyword">typename</span> RegionTy, <span class="keyword">typename</span> A1></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> RegionTy* MemRegionManager::getRegion(<span class="keyword">const</span> A1 a1) {</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">const</span> <span class="keyword">typename</span> <a class="code" href="structMemRegionManagerTrait.html">MemRegionManagerTrait<RegionTy>::SuperRegionTy</a> *superRegion =</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <a class="code" href="structMemRegionManagerTrait.html">MemRegionManagerTrait<RegionTy>::getSuperRegion</a>(*<span class="keyword">this</span>, a1);</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> llvm::FoldingSetNodeID <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> RegionTy::ProfileRegion(ID, a1, superRegion);</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keywordtype">void</span> *InsertPos;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> RegionTy* R = cast_or_null<RegionTy>(Regions.FindNodeOrInsertPos(ID,</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> InsertPos));</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> <span class="keywordflow">if</span> (!R) {</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> R = (RegionTy*) A.Allocate<RegionTy>();</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">new</span> (R) RegionTy(a1, superRegion);</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> Regions.InsertNode(R, InsertPos);</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"> 54</span> <span class="keywordflow">return</span> R;</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> }</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">template</span> <<span class="keyword">typename</span> RegionTy, <span class="keyword">typename</span> A1></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> RegionTy* MemRegionManager::getSubRegion(<span class="keyword">const</span> A1 a1,</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</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> *superRegion) {</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> llvm::FoldingSetNodeID <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> RegionTy::ProfileRegion(ID, a1, superRegion);</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="keywordtype">void</span> *InsertPos;</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> RegionTy* R = cast_or_null<RegionTy>(Regions.FindNodeOrInsertPos(ID,</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> InsertPos));</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="keywordflow">if</span> (!R) {</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> R = (RegionTy*) A.Allocate<RegionTy>();</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">new</span> (R) RegionTy(a1, superRegion);</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> Regions.InsertNode(R, InsertPos);</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> </div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keywordflow">return</span> R;</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"> 75</span> <span class="keyword">template</span> <<span class="keyword">typename</span> RegionTy, <span class="keyword">typename</span> A1, <span class="keyword">typename</span> A2></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> RegionTy* MemRegionManager::getRegion(<span class="keyword">const</span> A1 a1, <span class="keyword">const</span> A2 a2) {</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> <span class="keyword">const</span> <span class="keyword">typename</span> <a class="code" href="structMemRegionManagerTrait.html">MemRegionManagerTrait<RegionTy>::SuperRegionTy</a> *superRegion =</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <a class="code" href="structMemRegionManagerTrait.html">MemRegionManagerTrait<RegionTy>::getSuperRegion</a>(*<span class="keyword">this</span>, a1, a2);</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> llvm::FoldingSetNodeID <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> RegionTy::ProfileRegion(ID, a1, a2, superRegion);</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="keywordtype">void</span> *InsertPos;</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> RegionTy* R = cast_or_null<RegionTy>(Regions.FindNodeOrInsertPos(ID,</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> InsertPos));</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">if</span> (!R) {</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> R = (RegionTy*) A.Allocate<RegionTy>();</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="keyword">new</span> (R) RegionTy(a1, a2, superRegion);</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> Regions.InsertNode(R, InsertPos);</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> </div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="keywordflow">return</span> R;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> }</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="keyword">template</span> <<span class="keyword">typename</span> RegionTy, <span class="keyword">typename</span> A1, <span class="keyword">typename</span> A2></div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> RegionTy* MemRegionManager::getSubRegion(<span class="keyword">const</span> A1 a1, <span class="keyword">const</span> A2 a2,</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</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> *superRegion) {</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> llvm::FoldingSetNodeID <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>;</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> RegionTy::ProfileRegion(ID, a1, a2, superRegion);</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="keywordtype">void</span> *InsertPos;</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> RegionTy* R = cast_or_null<RegionTy>(Regions.FindNodeOrInsertPos(ID,</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> InsertPos));</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="keywordflow">if</span> (!R) {</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> R = (RegionTy*) A.Allocate<RegionTy>();</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="keyword">new</span> (R) RegionTy(a1, a2, superRegion);</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> Regions.InsertNode(R, InsertPos);</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> }</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="keywordflow">return</span> R;</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"> 115</span> <span class="keyword">template</span> <<span class="keyword">typename</span> RegionTy, <span class="keyword">typename</span> A1, <span class="keyword">typename</span> A2, <span class="keyword">typename</span> A3></div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> RegionTy* MemRegionManager::getSubRegion(<span class="keyword">const</span> A1 a1, <span class="keyword">const</span> A2 a2, <span class="keyword">const</span> A3 a3,</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</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> *superRegion) {</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> llvm::FoldingSetNodeID <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>;</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> RegionTy::ProfileRegion(ID, a1, a2, a3, superRegion);</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="keywordtype">void</span> *InsertPos;</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> RegionTy* R = cast_or_null<RegionTy>(Regions.FindNodeOrInsertPos(ID,</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> InsertPos));</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="keywordflow">if</span> (!R) {</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> R = (RegionTy*) A.Allocate<RegionTy>();</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="keyword">new</span> (R) RegionTy(a1, a2, a3, superRegion);</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> Regions.InsertNode(R, InsertPos);</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"> 131</span> <span class="keywordflow">return</span> R;</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> }</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> </div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="comment">// Object destruction.</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div>
+<div class="line"><a name="l00138"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a679032340d6c529d8f2dcbcf1befd061"> 138</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a679032340d6c529d8f2dcbcf1befd061">MemRegion::~MemRegion</a>() {}</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> </div>
+<div class="line"><a name="l00140"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a81361df615f3b120c26aca72070d14e2"> 140</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a81361df615f3b120c26aca72070d14e2">MemRegionManager::~MemRegionManager</a>() {</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="comment">// All regions and their data are BumpPtrAllocated. No need to call</span></div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="comment">// their destructors.</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> }</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="comment">// Basic methods.</span></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> </div>
+<div class="line"><a name="l00149"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1SubRegion.html#ac873b579519262f574b4856b4e76f903"> 149</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1SubRegion.html#ac873b579519262f574b4856b4e76f903" title="Check if the region is a subregion of the given region.">SubRegion::isSubRegionOf</a>(<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)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</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 = <a class="code" href="classclang_1_1ento_1_1SubRegion.html#ada0aa8debb5fb41ca2c50ee2eb6c3ac1">getSuperRegion</a>();</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="keywordflow">while</span> (r != 0) {</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="keywordflow">if</span> (r == R)</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="keywordflow">return</span> <span class="keyword">true</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_1ento_1_1SubRegion.html">SubRegion</a>* sr = dyn_cast<SubRegion>(r))</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> r = sr->getSuperRegion();</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> }</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="keywordflow">return</span> <span class="keyword">false</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="classclang_1_1ento_1_1SubRegion.html#afff317d26de89f494f4572eeac283d9e"> 162</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html">MemRegionManager</a>* <a class="code" href="classclang_1_1ento_1_1SubRegion.html#afff317d26de89f494f4572eeac283d9e">SubRegion::getMemRegionManager</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1SubRegion.html">SubRegion</a>* r = <span class="keyword">this</span>;</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</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> *superRegion = r-><a class="code" href="classclang_1_1ento_1_1SubRegion.html#ada0aa8debb5fb41ca2c50ee2eb6c3ac1">getSuperRegion</a>();</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1SubRegion.html">SubRegion</a> *sr = dyn_cast<SubRegion>(superRegion)) {</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> r = sr;</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> }</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="keywordflow">return</span> superRegion-><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a42d5a4e9b920a91c18fb0e09306fd0e5">getMemRegionManager</a>();</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> } <span class="keywordflow">while</span> (1);</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> </div>
+<div class="line"><a name="l00174"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1VarRegion.html#a36ae6ac28457afacf9c45f72116ca3b2"> 174</a></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1StackFrameContext.html">StackFrameContext</a> *<a class="code" href="classclang_1_1ento_1_1VarRegion.html#a36ae6ac28457afacf9c45f72116ca3b2">VarRegion::getStackFrame</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1StackSpaceRegion.html">StackSpaceRegion</a> *SSR = dyn_cast<<a class="code" href="classclang_1_1ento_1_1StackSpaceRegion.html">StackSpaceRegion</a>>(<a class="code" href="classclang_1_1ento_1_1MemRegion.html#a4d2b2de69f0bb1c7254b4d0447bd275c">getMemorySpace</a>());</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="keywordflow">return</span> SSR ? SSR-><a class="code" href="classclang_1_1ento_1_1StackSpaceRegion.html#a3d380a72e4d0f2277653dfcc1b4e1724">getStackFrame</a>() : <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</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="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="comment">// Region extents.</span></div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> </div>
+<div class="line"><a name="l00183"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1TypedValueRegion.html#a34bcd0db290db518a5b75e442635261d"> 183</a></span> <a class="code" href="classclang_1_1ento_1_1DefinedOrUnknownSVal.html">DefinedOrUnknownSVal</a> <a class="code" href="classclang_1_1ento_1_1TypedValueRegion.html#a34bcd0db290db518a5b75e442635261d" title="getExtent - Returns the size of the region in bytes.">TypedValueRegion::getExtent</a>(<a class="code" href="classclang_1_1ento_1_1SValBuilder.html">SValBuilder</a> &svalBuilder)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</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 = svalBuilder.<a class="code" href="classclang_1_1ento_1_1SValBuilder.html#a34dd76f677ea014481a45f7ebeff6c04">getContext</a>();</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <a class="code" href="classclang_1_1QualType.html">QualType</a> T = <a class="code" href="classclang_1_1ento_1_1TypedValueRegion.html#a63d1ad571f5c6d8a1e8f3f8a264d3a4a">getDesugaredValueType</a>(Ctx);</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> <span class="keywordflow">if</span> (isa<VariableArrayType>(T))</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ento_1_1nonloc_1_1SymbolVal.html" title="Represents symbolic expression.">nonloc::SymbolVal</a>(svalBuilder.<a class="code" href="classclang_1_1ento_1_1SValBuilder.html#acc2441d4734f7b5d1bde2065918ef311">getSymbolManager</a>().<a class="code" href="classclang_1_1ento_1_1SymbolManager.html#a041fb992d328ba69e3c3daa9e8395a61">getExtentSymbol</a>(<span class="keyword">this</span>));</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="keywordflow">if</span> (T-><a class="code" href="classclang_1_1Type.html#a6d84e779575f1e510f7ddc98119662bd" title="Def If non-NULL, and the type refers to some kind of declaration that can be completed (such as a C s...">isIncompleteType</a>())</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ento_1_1UnknownVal.html">UnknownVal</a>();</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <a class="code" href="classclang_1_1CharUnits.html">CharUnits</a> size = Ctx.<a class="code" href="classclang_1_1ASTContext.html#ae8d8371f22bd850bced9b4b9ca848c4e" title="Return the size of the specified (complete) type T, in characters.">getTypeSizeInChars</a>(T);</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <a class="code" href="classclang_1_1QualType.html">QualType</a> sizeTy = svalBuilder.<a class="code" href="classclang_1_1ento_1_1SValBuilder.html#a7566d148f678ba0edb2026f0f1492bd9">getArrayIndexType</a>();</div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="keywordflow">return</span> svalBuilder.<a class="code" href="classclang_1_1ento_1_1SValBuilder.html#a64d6f6dbe80edaf522a08d9e29ed49ff">makeIntVal</a>(size.<a class="code" href="classclang_1_1CharUnits.html#a09546c4bc2fefb3cb4d964eb9f25d33a" title="getQuantity - Get the raw integer representation of this quantity.">getQuantity</a>(), sizeTy);</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_1ento_1_1FieldRegion.html#acc9d173aae4793f3e2f52b2e06d3974a"> 197</a></span> <a class="code" href="classclang_1_1ento_1_1DefinedOrUnknownSVal.html">DefinedOrUnknownSVal</a> <a class="code" href="classclang_1_1ento_1_1FieldRegion.html#acc9d173aae4793f3e2f52b2e06d3974a" title="getExtent - Returns the size of the region in bytes.">FieldRegion::getExtent</a>(<a class="code" href="classclang_1_1ento_1_1SValBuilder.html">SValBuilder</a> &svalBuilder)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> <span class="comment">// Force callers to deal with bitfields explicitly.</span></div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1ento_1_1FieldRegion.html#a558e24f4ebcc5ee30d7c5b97632c0cbd">getDecl</a>()->isBitField())</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ento_1_1UnknownVal.html">UnknownVal</a>();</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> <a class="code" href="classclang_1_1ento_1_1DefinedOrUnknownSVal.html">DefinedOrUnknownSVal</a> Extent = <a class="code" href="classclang_1_1ento_1_1TypedValueRegion.html#a34bcd0db290db518a5b75e442635261d" title="getExtent - Returns the size of the region in bytes.">DeclRegion::getExtent</a>(svalBuilder);</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> </div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="comment">// A zero-length array at the end of a struct often stands for dynamically-</span></div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="comment">// allocated extra memory.</span></div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> <span class="keywordflow">if</span> (Extent.<a class="code" href="classclang_1_1ento_1_1SVal.html#a39e08d242aab936652cc53b326cbcc04">isZeroConstant</a>()) {</div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <a class="code" href="classclang_1_1QualType.html">QualType</a> T = <a class="code" href="classclang_1_1ento_1_1TypedValueRegion.html#a63d1ad571f5c6d8a1e8f3f8a264d3a4a">getDesugaredValueType</a>(svalBuilder.<a class="code" href="classclang_1_1ento_1_1SValBuilder.html#a34dd76f677ea014481a45f7ebeff6c04">getContext</a>());</div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> </div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="keywordflow">if</span> (isa<ConstantArrayType>(T))</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ento_1_1UnknownVal.html">UnknownVal</a>();</div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> }</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> </div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="keywordflow">return</span> Extent;</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> </div>
+<div class="line"><a name="l00216"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1AllocaRegion.html#ad1e0830263e3d01ec5e49a68c50b7feb"> 216</a></span> <a class="code" href="classclang_1_1ento_1_1DefinedOrUnknownSVal.html">DefinedOrUnknownSVal</a> <a class="code" href="classclang_1_1ento_1_1AllocaRegion.html#ad1e0830263e3d01ec5e49a68c50b7feb" title="getExtent - Returns the size of the region in bytes.">AllocaRegion::getExtent</a>(<a class="code" href="classclang_1_1ento_1_1SValBuilder.html">SValBuilder</a> &svalBuilder)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ento_1_1nonloc_1_1SymbolVal.html" title="Represents symbolic expression.">nonloc::SymbolVal</a>(svalBuilder.<a class="code" href="classclang_1_1ento_1_1SValBuilder.html#acc2441d4734f7b5d1bde2065918ef311">getSymbolManager</a>().<a class="code" href="classclang_1_1ento_1_1SymbolManager.html#a041fb992d328ba69e3c3daa9e8395a61">getExtentSymbol</a>(<span class="keyword">this</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"><a class="code" href="classclang_1_1ento_1_1SymbolicRegion.html#a6a915356cca2477241cfc7bc3f07f101"> 220</a></span> <a class="code" href="classclang_1_1ento_1_1DefinedOrUnknownSVal.html">DefinedOrUnknownSVal</a> <a class="code" href="classclang_1_1ento_1_1SymbolicRegion.html#a6a915356cca2477241cfc7bc3f07f101" title="getExtent - Returns the size of the region in bytes.">SymbolicRegion::getExtent</a>(<a class="code" href="classclang_1_1ento_1_1SValBuilder.html">SValBuilder</a> &svalBuilder)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ento_1_1nonloc_1_1SymbolVal.html" title="Represents symbolic expression.">nonloc::SymbolVal</a>(svalBuilder.<a class="code" href="classclang_1_1ento_1_1SValBuilder.html#acc2441d4734f7b5d1bde2065918ef311">getSymbolManager</a>().<a class="code" href="classclang_1_1ento_1_1SymbolManager.html#a041fb992d328ba69e3c3daa9e8395a61">getExtentSymbol</a>(<span class="keyword">this</span>));</div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> }</div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> </div>
+<div class="line"><a name="l00224"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1StringRegion.html#ad760288aaef2e5d812db65e7a2bde3a7"> 224</a></span> <a class="code" href="classclang_1_1ento_1_1DefinedOrUnknownSVal.html">DefinedOrUnknownSVal</a> <a class="code" href="classclang_1_1ento_1_1StringRegion.html#ad760288aaef2e5d812db65e7a2bde3a7" title="getExtent - Returns the size of the region in bytes.">StringRegion::getExtent</a>(<a class="code" href="classclang_1_1ento_1_1SValBuilder.html">SValBuilder</a> &svalBuilder)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="keywordflow">return</span> svalBuilder.<a class="code" href="classclang_1_1ento_1_1SValBuilder.html#a64d6f6dbe80edaf522a08d9e29ed49ff">makeIntVal</a>(<a class="code" href="classclang_1_1ento_1_1StringRegion.html#a487671ace4db363223ed6af1e4f3f251">getStringLiteral</a>()->getByteLength()+1,</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> svalBuilder.<a class="code" href="classclang_1_1ento_1_1SValBuilder.html#a7566d148f678ba0edb2026f0f1492bd9">getArrayIndexType</a>());</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> </div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> ObjCIvarRegion::ObjCIvarRegion(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *ivd, <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>* sReg)</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> : <a class="code" href="classclang_1_1ento_1_1DeclRegion.html">DeclRegion</a>(ivd, sReg, ObjCIvarRegionKind) {}</div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> </div>
+<div class="line"><a name="l00232"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1ObjCIvarRegion.html#aeec7b5cfec77b01c6b6d10f874767a2c"> 232</a></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *<a class="code" href="classclang_1_1ento_1_1ObjCIvarRegion.html#aeec7b5cfec77b01c6b6d10f874767a2c">ObjCIvarRegion::getDecl</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> <span class="keywordflow">return</span> cast<ObjCIvarDecl>(<a class="code" href="classclang_1_1ento_1_1DeclRegion.html#a574619871d967803b0f8d9690c301e75">D</a>);</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> </div>
+<div class="line"><a name="l00236"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1ObjCIvarRegion.html#adde2e57155e0d836ae0416bbd1e2dd50"> 236</a></span> <a class="code" href="classclang_1_1QualType.html">QualType</a> <a class="code" href="classclang_1_1ento_1_1ObjCIvarRegion.html#adde2e57155e0d836ae0416bbd1e2dd50">ObjCIvarRegion::getValueType</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ento_1_1ObjCIvarRegion.html#aeec7b5cfec77b01c6b6d10f874767a2c">getDecl</a>()-><a class="code" href="classclang_1_1ValueDecl.html#aefa6d3327144aee23d2935f41d993484">getType</a>();</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> </div>
+<div class="line"><a name="l00240"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1CXXBaseObjectRegion.html#a1d12337d76098e35a081bc15a2af8247"> 240</a></span> <a class="code" href="classclang_1_1QualType.html">QualType</a> <a class="code" href="classclang_1_1ento_1_1CXXBaseObjectRegion.html#a1d12337d76098e35a081bc15a2af8247">CXXBaseObjectRegion::getValueType</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1QualType.html">QualType</a>(<a class="code" href="classclang_1_1ento_1_1CXXBaseObjectRegion.html#a1eecdfb53e282362139d2d7025be2c56">getDecl</a>()->getTypeForDecl(), 0);</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> </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">// FoldingSet profiling.</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> </div>
+<div class="line"><a name="l00248"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemSpaceRegion.html#a923387d775ff0debba67512014d22aed"> 248</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1MemSpaceRegion.html#a923387d775ff0debba67512014d22aed">MemSpaceRegion::Profile</a>(llvm::FoldingSetNodeID& ID)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> ID.AddInteger((<span class="keywordtype">unsigned</span>)<a class="code" href="classclang_1_1ento_1_1MemRegion.html#a28206b01079f4c177bdd23518f471039">getKind</a>());</div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> }</div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> </div>
+<div class="line"><a name="l00252"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1StackSpaceRegion.html#a419c94bc5cce29a6aae516ce055cba63"> 252</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1StackSpaceRegion.html#a419c94bc5cce29a6aae516ce055cba63">StackSpaceRegion::Profile</a>(llvm::FoldingSetNodeID &ID)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> ID.AddInteger((<span class="keywordtype">unsigned</span>)<a class="code" href="classclang_1_1ento_1_1MemRegion.html#a28206b01079f4c177bdd23518f471039">getKind</a>());</div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> ID.AddPointer(<a class="code" href="classclang_1_1ento_1_1StackSpaceRegion.html#a3d380a72e4d0f2277653dfcc1b4e1724">getStackFrame</a>());</div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> }</div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> </div>
+<div class="line"><a name="l00257"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1StaticGlobalSpaceRegion.html#ac32750db23b8398f1c78a294b38c8310"> 257</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1StaticGlobalSpaceRegion.html#ac32750db23b8398f1c78a294b38c8310">StaticGlobalSpaceRegion::Profile</a>(llvm::FoldingSetNodeID &ID)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> ID.AddInteger((<span class="keywordtype">unsigned</span>)<a class="code" href="classclang_1_1ento_1_1MemRegion.html#a28206b01079f4c177bdd23518f471039">getKind</a>());</div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> ID.AddPointer(<a class="code" href="classclang_1_1ento_1_1StaticGlobalSpaceRegion.html#a2a42c5729e86fe2fa015d869ac70a907">getCodeRegion</a>());</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> }</div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> </div>
+<div class="line"><a name="l00262"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1StringRegion.html#ad89c4e016d29e012d65ebb19b24427da"> 262</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1StringRegion.html#ad89c4e016d29e012d65ebb19b24427da">StringRegion::ProfileRegion</a>(llvm::FoldingSetNodeID& ID,</div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1StringLiteral.html">StringLiteral</a>* Str,</div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</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>* superRegion) {</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> ID.AddInteger((<span class="keywordtype">unsigned</span>) <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa18995bef846f10bc3162f67e954f723a">StringRegionKind</a>);</div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> ID.AddPointer(Str);</div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> ID.AddPointer(superRegion);</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_1ento_1_1ObjCStringRegion.html#a8b9ee530cea9f1a17b8ed8de0b8205d1"> 270</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1ObjCStringRegion.html#a8b9ee530cea9f1a17b8ed8de0b8205d1">ObjCStringRegion::ProfileRegion</a>(llvm::FoldingSetNodeID& ID,</div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCStringLiteral.html">ObjCStringLiteral</a>* Str,</div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</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>* superRegion) {</div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> ID.AddInteger((<span class="keywordtype">unsigned</span>) <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa4959f0f0fc942bcb2b1ea9562eec862d">ObjCStringRegionKind</a>);</div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> ID.AddPointer(Str);</div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> ID.AddPointer(superRegion);</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_1ento_1_1AllocaRegion.html#a0ed392e719b1988317dad914371878ad"> 278</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1AllocaRegion.html#a0ed392e719b1988317dad914371878ad">AllocaRegion::ProfileRegion</a>(llvm::FoldingSetNodeID& ID,</div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *Ex, <span class="keywordtype">unsigned</span> cnt,</div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</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> *superRegion) {</div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> ID.AddInteger((<span class="keywordtype">unsigned</span>) <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aaf60d996de54e21c78cfcff99fffdf5d8">AllocaRegionKind</a>);</div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> ID.AddPointer(Ex);</div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> ID.AddInteger(cnt);</div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> ID.AddPointer(superRegion);</div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> }</div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> </div>
+<div class="line"><a name="l00287"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1AllocaRegion.html#a31173b2fd2163aa3ec70d6a351265088"> 287</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1AllocaRegion.html#a31173b2fd2163aa3ec70d6a351265088">AllocaRegion::Profile</a>(llvm::FoldingSetNodeID& ID)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> <a class="code" href="classclang_1_1ento_1_1AllocaRegion.html#a0ed392e719b1988317dad914371878ad">ProfileRegion</a>(ID, <a class="code" href="classclang_1_1ento_1_1AllocaRegion.html#a98c82bf2630cb1ad1737d240345de119">Ex</a>, <a class="code" href="classclang_1_1ento_1_1AllocaRegion.html#a72e926e8ca81c08f9f972586720a71b0">Cnt</a>, superRegion);</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"><a class="code" href="classclang_1_1ento_1_1CompoundLiteralRegion.html#a1a5e5d705000cd559b1bc28afc1d7bbb"> 291</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1CompoundLiteralRegion.html#a1a5e5d705000cd559b1bc28afc1d7bbb">CompoundLiteralRegion::Profile</a>(llvm::FoldingSetNodeID& ID)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> CompoundLiteralRegion::ProfileRegion(ID, CL, superRegion);</div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> }</div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> </div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> <span class="keywordtype">void</span> CompoundLiteralRegion::ProfileRegion(llvm::FoldingSetNodeID& ID,</div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1CompoundLiteralExpr.html">CompoundLiteralExpr</a> *CL,</div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</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>* superRegion) {</div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> ID.AddInteger((<span class="keywordtype">unsigned</span>) <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aaeb78544f4eef4272d2fdaab921829b17">CompoundLiteralRegionKind</a>);</div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> ID.AddPointer(CL);</div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> ID.AddPointer(superRegion);</div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> }</div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> </div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> <span class="keywordtype">void</span> CXXThisRegion::ProfileRegion(llvm::FoldingSetNodeID &ID,</div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1PointerType.html">PointerType</a> *PT,</div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</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> *sRegion) {</div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> ID.AddInteger((<span class="keywordtype">unsigned</span>) <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aacf1e8afce13a7b94403f16fc5707811f">CXXThisRegionKind</a>);</div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> ID.AddPointer(PT);</div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> ID.AddPointer(sRegion);</div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> }</div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> </div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> <span class="keywordtype">void</span> CXXThisRegion::Profile(llvm::FoldingSetNodeID &ID)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> CXXThisRegion::ProfileRegion(ID, ThisPointerTy, superRegion);</div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> }</div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> </div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> <span class="keywordtype">void</span> ObjCIvarRegion::ProfileRegion(llvm::FoldingSetNodeID& ID,</div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *ivd,</div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</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>* superRegion) {</div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> <a class="code" href="classclang_1_1ento_1_1DeclRegion.html#a9942dfa137125811139f4481e58fd251">DeclRegion::ProfileRegion</a>(ID, ivd, superRegion, <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa3b9557ecfdd2831b60d00843ffc704bc">ObjCIvarRegionKind</a>);</div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> }</div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> </div>
+<div class="line"><a name="l00321"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1DeclRegion.html#a9942dfa137125811139f4481e58fd251"> 321</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1DeclRegion.html#a9942dfa137125811139f4481e58fd251">DeclRegion::ProfileRegion</a>(llvm::FoldingSetNodeID& ID, <span class="keyword">const</span> <a class="code" href="classclang_1_1Decl.html">Decl</a> *D,</div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</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>* superRegion, <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7a">Kind</a> k) {</div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> ID.AddInteger((<span class="keywordtype">unsigned</span>) k);</div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> ID.AddPointer(D);</div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> ID.AddPointer(superRegion);</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> </div>
+<div class="line"><a name="l00328"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1DeclRegion.html#af3608a69fec15c21c2eea38a507574c7"> 328</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1DeclRegion.html#af3608a69fec15c21c2eea38a507574c7">DeclRegion::Profile</a>(llvm::FoldingSetNodeID& ID)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> <a class="code" href="classclang_1_1ento_1_1DeclRegion.html#a9942dfa137125811139f4481e58fd251">DeclRegion::ProfileRegion</a>(ID, <a class="code" href="classclang_1_1ento_1_1DeclRegion.html#a574619871d967803b0f8d9690c301e75">D</a>, superRegion, <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a28206b01079f4c177bdd23518f471039">getKind</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"> 332</span> <span class="keywordtype">void</span> VarRegion::Profile(llvm::FoldingSetNodeID &ID)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> VarRegion::ProfileRegion(ID, <a class="code" href="classclang_1_1ento_1_1VarRegion.html#ab06cf2729ec224250d044facc6c7d47b">getDecl</a>(), superRegion);</div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> }</div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> </div>
+<div class="line"><a name="l00336"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1SymbolicRegion.html#abf45d5f11a131333a22e99bff05f78c1"> 336</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1SymbolicRegion.html#abf45d5f11a131333a22e99bff05f78c1">SymbolicRegion::ProfileRegion</a>(llvm::FoldingSetNodeID& ID, <a class="code" href="classclang_1_1ento_1_1SymExpr.html" title="Symbolic value. These values used to capture symbolic execution of the program.">SymbolRef</a> sym,</div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</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> *sreg) {</div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> ID.AddInteger((<span class="keywordtype">unsigned</span>) <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa4b704a264a5d520093583ff34f8886ca">MemRegion::SymbolicRegionKind</a>);</div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> ID.Add(sym);</div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> ID.AddPointer(sreg);</div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> }</div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> </div>
+<div class="line"><a name="l00343"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1SymbolicRegion.html#a570f43fd6b557316fd629779d8d50a46"> 343</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1SymbolicRegion.html#a570f43fd6b557316fd629779d8d50a46">SymbolicRegion::Profile</a>(llvm::FoldingSetNodeID& ID)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> <a class="code" href="classclang_1_1ento_1_1SymbolicRegion.html#abf45d5f11a131333a22e99bff05f78c1">SymbolicRegion::ProfileRegion</a>(ID, <a class="code" href="classclang_1_1ento_1_1SymbolicRegion.html#a27fee7146b18f857006e725774219cdf">sym</a>, <a class="code" href="classclang_1_1ento_1_1SubRegion.html#ada0aa8debb5fb41ca2c50ee2eb6c3ac1">getSuperRegion</a>());</div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> }</div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> </div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> <span class="keywordtype">void</span> ElementRegion::ProfileRegion(llvm::FoldingSetNodeID& ID,</div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> <a class="code" href="classclang_1_1QualType.html">QualType</a> ElementType, <a class="code" href="classclang_1_1ento_1_1SVal.html">SVal</a> Idx,</div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</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>* superRegion) {</div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> ID.AddInteger(<a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa84bf11c70c2e09bf52c0cde4a517fd49">MemRegion::ElementRegionKind</a>);</div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> ID.Add(ElementType);</div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> ID.AddPointer(superRegion);</div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> Idx.<a class="code" href="classclang_1_1ento_1_1SVal.html#a46722804559943089f1ec031ecb59333">Profile</a>(ID);</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> </div>
+<div class="line"><a name="l00356"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1ElementRegion.html#a7b63b1c1647b2501fc79ceb6384ffcbf"> 356</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1ElementRegion.html#a7b63b1c1647b2501fc79ceb6384ffcbf">ElementRegion::Profile</a>(llvm::FoldingSetNodeID& ID)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> ElementRegion::ProfileRegion(ID, ElementType, Index, superRegion);</div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> }</div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> </div>
+<div class="line"><a name="l00360"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1FunctionTextRegion.html#aa7037aa607cfc312bd025bebfed49fc5"> 360</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1FunctionTextRegion.html#aa7037aa607cfc312bd025bebfed49fc5">FunctionTextRegion::ProfileRegion</a>(llvm::FoldingSetNodeID& ID,</div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1NamedDecl.html">NamedDecl</a> *FD,</div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</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>*) {</div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> ID.AddInteger(<a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa51a2be0ecafb27db458751dee72d882a">MemRegion::FunctionTextRegionKind</a>);</div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> ID.AddPointer(FD);</div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> }</div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> </div>
+<div class="line"><a name="l00367"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1FunctionTextRegion.html#a5e823407568586c0d56141386ab35335"> 367</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1FunctionTextRegion.html#a5e823407568586c0d56141386ab35335">FunctionTextRegion::Profile</a>(llvm::FoldingSetNodeID& ID)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> <a class="code" href="classclang_1_1ento_1_1FunctionTextRegion.html#aa7037aa607cfc312bd025bebfed49fc5">FunctionTextRegion::ProfileRegion</a>(ID, FD, superRegion);</div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> }</div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> </div>
+<div class="line"><a name="l00371"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BlockTextRegion.html#af973f7ff4c146cd99f44df4f95546f3a"> 371</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1BlockTextRegion.html#af973f7ff4c146cd99f44df4f95546f3a">BlockTextRegion::ProfileRegion</a>(llvm::FoldingSetNodeID& ID,</div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1BlockDecl.html">BlockDecl</a> *BD, <a class="code" href="classclang_1_1CanQual.html">CanQualType</a>,</div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1AnalysisDeclContext.html">AnalysisDeclContext</a> *AC,</div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</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>*) {</div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> ID.AddInteger(<a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aadcb3ecd9d548b71103a6a25ee4250450">MemRegion::BlockTextRegionKind</a>);</div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> ID.AddPointer(BD);</div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> }</div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> </div>
+<div class="line"><a name="l00379"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BlockTextRegion.html#aae3747ca2e4cd27d549989282be2d9f6"> 379</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1BlockTextRegion.html#aae3747ca2e4cd27d549989282be2d9f6">BlockTextRegion::Profile</a>(llvm::FoldingSetNodeID& ID)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> <a class="code" href="classclang_1_1ento_1_1BlockTextRegion.html#af973f7ff4c146cd99f44df4f95546f3a">BlockTextRegion::ProfileRegion</a>(ID, BD, locTy, AC, superRegion);</div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> }</div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> </div>
+<div class="line"><a name="l00383"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BlockDataRegion.html#a9111ac93762b4e97ecdd80728cd45516"> 383</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1BlockDataRegion.html#a9111ac93762b4e97ecdd80728cd45516">BlockDataRegion::ProfileRegion</a>(llvm::FoldingSetNodeID& ID,</div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1BlockTextRegion.html">BlockTextRegion</a> *BC,</div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1LocationContext.html">LocationContext</a> *LC,</div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> <span class="keywordtype">unsigned</span> BlkCount,</div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</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> *sReg) {</div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span> ID.AddInteger(<a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aae6d4c8bdcf7387ec5b5171b5108950d6">MemRegion::BlockDataRegionKind</a>);</div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> ID.AddPointer(BC);</div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> ID.AddPointer(LC);</div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> ID.AddInteger(BlkCount);</div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> ID.AddPointer(sReg);</div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span> }</div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> </div>
+<div class="line"><a name="l00395"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BlockDataRegion.html#a62e2b04882de18144fb82f504473223f"> 395</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1BlockDataRegion.html#a62e2b04882de18144fb82f504473223f">BlockDataRegion::Profile</a>(llvm::FoldingSetNodeID& ID)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> <a class="code" href="classclang_1_1ento_1_1BlockDataRegion.html#a9111ac93762b4e97ecdd80728cd45516">BlockDataRegion::ProfileRegion</a>(ID, BC, LC, BlockCount, <a class="code" href="classclang_1_1ento_1_1SubRegion.html#ada0aa8debb5fb41ca2c50ee2eb6c3ac1">getSuperRegion</a>());</div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span> }</div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> </div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> <span class="keywordtype">void</span> CXXTempObjectRegion::ProfileRegion(llvm::FoldingSetNodeID &ID,</div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> <span class="keyword">const</span> *Ex,</div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</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> *sReg) {</div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> ID.AddPointer(Ex);</div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> ID.AddPointer(sReg);</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_1ento_1_1CXXTempObjectRegion.html#a0f9751d9d66061e4ed87690b34512e26"> 406</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1CXXTempObjectRegion.html#a0f9751d9d66061e4ed87690b34512e26">CXXTempObjectRegion::Profile</a>(llvm::FoldingSetNodeID &ID)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> ProfileRegion(ID, Ex, <a class="code" href="classclang_1_1ento_1_1SubRegion.html#ada0aa8debb5fb41ca2c50ee2eb6c3ac1">getSuperRegion</a>());</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> </div>
+<div class="line"><a name="l00410"></a><span class="lineno"> 410</span> <span class="keywordtype">void</span> CXXBaseObjectRegion::ProfileRegion(llvm::FoldingSetNodeID &ID,</div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *RD,</div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> <span class="keywordtype">bool</span> IsVirtual,</div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</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> *SReg) {</div>
+<div class="line"><a name="l00414"></a><span class="lineno"> 414</span> ID.AddPointer(RD);</div>
+<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> ID.AddBoolean(IsVirtual);</div>
+<div class="line"><a name="l00416"></a><span class="lineno"> 416</span> ID.AddPointer(SReg);</div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span> }</div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span> </div>
+<div class="line"><a name="l00419"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1CXXBaseObjectRegion.html#aabc2b723c490c7559e0f1bd6004c6361"> 419</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1CXXBaseObjectRegion.html#aabc2b723c490c7559e0f1bd6004c6361">CXXBaseObjectRegion::Profile</a>(llvm::FoldingSetNodeID &ID)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> ProfileRegion(ID, <a class="code" href="classclang_1_1ento_1_1CXXBaseObjectRegion.html#a1eecdfb53e282362139d2d7025be2c56">getDecl</a>(), <a class="code" href="classclang_1_1ento_1_1CXXBaseObjectRegion.html#abf3f674935de679ac43f190a46368898">isVirtual</a>(), superRegion);</div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span> }</div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span> </div>
+<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> <span class="comment">// Region anchors.</span></div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span> <span class="comment">//===----------------------------------------------------------------------===//</span></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> <span class="keywordtype">void</span> GlobalsSpaceRegion::anchor() { }</div>
+<div class="line"><a name="l00428"></a><span class="lineno"> 428</span> <span class="keywordtype">void</span> HeapSpaceRegion::anchor() { }</div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span> <span class="keywordtype">void</span> UnknownSpaceRegion::anchor() { }</div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span> <span class="keywordtype">void</span> StackLocalsSpaceRegion::anchor() { }</div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</span> <span class="keywordtype">void</span> StackArgumentsSpaceRegion::anchor() { }</div>
+<div class="line"><a name="l00432"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1TypedRegion.html#a94df82e5b2cff83c538102acc2723a9a"> 432</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1TypedRegion.html#a94df82e5b2cff83c538102acc2723a9a">TypedRegion::anchor</a>() { }</div>
+<div class="line"><a name="l00433"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1TypedValueRegion.html#a87b1ce4bdb09a1e2d141c2a7d01a3be1"> 433</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1TypedValueRegion.html#a87b1ce4bdb09a1e2d141c2a7d01a3be1">TypedValueRegion::anchor</a>() { }</div>
+<div class="line"><a name="l00434"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1CodeTextRegion.html#a9085f6980e91dfc3786ad4f03b9e7f4f"> 434</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1CodeTextRegion.html#a9085f6980e91dfc3786ad4f03b9e7f4f">CodeTextRegion::anchor</a>() { }</div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> <span class="keywordtype">void</span> SubRegion::anchor() { }</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> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> <span class="comment">// Region pretty-printing.</span></div>
+<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00440"></a><span class="lineno"> 440</span> </div>
+<div class="line"><a name="l00441"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a2636bd24ae0670a1018f87eaf0c138b7"> 441</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a2636bd24ae0670a1018f87eaf0c138b7">MemRegion::dump</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#aafd47af3fe31c352c9fbcb6ff8731a93">dumpToStream</a>(llvm::errs());</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"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a3f5bdd1c9fe8e7b868b549751f440a88"> 445</a></span> std::string <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a3f5bdd1c9fe8e7b868b549751f440a88" title="Get a string representation of a region for debug use.">MemRegion::getString</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span> std::string s;</div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> llvm::raw_string_ostream os(s);</div>
+<div class="line"><a name="l00448"></a><span class="lineno"> 448</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#aafd47af3fe31c352c9fbcb6ff8731a93">dumpToStream</a>(os);</div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span> <span class="keywordflow">return</span> os.str();</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> </div>
+<div class="line"><a name="l00452"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#aafd47af3fe31c352c9fbcb6ff8731a93"> 452</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#aafd47af3fe31c352c9fbcb6ff8731a93">MemRegion::dumpToStream</a>(raw_ostream &os)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00453"></a><span class="lineno"> 453</span> os << <span class="stringliteral">"<Unknown Region>"</span>;</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> </div>
+<div class="line"><a name="l00456"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1AllocaRegion.html#af2bda9ec3d08a09376e44dbdb345ec6c"> 456</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1AllocaRegion.html#af2bda9ec3d08a09376e44dbdb345ec6c">AllocaRegion::dumpToStream</a>(raw_ostream &os)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00457"></a><span class="lineno"> 457</span> os << <span class="stringliteral">"alloca{"</span> << (<span class="keyword">const</span> <span class="keywordtype">void</span>*) Ex << <span class="charliteral">','</span> << <a class="code" href="classclang_1_1ento_1_1AllocaRegion.html#a72e926e8ca81c08f9f972586720a71b0">Cnt</a> << <span class="charliteral">'}'</span>;</div>
+<div class="line"><a name="l00458"></a><span class="lineno"> 458</span> }</div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span> </div>
+<div class="line"><a name="l00460"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1FunctionTextRegion.html#ae571647ae1a0056ce3786442091142e2"> 460</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1FunctionTextRegion.html#ae571647ae1a0056ce3786442091142e2">FunctionTextRegion::dumpToStream</a>(raw_ostream &os)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00461"></a><span class="lineno"> 461</span> os << <span class="stringliteral">"code{"</span> << <a class="code" href="classclang_1_1ento_1_1FunctionTextRegion.html#af34678c5e85017716a28640d04ac816c">getDecl</a>()-><a class="code" href="classclang_1_1NamedDecl.html#a1e3e90455be89bb5c7c23640cbbd7153">getDeclName</a>().<a class="code" href="classclang_1_1DeclarationName.html#acdcc2ae303f4e46575a08e2ba278dd33" title="getNameAsString - Retrieve the human-readable string for this name.">getAsString</a>() << <span class="charliteral">'}'</span>;</div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span> }</div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> </div>
+<div class="line"><a name="l00464"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BlockTextRegion.html#a7d6c0eb4322546559ef3f929227f4138"> 464</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1BlockTextRegion.html#a7d6c0eb4322546559ef3f929227f4138">BlockTextRegion::dumpToStream</a>(raw_ostream &os)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00465"></a><span class="lineno"> 465</span> os << <span class="stringliteral">"block_code{"</span> << (<span class="keyword">const</span> <span class="keywordtype">void</span>*) <span class="keyword">this</span> << <span class="charliteral">'}'</span>;</div>
+<div class="line"><a name="l00466"></a><span class="lineno"> 466</span> }</div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> </div>
+<div class="line"><a name="l00468"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BlockDataRegion.html#ab56946206690427b8f280d14088df7b0"> 468</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1BlockDataRegion.html#ab56946206690427b8f280d14088df7b0">BlockDataRegion::dumpToStream</a>(raw_ostream &os)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00469"></a><span class="lineno"> 469</span> os << <span class="stringliteral">"block_data{"</span> << BC;</div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</span> os << <span class="stringliteral">"; "</span>;</div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span> <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1ento_1_1BlockDataRegion_1_1referenced__vars__iterator.html">BlockDataRegion::referenced_vars_iterator</a></div>
+<div class="line"><a name="l00472"></a><span class="lineno"> 472</span> I = <a class="code" href="classclang_1_1ento_1_1BlockDataRegion.html#a7166227e54d9529e64e5bed0ac074cf7">referenced_vars_begin</a>(),</div>
+<div class="line"><a name="l00473"></a><span class="lineno"> 473</span> E = <a class="code" href="classclang_1_1ento_1_1BlockDataRegion.html#aefef0dc63c694c21ed8330cd2ef8c7e8">referenced_vars_end</a>(); I != E; ++I)</div>
+<div class="line"><a name="l00474"></a><span class="lineno"> 474</span> os << <span class="stringliteral">"("</span> << I.getCapturedRegion() << <span class="stringliteral">","</span> <<</div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span> I.getOriginalRegion() << <span class="stringliteral">") "</span>;</div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span> os << <span class="charliteral">'}'</span>;</div>
+<div class="line"><a name="l00477"></a><span class="lineno"> 477</span> }</div>
+<div class="line"><a name="l00478"></a><span class="lineno"> 478</span> </div>
+<div class="line"><a name="l00479"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1CompoundLiteralRegion.html#aaa71b723112a9894f0c6a9a6a4f015a4"> 479</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1CompoundLiteralRegion.html#aaa71b723112a9894f0c6a9a6a4f015a4">CompoundLiteralRegion::dumpToStream</a>(raw_ostream &os)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span> <span class="comment">// FIXME: More elaborate pretty-printing.</span></div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</span> os << <span class="stringliteral">"{ "</span> << (<span class="keyword">const</span> <span class="keywordtype">void</span>*) CL << <span class="stringliteral">" }"</span>;</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> </div>
+<div class="line"><a name="l00484"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1CXXTempObjectRegion.html#a9ab5a447e263c51d674e36364227497c"> 484</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1CXXTempObjectRegion.html#a9ab5a447e263c51d674e36364227497c">CXXTempObjectRegion::dumpToStream</a>(raw_ostream &os)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00485"></a><span class="lineno"> 485</span> os << <span class="stringliteral">"temp_object{"</span> << <a class="code" href="classclang_1_1ento_1_1CXXTempObjectRegion.html#a44bc53d205176be3cce32e826c1ca55b">getValueType</a>().<a class="code" href="classclang_1_1QualType.html#af755c58826e02f164c9b1d442762457d">getAsString</a>() << <span class="charliteral">','</span></div>
+<div class="line"><a name="l00486"></a><span class="lineno"> 486</span> << (<span class="keyword">const</span> <span class="keywordtype">void</span>*) Ex << <span class="charliteral">'}'</span>;</div>
+<div class="line"><a name="l00487"></a><span class="lineno"> 487</span> }</div>
+<div class="line"><a name="l00488"></a><span class="lineno"> 488</span> </div>
+<div class="line"><a name="l00489"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1CXXBaseObjectRegion.html#a9911135a8d1228c57f6ee1bcfcd81f9c"> 489</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1CXXBaseObjectRegion.html#a9911135a8d1228c57f6ee1bcfcd81f9c">CXXBaseObjectRegion::dumpToStream</a>(raw_ostream &os)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00490"></a><span class="lineno"> 490</span> os << <span class="stringliteral">"base{"</span> << superRegion << <span class="charliteral">','</span> << <a class="code" href="classclang_1_1ento_1_1CXXBaseObjectRegion.html#a1eecdfb53e282362139d2d7025be2c56">getDecl</a>()-><a class="code" href="classclang_1_1NamedDecl.html#aaf790590f634520a99e0b45699fc45c3">getName</a>() << <span class="charliteral">'}'</span>;</div>
+<div class="line"><a name="l00491"></a><span class="lineno"> 491</span> }</div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span> </div>
+<div class="line"><a name="l00493"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1CXXThisRegion.html#ab1c5f674a4fdf8dcf4c6bdd26a9b3486"> 493</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1CXXThisRegion.html#ab1c5f674a4fdf8dcf4c6bdd26a9b3486">CXXThisRegion::dumpToStream</a>(raw_ostream &os)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00494"></a><span class="lineno"> 494</span> os << <span class="stringliteral">"this"</span>;</div>
+<div class="line"><a name="l00495"></a><span class="lineno"> 495</span> }</div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</span> </div>
+<div class="line"><a name="l00497"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1ElementRegion.html#a97a614d67d449785793d4b1d67843ea0"> 497</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1ElementRegion.html#a97a614d67d449785793d4b1d67843ea0">ElementRegion::dumpToStream</a>(raw_ostream &os)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00498"></a><span class="lineno"> 498</span> os << <span class="stringliteral">"element{"</span> << superRegion << <span class="charliteral">','</span></div>
+<div class="line"><a name="l00499"></a><span class="lineno"> 499</span> << Index << <span class="charliteral">','</span> << <a class="code" href="classclang_1_1ento_1_1ElementRegion.html#a4d0db120da905148948c5fc6a7887954">getElementType</a>().<a class="code" href="classclang_1_1QualType.html#af755c58826e02f164c9b1d442762457d">getAsString</a>() << <span class="charliteral">'}'</span>;</div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span> }</div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span> </div>
+<div class="line"><a name="l00502"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1FieldRegion.html#aef9d58a04808f91c90cfc9ec693e9afd"> 502</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1FieldRegion.html#aef9d58a04808f91c90cfc9ec693e9afd">FieldRegion::dumpToStream</a>(raw_ostream &os)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00503"></a><span class="lineno"> 503</span> os << superRegion << <span class="stringliteral">"->"</span> << *<a class="code" href="classclang_1_1ento_1_1FieldRegion.html#a558e24f4ebcc5ee30d7c5b97632c0cbd">getDecl</a>();</div>
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span> }</div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span> </div>
+<div class="line"><a name="l00506"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1ObjCIvarRegion.html#a8be8c40453c6e36cd50eb303c795dc7f"> 506</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1ObjCIvarRegion.html#a8be8c40453c6e36cd50eb303c795dc7f">ObjCIvarRegion::dumpToStream</a>(raw_ostream &os)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00507"></a><span class="lineno"> 507</span> os << <span class="stringliteral">"ivar{"</span> << superRegion << <span class="charliteral">','</span> << *<a class="code" href="classclang_1_1ento_1_1ObjCIvarRegion.html#aeec7b5cfec77b01c6b6d10f874767a2c">getDecl</a>() << <span class="charliteral">'}'</span>;</div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</span> }</div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span> </div>
+<div class="line"><a name="l00510"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1StringRegion.html#a89faab22176e4f9169ca9cdd281f97ce"> 510</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1StringRegion.html#a89faab22176e4f9169ca9cdd281f97ce">StringRegion::dumpToStream</a>(raw_ostream &os)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00511"></a><span class="lineno"> 511</span> Str-><a class="code" href="classclang_1_1Stmt.html#a7b6d8297403170952d84a89867ddbb1b">printPretty</a>(os, 0, <a class="code" href="structclang_1_1PrintingPolicy.html" title="Describes how types, statements, expressions, and declarations should be printed.">PrintingPolicy</a>(<a class="code" href="classclang_1_1ento_1_1MemRegion.html#a582a40115ffa064a32e78bfa90de4097">getContext</a>().getLangOpts()));</div>
+<div class="line"><a name="l00512"></a><span class="lineno"> 512</span> }</div>
+<div class="line"><a name="l00513"></a><span class="lineno"> 513</span> </div>
+<div class="line"><a name="l00514"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1ObjCStringRegion.html#add673f54ace86b3ed5b80ec0ac8365bd"> 514</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1ObjCStringRegion.html#add673f54ace86b3ed5b80ec0ac8365bd">ObjCStringRegion::dumpToStream</a>(raw_ostream &os)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span> Str-><a class="code" href="classclang_1_1Stmt.html#a7b6d8297403170952d84a89867ddbb1b">printPretty</a>(os, 0, <a class="code" href="structclang_1_1PrintingPolicy.html" title="Describes how types, statements, expressions, and declarations should be printed.">PrintingPolicy</a>(<a class="code" href="classclang_1_1ento_1_1MemRegion.html#a582a40115ffa064a32e78bfa90de4097">getContext</a>().getLangOpts()));</div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span> }</div>
+<div class="line"><a name="l00517"></a><span class="lineno"> 517</span> </div>
+<div class="line"><a name="l00518"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1SymbolicRegion.html#a57fc3ca4cf4016e727258426bc6290ab"> 518</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1SymbolicRegion.html#a57fc3ca4cf4016e727258426bc6290ab">SymbolicRegion::dumpToStream</a>(raw_ostream &os)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00519"></a><span class="lineno"> 519</span> os << <span class="stringliteral">"SymRegion{"</span> << <a class="code" href="classclang_1_1ento_1_1SymbolicRegion.html#a27fee7146b18f857006e725774219cdf">sym</a> << <span class="charliteral">'}'</span>;</div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span> }</div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span> </div>
+<div class="line"><a name="l00522"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1VarRegion.html#a621d140533df0b888a94528f2c9b8c82"> 522</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1VarRegion.html#a621d140533df0b888a94528f2c9b8c82">VarRegion::dumpToStream</a>(raw_ostream &os)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00523"></a><span class="lineno"> 523</span> os << *cast<VarDecl>(<a class="code" href="classclang_1_1ento_1_1DeclRegion.html#a574619871d967803b0f8d9690c301e75">D</a>);</div>
+<div class="line"><a name="l00524"></a><span class="lineno"> 524</span> }</div>
+<div class="line"><a name="l00525"></a><span class="lineno"> 525</span> </div>
+<div class="line"><a name="l00526"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1RegionRawOffset.html#a3951785f54cfee7899e1c63e54a796ae"> 526</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1RegionRawOffset.html#a3951785f54cfee7899e1c63e54a796ae">RegionRawOffset::dump</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00527"></a><span class="lineno"> 527</span> <a class="code" href="classclang_1_1ento_1_1RegionRawOffset.html#ae81a21712e4cb33cc3a9148f36c26ef1">dumpToStream</a>(llvm::errs());</div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span> }</div>
+<div class="line"><a name="l00529"></a><span class="lineno"> 529</span> </div>
+<div class="line"><a name="l00530"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1RegionRawOffset.html#ae81a21712e4cb33cc3a9148f36c26ef1"> 530</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1RegionRawOffset.html#ae81a21712e4cb33cc3a9148f36c26ef1">RegionRawOffset::dumpToStream</a>(raw_ostream &os)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00531"></a><span class="lineno"> 531</span> os << <span class="stringliteral">"raw_offset{"</span> << <a class="code" href="classclang_1_1ento_1_1RegionRawOffset.html#ad38473d6daf8cbae889dc8d12ff85f16">getRegion</a>() << <span class="charliteral">','</span> << <a class="code" href="classclang_1_1ento_1_1RegionRawOffset.html#ad18174cfe804152edf91c38176c29c21">getOffset</a>().<a class="code" href="classclang_1_1CharUnits.html#a09546c4bc2fefb3cb4d964eb9f25d33a" title="getQuantity - Get the raw integer representation of this quantity.">getQuantity</a>() << <span class="charliteral">'}'</span>;</div>
+<div class="line"><a name="l00532"></a><span class="lineno"> 532</span> }</div>
+<div class="line"><a name="l00533"></a><span class="lineno"> 533</span> </div>
+<div class="line"><a name="l00534"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1StaticGlobalSpaceRegion.html#a6c6338bb8b522e1ac6c4c353038e939a"> 534</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1StaticGlobalSpaceRegion.html#a6c6338bb8b522e1ac6c4c353038e939a">StaticGlobalSpaceRegion::dumpToStream</a>(raw_ostream &os)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00535"></a><span class="lineno"> 535</span> os << <span class="stringliteral">"StaticGlobalsMemSpace{"</span> << CR << <span class="charliteral">'}'</span>;</div>
+<div class="line"><a name="l00536"></a><span class="lineno"> 536</span> }</div>
+<div class="line"><a name="l00537"></a><span class="lineno"> 537</span> </div>
+<div class="line"><a name="l00538"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1GlobalInternalSpaceRegion.html#aeadd26a9e795eb6ccce50101760432dd"> 538</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1GlobalInternalSpaceRegion.html#aeadd26a9e795eb6ccce50101760432dd">GlobalInternalSpaceRegion::dumpToStream</a>(raw_ostream &os)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00539"></a><span class="lineno"> 539</span> os << <span class="stringliteral">"GlobalInternalSpaceRegion"</span>;</div>
+<div class="line"><a name="l00540"></a><span class="lineno"> 540</span> }</div>
+<div class="line"><a name="l00541"></a><span class="lineno"> 541</span> </div>
+<div class="line"><a name="l00542"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1GlobalSystemSpaceRegion.html#a0b14019cda3a98522d29c8da69ebaa74"> 542</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1GlobalSystemSpaceRegion.html#a0b14019cda3a98522d29c8da69ebaa74">GlobalSystemSpaceRegion::dumpToStream</a>(raw_ostream &os)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00543"></a><span class="lineno"> 543</span> os << <span class="stringliteral">"GlobalSystemSpaceRegion"</span>;</div>
+<div class="line"><a name="l00544"></a><span class="lineno"> 544</span> }</div>
+<div class="line"><a name="l00545"></a><span class="lineno"> 545</span> </div>
+<div class="line"><a name="l00546"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1GlobalImmutableSpaceRegion.html#a0f2009860356ae491e298070689d62ce"> 546</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1GlobalImmutableSpaceRegion.html#a0f2009860356ae491e298070689d62ce">GlobalImmutableSpaceRegion::dumpToStream</a>(raw_ostream &os)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00547"></a><span class="lineno"> 547</span> os << <span class="stringliteral">"GlobalImmutableSpaceRegion"</span>;</div>
+<div class="line"><a name="l00548"></a><span class="lineno"> 548</span> }</div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span> </div>
+<div class="line"><a name="l00550"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1HeapSpaceRegion.html#a623d42fda3b17283b92a9a4385e5819a"> 550</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1HeapSpaceRegion.html#a623d42fda3b17283b92a9a4385e5819a">HeapSpaceRegion::dumpToStream</a>(raw_ostream &os)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00551"></a><span class="lineno"> 551</span> os << <span class="stringliteral">"HeapSpaceRegion"</span>;</div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span> }</div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span> </div>
+<div class="line"><a name="l00554"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1UnknownSpaceRegion.html#a035bcba7de9113ddcf0d91b5508c62af"> 554</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1UnknownSpaceRegion.html#a035bcba7de9113ddcf0d91b5508c62af">UnknownSpaceRegion::dumpToStream</a>(raw_ostream &os)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00555"></a><span class="lineno"> 555</span> os << <span class="stringliteral">"UnknownSpaceRegion"</span>;</div>
+<div class="line"><a name="l00556"></a><span class="lineno"> 556</span> }</div>
+<div class="line"><a name="l00557"></a><span class="lineno"> 557</span> </div>
+<div class="line"><a name="l00558"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1StackArgumentsSpaceRegion.html#a0a7fbac11e2a384ca78d647303c9deb0"> 558</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1StackArgumentsSpaceRegion.html#a0a7fbac11e2a384ca78d647303c9deb0">StackArgumentsSpaceRegion::dumpToStream</a>(raw_ostream &os)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span> os << <span class="stringliteral">"StackArgumentsSpaceRegion"</span>;</div>
+<div class="line"><a name="l00560"></a><span class="lineno"> 560</span> }</div>
+<div class="line"><a name="l00561"></a><span class="lineno"> 561</span> </div>
+<div class="line"><a name="l00562"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1StackLocalsSpaceRegion.html#af21c43685ecf094b1407b35d9c91567e"> 562</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1StackLocalsSpaceRegion.html#af21c43685ecf094b1407b35d9c91567e">StackLocalsSpaceRegion::dumpToStream</a>(raw_ostream &os)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00563"></a><span class="lineno"> 563</span> os << <span class="stringliteral">"StackLocalsSpaceRegion"</span>;</div>
+<div class="line"><a name="l00564"></a><span class="lineno"> 564</span> }</div>
+<div class="line"><a name="l00565"></a><span class="lineno"> 565</span> </div>
+<div class="line"><a name="l00566"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a380605df6377712a8b4a4a9543ef8d50"> 566</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a380605df6377712a8b4a4a9543ef8d50" title="Returns true if this region can be printed in a user-friendly way.">MemRegion::canPrintPretty</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00567"></a><span class="lineno"> 567</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#ae15dfe607470a6dfdf6dbeac6efff6a4" title="Returns true if this region's textual representation can be used as part of a larger expression...">canPrintPrettyAsExpr</a>();</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> </div>
+<div class="line"><a name="l00570"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#ae15dfe607470a6dfdf6dbeac6efff6a4"> 570</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#ae15dfe607470a6dfdf6dbeac6efff6a4" title="Returns true if this region's textual representation can be used as part of a larger expression...">MemRegion::canPrintPrettyAsExpr</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00571"></a><span class="lineno"> 571</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00572"></a><span class="lineno"> 572</span> }</div>
+<div class="line"><a name="l00573"></a><span class="lineno"> 573</span> </div>
+<div class="line"><a name="l00574"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a582acbcdf7b8be3b6c2663d8bab580ad"> 574</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a582acbcdf7b8be3b6c2663d8bab580ad" title="Print the region for use in diagnostics.">MemRegion::printPretty</a>(raw_ostream &os)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00575"></a><span class="lineno"> 575</span> assert(<a class="code" href="classclang_1_1ento_1_1MemRegion.html#a380605df6377712a8b4a4a9543ef8d50" title="Returns true if this region can be printed in a user-friendly way.">canPrintPretty</a>() && <span class="stringliteral">"This region cannot be printed pretty."</span>);</div>
+<div class="line"><a name="l00576"></a><span class="lineno"> 576</span> os << <span class="stringliteral">"'"</span>;</div>
+<div class="line"><a name="l00577"></a><span class="lineno"> 577</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#af00596930f47c54b418e61c1409d2d8a" title="Print the region as expression.">printPrettyAsExpr</a>(os);</div>
+<div class="line"><a name="l00578"></a><span class="lineno"> 578</span> os << <span class="stringliteral">"'"</span>;</div>
+<div class="line"><a name="l00579"></a><span class="lineno"> 579</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00580"></a><span class="lineno"> 580</span> }</div>
+<div class="line"><a name="l00581"></a><span class="lineno"> 581</span> </div>
+<div class="line"><a name="l00582"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#af00596930f47c54b418e61c1409d2d8a"> 582</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#af00596930f47c54b418e61c1409d2d8a" title="Print the region as expression.">MemRegion::printPrettyAsExpr</a>(raw_ostream &os)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00583"></a><span class="lineno"> 583</span> llvm_unreachable(<span class="stringliteral">"This region cannot be printed pretty."</span>);</div>
+<div class="line"><a name="l00584"></a><span class="lineno"> 584</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00585"></a><span class="lineno"> 585</span> }</div>
+<div class="line"><a name="l00586"></a><span class="lineno"> 586</span> </div>
+<div class="line"><a name="l00587"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1VarRegion.html#af851f9d99577973fc54ccc4425ad4008"> 587</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1VarRegion.html#af851f9d99577973fc54ccc4425ad4008" title="Returns true if this region's textual representation can be used as part of a larger expression...">VarRegion::canPrintPrettyAsExpr</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00588"></a><span class="lineno"> 588</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00589"></a><span class="lineno"> 589</span> }</div>
+<div class="line"><a name="l00590"></a><span class="lineno"> 590</span> </div>
+<div class="line"><a name="l00591"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1VarRegion.html#ac4adbdd31e6c4a722091092f4a37ee50"> 591</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1VarRegion.html#ac4adbdd31e6c4a722091092f4a37ee50" title="Print the region as expression.">VarRegion::printPrettyAsExpr</a>(raw_ostream &os)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00592"></a><span class="lineno"> 592</span> os << <a class="code" href="classclang_1_1ento_1_1VarRegion.html#ab06cf2729ec224250d044facc6c7d47b">getDecl</a>()-><a class="code" href="classclang_1_1NamedDecl.html#aaf790590f634520a99e0b45699fc45c3">getName</a>();</div>
+<div class="line"><a name="l00593"></a><span class="lineno"> 593</span> }</div>
+<div class="line"><a name="l00594"></a><span class="lineno"> 594</span> </div>
+<div class="line"><a name="l00595"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1ObjCIvarRegion.html#a7084bef09007a59a22b7f4a4833859bb"> 595</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1ObjCIvarRegion.html#a7084bef09007a59a22b7f4a4833859bb" title="Returns true if this region's textual representation can be used as part of a larger expression...">ObjCIvarRegion::canPrintPrettyAsExpr</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00596"></a><span class="lineno"> 596</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00597"></a><span class="lineno"> 597</span> }</div>
+<div class="line"><a name="l00598"></a><span class="lineno"> 598</span> </div>
+<div class="line"><a name="l00599"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1ObjCIvarRegion.html#aacd53e215e587de710ffa7014e981f90"> 599</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1ObjCIvarRegion.html#aacd53e215e587de710ffa7014e981f90" title="Print the region as expression.">ObjCIvarRegion::printPrettyAsExpr</a>(raw_ostream &os)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</span> os << <a class="code" href="classclang_1_1ento_1_1ObjCIvarRegion.html#aeec7b5cfec77b01c6b6d10f874767a2c">getDecl</a>()-><a class="code" href="classclang_1_1NamedDecl.html#aaf790590f634520a99e0b45699fc45c3">getName</a>();</div>
+<div class="line"><a name="l00601"></a><span class="lineno"> 601</span> }</div>
+<div class="line"><a name="l00602"></a><span class="lineno"> 602</span> </div>
+<div class="line"><a name="l00603"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1FieldRegion.html#a49a243702688a4a96e69bbdf61731ac6"> 603</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1FieldRegion.html#a49a243702688a4a96e69bbdf61731ac6" title="Returns true if this region can be printed in a user-friendly way.">FieldRegion::canPrintPretty</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00604"></a><span class="lineno"> 604</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00605"></a><span class="lineno"> 605</span> }</div>
+<div class="line"><a name="l00606"></a><span class="lineno"> 606</span> </div>
+<div class="line"><a name="l00607"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1FieldRegion.html#ac290dae20638bfdc1c40c5b483e1bf00"> 607</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1FieldRegion.html#ac290dae20638bfdc1c40c5b483e1bf00" title="Returns true if this region's textual representation can be used as part of a larger expression...">FieldRegion::canPrintPrettyAsExpr</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00608"></a><span class="lineno"> 608</span> <span class="keywordflow">return</span> superRegion-><a class="code" href="classclang_1_1ento_1_1MemRegion.html#ae15dfe607470a6dfdf6dbeac6efff6a4" title="Returns true if this region's textual representation can be used as part of a larger expression...">canPrintPrettyAsExpr</a>();</div>
+<div class="line"><a name="l00609"></a><span class="lineno"> 609</span> }</div>
+<div class="line"><a name="l00610"></a><span class="lineno"> 610</span> </div>
+<div class="line"><a name="l00611"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1FieldRegion.html#a62310e332eace758f294fb03e565a265"> 611</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1FieldRegion.html#a62310e332eace758f294fb03e565a265" title="Print the region as expression.">FieldRegion::printPrettyAsExpr</a>(raw_ostream &os)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00612"></a><span class="lineno"> 612</span> assert(<a class="code" href="classclang_1_1ento_1_1FieldRegion.html#ac290dae20638bfdc1c40c5b483e1bf00" title="Returns true if this region's textual representation can be used as part of a larger expression...">canPrintPrettyAsExpr</a>());</div>
+<div class="line"><a name="l00613"></a><span class="lineno"> 613</span> superRegion-><a class="code" href="classclang_1_1ento_1_1MemRegion.html#af00596930f47c54b418e61c1409d2d8a" title="Print the region as expression.">printPrettyAsExpr</a>(os);</div>
+<div class="line"><a name="l00614"></a><span class="lineno"> 614</span> os << <span class="stringliteral">"."</span> << <a class="code" href="classclang_1_1ento_1_1FieldRegion.html#a558e24f4ebcc5ee30d7c5b97632c0cbd">getDecl</a>()-><a class="code" href="classclang_1_1NamedDecl.html#aaf790590f634520a99e0b45699fc45c3">getName</a>();</div>
+<div class="line"><a name="l00615"></a><span class="lineno"> 615</span> }</div>
+<div class="line"><a name="l00616"></a><span class="lineno"> 616</span> </div>
+<div class="line"><a name="l00617"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1FieldRegion.html#a46520606b81d81f17bc0b8d2dddc55cd"> 617</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1FieldRegion.html#a46520606b81d81f17bc0b8d2dddc55cd" title="Print the region for use in diagnostics.">FieldRegion::printPretty</a>(raw_ostream &os)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00618"></a><span class="lineno"> 618</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1ento_1_1FieldRegion.html#ac290dae20638bfdc1c40c5b483e1bf00" title="Returns true if this region's textual representation can be used as part of a larger expression...">canPrintPrettyAsExpr</a>()) {</div>
+<div class="line"><a name="l00619"></a><span class="lineno"> 619</span> os << <span class="stringliteral">"\'"</span>;</div>
+<div class="line"><a name="l00620"></a><span class="lineno"> 620</span> <a class="code" href="classclang_1_1ento_1_1FieldRegion.html#a62310e332eace758f294fb03e565a265" title="Print the region as expression.">printPrettyAsExpr</a>(os);</div>
+<div class="line"><a name="l00621"></a><span class="lineno"> 621</span> os << <span class="stringliteral">"'"</span>;</div>
+<div class="line"><a name="l00622"></a><span class="lineno"> 622</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00623"></a><span class="lineno"> 623</span> os << <span class="stringliteral">"field "</span> << <span class="stringliteral">"\'"</span> << <a class="code" href="classclang_1_1ento_1_1FieldRegion.html#a558e24f4ebcc5ee30d7c5b97632c0cbd">getDecl</a>()-><a class="code" href="classclang_1_1NamedDecl.html#aaf790590f634520a99e0b45699fc45c3">getName</a>() << <span class="stringliteral">"'"</span>;</div>
+<div class="line"><a name="l00624"></a><span class="lineno"> 624</span> }</div>
+<div class="line"><a name="l00625"></a><span class="lineno"> 625</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00626"></a><span class="lineno"> 626</span> }</div>
+<div class="line"><a name="l00627"></a><span class="lineno"> 627</span> </div>
+<div class="line"><a name="l00628"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1CXXBaseObjectRegion.html#a51e126f2f23c5dc238f8c1b358dc3cbc"> 628</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1CXXBaseObjectRegion.html#a51e126f2f23c5dc238f8c1b358dc3cbc" title="Returns true if this region's textual representation can be used as part of a larger expression...">CXXBaseObjectRegion::canPrintPrettyAsExpr</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00629"></a><span class="lineno"> 629</span> <span class="keywordflow">return</span> superRegion-><a class="code" href="classclang_1_1ento_1_1MemRegion.html#ae15dfe607470a6dfdf6dbeac6efff6a4" title="Returns true if this region's textual representation can be used as part of a larger expression...">canPrintPrettyAsExpr</a>();</div>
+<div class="line"><a name="l00630"></a><span class="lineno"> 630</span> }</div>
+<div class="line"><a name="l00631"></a><span class="lineno"> 631</span> </div>
+<div class="line"><a name="l00632"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1CXXBaseObjectRegion.html#a91a0b0be00c57e878dac05aa20e999ac"> 632</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1CXXBaseObjectRegion.html#a91a0b0be00c57e878dac05aa20e999ac" title="Print the region as expression.">CXXBaseObjectRegion::printPrettyAsExpr</a>(raw_ostream &os)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00633"></a><span class="lineno"> 633</span> superRegion-><a class="code" href="classclang_1_1ento_1_1MemRegion.html#af00596930f47c54b418e61c1409d2d8a" title="Print the region as expression.">printPrettyAsExpr</a>(os);</div>
+<div class="line"><a name="l00634"></a><span class="lineno"> 634</span> }</div>
+<div class="line"><a name="l00635"></a><span class="lineno"> 635</span> </div>
+<div class="line"><a name="l00636"></a><span class="lineno"> 636</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00637"></a><span class="lineno"> 637</span> <span class="comment">// MemRegionManager methods.</span></div>
+<div class="line"><a name="l00638"></a><span class="lineno"> 638</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00639"></a><span class="lineno"> 639</span> </div>
+<div class="line"><a name="l00640"></a><span class="lineno"> 640</span> <span class="keyword">template</span> <<span class="keyword">typename</span> REG></div>
+<div class="line"><a name="l00641"></a><span class="lineno"> 641</span> <span class="keyword">const</span> REG *MemRegionManager::LazyAllocate(REG*& region) {</div>
+<div class="line"><a name="l00642"></a><span class="lineno"> 642</span> <span class="keywordflow">if</span> (!region) {</div>
+<div class="line"><a name="l00643"></a><span class="lineno"> 643</span> region = (REG*) A.Allocate<REG>();</div>
+<div class="line"><a name="l00644"></a><span class="lineno"> 644</span> <span class="keyword">new</span> (region) REG(<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00645"></a><span class="lineno"> 645</span> }</div>
+<div class="line"><a name="l00646"></a><span class="lineno"> 646</span> </div>
+<div class="line"><a name="l00647"></a><span class="lineno"> 647</span> <span class="keywordflow">return</span> region;</div>
+<div class="line"><a name="l00648"></a><span class="lineno"> 648</span> }</div>
+<div class="line"><a name="l00649"></a><span class="lineno"> 649</span> </div>
+<div class="line"><a name="l00650"></a><span class="lineno"> 650</span> <span class="keyword">template</span> <<span class="keyword">typename</span> REG, <span class="keyword">typename</span> ARG></div>
+<div class="line"><a name="l00651"></a><span class="lineno"> 651</span> <span class="keyword">const</span> REG *MemRegionManager::LazyAllocate(REG*& region, ARG a) {</div>
+<div class="line"><a name="l00652"></a><span class="lineno"> 652</span> <span class="keywordflow">if</span> (!region) {</div>
+<div class="line"><a name="l00653"></a><span class="lineno"> 653</span> region = (REG*) A.Allocate<REG>();</div>
+<div class="line"><a name="l00654"></a><span class="lineno"> 654</span> <span class="keyword">new</span> (region) REG(<span class="keyword">this</span>, a);</div>
+<div class="line"><a name="l00655"></a><span class="lineno"> 655</span> }</div>
+<div class="line"><a name="l00656"></a><span class="lineno"> 656</span> </div>
+<div class="line"><a name="l00657"></a><span class="lineno"> 657</span> <span class="keywordflow">return</span> region;</div>
+<div class="line"><a name="l00658"></a><span class="lineno"> 658</span> }</div>
+<div class="line"><a name="l00659"></a><span class="lineno"> 659</span> </div>
+<div class="line"><a name="l00660"></a><span class="lineno"> 660</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1StackLocalsSpaceRegion.html">StackLocalsSpaceRegion</a>*</div>
+<div class="line"><a name="l00661"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a57cca4f579dd4ff0a86df2f43164d9b8"> 661</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a57cca4f579dd4ff0a86df2f43164d9b8">MemRegionManager::getStackLocalsRegion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1StackFrameContext.html">StackFrameContext</a> *STC) {</div>
+<div class="line"><a name="l00662"></a><span class="lineno"> 662</span> assert(STC);</div>
+<div class="line"><a name="l00663"></a><span class="lineno"> 663</span> <a class="code" href="classclang_1_1ento_1_1StackLocalsSpaceRegion.html">StackLocalsSpaceRegion</a> *&R = StackLocalsSpaceRegions[STC];</div>
+<div class="line"><a name="l00664"></a><span class="lineno"> 664</span> </div>
+<div class="line"><a name="l00665"></a><span class="lineno"> 665</span> <span class="keywordflow">if</span> (R)</div>
+<div class="line"><a name="l00666"></a><span class="lineno"> 666</span> <span class="keywordflow">return</span> R;</div>
+<div class="line"><a name="l00667"></a><span class="lineno"> 667</span> </div>
+<div class="line"><a name="l00668"></a><span class="lineno"> 668</span> R = A.Allocate<<a class="code" href="classclang_1_1ento_1_1StackLocalsSpaceRegion.html">StackLocalsSpaceRegion</a>>();</div>
+<div class="line"><a name="l00669"></a><span class="lineno"> 669</span> <span class="keyword">new</span> (R) <a class="code" href="classclang_1_1ento_1_1StackLocalsSpaceRegion.html">StackLocalsSpaceRegion</a>(<span class="keyword">this</span>, STC);</div>
+<div class="line"><a name="l00670"></a><span class="lineno"> 670</span> <span class="keywordflow">return</span> R;</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> </div>
+<div class="line"><a name="l00673"></a><span class="lineno"> 673</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1StackArgumentsSpaceRegion.html">StackArgumentsSpaceRegion</a> *</div>
+<div class="line"><a name="l00674"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a0a662835f1186882b54df07884f1bc6f"> 674</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a0a662835f1186882b54df07884f1bc6f">MemRegionManager::getStackArgumentsRegion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1StackFrameContext.html">StackFrameContext</a> *STC) {</div>
+<div class="line"><a name="l00675"></a><span class="lineno"> 675</span> assert(STC);</div>
+<div class="line"><a name="l00676"></a><span class="lineno"> 676</span> <a class="code" href="classclang_1_1ento_1_1StackArgumentsSpaceRegion.html">StackArgumentsSpaceRegion</a> *&R = StackArgumentsSpaceRegions[STC];</div>
+<div class="line"><a name="l00677"></a><span class="lineno"> 677</span> </div>
+<div class="line"><a name="l00678"></a><span class="lineno"> 678</span> <span class="keywordflow">if</span> (R)</div>
+<div class="line"><a name="l00679"></a><span class="lineno"> 679</span> <span class="keywordflow">return</span> R;</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> R = A.Allocate<<a class="code" href="classclang_1_1ento_1_1StackArgumentsSpaceRegion.html">StackArgumentsSpaceRegion</a>>();</div>
+<div class="line"><a name="l00682"></a><span class="lineno"> 682</span> <span class="keyword">new</span> (R) <a class="code" href="classclang_1_1ento_1_1StackArgumentsSpaceRegion.html">StackArgumentsSpaceRegion</a>(<span class="keyword">this</span>, STC);</div>
+<div class="line"><a name="l00683"></a><span class="lineno"> 683</span> <span class="keywordflow">return</span> R;</div>
+<div class="line"><a name="l00684"></a><span class="lineno"> 684</span> }</div>
+<div class="line"><a name="l00685"></a><span class="lineno"> 685</span> </div>
+<div class="line"><a name="l00686"></a><span class="lineno"> 686</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1GlobalsSpaceRegion.html">GlobalsSpaceRegion</a></div>
+<div class="line"><a name="l00687"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a5ed592046be8ba53d90f8122cf9707fa"> 687</a></span> *<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a5ed592046be8ba53d90f8122cf9707fa">MemRegionManager::getGlobalsRegion</a>(<a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7a">MemRegion::Kind</a> K,</div>
+<div class="line"><a name="l00688"></a><span class="lineno"> 688</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1CodeTextRegion.html">CodeTextRegion</a> *CR) {</div>
+<div class="line"><a name="l00689"></a><span class="lineno"> 689</span> <span class="keywordflow">if</span> (!CR) {</div>
+<div class="line"><a name="l00690"></a><span class="lineno"> 690</span> <span class="keywordflow">if</span> (K == <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa1fa9444fdc00a4462e203a5c01e5a589">MemRegion::GlobalSystemSpaceRegionKind</a>)</div>
+<div class="line"><a name="l00691"></a><span class="lineno"> 691</span> <span class="keywordflow">return</span> LazyAllocate(SystemGlobals);</div>
+<div class="line"><a name="l00692"></a><span class="lineno"> 692</span> <span class="keywordflow">if</span> (K == <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aaedbec81b85bfc94b1c707826997d5519">MemRegion::GlobalImmutableSpaceRegionKind</a>)</div>
+<div class="line"><a name="l00693"></a><span class="lineno"> 693</span> <span class="keywordflow">return</span> LazyAllocate(ImmutableGlobals);</div>
+<div class="line"><a name="l00694"></a><span class="lineno"> 694</span> assert(K == <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa187402ba660cdf2c2c492909b4c0e074">MemRegion::GlobalInternalSpaceRegionKind</a>);</div>
+<div class="line"><a name="l00695"></a><span class="lineno"> 695</span> <span class="keywordflow">return</span> LazyAllocate(InternalGlobals);</div>
+<div class="line"><a name="l00696"></a><span class="lineno"> 696</span> }</div>
+<div class="line"><a name="l00697"></a><span class="lineno"> 697</span> </div>
+<div class="line"><a name="l00698"></a><span class="lineno"> 698</span> assert(K == <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aac7c45b08902aa0fcf09700e014c3a97d">MemRegion::StaticGlobalSpaceRegionKind</a>);</div>
+<div class="line"><a name="l00699"></a><span class="lineno"> 699</span> <a class="code" href="classclang_1_1ento_1_1StaticGlobalSpaceRegion.html" title="The region of the static variables within the current CodeTextRegion scope.">StaticGlobalSpaceRegion</a> *&R = StaticsGlobalSpaceRegions[CR];</div>
+<div class="line"><a name="l00700"></a><span class="lineno"> 700</span> <span class="keywordflow">if</span> (R)</div>
+<div class="line"><a name="l00701"></a><span class="lineno"> 701</span> <span class="keywordflow">return</span> R;</div>
+<div class="line"><a name="l00702"></a><span class="lineno"> 702</span> </div>
+<div class="line"><a name="l00703"></a><span class="lineno"> 703</span> R = A.Allocate<<a class="code" href="classclang_1_1ento_1_1StaticGlobalSpaceRegion.html" title="The region of the static variables within the current CodeTextRegion scope.">StaticGlobalSpaceRegion</a>>();</div>
+<div class="line"><a name="l00704"></a><span class="lineno"> 704</span> <span class="keyword">new</span> (R) <a class="code" href="classclang_1_1ento_1_1StaticGlobalSpaceRegion.html" title="The region of the static variables within the current CodeTextRegion scope.">StaticGlobalSpaceRegion</a>(<span class="keyword">this</span>, CR);</div>
+<div class="line"><a name="l00705"></a><span class="lineno"> 705</span> <span class="keywordflow">return</span> R;</div>
+<div class="line"><a name="l00706"></a><span class="lineno"> 706</span> }</div>
+<div class="line"><a name="l00707"></a><span class="lineno"> 707</span> </div>
+<div class="line"><a name="l00708"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a0524d75beb6bfae73f55225429594246"> 708</a></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1HeapSpaceRegion.html">HeapSpaceRegion</a> *<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a0524d75beb6bfae73f55225429594246">MemRegionManager::getHeapRegion</a>() {</div>
+<div class="line"><a name="l00709"></a><span class="lineno"> 709</span> <span class="keywordflow">return</span> LazyAllocate(heap);</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> </div>
+<div class="line"><a name="l00712"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a59839721c940d58a91e6f41f2f4de0e2"> 712</a></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1MemSpaceRegion.html">MemSpaceRegion</a> *<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a59839721c940d58a91e6f41f2f4de0e2">MemRegionManager::getUnknownRegion</a>() {</div>
+<div class="line"><a name="l00713"></a><span class="lineno"> 713</span> <span class="keywordflow">return</span> LazyAllocate(unknown);</div>
+<div class="line"><a name="l00714"></a><span class="lineno"> 714</span> }</div>
+<div class="line"><a name="l00715"></a><span class="lineno"> 715</span> </div>
+<div class="line"><a name="l00716"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a1e10e7b9e2bdce7ef782fd889930a52b"> 716</a></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1MemSpaceRegion.html">MemSpaceRegion</a> *<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a1e10e7b9e2bdce7ef782fd889930a52b">MemRegionManager::getCodeRegion</a>() {</div>
+<div class="line"><a name="l00717"></a><span class="lineno"> 717</span> <span class="keywordflow">return</span> LazyAllocate(code);</div>
+<div class="line"><a name="l00718"></a><span class="lineno"> 718</span> }</div>
+<div class="line"><a name="l00719"></a><span class="lineno"> 719</span> </div>
+<div class="line"><a name="l00720"></a><span class="lineno"> 720</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00721"></a><span class="lineno"> 721</span> <span class="comment">// Constructing regions.</span></div>
+<div class="line"><a name="l00722"></a><span class="lineno"> 722</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00723"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a952db68004224966afec823c25e436e0"> 723</a></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1StringRegion.html" title="StringRegion - Region associated with a StringLiteral.">StringRegion</a>* <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a952db68004224966afec823c25e436e0">MemRegionManager::getStringRegion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1StringLiteral.html">StringLiteral</a>* Str){</div>
+<div class="line"><a name="l00724"></a><span class="lineno"> 724</span> <span class="keywordflow">return</span> getSubRegion<StringRegion>(Str, <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a5ed592046be8ba53d90f8122cf9707fa">getGlobalsRegion</a>());</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> </div>
+<div class="line"><a name="l00727"></a><span class="lineno"> 727</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1ObjCStringRegion.html" title="The region associated with an ObjCStringLiteral.">ObjCStringRegion</a> *</div>
+<div class="line"><a name="l00728"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a86f43d271501a6785df876371549ffdc"> 728</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a86f43d271501a6785df876371549ffdc">MemRegionManager::getObjCStringRegion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCStringLiteral.html">ObjCStringLiteral</a>* Str){</div>
+<div class="line"><a name="l00729"></a><span class="lineno"> 729</span> <span class="keywordflow">return</span> getSubRegion<ObjCStringRegion>(Str, <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a5ed592046be8ba53d90f8122cf9707fa">getGlobalsRegion</a>());</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">/// Look through a chain of LocationContexts to either find the</span></div>
+<div class="line"><a name="l00733"></a><span class="lineno"> 733</span> <span class="comment">/// StackFrameContext that matches a DeclContext, or find a VarRegion</span></div>
+<div class="line"><a name="l00734"></a><span class="lineno"> 734</span> <span class="comment">/// for a variable captured by a block.</span></div>
+<div class="line"><a name="l00735"></a><span class="lineno"> 735</span> <span class="comment"></span><span class="keyword">static</span> llvm::PointerUnion<const StackFrameContext *, const VarRegion *></div>
+<div class="line"><a name="l00736"></a><span class="lineno"><a class="code" href="MemRegion_8cpp.html#ac8c5a8136aba8a53723d3b355c7888c7"> 736</a></span> <a class="code" href="MemRegion_8cpp.html#ac8c5a8136aba8a53723d3b355c7888c7">getStackOrCaptureRegionForDeclContext</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1LocationContext.html">LocationContext</a> *LC,</div>
+<div class="line"><a name="l00737"></a><span class="lineno"> 737</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1DeclContext.html">DeclContext</a> *DC,</div>
+<div class="line"><a name="l00738"></a><span class="lineno"> 738</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *VD) {</div>
+<div class="line"><a name="l00739"></a><span class="lineno"> 739</span> <span class="keywordflow">while</span> (LC) {</div>
+<div class="line"><a name="l00740"></a><span class="lineno"> 740</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1StackFrameContext.html">StackFrameContext</a> *SFC = dyn_cast<StackFrameContext>(LC)) {</div>
+<div class="line"><a name="l00741"></a><span class="lineno"> 741</span> <span class="keywordflow">if</span> (cast<DeclContext>(SFC->getDecl()) == DC)</div>
+<div class="line"><a name="l00742"></a><span class="lineno"> 742</span> <span class="keywordflow">return</span> SFC;</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="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1BlockInvocationContext.html">BlockInvocationContext</a> *BC =</div>
+<div class="line"><a name="l00745"></a><span class="lineno"> 745</span> dyn_cast<BlockInvocationContext>(LC)) {</div>
+<div class="line"><a name="l00746"></a><span class="lineno"> 746</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1BlockDataRegion.html">BlockDataRegion</a> *BR =</div>
+<div class="line"><a name="l00747"></a><span class="lineno"> 747</span> <span class="keyword">static_cast<</span><span class="keyword">const </span><a class="code" href="classclang_1_1ento_1_1BlockDataRegion.html">BlockDataRegion</a>*<span class="keyword">></span>(BC->getContextData());</div>
+<div class="line"><a name="l00748"></a><span class="lineno"> 748</span> <span class="comment">// FIXME: This can be made more efficient.</span></div>
+<div class="line"><a name="l00749"></a><span class="lineno"> 749</span> <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1ento_1_1BlockDataRegion_1_1referenced__vars__iterator.html">BlockDataRegion::referenced_vars_iterator</a></div>
+<div class="line"><a name="l00750"></a><span class="lineno"> 750</span> I = BR-><a class="code" href="classclang_1_1ento_1_1BlockDataRegion.html#a7166227e54d9529e64e5bed0ac074cf7">referenced_vars_begin</a>(),</div>
+<div class="line"><a name="l00751"></a><span class="lineno"> 751</span> E = BR-><a class="code" href="classclang_1_1ento_1_1BlockDataRegion.html#aefef0dc63c694c21ed8330cd2ef8c7e8">referenced_vars_end</a>(); I != E; ++I) {</div>
+<div class="line"><a name="l00752"></a><span class="lineno"> 752</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>(I.getOriginalRegion()))</div>
+<div class="line"><a name="l00753"></a><span class="lineno"> 753</span> <span class="keywordflow">if</span> (VR->getDecl() == VD)</div>
+<div class="line"><a name="l00754"></a><span class="lineno"> 754</span> <span class="keywordflow">return</span> cast<VarRegion>(I.getCapturedRegion());</div>
+<div class="line"><a name="l00755"></a><span class="lineno"> 755</span> }</div>
+<div class="line"><a name="l00756"></a><span class="lineno"> 756</span> }</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> LC = LC-><a class="code" href="classclang_1_1LocationContext.html#a4a200c6c56997dbcef69ea2cb7c67b75">getParent</a>();</div>
+<div class="line"><a name="l00759"></a><span class="lineno"> 759</span> }</div>
+<div class="line"><a name="l00760"></a><span class="lineno"> 760</span> <span class="keywordflow">return</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1StackFrameContext.html">StackFrameContext</a>*)0;</div>
+<div class="line"><a name="l00761"></a><span class="lineno"> 761</span> }</div>
+<div class="line"><a name="l00762"></a><span class="lineno"> 762</span> </div>
+<div class="line"><a name="l00763"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a8ba4db1926a47f16b352463774bcb24a"> 763</a></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1VarRegion.html">VarRegion</a>* <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a8ba4db1926a47f16b352463774bcb24a">MemRegionManager::getVarRegion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *D,</div>
+<div class="line"><a name="l00764"></a><span class="lineno"> 764</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1LocationContext.html">LocationContext</a> *LC) {</div>
+<div class="line"><a name="l00765"></a><span class="lineno"> 765</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> *sReg = 0;</div>
+<div class="line"><a name="l00766"></a><span class="lineno"> 766</span> </div>
+<div class="line"><a name="l00767"></a><span class="lineno"> 767</span> <span class="keywordflow">if</span> (D-><a class="code" href="classclang_1_1VarDecl.html#a29acc74cf00aaf5d939367f31eeb3aa3" title="Returns true for all variables that do not have local storage.">hasGlobalStorage</a>() && !D-><a class="code" href="classclang_1_1VarDecl.html#a513c56596b4d12e99dd42a4f3ff646d4">isStaticLocal</a>()) {</div>
+<div class="line"><a name="l00768"></a><span class="lineno"> 768</span> </div>
+<div class="line"><a name="l00769"></a><span class="lineno"> 769</span> <span class="comment">// First handle the globals defined in system headers.</span></div>
+<div class="line"><a name="l00770"></a><span class="lineno"> 770</span> <span class="keywordflow">if</span> (C.<a class="code" href="classclang_1_1ASTContext.html#a091e2575135f7f9f1aeb25ba0090bfde">getSourceManager</a>().<a class="code" href="classclang_1_1SourceManager.html#a99c639318222119c75ea9c12f1aa5cf2" title="Returns if a SourceLocation is in a system header.">isInSystemHeader</a>(D-><a class="code" href="classclang_1_1Decl.html#a2348196ac4e0b1d5ebb1859c31b99eac">getLocation</a>())) {</div>
+<div class="line"><a name="l00771"></a><span class="lineno"> 771</span> <span class="comment">// Whitelist the system globals which often DO GET modified, assume the</span></div>
+<div class="line"><a name="l00772"></a><span class="lineno"> 772</span> <span class="comment">// rest are immutable.</span></div>
+<div class="line"><a name="l00773"></a><span class="lineno"> 773</span> <span class="keywordflow">if</span> (D-><a class="code" href="classclang_1_1NamedDecl.html#aaf790590f634520a99e0b45699fc45c3">getName</a>().find(<span class="stringliteral">"errno"</span>) != StringRef::npos)</div>
+<div class="line"><a name="l00774"></a><span class="lineno"> 774</span> sReg = <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a5ed592046be8ba53d90f8122cf9707fa">getGlobalsRegion</a>(<a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa1fa9444fdc00a4462e203a5c01e5a589">MemRegion::GlobalSystemSpaceRegionKind</a>);</div>
+<div class="line"><a name="l00775"></a><span class="lineno"> 775</span> <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00776"></a><span class="lineno"> 776</span> sReg = <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a5ed592046be8ba53d90f8122cf9707fa">getGlobalsRegion</a>(<a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aaedbec81b85bfc94b1c707826997d5519">MemRegion::GlobalImmutableSpaceRegionKind</a>);</div>
+<div class="line"><a name="l00777"></a><span class="lineno"> 777</span> </div>
+<div class="line"><a name="l00778"></a><span class="lineno"> 778</span> <span class="comment">// Treat other globals as GlobalInternal unless they are constants.</span></div>
+<div class="line"><a name="l00779"></a><span class="lineno"> 779</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00780"></a><span class="lineno"> 780</span> <a class="code" href="classclang_1_1QualType.html">QualType</a> GQT = D-><a class="code" href="classclang_1_1ValueDecl.html#aefa6d3327144aee23d2935f41d993484">getType</a>();</div>
+<div class="line"><a name="l00781"></a><span class="lineno"> 781</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1Type.html">Type</a> *GT = GQT.<a class="code" href="classclang_1_1QualType.html#a084f18db440f4553cd6708681186aa06">getTypePtrOrNull</a>();</div>
+<div class="line"><a name="l00782"></a><span class="lineno"> 782</span> <span class="comment">// TODO: We could walk the complex types here and see if everything is</span></div>
+<div class="line"><a name="l00783"></a><span class="lineno"> 783</span> <span class="comment">// constified.</span></div>
+<div class="line"><a name="l00784"></a><span class="lineno"> 784</span> <span class="keywordflow">if</span> (GT && GQT.<a class="code" href="classclang_1_1QualType.html#afea72c89b99446db779fcfb0ea257826" title="Determine whether this type is const-qualified.">isConstQualified</a>() && GT-><a class="code" href="classclang_1_1Type.html#a3c072948dc40a770d97459f82feb0bc8">isArithmeticType</a>())</div>
+<div class="line"><a name="l00785"></a><span class="lineno"> 785</span> sReg = <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a5ed592046be8ba53d90f8122cf9707fa">getGlobalsRegion</a>(<a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aaedbec81b85bfc94b1c707826997d5519">MemRegion::GlobalImmutableSpaceRegionKind</a>);</div>
+<div class="line"><a name="l00786"></a><span class="lineno"> 786</span> <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00787"></a><span class="lineno"> 787</span> sReg = <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a5ed592046be8ba53d90f8122cf9707fa">getGlobalsRegion</a>();</div>
+<div class="line"><a name="l00788"></a><span class="lineno"> 788</span> }</div>
+<div class="line"><a name="l00789"></a><span class="lineno"> 789</span> </div>
+<div class="line"><a name="l00790"></a><span class="lineno"> 790</span> <span class="comment">// Finally handle static locals. </span></div>
+<div class="line"><a name="l00791"></a><span class="lineno"> 791</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00792"></a><span class="lineno"> 792</span> <span class="comment">// FIXME: Once we implement scope handling, we will need to properly lookup</span></div>
+<div class="line"><a name="l00793"></a><span class="lineno"> 793</span> <span class="comment">// 'D' to the proper LocationContext.</span></div>
+<div class="line"><a name="l00794"></a><span class="lineno"> 794</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1DeclContext.html">DeclContext</a> *DC = D-><a class="code" href="classclang_1_1Decl.html#af67e1a1d24dcc51093b95dbcf68d4288">getDeclContext</a>();</div>
+<div class="line"><a name="l00795"></a><span class="lineno"> 795</span> llvm::PointerUnion<const StackFrameContext *, const VarRegion *> V =</div>
+<div class="line"><a name="l00796"></a><span class="lineno"> 796</span> <a class="code" href="MemRegion_8cpp.html#ac8c5a8136aba8a53723d3b355c7888c7">getStackOrCaptureRegionForDeclContext</a>(LC, DC, D);</div>
+<div class="line"><a name="l00797"></a><span class="lineno"> 797</span> </div>
+<div class="line"><a name="l00798"></a><span class="lineno"> 798</span> <span class="keywordflow">if</span> (V.is<<span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1VarRegion.html">VarRegion</a>*>())</div>
+<div class="line"><a name="l00799"></a><span class="lineno"> 799</span> <span class="keywordflow">return</span> V.get<<span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1VarRegion.html">VarRegion</a>*>();</div>
+<div class="line"><a name="l00800"></a><span class="lineno"> 800</span> </div>
+<div class="line"><a name="l00801"></a><span class="lineno"> 801</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1StackFrameContext.html">StackFrameContext</a> *STC = V.get<<span class="keyword">const</span> <a class="code" href="classclang_1_1StackFrameContext.html">StackFrameContext</a>*>();</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="keywordflow">if</span> (!STC)</div>
+<div class="line"><a name="l00804"></a><span class="lineno"> 804</span> sReg = <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a59839721c940d58a91e6f41f2f4de0e2">getUnknownRegion</a>();</div>
+<div class="line"><a name="l00805"></a><span class="lineno"> 805</span> <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00806"></a><span class="lineno"> 806</span> <span class="keywordflow">if</span> (D-><a class="code" href="classclang_1_1VarDecl.html#a86bb48bd6ced47b79a59af7df7108184">hasLocalStorage</a>()) {</div>
+<div class="line"><a name="l00807"></a><span class="lineno"> 807</span> sReg = isa<ParmVarDecl>(D) || isa<ImplicitParamDecl>(D)</div>
+<div class="line"><a name="l00808"></a><span class="lineno"> 808</span> ? <span class="keyword">static_cast<</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>*<span class="keyword">></span>(<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a0a662835f1186882b54df07884f1bc6f">getStackArgumentsRegion</a>(STC))</div>
+<div class="line"><a name="l00809"></a><span class="lineno"> 809</span> : static_cast<const MemRegion*>(<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a57cca4f579dd4ff0a86df2f43164d9b8">getStackLocalsRegion</a>(STC));</div>
+<div class="line"><a name="l00810"></a><span class="lineno"> 810</span> }</div>
+<div class="line"><a name="l00811"></a><span class="lineno"> 811</span> <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00812"></a><span class="lineno"> 812</span> assert(D-><a class="code" href="classclang_1_1VarDecl.html#a513c56596b4d12e99dd42a4f3ff646d4">isStaticLocal</a>());</div>
+<div class="line"><a name="l00813"></a><span class="lineno"> 813</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1Decl.html">Decl</a> *STCD = STC->getDecl();</div>
+<div class="line"><a name="l00814"></a><span class="lineno"> 814</span> <span class="keywordflow">if</span> (isa<FunctionDecl>(STCD) || isa<ObjCMethodDecl>(STCD))</div>
+<div class="line"><a name="l00815"></a><span class="lineno"> 815</span> sReg = <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a5ed592046be8ba53d90f8122cf9707fa">getGlobalsRegion</a>(<a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aac7c45b08902aa0fcf09700e014c3a97d">MemRegion::StaticGlobalSpaceRegionKind</a>,</div>
+<div class="line"><a name="l00816"></a><span class="lineno"> 816</span> <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a70cb34919c5f113570f2509c36dff917">getFunctionTextRegion</a>(cast<NamedDecl>(STCD)));</div>
+<div class="line"><a name="l00817"></a><span class="lineno"> 817</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1BlockDecl.html">BlockDecl</a> *BD = dyn_cast<BlockDecl>(STCD)) {</div>
+<div class="line"><a name="l00818"></a><span class="lineno"> 818</span> <span class="comment">// FIXME: The fallback type here is totally bogus -- though it should</span></div>
+<div class="line"><a name="l00819"></a><span class="lineno"> 819</span> <span class="comment">// never be queried, it will prevent uniquing with the real</span></div>
+<div class="line"><a name="l00820"></a><span class="lineno"> 820</span> <span class="comment">// BlockTextRegion. Ideally we'd fix the AST so that we always had a</span></div>
+<div class="line"><a name="l00821"></a><span class="lineno"> 821</span> <span class="comment">// signature.</span></div>
+<div class="line"><a name="l00822"></a><span class="lineno"> 822</span> <a class="code" href="classclang_1_1QualType.html">QualType</a> T;</div>
+<div class="line"><a name="l00823"></a><span class="lineno"> 823</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1TypeSourceInfo.html" title="A container of type source information.">TypeSourceInfo</a> *TSI = BD->getSignatureAsWritten())</div>
+<div class="line"><a name="l00824"></a><span class="lineno"> 824</span> T = TSI->getType();</div>
+<div class="line"><a name="l00825"></a><span class="lineno"> 825</span> <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00826"></a><span class="lineno"> 826</span> T = <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a46ae579c8d6badced3eabc41de347b89">getContext</a>().<a class="code" href="classclang_1_1ASTContext.html#a5f935beb13cff87f834784b26504f2f3" title="Return a K&R style C function type like 'int()'.">getFunctionNoProtoType</a>(<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a46ae579c8d6badced3eabc41de347b89">getContext</a>().VoidTy);</div>
+<div class="line"><a name="l00827"></a><span class="lineno"> 827</span> </div>
+<div class="line"><a name="l00828"></a><span class="lineno"> 828</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1BlockTextRegion.html">BlockTextRegion</a> *BTR =</div>
+<div class="line"><a name="l00829"></a><span class="lineno"> 829</span> <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a46cdd9cf98802db14be22598c6a6bc25">getBlockTextRegion</a>(BD, C.<a class="code" href="classclang_1_1ASTContext.html#a7e70bb7eebf01548a0cab752e390ba37" title="Return the canonical (structural) type corresponding to the specified potentially non-canonical type ...">getCanonicalType</a>(T),</div>
+<div class="line"><a name="l00830"></a><span class="lineno"> 830</span> STC->getAnalysisDeclContext());</div>
+<div class="line"><a name="l00831"></a><span class="lineno"> 831</span> sReg = <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a5ed592046be8ba53d90f8122cf9707fa">getGlobalsRegion</a>(<a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aac7c45b08902aa0fcf09700e014c3a97d">MemRegion::StaticGlobalSpaceRegionKind</a>,</div>
+<div class="line"><a name="l00832"></a><span class="lineno"> 832</span> BTR);</div>
+<div class="line"><a name="l00833"></a><span class="lineno"> 833</span> }</div>
+<div class="line"><a name="l00834"></a><span class="lineno"> 834</span> <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00835"></a><span class="lineno"> 835</span> sReg = <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a5ed592046be8ba53d90f8122cf9707fa">getGlobalsRegion</a>();</div>
+<div class="line"><a name="l00836"></a><span class="lineno"> 836</span> }</div>
+<div class="line"><a name="l00837"></a><span class="lineno"> 837</span> }</div>
+<div class="line"><a name="l00838"></a><span class="lineno"> 838</span> }</div>
+<div class="line"><a name="l00839"></a><span class="lineno"> 839</span> }</div>
+<div class="line"><a name="l00840"></a><span class="lineno"> 840</span> </div>
+<div class="line"><a name="l00841"></a><span class="lineno"> 841</span> <span class="keywordflow">return</span> getSubRegion<VarRegion>(D, sReg);</div>
+<div class="line"><a name="l00842"></a><span class="lineno"> 842</span> }</div>
+<div class="line"><a name="l00843"></a><span class="lineno"> 843</span> </div>
+<div class="line"><a name="l00844"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a2726476a90e51a443e48629832e0f766"> 844</a></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1VarRegion.html">VarRegion</a> *<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a8ba4db1926a47f16b352463774bcb24a">MemRegionManager::getVarRegion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *D,</div>
+<div class="line"><a name="l00845"></a><span class="lineno"> 845</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> *superR) {</div>
+<div class="line"><a name="l00846"></a><span class="lineno"> 846</span> <span class="keywordflow">return</span> getSubRegion<VarRegion>(D, superR);</div>
+<div class="line"><a name="l00847"></a><span class="lineno"> 847</span> }</div>
+<div class="line"><a name="l00848"></a><span class="lineno"> 848</span> </div>
+<div class="line"><a name="l00849"></a><span class="lineno"> 849</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1BlockDataRegion.html">BlockDataRegion</a> *</div>
+<div class="line"><a name="l00850"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a57f41ee29331a1d63936a564cef2a377"> 850</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a57f41ee29331a1d63936a564cef2a377">MemRegionManager::getBlockDataRegion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1BlockTextRegion.html">BlockTextRegion</a> *BC,</div>
+<div class="line"><a name="l00851"></a><span class="lineno"> 851</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1LocationContext.html">LocationContext</a> *LC,</div>
+<div class="line"><a name="l00852"></a><span class="lineno"> 852</span> <span class="keywordtype">unsigned</span> blockCount) {</div>
+<div class="line"><a name="l00853"></a><span class="lineno"> 853</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> *sReg = 0;</div>
+<div class="line"><a name="l00854"></a><span class="lineno"> 854</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1BlockDecl.html">BlockDecl</a> *BD = BC-><a class="code" href="classclang_1_1ento_1_1BlockTextRegion.html#abba5cb1a95686f8824f6459aabc00cdd">getDecl</a>();</div>
+<div class="line"><a name="l00855"></a><span class="lineno"> 855</span> <span class="keywordflow">if</span> (!BD-><a class="code" href="classclang_1_1BlockDecl.html#aa58fd6e13675a9d9c5f51e16561dfb36">hasCaptures</a>()) {</div>
+<div class="line"><a name="l00856"></a><span class="lineno"> 856</span> <span class="comment">// This handles 'static' blocks.</span></div>
+<div class="line"><a name="l00857"></a><span class="lineno"> 857</span> sReg = <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a5ed592046be8ba53d90f8122cf9707fa">getGlobalsRegion</a>(<a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aaedbec81b85bfc94b1c707826997d5519">MemRegion::GlobalImmutableSpaceRegionKind</a>);</div>
+<div class="line"><a name="l00858"></a><span class="lineno"> 858</span> }</div>
+<div class="line"><a name="l00859"></a><span class="lineno"> 859</span> <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00860"></a><span class="lineno"> 860</span> <span class="keywordflow">if</span> (LC) {</div>
+<div class="line"><a name="l00861"></a><span class="lineno"> 861</span> <span class="comment">// FIXME: Once we implement scope handling, we want the parent region</span></div>
+<div class="line"><a name="l00862"></a><span class="lineno"> 862</span> <span class="comment">// to be the scope.</span></div>
+<div class="line"><a name="l00863"></a><span class="lineno"> 863</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1StackFrameContext.html">StackFrameContext</a> *STC = LC-><a class="code" href="classclang_1_1LocationContext.html#ad4512d946266fda30b7439564a9f831c">getCurrentStackFrame</a>();</div>
+<div class="line"><a name="l00864"></a><span class="lineno"> 864</span> assert(STC);</div>
+<div class="line"><a name="l00865"></a><span class="lineno"> 865</span> sReg = <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a57cca4f579dd4ff0a86df2f43164d9b8">getStackLocalsRegion</a>(STC);</div>
+<div class="line"><a name="l00866"></a><span class="lineno"> 866</span> }</div>
+<div class="line"><a name="l00867"></a><span class="lineno"> 867</span> <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00868"></a><span class="lineno"> 868</span> <span class="comment">// We allow 'LC' to be NULL for cases where want BlockDataRegions</span></div>
+<div class="line"><a name="l00869"></a><span class="lineno"> 869</span> <span class="comment">// without context-sensitivity.</span></div>
+<div class="line"><a name="l00870"></a><span class="lineno"> 870</span> sReg = <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a59839721c940d58a91e6f41f2f4de0e2">getUnknownRegion</a>();</div>
+<div class="line"><a name="l00871"></a><span class="lineno"> 871</span> }</div>
+<div class="line"><a name="l00872"></a><span class="lineno"> 872</span> }</div>
+<div class="line"><a name="l00873"></a><span class="lineno"> 873</span> </div>
+<div class="line"><a name="l00874"></a><span class="lineno"> 874</span> <span class="keywordflow">return</span> getSubRegion<BlockDataRegion>(BC, LC, blockCount, sReg);</div>
+<div class="line"><a name="l00875"></a><span class="lineno"> 875</span> }</div>
+<div class="line"><a name="l00876"></a><span class="lineno"> 876</span> </div>
+<div class="line"><a name="l00877"></a><span class="lineno"> 877</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1CXXTempObjectRegion.html">CXXTempObjectRegion</a> *</div>
+<div class="line"><a name="l00878"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a7a9d2268aa1437b3328b6fd044d13461"> 878</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a7a9d2268aa1437b3328b6fd044d13461">MemRegionManager::getCXXStaticTempObjectRegion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *Ex) {</div>
+<div class="line"><a name="l00879"></a><span class="lineno"> 879</span> <span class="keywordflow">return</span> getSubRegion<CXXTempObjectRegion>(</div>
+<div class="line"><a name="l00880"></a><span class="lineno"> 880</span> Ex, <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a5ed592046be8ba53d90f8122cf9707fa">getGlobalsRegion</a>(<a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa187402ba660cdf2c2c492909b4c0e074">MemRegion::GlobalInternalSpaceRegionKind</a>, <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>));</div>
+<div class="line"><a name="l00881"></a><span class="lineno"> 881</span> }</div>
+<div class="line"><a name="l00882"></a><span class="lineno"> 882</span> </div>
+<div class="line"><a name="l00883"></a><span class="lineno"> 883</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1CompoundLiteralRegion.html">CompoundLiteralRegion</a>*</div>
+<div class="line"><a name="l00884"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a3728b4008f05f9f697de7cfe29b86be1"> 884</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a3728b4008f05f9f697de7cfe29b86be1">MemRegionManager::getCompoundLiteralRegion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CompoundLiteralExpr.html">CompoundLiteralExpr</a> *CL,</div>
+<div class="line"><a name="l00885"></a><span class="lineno"> 885</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1LocationContext.html">LocationContext</a> *LC) {</div>
+<div class="line"><a name="l00886"></a><span class="lineno"> 886</span> </div>
+<div class="line"><a name="l00887"></a><span class="lineno"> 887</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> *sReg = 0;</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">if</span> (CL-><a class="code" href="classclang_1_1CompoundLiteralExpr.html#ad57cda2056b141f75cc33da9ae7db769">isFileScope</a>())</div>
+<div class="line"><a name="l00890"></a><span class="lineno"> 890</span> sReg = <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a5ed592046be8ba53d90f8122cf9707fa">getGlobalsRegion</a>();</div>
+<div class="line"><a name="l00891"></a><span class="lineno"> 891</span> <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00892"></a><span class="lineno"> 892</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1StackFrameContext.html">StackFrameContext</a> *STC = LC-><a class="code" href="classclang_1_1LocationContext.html#ad4512d946266fda30b7439564a9f831c">getCurrentStackFrame</a>();</div>
+<div class="line"><a name="l00893"></a><span class="lineno"> 893</span> assert(STC);</div>
+<div class="line"><a name="l00894"></a><span class="lineno"> 894</span> sReg = <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a57cca4f579dd4ff0a86df2f43164d9b8">getStackLocalsRegion</a>(STC);</div>
+<div class="line"><a name="l00895"></a><span class="lineno"> 895</span> }</div>
+<div class="line"><a name="l00896"></a><span class="lineno"> 896</span> </div>
+<div class="line"><a name="l00897"></a><span class="lineno"> 897</span> <span class="keywordflow">return</span> getSubRegion<CompoundLiteralRegion>(CL, sReg);</div>
+<div class="line"><a name="l00898"></a><span class="lineno"> 898</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="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1ElementRegion.html" title="ElementRegin is used to represent both array elements and casts.">ElementRegion</a>*</div>
+<div class="line"><a name="l00901"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a62f05ab0863b11eff4514187027e3e24"> 901</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a62f05ab0863b11eff4514187027e3e24">MemRegionManager::getElementRegion</a>(<a class="code" href="classclang_1_1QualType.html">QualType</a> elementType, <a class="code" href="classclang_1_1ento_1_1NonLoc.html">NonLoc</a> Idx,</div>
+<div class="line"><a name="l00902"></a><span class="lineno"> 902</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>* superRegion,</div>
+<div class="line"><a name="l00903"></a><span class="lineno"> 903</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="l00904"></a><span class="lineno"> 904</span> </div>
+<div class="line"><a name="l00905"></a><span class="lineno"> 905</span> <a class="code" href="classclang_1_1QualType.html">QualType</a> T = Ctx.<a class="code" href="classclang_1_1ASTContext.html#a7e70bb7eebf01548a0cab752e390ba37" title="Return the canonical (structural) type corresponding to the specified potentially non-canonical type ...">getCanonicalType</a>(elementType).<a class="code" href="classclang_1_1CanQual.html#af48a042eb252e80347f11899625ca0dc" title="Retrieve the unqualified form of this type.">getUnqualifiedType</a>();</div>
+<div class="line"><a name="l00906"></a><span class="lineno"> 906</span> </div>
+<div class="line"><a name="l00907"></a><span class="lineno"> 907</span> llvm::FoldingSetNodeID <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>;</div>
+<div class="line"><a name="l00908"></a><span class="lineno"> 908</span> ElementRegion::ProfileRegion(ID, T, Idx, superRegion);</div>
+<div class="line"><a name="l00909"></a><span class="lineno"> 909</span> </div>
+<div class="line"><a name="l00910"></a><span class="lineno"> 910</span> <span class="keywordtype">void</span> *InsertPos;</div>
+<div class="line"><a name="l00911"></a><span class="lineno"> 911</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html" title="MemRegion - The root abstract class for all memory regions.">MemRegion</a>* <a class="code" href="ASTWriter_8cpp.html#a5c6341076bde2012a21db25f4e2e3792">data</a> = Regions.FindNodeOrInsertPos(ID, InsertPos);</div>
+<div class="line"><a name="l00912"></a><span class="lineno"> 912</span> <a class="code" href="classclang_1_1ento_1_1ElementRegion.html" title="ElementRegin is used to represent both array elements and casts.">ElementRegion</a>* R = cast_or_null<ElementRegion>(<a class="code" href="ASTWriter_8cpp.html#a5c6341076bde2012a21db25f4e2e3792">data</a>);</div>
+<div class="line"><a name="l00913"></a><span class="lineno"> 913</span> </div>
+<div class="line"><a name="l00914"></a><span class="lineno"> 914</span> <span class="keywordflow">if</span> (!R) {</div>
+<div class="line"><a name="l00915"></a><span class="lineno"> 915</span> R = (<a class="code" href="classclang_1_1ento_1_1ElementRegion.html" title="ElementRegin is used to represent both array elements and casts.">ElementRegion</a>*) A.Allocate<<a class="code" href="classclang_1_1ento_1_1ElementRegion.html" title="ElementRegin is used to represent both array elements and casts.">ElementRegion</a>>();</div>
+<div class="line"><a name="l00916"></a><span class="lineno"> 916</span> <span class="keyword">new</span> (R) <a class="code" href="classclang_1_1ento_1_1ElementRegion.html" title="ElementRegin is used to represent both array elements and casts.">ElementRegion</a>(T, Idx, superRegion);</div>
+<div class="line"><a name="l00917"></a><span class="lineno"> 917</span> Regions.InsertNode(R, InsertPos);</div>
+<div class="line"><a name="l00918"></a><span class="lineno"> 918</span> }</div>
+<div class="line"><a name="l00919"></a><span class="lineno"> 919</span> </div>
+<div class="line"><a name="l00920"></a><span class="lineno"> 920</span> <span class="keywordflow">return</span> R;</div>
+<div class="line"><a name="l00921"></a><span class="lineno"> 921</span> }</div>
+<div class="line"><a name="l00922"></a><span class="lineno"> 922</span> </div>
+<div class="line"><a name="l00923"></a><span class="lineno"> 923</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1FunctionTextRegion.html" title="FunctionTextRegion - A region that represents code texts of function.">FunctionTextRegion</a> *</div>
+<div class="line"><a name="l00924"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a70cb34919c5f113570f2509c36dff917"> 924</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a70cb34919c5f113570f2509c36dff917">MemRegionManager::getFunctionTextRegion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1NamedDecl.html">NamedDecl</a> *FD) {</div>
+<div class="line"><a name="l00925"></a><span class="lineno"> 925</span> <span class="keywordflow">return</span> getSubRegion<FunctionTextRegion>(FD, <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a1e10e7b9e2bdce7ef782fd889930a52b">getCodeRegion</a>());</div>
+<div class="line"><a name="l00926"></a><span class="lineno"> 926</span> }</div>
+<div class="line"><a name="l00927"></a><span class="lineno"> 927</span> </div>
+<div class="line"><a name="l00928"></a><span class="lineno"> 928</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1BlockTextRegion.html">BlockTextRegion</a> *</div>
+<div class="line"><a name="l00929"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a46cdd9cf98802db14be22598c6a6bc25"> 929</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a46cdd9cf98802db14be22598c6a6bc25">MemRegionManager::getBlockTextRegion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1BlockDecl.html">BlockDecl</a> *BD, <a class="code" href="classclang_1_1CanQual.html">CanQualType</a> locTy,</div>
+<div class="line"><a name="l00930"></a><span class="lineno"> 930</span> <a class="code" href="classclang_1_1AnalysisDeclContext.html">AnalysisDeclContext</a> *AC) {</div>
+<div class="line"><a name="l00931"></a><span class="lineno"> 931</span> <span class="keywordflow">return</span> getSubRegion<BlockTextRegion>(BD, locTy, AC, <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a1e10e7b9e2bdce7ef782fd889930a52b">getCodeRegion</a>());</div>
+<div class="line"><a name="l00932"></a><span class="lineno"> 932</span> }</div>
+<div class="line"><a name="l00933"></a><span class="lineno"> 933</span> </div>
+<div class="line"><a name="l00934"></a><span class="lineno"> 934</span> <span class="comment"></span></div>
+<div class="line"><a name="l00935"></a><span class="lineno"> 935</span> <span class="comment">/// getSymbolicRegion - Retrieve or create a "symbolic" memory region.</span></div>
+<div class="line"><a name="l00936"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#ac1623fa901e33889624b06fa0c4eede3"> 936</a></span> <span class="comment"></span><span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1SymbolicRegion.html">SymbolicRegion</a> *<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#ac1623fa901e33889624b06fa0c4eede3" title="Retrieve or create a "symbolic" memory region.">MemRegionManager::getSymbolicRegion</a>(<a class="code" href="classclang_1_1ento_1_1SymExpr.html" title="Symbolic value. These values used to capture symbolic execution of the program.">SymbolRef</a> sym) {</div>
+<div class="line"><a name="l00937"></a><span class="lineno"> 937</span> <span class="keywordflow">return</span> getSubRegion<SymbolicRegion>(sym, <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a59839721c940d58a91e6f41f2f4de0e2">getUnknownRegion</a>());</div>
+<div class="line"><a name="l00938"></a><span class="lineno"> 938</span> }</div>
+<div class="line"><a name="l00939"></a><span class="lineno"> 939</span> </div>
+<div class="line"><a name="l00940"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a803ac72e14ffd0ea4d096d2ee0f90e01"> 940</a></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1SymbolicRegion.html">SymbolicRegion</a> *<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a803ac72e14ffd0ea4d096d2ee0f90e01" title="Return a unique symbolic region belonging to heap memory space.">MemRegionManager::getSymbolicHeapRegion</a>(<a class="code" href="classclang_1_1ento_1_1SymExpr.html" title="Symbolic value. These values used to capture symbolic execution of the program.">SymbolRef</a> Sym) {</div>
+<div class="line"><a name="l00941"></a><span class="lineno"> 941</span> <span class="keywordflow">return</span> getSubRegion<SymbolicRegion>(Sym, <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a0524d75beb6bfae73f55225429594246">getHeapRegion</a>());</div>
+<div class="line"><a name="l00942"></a><span class="lineno"> 942</span> }</div>
+<div class="line"><a name="l00943"></a><span class="lineno"> 943</span> </div>
+<div class="line"><a name="l00944"></a><span class="lineno"> 944</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1FieldRegion.html">FieldRegion</a>*</div>
+<div class="line"><a name="l00945"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#ac4f2a817212670423f5d767d56aea9f6"> 945</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#ac4f2a817212670423f5d767d56aea9f6">MemRegionManager::getFieldRegion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1FieldDecl.html">FieldDecl</a> *d,</div>
+<div class="line"><a name="l00946"></a><span class="lineno"> 946</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>* superRegion){</div>
+<div class="line"><a name="l00947"></a><span class="lineno"> 947</span> <span class="keywordflow">return</span> getSubRegion<FieldRegion>(d, superRegion);</div>
+<div class="line"><a name="l00948"></a><span class="lineno"> 948</span> }</div>
+<div class="line"><a name="l00949"></a><span class="lineno"> 949</span> </div>
+<div class="line"><a name="l00950"></a><span class="lineno"> 950</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1ObjCIvarRegion.html">ObjCIvarRegion</a>*</div>
+<div class="line"><a name="l00951"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a0216df2c50004f8e34197fe3ef716bec"> 951</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a0216df2c50004f8e34197fe3ef716bec">MemRegionManager::getObjCIvarRegion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *d,</div>
+<div class="line"><a name="l00952"></a><span class="lineno"> 952</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>* superRegion) {</div>
+<div class="line"><a name="l00953"></a><span class="lineno"> 953</span> <span class="keywordflow">return</span> getSubRegion<ObjCIvarRegion>(d, superRegion);</div>
+<div class="line"><a name="l00954"></a><span class="lineno"> 954</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> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1CXXTempObjectRegion.html">CXXTempObjectRegion</a>*</div>
+<div class="line"><a name="l00957"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#ab4791cc0a0e157866cde6df03ef26d51"> 957</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#ab4791cc0a0e157866cde6df03ef26d51">MemRegionManager::getCXXTempObjectRegion</a>(<a class="code" href="classclang_1_1Expr.html">Expr</a> <span class="keyword">const</span> *E,</div>
+<div class="line"><a name="l00958"></a><span class="lineno"> 958</span> <a class="code" href="classclang_1_1LocationContext.html">LocationContext</a> <span class="keyword">const</span> *LC) {</div>
+<div class="line"><a name="l00959"></a><span class="lineno"> 959</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1StackFrameContext.html">StackFrameContext</a> *SFC = LC-><a class="code" href="classclang_1_1LocationContext.html#ad4512d946266fda30b7439564a9f831c">getCurrentStackFrame</a>();</div>
+<div class="line"><a name="l00960"></a><span class="lineno"> 960</span> assert(SFC);</div>
+<div class="line"><a name="l00961"></a><span class="lineno"> 961</span> <span class="keywordflow">return</span> getSubRegion<CXXTempObjectRegion>(E, <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a57cca4f579dd4ff0a86df2f43164d9b8">getStackLocalsRegion</a>(SFC));</div>
+<div class="line"><a name="l00962"></a><span class="lineno"> 962</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">/// Checks whether \p BaseClass is a valid virtual or direct non-virtual base</span></div>
+<div class="line"><a name="l00965"></a><span class="lineno"> 965</span> <span class="comment">/// class of the type of \p Super.</span></div>
+<div class="line"><a name="l00966"></a><span class="lineno"><a class="code" href="MemRegion_8cpp.html#a8a3a575fb761525a86c685c428793697"> 966</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="MemRegion_8cpp.html#a8a3a575fb761525a86c685c428793697">isValidBaseClass</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *BaseClass,</div>
+<div class="line"><a name="l00967"></a><span class="lineno"> 967</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1TypedValueRegion.html" title="TypedValueRegion - An abstract class representing regions having a typed value.">TypedValueRegion</a> *Super,</div>
+<div class="line"><a name="l00968"></a><span class="lineno"> 968</span> <span class="keywordtype">bool</span> IsVirtual) {</div>
+<div class="line"><a name="l00969"></a><span class="lineno"> 969</span> BaseClass = BaseClass-><a class="code" href="classclang_1_1CXXRecordDecl.html#a38f531b4822da3071fe56cc210978afd" title="Retrieves the "canonical" declaration of the given declaration.">getCanonicalDecl</a>();</div>
+<div class="line"><a name="l00970"></a><span class="lineno"> 970</span> </div>
+<div class="line"><a name="l00971"></a><span class="lineno"> 971</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *Class = Super-><a class="code" href="classclang_1_1ento_1_1TypedValueRegion.html#a527b908a410f8b916205d6db9420969e">getValueType</a>()-><a class="code" href="classclang_1_1Type.html#a7dc6c3dbc192ad98871c3cc484376b9a" title="Retrieves the CXXRecordDecl that this type refers to, either because the type is a RecordType or beca...">getAsCXXRecordDecl</a>();</div>
+<div class="line"><a name="l00972"></a><span class="lineno"> 972</span> <span class="keywordflow">if</span> (!Class)</div>
+<div class="line"><a name="l00973"></a><span class="lineno"> 973</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00974"></a><span class="lineno"> 974</span> </div>
+<div class="line"><a name="l00975"></a><span class="lineno"> 975</span> <span class="keywordflow">if</span> (IsVirtual)</div>
+<div class="line"><a name="l00976"></a><span class="lineno"> 976</span> <span class="keywordflow">return</span> Class-><a class="code" href="classclang_1_1CXXRecordDecl.html#ae4accda99a5e49a042f485cfc780f06f" title="Determine whether this class is virtually derived from the class Base.">isVirtuallyDerivedFrom</a>(BaseClass);</div>
+<div class="line"><a name="l00977"></a><span class="lineno"> 977</span> </div>
+<div class="line"><a name="l00978"></a><span class="lineno"> 978</span> <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1CXXBaseSpecifier.html" title="Represents a base class of a C++ class.">CXXRecordDecl::base_class_const_iterator</a> I = Class-><a class="code" href="classclang_1_1CXXRecordDecl.html#a830448d054e3dca2db6851bd4605492c">bases_begin</a>(),</div>
+<div class="line"><a name="l00979"></a><span class="lineno"> 979</span> E = Class-><a class="code" href="classclang_1_1CXXRecordDecl.html#a1e27f3ddd2de050a298094ea732bd321">bases_end</a>();</div>
+<div class="line"><a name="l00980"></a><span class="lineno"> 980</span> I != E; ++I) {</div>
+<div class="line"><a name="l00981"></a><span class="lineno"> 981</span> <span class="keywordflow">if</span> (I->getType()->getAsCXXRecordDecl()->getCanonicalDecl() == BaseClass)</div>
+<div class="line"><a name="l00982"></a><span class="lineno"> 982</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00983"></a><span class="lineno"> 983</span> }</div>
+<div class="line"><a name="l00984"></a><span class="lineno"> 984</span> </div>
+<div class="line"><a name="l00985"></a><span class="lineno"> 985</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00986"></a><span class="lineno"> 986</span> }</div>
+<div class="line"><a name="l00987"></a><span class="lineno"> 987</span> </div>
+<div class="line"><a name="l00988"></a><span class="lineno"> 988</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1CXXBaseObjectRegion.html">CXXBaseObjectRegion</a> *</div>
+<div class="line"><a name="l00989"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#ace39a0c67490cc480fec5d4de3bee245"> 989</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#ace39a0c67490cc480fec5d4de3bee245">MemRegionManager::getCXXBaseObjectRegion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *RD,</div>
+<div class="line"><a name="l00990"></a><span class="lineno"> 990</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> *Super,</div>
+<div class="line"><a name="l00991"></a><span class="lineno"> 991</span> <span class="keywordtype">bool</span> IsVirtual) {</div>
+<div class="line"><a name="l00992"></a><span class="lineno"> 992</span> <span class="keywordflow">if</span> (isa<TypedValueRegion>(Super)) {</div>
+<div class="line"><a name="l00993"></a><span class="lineno"> 993</span> assert(<a class="code" href="MemRegion_8cpp.html#a8a3a575fb761525a86c685c428793697">isValidBaseClass</a>(RD, dyn_cast<TypedValueRegion>(Super), IsVirtual));</div>
+<div class="line"><a name="l00994"></a><span class="lineno"> 994</span> (void)&<a class="code" href="MemRegion_8cpp.html#a8a3a575fb761525a86c685c428793697">isValidBaseClass</a>;</div>
+<div class="line"><a name="l00995"></a><span class="lineno"> 995</span> </div>
+<div class="line"><a name="l00996"></a><span class="lineno"> 996</span> <span class="keywordflow">if</span> (IsVirtual) {</div>
+<div class="line"><a name="l00997"></a><span class="lineno"> 997</span> <span class="comment">// Virtual base regions should not be layered, since the layout rules</span></div>
+<div class="line"><a name="l00998"></a><span class="lineno"> 998</span> <span class="comment">// are different.</span></div>
+<div class="line"><a name="l00999"></a><span class="lineno"> 999</span> <span class="keywordflow">while</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1CXXBaseObjectRegion.html">CXXBaseObjectRegion</a> *<a class="code" href="classclang_1_1Base.html">Base</a> =</div>
+<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span> dyn_cast<CXXBaseObjectRegion>(Super)) {</div>
+<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span> Super = <a class="code" href="classclang_1_1Base.html">Base</a>->getSuperRegion();</div>
+<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span> }</div>
+<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span> assert(Super && !isa<MemSpaceRegion>(Super));</div>
+<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span> }</div>
+<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span> }</div>
+<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span> </div>
+<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span> <span class="keywordflow">return</span> getSubRegion<CXXBaseObjectRegion>(RD, IsVirtual, Super);</div>
+<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span> }</div>
+<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span> </div>
+<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1CXXThisRegion.html">CXXThisRegion</a>*</div>
+<div class="line"><a name="l01011"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a0b457bac5c22ddd1cf3821276ec03ab0"> 1011</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a0b457bac5c22ddd1cf3821276ec03ab0">MemRegionManager::getCXXThisRegion</a>(<a class="code" href="classclang_1_1QualType.html">QualType</a> thisPointerTy,</div>
+<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1LocationContext.html">LocationContext</a> *LC) {</div>
+<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1StackFrameContext.html">StackFrameContext</a> *STC = LC-><a class="code" href="classclang_1_1LocationContext.html#ad4512d946266fda30b7439564a9f831c">getCurrentStackFrame</a>();</div>
+<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span> assert(STC);</div>
+<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1PointerType.html">PointerType</a> *PT = thisPointerTy-><a class="code" href="classclang_1_1Type.html#a12103ea8bee9506930287bab68a08569">getAs</a><<a class="code" href="classclang_1_1PointerType.html">PointerType</a>>();</div>
+<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span> assert(PT);</div>
+<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span> <span class="keywordflow">return</span> getSubRegion<CXXThisRegion>(PT, <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a0a662835f1186882b54df07884f1bc6f">getStackArgumentsRegion</a>(STC));</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> </div>
+<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1AllocaRegion.html">AllocaRegion</a>*</div>
+<div class="line"><a name="l01021"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a4cc7b97d9a169a160e1ea6f3a83f8f89"> 1021</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a4cc7b97d9a169a160e1ea6f3a83f8f89" title="getAllocaRegion - Retrieve a region associated with a call to alloca().">MemRegionManager::getAllocaRegion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *E, <span class="keywordtype">unsigned</span> cnt,</div>
+<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1LocationContext.html">LocationContext</a> *LC) {</div>
+<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1StackFrameContext.html">StackFrameContext</a> *STC = LC-><a class="code" href="classclang_1_1LocationContext.html#ad4512d946266fda30b7439564a9f831c">getCurrentStackFrame</a>();</div>
+<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span> assert(STC);</div>
+<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span> <span class="keywordflow">return</span> getSubRegion<AllocaRegion>(E, cnt, <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a57cca4f579dd4ff0a86df2f43164d9b8">getStackLocalsRegion</a>(STC));</div>
+<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span> }</div>
+<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span> </div>
+<div class="line"><a name="l01028"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a4d2b2de69f0bb1c7254b4d0447bd275c"> 1028</a></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1MemSpaceRegion.html">MemSpaceRegion</a> *<a class="code" href="classclang_1_1ento_1_1MemRegion.html#a4d2b2de69f0bb1c7254b4d0447bd275c">MemRegion::getMemorySpace</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01029"></a><span class="lineno"> 1029</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 = <span class="keyword">this</span>;</div>
+<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1SubRegion.html">SubRegion</a>* SR = dyn_cast<<a class="code" href="classclang_1_1ento_1_1SubRegion.html">SubRegion</a>>(<span class="keyword">this</span>);</div>
+<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span> </div>
+<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span> <span class="keywordflow">while</span> (SR) {</div>
+<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span> R = SR-><a class="code" href="classclang_1_1ento_1_1SubRegion.html#ada0aa8debb5fb41ca2c50ee2eb6c3ac1">getSuperRegion</a>();</div>
+<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span> SR = dyn_cast<<a class="code" href="classclang_1_1ento_1_1SubRegion.html">SubRegion</a>>(R);</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> </div>
+<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span> <span class="keywordflow">return</span> dyn_cast<<a class="code" href="classclang_1_1ento_1_1MemSpaceRegion.html">MemSpaceRegion</a>>(R);</div>
+<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span> }</div>
+<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span> </div>
+<div class="line"><a name="l01040"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a3e8fc347d11bf44da7ae7c03e562edce"> 1040</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a3e8fc347d11bf44da7ae7c03e562edce">MemRegion::hasStackStorage</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span> <span class="keywordflow">return</span> isa<StackSpaceRegion>(<a class="code" href="classclang_1_1ento_1_1MemRegion.html#a4d2b2de69f0bb1c7254b4d0447bd275c">getMemorySpace</a>());</div>
+<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span> }</div>
+<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span> </div>
+<div class="line"><a name="l01044"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a8c2221428509f110224a5cc2e341682e"> 1044</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a8c2221428509f110224a5cc2e341682e">MemRegion::hasStackNonParametersStorage</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span> <span class="keywordflow">return</span> isa<StackLocalsSpaceRegion>(<a class="code" href="classclang_1_1ento_1_1MemRegion.html#a4d2b2de69f0bb1c7254b4d0447bd275c">getMemorySpace</a>());</div>
+<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span> }</div>
+<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span> </div>
+<div class="line"><a name="l01048"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#ac23a2d91a35a40f89964872a7020ec03"> 1048</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#ac23a2d91a35a40f89964872a7020ec03">MemRegion::hasStackParametersStorage</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span> <span class="keywordflow">return</span> isa<StackArgumentsSpaceRegion>(<a class="code" href="classclang_1_1ento_1_1MemRegion.html#a4d2b2de69f0bb1c7254b4d0447bd275c">getMemorySpace</a>());</div>
+<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span> }</div>
+<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span> </div>
+<div class="line"><a name="l01052"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#af1c441985d9e0ec65b56a3fd4dc8dfa1"> 1052</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#af1c441985d9e0ec65b56a3fd4dc8dfa1">MemRegion::hasGlobalsOrParametersStorage</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1MemSpaceRegion.html">MemSpaceRegion</a> *MS = <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a4d2b2de69f0bb1c7254b4d0447bd275c">getMemorySpace</a>();</div>
+<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span> <span class="keywordflow">return</span> isa<StackArgumentsSpaceRegion>(MS) ||</div>
+<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span> isa<GlobalsSpaceRegion>(MS);</div>
+<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span> }</div>
+<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span> </div>
+<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span> <span class="comment">// getBaseRegion strips away all elements and fields, and get the base region</span></div>
+<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span> <span class="comment">// of them.</span></div>
+<div class="line"><a name="l01060"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#ae6a57e60007e672aa0444308797d3f57"> 1060</a></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> *<a class="code" href="classclang_1_1ento_1_1MemRegion.html#ae6a57e60007e672aa0444308797d3f57">MemRegion::getBaseRegion</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01061"></a><span class="lineno"> 1061</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 = <span class="keyword">this</span>;</div>
+<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span> <span class="keywordflow">while</span> (<span class="keyword">true</span>) {</div>
+<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span> <span class="keywordflow">switch</span> (R-><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a28206b01079f4c177bdd23518f471039">getKind</a>()) {</div>
+<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span> <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa84bf11c70c2e09bf52c0cde4a517fd49">MemRegion::ElementRegionKind</a>:</div>
+<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span> <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa0dac4037e8370a9a55f2f8b2cab6ba6f">MemRegion::FieldRegionKind</a>:</div>
+<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span> <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa3b9557ecfdd2831b60d00843ffc704bc">MemRegion::ObjCIvarRegionKind</a>:</div>
+<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span> <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa3cd149e3a25ac452667867c58748883d">MemRegion::CXXBaseObjectRegionKind</a>:</div>
+<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span> R = cast<SubRegion>(R)->getSuperRegion();</div>
+<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span> <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span> <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span> }</div>
+<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span> }</div>
+<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span> <span class="keywordflow">return</span> R;</div>
+<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span> }</div>
+<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span> </div>
+<div class="line"><a name="l01078"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#ada36f0525a2112390cf8e2d239142eb5"> 1078</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#ada36f0525a2112390cf8e2d239142eb5" title="Check if the region is a subregion of the given region.">MemRegion::isSubRegionOf</a>(<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)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span> }</div>
+<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span> </div>
+<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span> <span class="comment">// View handling.</span></div>
+<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span> </div>
+<div class="line"><a name="l01086"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a8c3ae0ca072089a3b008adc86a9b8efe"> 1086</a></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> *<a class="code" href="classclang_1_1ento_1_1MemRegion.html#a8c3ae0ca072089a3b008adc86a9b8efe">MemRegion::StripCasts</a>(<span class="keywordtype">bool</span> StripBaseCasts)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01087"></a><span class="lineno"> 1087</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 = <span class="keyword">this</span>;</div>
+<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span> <span class="keywordflow">while</span> (<span class="keyword">true</span>) {</div>
+<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span> <span class="keywordflow">switch</span> (R-><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a28206b01079f4c177bdd23518f471039">getKind</a>()) {</div>
+<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span> <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa84bf11c70c2e09bf52c0cde4a517fd49">ElementRegionKind</a>: {</div>
+<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1ElementRegion.html" title="ElementRegin is used to represent both array elements and casts.">ElementRegion</a> *ER = cast<ElementRegion>(R);</div>
+<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span> <span class="keywordflow">if</span> (!ER-><a class="code" href="classclang_1_1ento_1_1ElementRegion.html#a0c86b2841f74e7a10e1c0f8183c04683">getIndex</a>().<a class="code" href="classclang_1_1ento_1_1SVal.html#a39e08d242aab936652cc53b326cbcc04">isZeroConstant</a>())</div>
+<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span> <span class="keywordflow">return</span> R;</div>
+<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span> R = ER-><a class="code" href="classclang_1_1ento_1_1SubRegion.html#ada0aa8debb5fb41ca2c50ee2eb6c3ac1">getSuperRegion</a>();</div>
+<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span> }</div>
+<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span> <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa3cd149e3a25ac452667867c58748883d">CXXBaseObjectRegionKind</a>:</div>
+<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span> <span class="keywordflow">if</span> (!StripBaseCasts)</div>
+<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span> <span class="keywordflow">return</span> R;</div>
+<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span> R = cast<CXXBaseObjectRegion>(R)->getSuperRegion();</div>
+<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span> <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span> <span class="keywordflow">return</span> R;</div>
+<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span> }</div>
+<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span> }</div>
+<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span> }</div>
+<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span> </div>
+<div class="line"><a name="l01108"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a2746acf76bf1351d39c2b7796cc5d472"> 1108</a></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1SymbolicRegion.html">SymbolicRegion</a> *<a class="code" href="classclang_1_1ento_1_1MemRegion.html#a2746acf76bf1351d39c2b7796cc5d472" title="If this is a symbolic region, returns the region. Otherwise, goes up the base chain looking for the f...">MemRegion::getSymbolicBase</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1SubRegion.html">SubRegion</a> *SubR = dyn_cast<<a class="code" href="classclang_1_1ento_1_1SubRegion.html">SubRegion</a>>(<span class="keyword">this</span>);</div>
+<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span> </div>
+<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span> <span class="keywordflow">while</span> (SubR) {</div>
+<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1SymbolicRegion.html">SymbolicRegion</a> *SymR = dyn_cast<SymbolicRegion>(SubR))</div>
+<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span> <span class="keywordflow">return</span> SymR;</div>
+<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span> SubR = dyn_cast<<a class="code" href="classclang_1_1ento_1_1SubRegion.html">SubRegion</a>>(SubR-><a class="code" href="classclang_1_1ento_1_1SubRegion.html#ada0aa8debb5fb41ca2c50ee2eb6c3ac1">getSuperRegion</a>());</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> 0;</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> </div>
+<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span> <span class="comment">// FIXME: Merge with the implementation of the same method in Store.cpp</span></div>
+<div class="line"><a name="l01120"></a><span class="lineno"><a class="code" href="MemRegion_8cpp.html#a38d2c5faead6c66cb3dc02b921a10a4f"> 1120</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="MemRegion_8cpp.html#a38d2c5faead6c66cb3dc02b921a10a4f">IsCompleteType</a>(<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, <a class="code" href="classclang_1_1QualType.html">QualType</a> Ty) {</div>
+<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1RecordType.html">RecordType</a> *RT = Ty-><a class="code" href="classclang_1_1Type.html#a12103ea8bee9506930287bab68a08569">getAs</a><<a class="code" href="classclang_1_1RecordType.html">RecordType</a>>()) {</div>
+<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1RecordDecl.html">RecordDecl</a> *D = RT->getDecl();</div>
+<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span> <span class="keywordflow">if</span> (!D-><a class="code" href="classclang_1_1RecordDecl.html#ace12add36d1accb71a7d53bacad696af">getDefinition</a>())</div>
+<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span> }</div>
+<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span> </div>
+<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span> }</div>
+<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span> </div>
+<div class="line"><a name="l01130"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1ElementRegion.html#ac67c8fc1b383842c27ff1b0102af03b0"> 1130</a></span> <a class="code" href="classclang_1_1ento_1_1RegionRawOffset.html">RegionRawOffset</a> <a class="code" href="classclang_1_1ento_1_1ElementRegion.html#ac67c8fc1b383842c27ff1b0102af03b0" title="Compute the offset within the array. The array might also be a subobject.">ElementRegion::getAsArrayOffset</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span> <a class="code" href="classclang_1_1CharUnits.html">CharUnits</a> offset = <a class="code" href="classclang_1_1CharUnits.html#ae8fbc6063b513b85cd488904994ac8c2" title="Zero - Construct a CharUnits quantity of zero.">CharUnits::Zero</a>();</div>
+<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1ElementRegion.html" title="ElementRegin is used to represent both array elements and casts.">ElementRegion</a> *ER = <span class="keyword">this</span>;</div>
+<div class="line"><a name="l01133"></a><span class="lineno"> 1133</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> *superR = <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div>
+<div class="line"><a name="l01134"></a><span class="lineno"> 1134</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_1ento_1_1MemRegion.html#a582a40115ffa064a32e78bfa90de4097">getContext</a>();</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">// FIXME: Handle multi-dimensional arrays.</span></div>
+<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span> </div>
+<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span> <span class="keywordflow">while</span> (ER) {</div>
+<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span> superR = ER-><a class="code" href="classclang_1_1ento_1_1SubRegion.html#ada0aa8debb5fb41ca2c50ee2eb6c3ac1">getSuperRegion</a>();</div>
+<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span> </div>
+<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span> <span class="comment">// FIXME: generalize to symbolic offsets.</span></div>
+<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span> <a class="code" href="classclang_1_1ento_1_1SVal.html">SVal</a> index = ER-><a class="code" href="classclang_1_1ento_1_1ElementRegion.html#a0c86b2841f74e7a10e1c0f8183c04683">getIndex</a>();</div>
+<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span> <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1Optional.html">Optional<nonloc::ConcreteInt></a> CI = index.<a class="code" href="classclang_1_1ento_1_1SVal.html#a4a9c4d5842ebb929dc6ed897ee2bd57a" title="Convert to the specified SVal type, returning None if this SVal is not of the desired type...">getAs</a><<a class="code" href="classclang_1_1ento_1_1nonloc_1_1ConcreteInt.html" title="Value representing integer constant.">nonloc::ConcreteInt</a>>()) {</div>
+<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span> <span class="comment">// Update the offset.</span></div>
+<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span> int64_t i = CI->getValue().getSExtValue();</div>
+<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span> </div>
+<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span> <span class="keywordflow">if</span> (i != 0) {</div>
+<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span> <a class="code" href="classclang_1_1QualType.html">QualType</a> elemType = ER-><a class="code" href="classclang_1_1ento_1_1ElementRegion.html#a4d0db120da905148948c5fc6a7887954">getElementType</a>();</div>
+<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span> </div>
+<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span> <span class="comment">// If we are pointing to an incomplete type, go no further.</span></div>
+<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span> <span class="keywordflow">if</span> (!<a class="code" href="MemRegion_8cpp.html#a38d2c5faead6c66cb3dc02b921a10a4f">IsCompleteType</a>(C, elemType)) {</div>
+<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span> superR = ER;</div>
+<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span> }</div>
+<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span> </div>
+<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span> <a class="code" href="classclang_1_1CharUnits.html">CharUnits</a> size = C.<a class="code" href="classclang_1_1ASTContext.html#ae8d8371f22bd850bced9b4b9ca848c4e" title="Return the size of the specified (complete) type T, in characters.">getTypeSizeInChars</a>(elemType);</div>
+<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span> offset += (i * size);</div>
+<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span> }</div>
+<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span> </div>
+<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span> <span class="comment">// Go to the next ElementRegion (if any).</span></div>
+<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span> ER = dyn_cast<<a class="code" href="classclang_1_1ento_1_1ElementRegion.html" title="ElementRegin is used to represent both array elements and casts.">ElementRegion</a>>(superR);</div>
+<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span> <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span> }</div>
+<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span> </div>
+<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span> <span class="keywordflow">return</span> <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div>
+<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span> }</div>
+<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span> </div>
+<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span> assert(superR && <span class="stringliteral">"super region cannot be NULL"</span>);</div>
+<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ento_1_1RegionRawOffset.html">RegionRawOffset</a>(superR, offset);</div>
+<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span> }</div>
+<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span> </div>
+<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span> <span class="comment"></span></div>
+<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span> <span class="comment">/// Returns true if \p Base is an immediate base class of \p Child</span></div>
+<div class="line"><a name="l01174"></a><span class="lineno"><a class="code" href="MemRegion_8cpp.html#a8695d9b1b06d65f256bd2a8f249ca8dd"> 1174</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="MemRegion_8cpp.html#a8695d9b1b06d65f256bd2a8f249ca8dd" title="Returns true if Base is an immediate base class of Child.">isImmediateBase</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *Child,</div>
+<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *<a class="code" href="classclang_1_1Base.html">Base</a>) {</div>
+<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span> <span class="comment">// Note that we do NOT canonicalize the base class here, because</span></div>
+<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span> <span class="comment">// ASTRecordLayout doesn't either. If that leads us down the wrong path,</span></div>
+<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span> <span class="comment">// so be it; at least we won't crash.</span></div>
+<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span> <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1CXXBaseSpecifier.html" title="Represents a base class of a C++ class.">CXXRecordDecl::base_class_const_iterator</a> I = Child-><a class="code" href="classclang_1_1CXXRecordDecl.html#a830448d054e3dca2db6851bd4605492c">bases_begin</a>(),</div>
+<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span> E = Child-><a class="code" href="classclang_1_1CXXRecordDecl.html#a1e27f3ddd2de050a298094ea732bd321">bases_end</a>();</div>
+<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span> I != E; ++I) {</div>
+<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span> <span class="keywordflow">if</span> (I->getType()->getAsCXXRecordDecl() == Base)</div>
+<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span> }</div>
+<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span> </div>
+<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span> }</div>
+<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span> </div>
+<div class="line"><a name="l01189"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a246f88b7b1876ecd2def9c2c23b82152"> 1189</a></span> <a class="code" href="classclang_1_1ento_1_1RegionOffset.html" title="Represent a region's offset within the top level base region.">RegionOffset</a> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a246f88b7b1876ecd2def9c2c23b82152" title="Compute the offset within the top level memory object.">MemRegion::getAsOffset</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01190"></a><span class="lineno"> 1190</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 = <span class="keyword">this</span>;</div>
+<div class="line"><a name="l01191"></a><span class="lineno"> 1191</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> *SymbolicOffsetBase = 0;</div>
+<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span> int64_t <a class="code" href="namespaceclang_1_1io.html#ae0bbdf4a2b076935546931e52d48d29b">Offset</a> = 0;</div>
+<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span> </div>
+<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span> <span class="keywordflow">while</span> (1) {</div>
+<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span> <span class="keywordflow">switch</span> (R-><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a28206b01079f4c177bdd23518f471039">getKind</a>()) {</div>
+<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span> <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aacbd849fc54251220e9e3fcb636760298">GenericMemSpaceRegionKind</a>:</div>
+<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span> <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa2906f87d911b696befba9a1c6c579d18">StackLocalsSpaceRegionKind</a>:</div>
+<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span> <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa974cb3919b025c61108347e32414abad">StackArgumentsSpaceRegionKind</a>:</div>
+<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span> <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa4333862239919a0791d55fa6aa4bd301">HeapSpaceRegionKind</a>:</div>
+<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span> <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa06125b8a8f8fc75f548246cb161ab902">UnknownSpaceRegionKind</a>:</div>
+<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span> <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aac7c45b08902aa0fcf09700e014c3a97d">StaticGlobalSpaceRegionKind</a>:</div>
+<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span> <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa187402ba660cdf2c2c492909b4c0e074">GlobalInternalSpaceRegionKind</a>:</div>
+<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span> <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa1fa9444fdc00a4462e203a5c01e5a589">GlobalSystemSpaceRegionKind</a>:</div>
+<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span> <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aaedbec81b85bfc94b1c707826997d5519">GlobalImmutableSpaceRegionKind</a>:</div>
+<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span> <span class="comment">// Stores can bind directly to a region space to set a default value.</span></div>
+<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span> assert(Offset == 0 && !SymbolicOffsetBase);</div>
+<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span> <span class="keywordflow">goto</span> Finish;</div>
+<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span> </div>
+<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span> <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa51a2be0ecafb27db458751dee72d882a">FunctionTextRegionKind</a>:</div>
+<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span> <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aadcb3ecd9d548b71103a6a25ee4250450">BlockTextRegionKind</a>:</div>
+<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span> <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aae6d4c8bdcf7387ec5b5171b5108950d6">BlockDataRegionKind</a>:</div>
+<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span> <span class="comment">// These will never have bindings, but may end up having values requested</span></div>
+<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span> <span class="comment">// if the user does some strange casting.</span></div>
+<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span> <span class="keywordflow">if</span> (Offset != 0)</div>
+<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span> SymbolicOffsetBase = R;</div>
+<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span> <span class="keywordflow">goto</span> Finish;</div>
+<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span> </div>
+<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span> <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa4b704a264a5d520093583ff34f8886ca">SymbolicRegionKind</a>:</div>
+<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span> <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aaf60d996de54e21c78cfcff99fffdf5d8">AllocaRegionKind</a>:</div>
+<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span> <span class="keywordflow">case</span> CompoundLiteralRegionKind:</div>
+<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span> <span class="keywordflow">case</span> CXXThisRegionKind:</div>
+<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span> <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa18995bef846f10bc3162f67e954f723a">StringRegionKind</a>:</div>
+<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span> <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa4959f0f0fc942bcb2b1ea9562eec862d">ObjCStringRegionKind</a>:</div>
+<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span> <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa9a38b47b1e384056d015fe98063d5203">VarRegionKind</a>:</div>
+<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span> <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa5d81d3102e743aa7a55b487f66d89674">CXXTempObjectRegionKind</a>:</div>
+<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span> <span class="comment">// Usual base regions.</span></div>
+<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span> <span class="keywordflow">goto</span> Finish;</div>
+<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span> </div>
+<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span> <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa3b9557ecfdd2831b60d00843ffc704bc">ObjCIvarRegionKind</a>:</div>
+<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span> <span class="comment">// This is a little strange, but it's a compromise between</span></div>
+<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span> <span class="comment">// ObjCIvarRegions having unknown compile-time offsets (when using the</span></div>
+<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span> <span class="comment">// non-fragile runtime) and yet still being distinct, non-overlapping</span></div>
+<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span> <span class="comment">// regions. Thus we treat them as "like" base regions for the purposes</span></div>
+<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span> <span class="comment">// of computing offsets.</span></div>
+<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span> <span class="keywordflow">goto</span> Finish;</div>
+<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span> </div>
+<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span> <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa3cd149e3a25ac452667867c58748883d">CXXBaseObjectRegionKind</a>: {</div>
+<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1CXXBaseObjectRegion.html">CXXBaseObjectRegion</a> *BOR = cast<CXXBaseObjectRegion>(R);</div>
+<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span> R = BOR-><a class="code" href="classclang_1_1ento_1_1SubRegion.html#ada0aa8debb5fb41ca2c50ee2eb6c3ac1">getSuperRegion</a>();</div>
+<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span> </div>
+<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span> <a class="code" href="classclang_1_1QualType.html">QualType</a> Ty;</div>
+<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span> <span class="keywordtype">bool</span> RootIsSymbolic = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1TypedValueRegion.html" title="TypedValueRegion - An abstract class representing regions having a typed value.">TypedValueRegion</a> *TVR = dyn_cast<TypedValueRegion>(R)) {</div>
+<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span> Ty = TVR->getDesugaredValueType(<a class="code" href="classclang_1_1ento_1_1MemRegion.html#a582a40115ffa064a32e78bfa90de4097">getContext</a>());</div>
+<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1SymbolicRegion.html">SymbolicRegion</a> *SR = dyn_cast<SymbolicRegion>(R)) {</div>
+<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span> <span class="comment">// If our base region is symbolic, we don't know what type it really is.</span></div>
+<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span> <span class="comment">// Pretend the type of the symbol is the true dynamic type.</span></div>
+<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span> <span class="comment">// (This will at least be self-consistent for the life of the symbol.)</span></div>
+<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span> Ty = SR->getSymbol()->getType()-><a class="code" href="classclang_1_1Type.html#a3a0edf987679f04072a1243b6118add1">getPointeeType</a>();</div>
+<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span> RootIsSymbolic = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span> }</div>
+<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span> </div>
+<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *Child = Ty-><a class="code" href="classclang_1_1Type.html#a7dc6c3dbc192ad98871c3cc484376b9a" title="Retrieves the CXXRecordDecl that this type refers to, either because the type is a RecordType or beca...">getAsCXXRecordDecl</a>();</div>
+<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span> <span class="keywordflow">if</span> (!Child) {</div>
+<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span> <span class="comment">// We cannot compute the offset of the base class.</span></div>
+<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span> SymbolicOffsetBase = R;</div>
+<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span> }</div>
+<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span> </div>
+<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span> <span class="keywordflow">if</span> (RootIsSymbolic) {</div>
+<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span> <span class="comment">// Base layers on symbolic regions may not be type-correct.</span></div>
+<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span> <span class="comment">// Double-check the inheritance here, and revert to a symbolic offset</span></div>
+<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span> <span class="comment">// if it's invalid (e.g. due to a reinterpret_cast).</span></div>
+<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span> <span class="keywordflow">if</span> (BOR-><a class="code" href="classclang_1_1ento_1_1CXXBaseObjectRegion.html#abf3f674935de679ac43f190a46368898">isVirtual</a>()) {</div>
+<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span> <span class="keywordflow">if</span> (!Child-><a class="code" href="classclang_1_1CXXRecordDecl.html#ae4accda99a5e49a042f485cfc780f06f" title="Determine whether this class is virtually derived from the class Base.">isVirtuallyDerivedFrom</a>(BOR-><a class="code" href="classclang_1_1ento_1_1CXXBaseObjectRegion.html#a1eecdfb53e282362139d2d7025be2c56">getDecl</a>()))</div>
+<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span> SymbolicOffsetBase = R;</div>
+<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span> <span class="keywordflow">if</span> (!<a class="code" href="MemRegion_8cpp.html#a8695d9b1b06d65f256bd2a8f249ca8dd" title="Returns true if Base is an immediate base class of Child.">isImmediateBase</a>(Child, BOR-><a class="code" href="classclang_1_1ento_1_1CXXBaseObjectRegion.html#a1eecdfb53e282362139d2d7025be2c56">getDecl</a>()))</div>
+<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span> SymbolicOffsetBase = R;</div>
+<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span> }</div>
+<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span> }</div>
+<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span> </div>
+<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span> <span class="comment">// Don't bother calculating precise offsets if we already have a</span></div>
+<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span> <span class="comment">// symbolic offset somewhere in the chain.</span></div>
+<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span> <span class="keywordflow">if</span> (SymbolicOffsetBase)</div>
+<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span> <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span> </div>
+<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span> <a class="code" href="classclang_1_1CharUnits.html">CharUnits</a> BaseOffset;</div>
+<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ASTRecordLayout.html">ASTRecordLayout</a> &Layout = <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a582a40115ffa064a32e78bfa90de4097">getContext</a>().<a class="code" href="classclang_1_1ASTContext.html#a47d9de77f967abb78dd8d1b8228a0d2a" title="Get or compute information about the layout of the specified record (struct/union/class) D...">getASTRecordLayout</a>(Child);</div>
+<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span> <span class="keywordflow">if</span> (BOR-><a class="code" href="classclang_1_1ento_1_1CXXBaseObjectRegion.html#abf3f674935de679ac43f190a46368898">isVirtual</a>())</div>
+<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span> BaseOffset = Layout.<a class="code" href="classclang_1_1ASTRecordLayout.html#afc9e06582d41a24ec356be836bb8775c" title="getVBaseClassOffset - Get the offset, in chars, for the given base class.">getVBaseClassOffset</a>(BOR-><a class="code" href="classclang_1_1ento_1_1CXXBaseObjectRegion.html#a1eecdfb53e282362139d2d7025be2c56">getDecl</a>());</div>
+<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span> <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span> BaseOffset = Layout.<a class="code" href="classclang_1_1ASTRecordLayout.html#a23d0a748e9b3b4515c23c5f9beabb2d7" title="getBaseClassOffset - Get the offset, in chars, for the given base class.">getBaseClassOffset</a>(BOR-><a class="code" href="classclang_1_1ento_1_1CXXBaseObjectRegion.html#a1eecdfb53e282362139d2d7025be2c56">getDecl</a>());</div>
+<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span> </div>
+<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span> <span class="comment">// The base offset is in chars, not in bits.</span></div>
+<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span> Offset += BaseOffset.<a class="code" href="classclang_1_1CharUnits.html#a09546c4bc2fefb3cb4d964eb9f25d33a" title="getQuantity - Get the raw integer representation of this quantity.">getQuantity</a>() * <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a582a40115ffa064a32e78bfa90de4097">getContext</a>().<a class="code" href="classclang_1_1ASTContext.html#ac347a9a51b589a7f135c909692ef582e" title="Return the size of the character type, in bits.">getCharWidth</a>();</div>
+<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span> }</div>
+<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span> <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa84bf11c70c2e09bf52c0cde4a517fd49">ElementRegionKind</a>: {</div>
+<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1ElementRegion.html" title="ElementRegin is used to represent both array elements and casts.">ElementRegion</a> *ER = cast<ElementRegion>(R);</div>
+<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span> R = ER-><a class="code" href="classclang_1_1ento_1_1SubRegion.html#ada0aa8debb5fb41ca2c50ee2eb6c3ac1">getSuperRegion</a>();</div>
+<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span> </div>
+<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span> <a class="code" href="classclang_1_1QualType.html">QualType</a> EleTy = ER-><a class="code" href="classclang_1_1ento_1_1ElementRegion.html#a250e28bb6ec58edce5262146d24031a4">getValueType</a>();</div>
+<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span> <span class="keywordflow">if</span> (!<a class="code" href="MemRegion_8cpp.html#a38d2c5faead6c66cb3dc02b921a10a4f">IsCompleteType</a>(<a class="code" href="classclang_1_1ento_1_1MemRegion.html#a582a40115ffa064a32e78bfa90de4097">getContext</a>(), EleTy)) {</div>
+<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span> <span class="comment">// We cannot compute the offset of the base class.</span></div>
+<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span> SymbolicOffsetBase = R;</div>
+<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span> <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span> }</div>
+<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span> </div>
+<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span> <a class="code" href="classclang_1_1ento_1_1SVal.html">SVal</a> Index = ER-><a class="code" href="classclang_1_1ento_1_1ElementRegion.html#a0c86b2841f74e7a10e1c0f8183c04683">getIndex</a>();</div>
+<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span> <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1Optional.html">Optional<nonloc::ConcreteInt></a> CI =</div>
+<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span> Index.<a class="code" href="classclang_1_1ento_1_1SVal.html#a4a9c4d5842ebb929dc6ed897ee2bd57a" title="Convert to the specified SVal type, returning None if this SVal is not of the desired type...">getAs</a><<a class="code" href="classclang_1_1ento_1_1nonloc_1_1ConcreteInt.html" title="Value representing integer constant.">nonloc::ConcreteInt</a>>()) {</div>
+<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span> <span class="comment">// Don't bother calculating precise offsets if we already have a</span></div>
+<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span> <span class="comment">// symbolic offset somewhere in the chain. </span></div>
+<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span> <span class="keywordflow">if</span> (SymbolicOffsetBase)</div>
+<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span> <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span> </div>
+<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span> int64_t i = CI->getValue().getSExtValue();</div>
+<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span> <span class="comment">// This type size is in bits.</span></div>
+<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span> Offset += i * <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a582a40115ffa064a32e78bfa90de4097">getContext</a>().<a class="code" href="classclang_1_1ASTContext.html#a3e16bd856974e4ac9710e0c507a60cee" title="Return the size of the specified (complete) type T, in bits.">getTypeSize</a>(EleTy);</div>
+<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span> <span class="comment">// We cannot compute offset for non-concrete index.</span></div>
+<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span> SymbolicOffsetBase = R;</div>
+<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span> }</div>
+<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span> }</div>
+<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span> <span class="keywordflow">case</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa0dac4037e8370a9a55f2f8b2cab6ba6f">FieldRegionKind</a>: {</div>
+<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1FieldRegion.html">FieldRegion</a> *FR = cast<FieldRegion>(R);</div>
+<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span> R = FR-><a class="code" href="classclang_1_1ento_1_1SubRegion.html#ada0aa8debb5fb41ca2c50ee2eb6c3ac1">getSuperRegion</a>();</div>
+<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span> </div>
+<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1RecordDecl.html">RecordDecl</a> *RD = FR-><a class="code" href="classclang_1_1ento_1_1FieldRegion.html#a558e24f4ebcc5ee30d7c5b97632c0cbd">getDecl</a>()-><a class="code" href="classclang_1_1FieldDecl.html#a3a28e1eb11c273ba8d964a990ac116d6">getParent</a>();</div>
+<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span> <span class="keywordflow">if</span> (RD-><a class="code" href="classclang_1_1TagDecl.html#a76233fd9169fc9bfa27603ad5477f02a">isUnion</a>() || !RD-><a class="code" href="classclang_1_1TagDecl.html#a05518a8ffe57a8add6b7777796c12362">isCompleteDefinition</a>()) {</div>
+<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span> <span class="comment">// We cannot compute offset for incomplete type.</span></div>
+<div class="line"><a name="l01323"></a><span class="lineno"> 1323</span> <span class="comment">// For unions, we could treat everything as offset 0, but we'd rather</span></div>
+<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span> <span class="comment">// treat each field as a symbolic offset so they aren't stored on top</span></div>
+<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span> <span class="comment">// of each other, since we depend on things in typed regions actually</span></div>
+<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span> <span class="comment">// matching their types.</span></div>
+<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span> SymbolicOffsetBase = R;</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> </div>
+<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span> <span class="comment">// Don't bother calculating precise offsets if we already have a</span></div>
+<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span> <span class="comment">// symbolic offset somewhere in the chain.</span></div>
+<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span> <span class="keywordflow">if</span> (SymbolicOffsetBase)</div>
+<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span> <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span> </div>
+<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span> <span class="comment">// Get the field number.</span></div>
+<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span> <span class="keywordtype">unsigned</span> idx = 0;</div>
+<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span> <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1DeclContext_1_1specific__decl__iterator.html">RecordDecl::field_iterator</a> FI = RD-><a class="code" href="classclang_1_1RecordDecl.html#a723c70951c30c075e7a516d1933683e4">field_begin</a>(), </div>
+<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span> FE = RD-><a class="code" href="classclang_1_1RecordDecl.html#a118f17574e4199f2d26cd20902dc88ca">field_end</a>(); FI != FE; ++FI, ++idx)</div>
+<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span> <span class="keywordflow">if</span> (FR-><a class="code" href="classclang_1_1ento_1_1FieldRegion.html#a558e24f4ebcc5ee30d7c5b97632c0cbd">getDecl</a>() == *FI)</div>
+<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span> </div>
+<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ASTRecordLayout.html">ASTRecordLayout</a> &Layout = <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a582a40115ffa064a32e78bfa90de4097">getContext</a>().<a class="code" href="classclang_1_1ASTContext.html#a47d9de77f967abb78dd8d1b8228a0d2a" title="Get or compute information about the layout of the specified record (struct/union/class) D...">getASTRecordLayout</a>(RD);</div>
+<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span> <span class="comment">// This is offset in bits.</span></div>
+<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span> Offset += Layout.<a class="code" href="classclang_1_1ASTRecordLayout.html#a5469e46f4a69644ac8747cef95095f3a">getFieldOffset</a>(idx);</div>
+<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span> <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span> }</div>
+<div class="line"><a name="l01347"></a><span class="lineno"> 1347</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> Finish:</div>
+<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span> <span class="keywordflow">if</span> (SymbolicOffsetBase)</div>
+<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ento_1_1RegionOffset.html" title="Represent a region's offset within the top level base region.">RegionOffset</a>(SymbolicOffsetBase, <a class="code" href="classclang_1_1ento_1_1RegionOffset.html#a089982af82ad697ddc7e9a3bdab28cce">RegionOffset::Symbolic</a>);</div>
+<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ento_1_1RegionOffset.html" title="Represent a region's offset within the top level base region.">RegionOffset</a>(R, Offset);</div>
+<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span> }</div>
+<div class="line"><a name="l01355"></a><span class="lineno"> 1355</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">// BlockDataRegion</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> </div>
+<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span> std::pair<const VarRegion *, const VarRegion *></div>
+<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span> BlockDataRegion::getCaptureRegions(<span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *VD) {</div>
+<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span> <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html">MemRegionManager</a> &MemMgr = *<a class="code" href="classclang_1_1ento_1_1SubRegion.html#afff317d26de89f494f4572eeac283d9e">getMemRegionManager</a>();</div>
+<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1VarRegion.html">VarRegion</a> *VR = 0;</div>
+<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1VarRegion.html">VarRegion</a> *OriginalVR = 0;</div>
+<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span> </div>
+<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span> <span class="keywordflow">if</span> (!VD-><a class="code" href="classclang_1_1Decl.html#a6a041df02fad17a6fabe51af5de0ea3c">getAttr</a><<a class="code" href="classclang_1_1BlocksAttr.html">BlocksAttr</a>>() && VD-><a class="code" href="classclang_1_1VarDecl.html#a86bb48bd6ced47b79a59af7df7108184">hasLocalStorage</a>()) {</div>
+<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span> VR = MemMgr.<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a8ba4db1926a47f16b352463774bcb24a">getVarRegion</a>(VD, <span class="keyword">this</span>);</div>
+<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span> OriginalVR = MemMgr.<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a8ba4db1926a47f16b352463774bcb24a">getVarRegion</a>(VD, LC);</div>
+<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span> }</div>
+<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span> <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01371"></a><span class="lineno"> 1371</span> <span class="keywordflow">if</span> (LC) {</div>
+<div class="line"><a name="l01372"></a><span class="lineno"> 1372</span> VR = MemMgr.<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a8ba4db1926a47f16b352463774bcb24a">getVarRegion</a>(VD, LC);</div>
+<div class="line"><a name="l01373"></a><span class="lineno"> 1373</span> OriginalVR = VR;</div>
+<div class="line"><a name="l01374"></a><span class="lineno"> 1374</span> }</div>
+<div class="line"><a name="l01375"></a><span class="lineno"> 1375</span> <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01376"></a><span class="lineno"> 1376</span> VR = MemMgr.<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a8ba4db1926a47f16b352463774bcb24a">getVarRegion</a>(VD, MemMgr.<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a59839721c940d58a91e6f41f2f4de0e2">getUnknownRegion</a>());</div>
+<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span> OriginalVR = MemMgr.<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a8ba4db1926a47f16b352463774bcb24a">getVarRegion</a>(VD, LC);</div>
+<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span> }</div>
+<div class="line"><a name="l01379"></a><span class="lineno"> 1379</span> }</div>
+<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span> <span class="keywordflow">return</span> std::make_pair(VR, OriginalVR);</div>
+<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span> }</div>
+<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span> </div>
+<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span> <span class="keywordtype">void</span> BlockDataRegion::LazyInitializeReferencedVars() {</div>
+<div class="line"><a name="l01384"></a><span class="lineno"> 1384</span> <span class="keywordflow">if</span> (ReferencedVars)</div>
+<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span> </div>
+<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span> <a class="code" href="classclang_1_1AnalysisDeclContext.html">AnalysisDeclContext</a> *AC = <a class="code" href="classclang_1_1ento_1_1BlockDataRegion.html#a168cbff3f7a2dc9e261a571addbe2da3">getCodeRegion</a>()-><a class="code" href="classclang_1_1ento_1_1BlockTextRegion.html#a032524fd04b7e91d2ca921dd7e24cfbd">getAnalysisDeclContext</a>();</div>
+<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span> <a class="code" href="classclang_1_1AnalysisDeclContext.html#a78352b63cad191378e8641bed1a9e9c8">AnalysisDeclContext::referenced_decls_iterator</a> I, E;</div>
+<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span> llvm::tie(I, E) = AC-><a class="code" href="classclang_1_1AnalysisDeclContext.html#a0c58af447e94b60c09dcfdb0404ae2fe">getReferencedBlockVars</a>(BC-><a class="code" href="classclang_1_1ento_1_1BlockTextRegion.html#abba5cb1a95686f8824f6459aabc00cdd">getDecl</a>());</div>
+<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span> </div>
+<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span> <span class="keywordflow">if</span> (I == E) {</div>
+<div class="line"><a name="l01392"></a><span class="lineno"> 1392</span> ReferencedVars = (<span class="keywordtype">void</span>*) 0x1;</div>
+<div class="line"><a name="l01393"></a><span class="lineno"> 1393</span> <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span> }</div>
+<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span> </div>
+<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span> <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html">MemRegionManager</a> &MemMgr = *<a class="code" href="classclang_1_1ento_1_1SubRegion.html#afff317d26de89f494f4572eeac283d9e">getMemRegionManager</a>();</div>
+<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span> llvm::BumpPtrAllocator &A = MemMgr.<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a4ed454ae11b67c4bd75c4bd0af592f46">getAllocator</a>();</div>
+<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span> <a class="code" href="classclang_1_1BumpVectorContext.html">BumpVectorContext</a> BC(A);</div>
+<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span> </div>
+<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span> <span class="keyword">typedef</span> <a class="code" href="classclang_1_1BumpVector.html">BumpVector<const MemRegion*></a> VarVec;</div>
+<div class="line"><a name="l01401"></a><span class="lineno"> 1401</span> VarVec *BV = (VarVec*) A.Allocate<VarVec>();</div>
+<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span> <span class="keyword">new</span> (BV) VarVec(BC, E - I);</div>
+<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span> VarVec *BVOriginal = (VarVec*) A.Allocate<VarVec>();</div>
+<div class="line"><a name="l01404"></a><span class="lineno"> 1404</span> <span class="keyword">new</span> (BVOriginal) VarVec(BC, E - I);</div>
+<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span> </div>
+<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span> <span class="keywordflow">for</span> ( ; I != E; ++I) {</div>
+<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1VarRegion.html">VarRegion</a> *VR = 0;</div>
+<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1VarRegion.html">VarRegion</a> *OriginalVR = 0;</div>
+<div class="line"><a name="l01409"></a><span class="lineno"> 1409</span> llvm::tie(VR, OriginalVR) = getCaptureRegions(*I);</div>
+<div class="line"><a name="l01410"></a><span class="lineno"> 1410</span> assert(VR);</div>
+<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span> assert(OriginalVR);</div>
+<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span> BV->push_back(VR, BC);</div>
+<div class="line"><a name="l01413"></a><span class="lineno"> 1413</span> BVOriginal->push_back(OriginalVR, BC);</div>
+<div class="line"><a name="l01414"></a><span class="lineno"> 1414</span> }</div>
+<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span> </div>
+<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span> ReferencedVars = BV;</div>
+<div class="line"><a name="l01417"></a><span class="lineno"> 1417</span> OriginalVars = BVOriginal;</div>
+<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span> }</div>
+<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span> </div>
+<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span> <a class="code" href="classclang_1_1ento_1_1BlockDataRegion_1_1referenced__vars__iterator.html">BlockDataRegion::referenced_vars_iterator</a></div>
+<div class="line"><a name="l01421"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BlockDataRegion.html#a7166227e54d9529e64e5bed0ac074cf7"> 1421</a></span> <a class="code" href="classclang_1_1ento_1_1BlockDataRegion.html#a7166227e54d9529e64e5bed0ac074cf7">BlockDataRegion::referenced_vars_begin</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01422"></a><span class="lineno"> 1422</span> <span class="keyword">const_cast<</span><a class="code" href="classclang_1_1ento_1_1BlockDataRegion.html">BlockDataRegion</a>*<span class="keyword">></span>(<span class="keyword">this</span>)->LazyInitializeReferencedVars();</div>
+<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span> </div>
+<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span> <a class="code" href="classclang_1_1BumpVector.html">BumpVector<const MemRegion*></a> *Vec =</div>
+<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span> <span class="keyword">static_cast<</span><a class="code" href="classclang_1_1BumpVector.html">BumpVector<const MemRegion*></a>*<span class="keyword">></span>(ReferencedVars);</div>
+<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span> </div>
+<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span> <span class="keywordflow">if</span> (Vec == (<span class="keywordtype">void</span>*) 0x1)</div>
+<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ento_1_1BlockDataRegion_1_1referenced__vars__iterator.html">BlockDataRegion::referenced_vars_iterator</a>(0, 0);</div>
+<div class="line"><a name="l01429"></a><span class="lineno"> 1429</span> </div>
+<div class="line"><a name="l01430"></a><span class="lineno"> 1430</span> <a class="code" href="classclang_1_1BumpVector.html">BumpVector<const MemRegion*></a> *VecOriginal =</div>
+<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span> <span class="keyword">static_cast<</span><a class="code" href="classclang_1_1BumpVector.html">BumpVector<const MemRegion*></a>*<span class="keyword">></span>(OriginalVars);</div>
+<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span> </div>
+<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ento_1_1BlockDataRegion_1_1referenced__vars__iterator.html">BlockDataRegion::referenced_vars_iterator</a>(Vec-><a class="code" href="classclang_1_1BumpVector.html#affac4a5a2794790cdffd8637c65460b4">begin</a>(),</div>
+<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span> VecOriginal-><a class="code" href="classclang_1_1BumpVector.html#affac4a5a2794790cdffd8637c65460b4">begin</a>());</div>
+<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span> }</div>
+<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span> </div>
+<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span> <a class="code" href="classclang_1_1ento_1_1BlockDataRegion_1_1referenced__vars__iterator.html">BlockDataRegion::referenced_vars_iterator</a></div>
+<div class="line"><a name="l01438"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BlockDataRegion.html#aefef0dc63c694c21ed8330cd2ef8c7e8"> 1438</a></span> <a class="code" href="classclang_1_1ento_1_1BlockDataRegion.html#aefef0dc63c694c21ed8330cd2ef8c7e8">BlockDataRegion::referenced_vars_end</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span> <span class="keyword">const_cast<</span><a class="code" href="classclang_1_1ento_1_1BlockDataRegion.html">BlockDataRegion</a>*<span class="keyword">></span>(<span class="keyword">this</span>)->LazyInitializeReferencedVars();</div>
+<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span> </div>
+<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span> <a class="code" href="classclang_1_1BumpVector.html">BumpVector<const MemRegion*></a> *Vec =</div>
+<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span> <span class="keyword">static_cast<</span><a class="code" href="classclang_1_1BumpVector.html">BumpVector<const MemRegion*></a>*<span class="keyword">></span>(ReferencedVars);</div>
+<div class="line"><a name="l01443"></a><span class="lineno"> 1443</span> </div>
+<div class="line"><a name="l01444"></a><span class="lineno"> 1444</span> <span class="keywordflow">if</span> (Vec == (<span class="keywordtype">void</span>*) 0x1)</div>
+<div class="line"><a name="l01445"></a><span class="lineno"> 1445</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ento_1_1BlockDataRegion_1_1referenced__vars__iterator.html">BlockDataRegion::referenced_vars_iterator</a>(0, 0);</div>
+<div class="line"><a name="l01446"></a><span class="lineno"> 1446</span> </div>
+<div class="line"><a name="l01447"></a><span class="lineno"> 1447</span> <a class="code" href="classclang_1_1BumpVector.html">BumpVector<const MemRegion*></a> *VecOriginal =</div>
+<div class="line"><a name="l01448"></a><span class="lineno"> 1448</span> <span class="keyword">static_cast<</span><a class="code" href="classclang_1_1BumpVector.html">BumpVector<const MemRegion*></a>*<span class="keyword">></span>(OriginalVars);</div>
+<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span> </div>
+<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ento_1_1BlockDataRegion_1_1referenced__vars__iterator.html">BlockDataRegion::referenced_vars_iterator</a>(Vec-><a class="code" href="classclang_1_1BumpVector.html#a85fe26952d5643c60b68f39be60407f4">end</a>(),</div>
+<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span> VecOriginal-><a class="code" href="classclang_1_1BumpVector.html#a85fe26952d5643c60b68f39be60407f4">end</a>());</div>
+<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span> }</div>
+<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span> </div>
+<div class="line"><a name="l01454"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BlockDataRegion.html#a2f2ed6c005aadb2e39a6536761afe5ae"> 1454</a></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1VarRegion.html">VarRegion</a> *<a class="code" href="classclang_1_1ento_1_1BlockDataRegion.html#a2f2ed6c005aadb2e39a6536761afe5ae">BlockDataRegion::getOriginalRegion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1VarRegion.html">VarRegion</a> *R)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01455"></a><span class="lineno"> 1455</span> <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1ento_1_1BlockDataRegion_1_1referenced__vars__iterator.html">referenced_vars_iterator</a> I = <a class="code" href="classclang_1_1ento_1_1BlockDataRegion.html#a7166227e54d9529e64e5bed0ac074cf7">referenced_vars_begin</a>(),</div>
+<div class="line"><a name="l01456"></a><span class="lineno"> 1456</span> E = <a class="code" href="classclang_1_1ento_1_1BlockDataRegion.html#aefef0dc63c694c21ed8330cd2ef8c7e8">referenced_vars_end</a>();</div>
+<div class="line"><a name="l01457"></a><span class="lineno"> 1457</span> I != E; ++I) {</div>
+<div class="line"><a name="l01458"></a><span class="lineno"> 1458</span> <span class="keywordflow">if</span> (I.getCapturedRegion() == R)</div>
+<div class="line"><a name="l01459"></a><span class="lineno"> 1459</span> <span class="keywordflow">return</span> I.getOriginalRegion();</div>
+<div class="line"><a name="l01460"></a><span class="lineno"> 1460</span> }</div>
+<div class="line"><a name="l01461"></a><span class="lineno"> 1461</span> <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l01462"></a><span class="lineno"> 1462</span> }</div>
+<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span> </div>
+<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l01465"></a><span class="lineno"> 1465</span> <span class="comment">// RegionAndSymbolInvalidationTraits</span></div>
+<div class="line"><a name="l01466"></a><span class="lineno"> 1466</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span> </div>
+<div class="line"><a name="l01468"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1RegionAndSymbolInvalidationTraits.html#acb459994eca782926d09722ad0626b39"> 1468</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1RegionAndSymbolInvalidationTraits.html#acb459994eca782926d09722ad0626b39">RegionAndSymbolInvalidationTraits::setTrait</a>(<a class="code" href="classclang_1_1ento_1_1SymExpr.html" title="Symbolic value. These values used to capture symbolic execution of the program.">SymbolRef</a> Sym, </div>
+<div class="line"><a name="l01469"></a><span class="lineno"> 1469</span> <a class="code" href="classclang_1_1ento_1_1RegionAndSymbolInvalidationTraits.html#a2a15c0ea94987dd8c6a63b6b51db5756" title="Describes different invalidation traits.">InvalidationKinds</a> IK) {</div>
+<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span> SymTraitsMap[Sym] |= IK;</div>
+<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span> }</div>
+<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span> </div>
+<div class="line"><a name="l01473"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1RegionAndSymbolInvalidationTraits.html#a5670f115a12852f712d1831ffc2e82b3"> 1473</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1RegionAndSymbolInvalidationTraits.html#acb459994eca782926d09722ad0626b39">RegionAndSymbolInvalidationTraits::setTrait</a>(<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> *MR, </div>
+<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span> <a class="code" href="classclang_1_1ento_1_1RegionAndSymbolInvalidationTraits.html#a2a15c0ea94987dd8c6a63b6b51db5756" title="Describes different invalidation traits.">InvalidationKinds</a> IK) {</div>
+<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span> assert(MR);</div>
+<div class="line"><a name="l01476"></a><span class="lineno"> 1476</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1SymbolicRegion.html">SymbolicRegion</a> *SR = dyn_cast<SymbolicRegion>(MR))</div>
+<div class="line"><a name="l01477"></a><span class="lineno"> 1477</span> <a class="code" href="classclang_1_1ento_1_1RegionAndSymbolInvalidationTraits.html#acb459994eca782926d09722ad0626b39">setTrait</a>(SR->getSymbol(), IK);</div>
+<div class="line"><a name="l01478"></a><span class="lineno"> 1478</span> <span class="keywordflow">else</span></div>
+<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span> MRTraitsMap[MR] |= IK;</div>
+<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span> }</div>
+<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span> </div>
+<div class="line"><a name="l01482"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1RegionAndSymbolInvalidationTraits.html#acd1d39caea084d342ef7864d09f31b06"> 1482</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1RegionAndSymbolInvalidationTraits.html#acd1d39caea084d342ef7864d09f31b06">RegionAndSymbolInvalidationTraits::hasTrait</a>(<a class="code" href="classclang_1_1ento_1_1SymExpr.html" title="Symbolic value. These values used to capture symbolic execution of the program.">SymbolRef</a> Sym, </div>
+<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span> <a class="code" href="classclang_1_1ento_1_1RegionAndSymbolInvalidationTraits.html#a2a15c0ea94987dd8c6a63b6b51db5756" title="Describes different invalidation traits.">InvalidationKinds</a> IK) {</div>
+<div class="line"><a name="l01484"></a><span class="lineno"> 1484</span> const_symbol_iterator I = SymTraitsMap.find(Sym);</div>
+<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span> <span class="keywordflow">if</span> (I != SymTraitsMap.end())</div>
+<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span> <span class="keywordflow">return</span> I->second & IK;</div>
+<div class="line"><a name="l01487"></a><span class="lineno"> 1487</span> </div>
+<div class="line"><a name="l01488"></a><span class="lineno"> 1488</span> <span class="keywordflow">return</span> <span class="keyword">false</span>; </div>
+<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span> }</div>
+<div class="line"><a name="l01490"></a><span class="lineno"> 1490</span> </div>
+<div class="line"><a name="l01491"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1RegionAndSymbolInvalidationTraits.html#a8b9da4ece1640ff396bd0dbc80b14b6d"> 1491</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1RegionAndSymbolInvalidationTraits.html#acd1d39caea084d342ef7864d09f31b06">RegionAndSymbolInvalidationTraits::hasTrait</a>(<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> *MR,</div>
+<div class="line"><a name="l01492"></a><span class="lineno"> 1492</span> <a class="code" href="classclang_1_1ento_1_1RegionAndSymbolInvalidationTraits.html#a2a15c0ea94987dd8c6a63b6b51db5756" title="Describes different invalidation traits.">InvalidationKinds</a> IK) {</div>
+<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span> <span class="keywordflow">if</span> (!MR)</div>
+<div class="line"><a name="l01494"></a><span class="lineno"> 1494</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01495"></a><span class="lineno"> 1495</span> </div>
+<div class="line"><a name="l01496"></a><span class="lineno"> 1496</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1SymbolicRegion.html">SymbolicRegion</a> *SR = dyn_cast<SymbolicRegion>(MR))</div>
+<div class="line"><a name="l01497"></a><span class="lineno"> 1497</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ento_1_1RegionAndSymbolInvalidationTraits.html#acd1d39caea084d342ef7864d09f31b06">hasTrait</a>(SR->getSymbol(), IK);</div>
+<div class="line"><a name="l01498"></a><span class="lineno"> 1498</span> </div>
+<div class="line"><a name="l01499"></a><span class="lineno"> 1499</span> const_region_iterator I = MRTraitsMap.find(MR);</div>
+<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span> <span class="keywordflow">if</span> (I != MRTraitsMap.end())</div>
+<div class="line"><a name="l01501"></a><span class="lineno"> 1501</span> <span class="keywordflow">return</span> I->second & IK;</div>
+<div class="line"><a name="l01502"></a><span class="lineno"> 1502</span> </div>
+<div class="line"><a name="l01503"></a><span class="lineno"> 1503</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01504"></a><span class="lineno"> 1504</span> }</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:43 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/MemRegion_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/MemRegion_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/MemRegion_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/MemRegion_8d_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,487 @@
+<!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: MemRegion.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_8c061bf4f1cf580e717ceaf4321c4465.html">Core</a></li><li class="navelem"><a class="el" href="dir_9dfcb8f019bd52e3ad37a9c9467cc9bb.html">Release+Asserts</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">MemRegion.d</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="MemRegion_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/Core/Release+Asserts/MemRegion.o \</div>
+<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/Release+Asserts/MemRegion.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> MemRegion.cpp \</div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h \</div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/ASTContext.h \</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/ASTTypeTraits.h \</div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/ASTFwd.h \</div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/DeclNodes.inc \</div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/StmtNodes.inc \</div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/TypeNodes.def \</div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/Decl.h \</div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/APValue.h \</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/LLVM.h \</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> /home/tstellar/llvm/include/llvm/Support/Casting.h \</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> /home/tstellar/llvm/include/llvm/Support/type_traits.h \</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> /home/tstellar/llvm/include/llvm/Support/DataTypes.h \</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> /home/tstellar/llvm/include/llvm/ADT/None.h \</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> /home/tstellar/llvm/include/llvm/ADT/APFloat.h \</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> /home/tstellar/llvm/include/llvm/ADT/APInt.h \</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h \</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> /home/tstellar/llvm/include/llvm/ADT/SmallVector.h \</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> /home/tstellar/llvm/include/llvm/Support/AlignOf.h \</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> /home/tstellar/llvm/include/llvm/Support/Compiler.h \</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> /home/tstellar/llvm/include/llvm/Config/llvm-config.h \</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> /home/tstellar/llvm/include/llvm/Support/MathExtras.h \</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h \</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> /home/tstellar/llvm/include/llvm/ADT/APSInt.h \</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h \</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h \</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h \</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/DeclBase.h \</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/AttrIterator.h \</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/DeclarationName.h \</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/IdentifierTable.h \</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/OperatorKinds.h \</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/OperatorKinds.def \</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/TokenKinds.h \</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/TokenKinds.def \</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> /home/tstellar/llvm/include/llvm/ADT/SmallString.h \</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> /home/tstellar/llvm/include/llvm/ADT/StringRef.h \</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> /home/tstellar/llvm/include/llvm/ADT/StringMap.h \</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h \</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/PartialDiagnostic.h \</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/Diagnostic.h \</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/DiagnosticIDs.h \</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h \</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/DiagnosticCommonKinds.inc \</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/DiagnosticOptions.h \</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/DiagnosticOptions.def \</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/SourceLocation.h \</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> /home/tstellar/llvm/include/llvm/ADT/DenseMap.h \</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h \</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> /home/tstellar/llvm/include/llvm/ADT/STLExtras.h \</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../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="l00055"></a><span class="lineno"> 55</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/Specifiers.h \</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> /home/tstellar/llvm/include/llvm/Support/PrettyStackTrace.h \</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/ExternalASTSource.h \</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/CharUnits.h \</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/Redeclarable.h \</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/Type.h \</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/NestedNameSpecifier.h \</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> /home/tstellar/llvm/include/llvm/ADT/FoldingSet.h \</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/TemplateName.h \</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../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="l00065"></a><span class="lineno"> 65</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../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="l00066"></a><span class="lineno"> 66</span> /home/tstellar/llvm/include/llvm/ADT/Optional.h \</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> /home/tstellar/llvm/include/llvm/ADT/Twine.h \</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h \</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/BuiltinTypes.def \</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> /home/tstellar/llvm/include/llvm/Support/raw_ostream.h \</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> /home/tstellar/llvm/include/llvm/Support/FileSystem.h \</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h \</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> /home/tstellar/llvm/include/llvm/Support/TimeValue.h \</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> /home/tstellar/llvm/include/llvm/Support/system_error.h \</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/Stmt.h \</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/DeclGroup.h \</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/StmtIterator.h \</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/CapturedStmt.h \</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/TemplateBase.h \</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/TypeLoc.h \</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/TypeLocNodes.def \</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/CanonicalType.h \</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/CommentCommandTraits.h \</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/CommentOptions.h \</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/CommentCommandList.inc \</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/PrettyPrinter.h \</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/LangOptions.h \</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/ObjCRuntime.h \</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/VersionTuple.h \</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> /home/tstellar/llvm/include/llvm/ADT/Triple.h \</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/Sanitizers.def \</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/LangOptions.def \</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/OpenCLExtensions.def \</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/RawCommentList.h \</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/SourceManager.h \</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/FileManager.h \</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/FileSystemOptions.h \</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> /home/tstellar/llvm/include/llvm/ADT/DenseSet.h \</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h \</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h \</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> /home/tstellar/llvm/include/llvm-c/Core.h \</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/AddressSpaces.h \</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.h \</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> /home/tstellar/llvm/include/llvm/ADT/TinyPtrVector.h \</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/ExprObjC.h \</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/DeclObjC.h \</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../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="l00108"></a><span class="lineno"> 108</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/Expr.h \</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/ASTVector.h \</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/DeclAccessPair.h \</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/OperationKinds.h \</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/CharInfo.h \</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/TypeTraits.h \</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/Builtins.def \</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h \</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState_Fwd.h \</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h \</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Analysis/AnalysisContext.h \</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Analysis/CFG.h \</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Analysis/Support/BumpVector.h \</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> /home/tstellar/llvm/include/llvm/ADT/GraphTraits.h \</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/StoreRef.h \</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> /home/tstellar/llvm/include/llvm/ADT/ImmutableList.h \</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/Attr.h \</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/AttrKinds.h \</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/AttrList.inc \</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> /home/tstellar/llvm/include/llvm/ADT/StringSwitch.h \</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/Attrs.inc \</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/RecordLayout.h \</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/DeclCXX.h \</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/ASTUnresolvedSet.h \</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/UnresolvedSet.h \</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/ExprCXX.h \</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/ExpressionTraits.h \</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/Lambda.h \</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h \</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h \</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/APSIntType.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/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.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/StaticAnalyzer/Core/../../../include/clang/AST/ASTContext.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/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/ASTTypeTraits.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/StaticAnalyzer/Core/../../../include/clang/AST/ASTFwd.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/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/DeclNodes.inc:</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/StaticAnalyzer/Core/../../../include/clang/AST/StmtNodes.inc:</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/StaticAnalyzer/Core/../../../include/clang/AST/TypeNodes.def:</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/Decl.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/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/APValue.h:</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> </div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/LLVM.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/Casting.h:</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> /home/tstellar/llvm/include/llvm/Support/type_traits.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/DataTypes.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/include/llvm/ADT/None.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/include/llvm/ADT/APFloat.h:</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> </div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> /home/tstellar/llvm/include/llvm/ADT/APInt.h:</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> </div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> /home/tstellar/llvm/include/llvm/ADT/ArrayRef.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/include/llvm/ADT/SmallVector.h:</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> /home/tstellar/llvm/include/llvm/Support/AlignOf.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/Support/Compiler.h:</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> /home/tstellar/llvm/include/llvm/Config/llvm-config.h:</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> /home/tstellar/llvm/include/llvm/Support/MathExtras.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/SwapByteOrder.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/APSInt.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/PointerIntPair.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/PointerLikeTypeTraits.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/include/llvm/ADT/PointerUnion.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/Core/../../../include/clang/AST/DeclBase.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/Core/../../../include/clang/AST/AttrIterator.h:</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> </div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/DeclarationName.h:</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> </div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/IdentifierTable.h:</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/OperatorKinds.h:</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> </div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/OperatorKinds.def:</div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> </div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/TokenKinds.h:</div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> </div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/TokenKinds.def:</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> </div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> /home/tstellar/llvm/include/llvm/ADT/SmallString.h:</div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> </div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> /home/tstellar/llvm/include/llvm/ADT/StringRef.h:</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> </div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> /home/tstellar/llvm/include/llvm/ADT/StringMap.h:</div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> </div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h:</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> </div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/PartialDiagnostic.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/Core/../../../include/clang/Basic/Diagnostic.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/Core/../../../include/clang/Basic/DiagnosticIDs.h:</div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> </div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.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/Core/../../../include/clang/Basic/DiagnosticCommonKinds.inc:</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/Core/../../../include/clang/Basic/DiagnosticOptions.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/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/DiagnosticOptions.def:</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/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/SourceLocation.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/DenseMap.h:</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> </div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.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/STLExtras.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/Core/../../../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="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/Core/../../../include/clang/Basic/Specifiers.h:</div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> </div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> /home/tstellar/llvm/include/llvm/Support/PrettyStackTrace.h:</div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> </div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/ExternalASTSource.h:</div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> </div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/CharUnits.h:</div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> </div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/Redeclarable.h:</div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> </div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/Type.h:</div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> </div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/NestedNameSpecifier.h:</div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> </div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> /home/tstellar/llvm/include/llvm/ADT/FoldingSet.h:</div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> </div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/TemplateName.h:</div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> </div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../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="l00261"></a><span class="lineno"> 261</span> </div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../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="l00263"></a><span class="lineno"> 263</span> </div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> /home/tstellar/llvm/include/llvm/ADT/Optional.h:</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> </div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> /home/tstellar/llvm/include/llvm/ADT/Twine.h:</div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> </div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h:</div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> </div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/BuiltinTypes.def:</div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> </div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> /home/tstellar/llvm/include/llvm/Support/raw_ostream.h:</div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> </div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> /home/tstellar/llvm/include/llvm/Support/FileSystem.h:</div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> </div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h:</div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> </div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> /home/tstellar/llvm/include/llvm/Support/TimeValue.h:</div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> </div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> /home/tstellar/llvm/include/llvm/Support/system_error.h:</div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> </div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/Stmt.h:</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> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/DeclGroup.h:</div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> </div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/StmtIterator.h:</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> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/CapturedStmt.h:</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> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/TemplateBase.h:</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> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/TypeLoc.h:</div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> </div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/TypeLocNodes.def:</div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> </div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/CanonicalType.h:</div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> </div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/CommentCommandTraits.h:</div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> </div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/CommentOptions.h:</div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> </div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/CommentCommandList.inc:</div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> </div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/PrettyPrinter.h:</div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> </div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/LangOptions.h:</div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> </div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/ObjCRuntime.h:</div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> </div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/VersionTuple.h:</div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> </div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> /home/tstellar/llvm/include/llvm/ADT/Triple.h:</div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> </div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/Sanitizers.def:</div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> </div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/LangOptions.def:</div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> </div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/OpenCLExtensions.def:</div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> </div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/RawCommentList.h:</div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> </div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/SourceManager.h:</div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> </div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/FileManager.h:</div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> </div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/FileSystemOptions.h:</div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> </div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> /home/tstellar/llvm/include/llvm/ADT/DenseSet.h:</div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> </div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h:</div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> </div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h:</div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> </div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> /home/tstellar/llvm/include/llvm-c/Core.h:</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> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/AddressSpaces.h:</div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> </div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.h:</div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> </div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> /home/tstellar/llvm/include/llvm/ADT/TinyPtrVector.h:</div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> </div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/ExprObjC.h:</div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> </div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/DeclObjC.h:</div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> </div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../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="l00347"></a><span class="lineno"> 347</span> </div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/Expr.h:</div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> </div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/ASTVector.h:</div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> </div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/DeclAccessPair.h:</div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> </div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/OperationKinds.h:</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> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/CharInfo.h:</div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> </div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/TypeTraits.h:</div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> </div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/Builtins.def:</div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> </div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h:</div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> </div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState_Fwd.h:</div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> </div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h:</div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> </div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Analysis/AnalysisContext.h:</div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> </div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Analysis/CFG.h:</div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> </div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Analysis/Support/BumpVector.h:</div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> </div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span> /home/tstellar/llvm/include/llvm/ADT/GraphTraits.h:</div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> </div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/StoreRef.h:</div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> </div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> /home/tstellar/llvm/include/llvm/ADT/ImmutableList.h:</div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> </div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/Attr.h:</div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> </div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/AttrKinds.h:</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> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/AttrList.inc:</div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span> </div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> /home/tstellar/llvm/include/llvm/ADT/StringSwitch.h:</div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> </div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/Attrs.inc:</div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> </div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/RecordLayout.h:</div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> </div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/DeclCXX.h:</div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span> </div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/ASTUnresolvedSet.h:</div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> </div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/UnresolvedSet.h:</div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span> </div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/ExprCXX.h:</div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> </div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/ExpressionTraits.h:</div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span> </div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/Lambda.h:</div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> </div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h:</div>
+<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> </div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:</div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> </div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/APSIntType.h:</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:43 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/MemRegion_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/MemRegion_8h_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/MemRegion_8h_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/MemRegion_8h_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,1445 @@
+<!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: MemRegion.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_734a8767d7ca7d508f91a2e813224558.html">Core</a></li><li class="navelem"><a class="el" href="dir_bee9744499c06630fee7a102afddbe3a.html">PathSensitive</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">MemRegion.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="MemRegion_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">//== MemRegion.h - Abstract memory regions for static analysis --*- 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 MemRegion and its subclasses. MemRegion defines a</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// partially-typed abstraction of memory useful for path-sensitive dataflow</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">// analyses.</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></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_GR_MEMREGION_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_GR_MEMREGION_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="preprocessor">#include "<a class="code" href="ASTContext_8h.html" title="Defines the clang::ASTContext interface.">clang/AST/ASTContext.h</a>"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include "<a class="code" href="CharUnits_8h.html">clang/AST/CharUnits.h</a>"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include "<a class="code" href="Decl_8h.html">clang/AST/Decl.h</a>"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include "<a class="code" href="ExprObjC_8h.html">clang/AST/ExprObjC.h</a>"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</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="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include "<a class="code" href="SVals_8h.html">clang/StaticAnalyzer/Core/PathSensitive/SVals.h</a>"</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include "llvm/ADT/FoldingSet.h"</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include "llvm/Support/ErrorHandling.h"</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <string></span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">namespace </span>llvm {</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">class </span>BumpPtrAllocator;</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"> 33</span> <span class="keyword">namespace </span>clang {</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">class </span>LocationContext;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">class </span>StackFrameContext;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">namespace </span>ento {</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="keyword">class </span>CodeTextRegion;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">class </span>MemRegionManager;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">class </span>MemSpaceRegion;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">class </span>SValBuilder;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">class </span>SymbolicRegion;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">class </span>VarRegion;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment"></span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment">/// Represent a region's offset within the top level base region.</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1RegionOffset.html"> 48</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1RegionOffset.html" title="Represent a region's offset within the top level base region.">RegionOffset</a> {<span class="comment"></span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment"> /// The base region.</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment"></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;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="comment"></span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="comment"> /// The bit offset within the base region. It shouldn't be negative.</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment"></span> int64_t Offset;</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">public</span>:</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="comment">// We're using a const instead of an enumeration due to the size required;</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="comment">// Visual Studio will only create enumerations of size int, not long long.</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1RegionOffset.html#a089982af82ad697ddc7e9a3bdab28cce"> 58</a></span> <span class="keyword">static</span> <span class="keyword">const</span> int64_t <a class="code" href="classclang_1_1ento_1_1RegionOffset.html#a089982af82ad697ddc7e9a3bdab28cce">Symbolic</a> = INT64_MAX;</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_1ento_1_1RegionOffset.html#a3626a3b818c2ef6678a4fe14f78bc034"> 60</a></span> <a class="code" href="classclang_1_1ento_1_1RegionOffset.html#a3626a3b818c2ef6678a4fe14f78bc034">RegionOffset</a>() : R(0) {}</div>
+<div class="line"><a name="l00061"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1RegionOffset.html#a4720045744b6ab4ffb54fb81e4cdc005"> 61</a></span> <a class="code" href="classclang_1_1ento_1_1RegionOffset.html#a4720045744b6ab4ffb54fb81e4cdc005">RegionOffset</a>(<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, int64_t off) : R(r), Offset(off) {}</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
+<div class="line"><a name="l00063"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1RegionOffset.html#ac790563400a4e4ae641981064ac2df23"> 63</a></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> *<a class="code" href="classclang_1_1ento_1_1RegionOffset.html#ac790563400a4e4ae641981064ac2df23">getRegion</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> R; }</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div>
+<div class="line"><a name="l00065"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1RegionOffset.html#a0b804c16537e8e5007565dfcc0f3c701"> 65</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1RegionOffset.html#a0b804c16537e8e5007565dfcc0f3c701">hasSymbolicOffset</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Offset == <a class="code" href="classclang_1_1ento_1_1RegionOffset.html#a089982af82ad697ddc7e9a3bdab28cce">Symbolic</a>; }</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_1ento_1_1RegionOffset.html#aee60bf502472cc11791d7c197d3e7270"> 67</a></span> int64_t <a class="code" href="classclang_1_1ento_1_1RegionOffset.html#aee60bf502472cc11791d7c197d3e7270">getOffset</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> assert(!<a class="code" href="classclang_1_1ento_1_1RegionOffset.html#a0b804c16537e8e5007565dfcc0f3c701">hasSymbolicOffset</a>());</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="keywordflow">return</span> Offset;</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> </div>
+<div class="line"><a name="l00072"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1RegionOffset.html#a2048e13ad57a2a408815cc1ada185c17"> 72</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1RegionOffset.html#a2048e13ad57a2a408815cc1ada185c17">isValid</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> R; }</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"> 75</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="comment">// Base region classes.</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="comment"></span></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="comment">/// MemRegion - The root abstract class for all memory regions.</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html"> 80</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1MemRegion.html" title="MemRegion - The root abstract class for all memory regions.">MemRegion</a> : <span class="keyword">public</span> llvm::FoldingSetNode {</div>
+<div class="line"><a name="l00081"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#ae8b8185ad7e63c6f200f0c0b68388a39"> 81</a></span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html">MemRegionManager</a>;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00083"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7a"> 83</a></span> <span class="keyword">enum</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7a">Kind</a> {</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="comment">// Memory spaces.</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aacbd849fc54251220e9e3fcb636760298"> 85</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aacbd849fc54251220e9e3fcb636760298">GenericMemSpaceRegionKind</a>,</div>
+<div class="line"><a name="l00086"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa2906f87d911b696befba9a1c6c579d18"> 86</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa2906f87d911b696befba9a1c6c579d18">StackLocalsSpaceRegionKind</a>,</div>
+<div class="line"><a name="l00087"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa974cb3919b025c61108347e32414abad"> 87</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa974cb3919b025c61108347e32414abad">StackArgumentsSpaceRegionKind</a>,</div>
+<div class="line"><a name="l00088"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa4333862239919a0791d55fa6aa4bd301"> 88</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa4333862239919a0791d55fa6aa4bd301">HeapSpaceRegionKind</a>,</div>
+<div class="line"><a name="l00089"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa06125b8a8f8fc75f548246cb161ab902"> 89</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa06125b8a8f8fc75f548246cb161ab902">UnknownSpaceRegionKind</a>,</div>
+<div class="line"><a name="l00090"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aac7c45b08902aa0fcf09700e014c3a97d"> 90</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aac7c45b08902aa0fcf09700e014c3a97d">StaticGlobalSpaceRegionKind</a>,</div>
+<div class="line"><a name="l00091"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa187402ba660cdf2c2c492909b4c0e074"> 91</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa187402ba660cdf2c2c492909b4c0e074">GlobalInternalSpaceRegionKind</a>,</div>
+<div class="line"><a name="l00092"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa1fa9444fdc00a4462e203a5c01e5a589"> 92</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa1fa9444fdc00a4462e203a5c01e5a589">GlobalSystemSpaceRegionKind</a>,</div>
+<div class="line"><a name="l00093"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aaedbec81b85bfc94b1c707826997d5519"> 93</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aaedbec81b85bfc94b1c707826997d5519">GlobalImmutableSpaceRegionKind</a>,</div>
+<div class="line"><a name="l00094"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa70e9168233c3900817a1b14cbdcc233e"> 94</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa70e9168233c3900817a1b14cbdcc233e">BEG_NON_STATIC_GLOBAL_MEMSPACES</a> = <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa187402ba660cdf2c2c492909b4c0e074">GlobalInternalSpaceRegionKind</a>,</div>
+<div class="line"><a name="l00095"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa5ddb121d3af42bc0029847ffaebef320"> 95</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa5ddb121d3af42bc0029847ffaebef320">END_NON_STATIC_GLOBAL_MEMSPACES</a> = <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aaedbec81b85bfc94b1c707826997d5519">GlobalImmutableSpaceRegionKind</a>,</div>
+<div class="line"><a name="l00096"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa5f898057297c3a5326b3eb97401570ac"> 96</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa5f898057297c3a5326b3eb97401570ac">BEG_GLOBAL_MEMSPACES</a> = <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aac7c45b08902aa0fcf09700e014c3a97d">StaticGlobalSpaceRegionKind</a>,</div>
+<div class="line"><a name="l00097"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aad0d6c9b52d9734d0e3ae7864ea80fc68"> 97</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aad0d6c9b52d9734d0e3ae7864ea80fc68">END_GLOBAL_MEMSPACES</a> = <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aaedbec81b85bfc94b1c707826997d5519">GlobalImmutableSpaceRegionKind</a>,</div>
+<div class="line"><a name="l00098"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aacd445854e696a0d5e891189c2316b751"> 98</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aacd445854e696a0d5e891189c2316b751">BEG_MEMSPACES</a> = <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aacbd849fc54251220e9e3fcb636760298">GenericMemSpaceRegionKind</a>,</div>
+<div class="line"><a name="l00099"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa765270917e82819b0ff7e30e65e11cf5"> 99</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa765270917e82819b0ff7e30e65e11cf5">END_MEMSPACES</a> = <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aaedbec81b85bfc94b1c707826997d5519">GlobalImmutableSpaceRegionKind</a>,</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="comment">// Untyped regions.</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa4b704a264a5d520093583ff34f8886ca"> 101</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa4b704a264a5d520093583ff34f8886ca">SymbolicRegionKind</a>,</div>
+<div class="line"><a name="l00102"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aaf60d996de54e21c78cfcff99fffdf5d8"> 102</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aaf60d996de54e21c78cfcff99fffdf5d8">AllocaRegionKind</a>,</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="comment">// Typed regions.</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa3c97dd6860aae82b777d060bc2e358c1"> 104</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa3c97dd6860aae82b777d060bc2e358c1">BEG_TYPED_REGIONS</a>,</div>
+<div class="line"><a name="l00105"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa51a2be0ecafb27db458751dee72d882a"> 105</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa51a2be0ecafb27db458751dee72d882a">FunctionTextRegionKind</a> = <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa3c97dd6860aae82b777d060bc2e358c1">BEG_TYPED_REGIONS</a>,</div>
+<div class="line"><a name="l00106"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aadcb3ecd9d548b71103a6a25ee4250450"> 106</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aadcb3ecd9d548b71103a6a25ee4250450">BlockTextRegionKind</a>,</div>
+<div class="line"><a name="l00107"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aae6d4c8bdcf7387ec5b5171b5108950d6"> 107</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aae6d4c8bdcf7387ec5b5171b5108950d6">BlockDataRegionKind</a>,</div>
+<div class="line"><a name="l00108"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa18f6d0c8d7cabcb4db28b21b820d0ead"> 108</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa18f6d0c8d7cabcb4db28b21b820d0ead">BEG_TYPED_VALUE_REGIONS</a>,</div>
+<div class="line"><a name="l00109"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aaeb78544f4eef4272d2fdaab921829b17"> 109</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aaeb78544f4eef4272d2fdaab921829b17">CompoundLiteralRegionKind</a> = <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa18f6d0c8d7cabcb4db28b21b820d0ead">BEG_TYPED_VALUE_REGIONS</a>,</div>
+<div class="line"><a name="l00110"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aacf1e8afce13a7b94403f16fc5707811f"> 110</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aacf1e8afce13a7b94403f16fc5707811f">CXXThisRegionKind</a>,</div>
+<div class="line"><a name="l00111"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa18995bef846f10bc3162f67e954f723a"> 111</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa18995bef846f10bc3162f67e954f723a">StringRegionKind</a>,</div>
+<div class="line"><a name="l00112"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa4959f0f0fc942bcb2b1ea9562eec862d"> 112</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa4959f0f0fc942bcb2b1ea9562eec862d">ObjCStringRegionKind</a>,</div>
+<div class="line"><a name="l00113"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa84bf11c70c2e09bf52c0cde4a517fd49"> 113</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa84bf11c70c2e09bf52c0cde4a517fd49">ElementRegionKind</a>,</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="comment">// Decl Regions.</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aaf7d35af5609fce6024a3cb70041716ad"> 115</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aaf7d35af5609fce6024a3cb70041716ad">BEG_DECL_REGIONS</a>,</div>
+<div class="line"><a name="l00116"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa9a38b47b1e384056d015fe98063d5203"> 116</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa9a38b47b1e384056d015fe98063d5203">VarRegionKind</a> = <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aaf7d35af5609fce6024a3cb70041716ad">BEG_DECL_REGIONS</a>,</div>
+<div class="line"><a name="l00117"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa0dac4037e8370a9a55f2f8b2cab6ba6f"> 117</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa0dac4037e8370a9a55f2f8b2cab6ba6f">FieldRegionKind</a>,</div>
+<div class="line"><a name="l00118"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa3b9557ecfdd2831b60d00843ffc704bc"> 118</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa3b9557ecfdd2831b60d00843ffc704bc">ObjCIvarRegionKind</a>,</div>
+<div class="line"><a name="l00119"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa205e6945a8cd0cbcd802ba6d36950961"> 119</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa205e6945a8cd0cbcd802ba6d36950961">END_DECL_REGIONS</a> = <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa3b9557ecfdd2831b60d00843ffc704bc">ObjCIvarRegionKind</a>,</div>
+<div class="line"><a name="l00120"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa5d81d3102e743aa7a55b487f66d89674"> 120</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa5d81d3102e743aa7a55b487f66d89674">CXXTempObjectRegionKind</a>,</div>
+<div class="line"><a name="l00121"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa3cd149e3a25ac452667867c58748883d"> 121</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa3cd149e3a25ac452667867c58748883d">CXXBaseObjectRegionKind</a>,</div>
+<div class="line"><a name="l00122"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa6b36035f09e5ec902e45b9b9c193478a"> 122</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa6b36035f09e5ec902e45b9b9c193478a">END_TYPED_VALUE_REGIONS</a> = <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa3cd149e3a25ac452667867c58748883d">CXXBaseObjectRegionKind</a>,</div>
+<div class="line"><a name="l00123"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa89b59e1a18f72376f83fad22a7aaf045"> 123</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa89b59e1a18f72376f83fad22a7aaf045">END_TYPED_REGIONS</a> = <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa3cd149e3a25ac452667867c58748883d">CXXBaseObjectRegionKind</a></div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> };</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="keyword">const</span> <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a> <a class="code" href="namespaceclang_1_1diag.html#ab2f7277bc45b970f4b9631e0617ff02c" title="All of the diagnostics that can be emitted by the frontend.">kind</a>;</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> </div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00130"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a4660c01bdddffb5c17fa506f6fbfee99"> 130</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a4660c01bdddffb5c17fa506f6fbfee99">MemRegion</a>(<a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7a">Kind</a> k) : <a class="code" href="namespaceclang_1_1diag.html#ab2f7277bc45b970f4b9631e0617ff02c" title="All of the diagnostics that can be emitted by the frontend.">kind</a>(k) {}</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="keyword">virtual</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a679032340d6c529d8f2dcbcf1befd061">~MemRegion</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="keyword">public</span>:</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <a class="code" href="classclang_1_1ASTContext.html" title="Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...">ASTContext</a> &<a class="code" href="classclang_1_1ento_1_1MemRegion.html#a582a40115ffa064a32e78bfa90de4097">getContext</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a2d00372477a590dfda62142a83208b60">Profile</a>(llvm::FoldingSetNodeID& <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>) <span class="keyword">const</span> = 0;</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="keyword">virtual</span> <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html">MemRegionManager</a>* <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a42d5a4e9b920a91c18fb0e09306fd0e5">getMemRegionManager</a>() <span class="keyword">const</span> = 0;</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="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1MemSpaceRegion.html">MemSpaceRegion</a> *<a class="code" href="classclang_1_1ento_1_1MemRegion.html#a4d2b2de69f0bb1c7254b4d0447bd275c">getMemorySpace</a>() <span class="keyword">const</span>;</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> <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> *<a class="code" href="classclang_1_1ento_1_1MemRegion.html#ae6a57e60007e672aa0444308797d3f57">getBaseRegion</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="comment"></span></div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="comment"> /// Check if the region is a subregion of the given region.</span></div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#ada36f0525a2112390cf8e2d239142eb5" title="Check if the region is a subregion of the given region.">isSubRegionOf</a>(<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) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <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> *<a class="code" href="classclang_1_1ento_1_1MemRegion.html#a8c3ae0ca072089a3b008adc86a9b8efe">StripCasts</a>(<span class="keywordtype">bool</span> StripBaseCasts = <span class="keyword">true</span>) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="comment"></span></div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="comment"> /// \brief If this is a symbolic region, returns the region. Otherwise,</span></div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="comment"> /// goes up the base chain looking for the first symbolic base region.</span></div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="comment"></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1SymbolicRegion.html">SymbolicRegion</a> *<a class="code" href="classclang_1_1ento_1_1MemRegion.html#a2746acf76bf1351d39c2b7796cc5d472" title="If this is a symbolic region, returns the region. Otherwise, goes up the base chain looking for the f...">getSymbolicBase</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> </div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#af1c441985d9e0ec65b56a3fd4dc8dfa1">hasGlobalsOrParametersStorage</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a3e8fc347d11bf44da7ae7c03e562edce">hasStackStorage</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> </div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a8c2221428509f110224a5cc2e341682e">hasStackNonParametersStorage</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> </div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#ac23a2d91a35a40f89964872a7020ec03">hasStackParametersStorage</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="comment"></span></div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="comment"> /// Compute the offset within the top level memory object.</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="comment"></span> <a class="code" href="classclang_1_1ento_1_1RegionOffset.html" title="Represent a region's offset within the top level base region.">RegionOffset</a> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a246f88b7b1876ecd2def9c2c23b82152" title="Compute the offset within the top level memory object.">getAsOffset</a>() <span class="keyword">const</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 Get a string representation of a region for debug use.</span></div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="comment"></span> std::string <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a3f5bdd1c9fe8e7b868b549751f440a88" title="Get a string representation of a region for debug use.">getString</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> </div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#aafd47af3fe31c352c9fbcb6ff8731a93">dumpToStream</a>(raw_ostream &os) <span class="keyword">const</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"> 169</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a2636bd24ae0670a1018f87eaf0c138b7">dump</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="comment"></span></div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="comment"> /// \brief Returns true if this region can be printed in a user-friendly way.</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a380605df6377712a8b4a4a9543ef8d50" title="Returns true if this region can be printed in a user-friendly way.">canPrintPretty</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="comment"></span></div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="comment"> /// \brief Print the region for use in diagnostics.</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a582acbcdf7b8be3b6c2663d8bab580ad" title="Print the region for use in diagnostics.">printPretty</a>(raw_ostream &os) <span class="keyword">const</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 Returns true if this region's textual representation can be used</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="comment"> /// as part of a larger expression.</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#ae15dfe607470a6dfdf6dbeac6efff6a4" title="Returns true if this region's textual representation can be used as part of a larger expression...">canPrintPrettyAsExpr</a>() <span class="keyword">const</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"> /// \brief Print the region as expression.</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="comment"> ///</span></div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="comment"> /// When this region represents a subexpression, the method is for printing</span></div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> <span class="comment"> /// an expression containing it.</span></div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#af00596930f47c54b418e61c1409d2d8a" title="Print the region as expression.">printPrettyAsExpr</a>(raw_ostream &os) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> </div>
+<div class="line"><a name="l00187"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a28206b01079f4c177bdd23518f471039"> 187</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7a">Kind</a> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a28206b01079f4c177bdd23518f471039">getKind</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="namespaceclang_1_1diag.html#ab2f7277bc45b970f4b9631e0617ff02c" title="All of the diagnostics that can be emitted by the frontend.">kind</a>; }</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="keyword">template</span><<span class="keyword">typename</span> RegionTy> <span class="keyword">const</span> RegionTy* <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a5bfe0bf2cd4249c7e2895bd3478979d2">getAs</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> </div>
+<div class="line"><a name="l00191"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a95419212a651eb9f26ae3b8dbefd6abb"> 191</a></span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a95419212a651eb9f26ae3b8dbefd6abb">isBoundable</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> };</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="comment"></span></div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="comment">/// MemSpaceRegion - A memory region that represents a "memory space";</span></div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="comment">/// for example, the set of global variables, the stack frame, etc.</span></div>
+<div class="line"><a name="l00196"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemSpaceRegion.html"> 196</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1MemSpaceRegion.html">MemSpaceRegion</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html" title="MemRegion - The root abstract class for all memory regions.">MemRegion</a> {</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00198"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemSpaceRegion.html#ae8b8185ad7e63c6f200f0c0b68388a39"> 198</a></span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html">MemRegionManager</a>;</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> </div>
+<div class="line"><a name="l00200"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemSpaceRegion.html#ad31e4960048fbe818c2d46366adb70e1"> 200</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html">MemRegionManager</a> *<a class="code" href="classclang_1_1ento_1_1MemSpaceRegion.html#ad31e4960048fbe818c2d46366adb70e1">Mgr</a>;</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div>
+<div class="line"><a name="l00202"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemSpaceRegion.html#a86b393700c57cc0bc91d4da6cefc514a"> 202</a></span> <a class="code" href="classclang_1_1ento_1_1MemSpaceRegion.html#a86b393700c57cc0bc91d4da6cefc514a">MemSpaceRegion</a>(<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html">MemRegionManager</a> *mgr, <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7a">Kind</a> k = <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aacbd849fc54251220e9e3fcb636760298">GenericMemSpaceRegionKind</a>)</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> : <a class="code" href="classclang_1_1ento_1_1MemRegion.html" title="MemRegion - The root abstract class for all memory regions.">MemRegion</a>(k), <a class="code" href="classclang_1_1ento_1_1MemSpaceRegion.html#ad31e4960048fbe818c2d46366adb70e1">Mgr</a>(mgr) {</div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> assert(<a class="code" href="classclang_1_1ento_1_1MemSpaceRegion.html#a4479277697bb1920de7c460cdc8b8c09">classof</a>(<span class="keyword">this</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"><a class="code" href="classclang_1_1ento_1_1MemSpaceRegion.html#a022a3fe33d26354849e15f9dc46a3d26"> 207</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html">MemRegionManager</a>* <a class="code" href="classclang_1_1ento_1_1MemSpaceRegion.html#a022a3fe33d26354849e15f9dc46a3d26">getMemRegionManager</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ento_1_1MemSpaceRegion.html#ad31e4960048fbe818c2d46366adb70e1">Mgr</a>; }</div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> </div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00210"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemSpaceRegion.html#ad2dc8324babf7c2fb09df9de001a3ceb"> 210</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1MemSpaceRegion.html#ad2dc8324babf7c2fb09df9de001a3ceb">isBoundable</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">false</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"> 212</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1MemSpaceRegion.html#a923387d775ff0debba67512014d22aed">Profile</a>(llvm::FoldingSetNodeID &<a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> </div>
+<div class="line"><a name="l00214"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemSpaceRegion.html#a4479277697bb1920de7c460cdc8b8c09"> 214</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1MemSpaceRegion.html#a4479277697bb1920de7c460cdc8b8c09">classof</a>(<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="l00215"></a><span class="lineno"> 215</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7a">Kind</a> k = R-><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a28206b01079f4c177bdd23518f471039">getKind</a>();</div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <span class="keywordflow">return</span> k >= <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aacd445854e696a0d5e891189c2316b751">BEG_MEMSPACES</a> && k <= <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa765270917e82819b0ff7e30e65e11cf5">END_MEMSPACES</a>;</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> }</div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> };</div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> </div>
+<div class="line"><a name="l00220"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1GlobalsSpaceRegion.html"> 220</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1GlobalsSpaceRegion.html">GlobalsSpaceRegion</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1ento_1_1MemSpaceRegion.html">MemSpaceRegion</a> {</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> anchor();</div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00223"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1GlobalsSpaceRegion.html#aac1e005be58f17393fcade9ec4a6e5a6"> 223</a></span> <a class="code" href="classclang_1_1ento_1_1GlobalsSpaceRegion.html#aac1e005be58f17393fcade9ec4a6e5a6">GlobalsSpaceRegion</a>(<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html">MemRegionManager</a> *mgr, <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7a">Kind</a> k)</div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> : <a class="code" href="classclang_1_1ento_1_1MemSpaceRegion.html">MemSpaceRegion</a>(mgr, k) {}</div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00226"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1GlobalsSpaceRegion.html#aec3c489134fe876af864b6f535295aad"> 226</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1GlobalsSpaceRegion.html#aec3c489134fe876af864b6f535295aad">classof</a>(<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="l00227"></a><span class="lineno"> 227</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7a">Kind</a> k = R-><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a28206b01079f4c177bdd23518f471039">getKind</a>();</div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> <span class="keywordflow">return</span> k >= <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa5f898057297c3a5326b3eb97401570ac">BEG_GLOBAL_MEMSPACES</a> && k <= <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aad0d6c9b52d9734d0e3ae7864ea80fc68">END_GLOBAL_MEMSPACES</a>;</div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> }</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> };</div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> <span class="comment"></span></div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> <span class="comment">/// \brief The region of the static variables within the current CodeTextRegion</span></div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> <span class="comment">/// scope.</span></div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> <span class="comment">/// Currently, only the static locals are placed there, so we know that these</span></div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> <span class="comment">/// variables do not get invalidated by calls to other functions.</span></div>
+<div class="line"><a name="l00237"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1StaticGlobalSpaceRegion.html"> 237</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1StaticGlobalSpaceRegion.html" title="The region of the static variables within the current CodeTextRegion scope.">StaticGlobalSpaceRegion</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1ento_1_1GlobalsSpaceRegion.html">GlobalsSpaceRegion</a> {</div>
+<div class="line"><a name="l00238"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1StaticGlobalSpaceRegion.html#ae8b8185ad7e63c6f200f0c0b68388a39"> 238</a></span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html">MemRegionManager</a>;</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> </div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1CodeTextRegion.html">CodeTextRegion</a> *CR;</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> <a class="code" href="classclang_1_1ento_1_1StaticGlobalSpaceRegion.html" title="The region of the static variables within the current CodeTextRegion scope.">StaticGlobalSpaceRegion</a>(<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html">MemRegionManager</a> *mgr, <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1CodeTextRegion.html">CodeTextRegion</a> *cr)</div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> : <a class="code" href="classclang_1_1ento_1_1GlobalsSpaceRegion.html">GlobalsSpaceRegion</a>(mgr, <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aac7c45b08902aa0fcf09700e014c3a97d">StaticGlobalSpaceRegionKind</a>), CR(cr) {}</div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> </div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1StaticGlobalSpaceRegion.html#ac32750db23b8398f1c78a294b38c8310">Profile</a>(llvm::FoldingSetNodeID &<a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> </div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1StaticGlobalSpaceRegion.html#a6c6338bb8b522e1ac6c4c353038e939a">dumpToStream</a>(raw_ostream &os) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> </div>
+<div class="line"><a name="l00250"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1StaticGlobalSpaceRegion.html#a2a42c5729e86fe2fa015d869ac70a907"> 250</a></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1CodeTextRegion.html">CodeTextRegion</a> *<a class="code" href="classclang_1_1ento_1_1StaticGlobalSpaceRegion.html#a2a42c5729e86fe2fa015d869ac70a907">getCodeRegion</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> CR; }</div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> </div>
+<div class="line"><a name="l00252"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1StaticGlobalSpaceRegion.html#a5c302301eb22138c1c3006e94d0ae469"> 252</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1StaticGlobalSpaceRegion.html#a5c302301eb22138c1c3006e94d0ae469">classof</a>(<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="l00253"></a><span class="lineno"> 253</span> <span class="keywordflow">return</span> R-><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a28206b01079f4c177bdd23518f471039">getKind</a>() == <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aac7c45b08902aa0fcf09700e014c3a97d">StaticGlobalSpaceRegionKind</a>;</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> };</div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> <span class="comment"></span></div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> <span class="comment">/// \brief The region for all the non-static global variables.</span></div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <span class="comment">/// This class is further split into subclasses for efficient implementation of</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="comment">/// invalidating a set of related global values as is done in</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="comment">/// RegionStoreManager::invalidateRegions (instead of finding all the dependent</span></div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> <span class="comment">/// globals, we invalidate the whole parent region).</span></div>
+<div class="line"><a name="l00263"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1NonStaticGlobalSpaceRegion.html"> 263</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1NonStaticGlobalSpaceRegion.html" title="The region for all the non-static global variables.">NonStaticGlobalSpaceRegion</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1ento_1_1GlobalsSpaceRegion.html">GlobalsSpaceRegion</a> {</div>
+<div class="line"><a name="l00264"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1NonStaticGlobalSpaceRegion.html#ae8b8185ad7e63c6f200f0c0b68388a39"> 264</a></span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html">MemRegionManager</a>;</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> </div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00267"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1NonStaticGlobalSpaceRegion.html#adfd13f0a20ef0f55cce7e2db3d4014b6"> 267</a></span> <a class="code" href="classclang_1_1ento_1_1NonStaticGlobalSpaceRegion.html#adfd13f0a20ef0f55cce7e2db3d4014b6">NonStaticGlobalSpaceRegion</a>(<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html">MemRegionManager</a> *mgr, <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7a">Kind</a> k)</div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> : <a class="code" href="classclang_1_1ento_1_1GlobalsSpaceRegion.html">GlobalsSpaceRegion</a>(mgr, k) {}</div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> </div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> </div>
+<div class="line"><a name="l00272"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1NonStaticGlobalSpaceRegion.html#a59fb8bb35b5749bf26a75282195d4a56"> 272</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1NonStaticGlobalSpaceRegion.html#a59fb8bb35b5749bf26a75282195d4a56">classof</a>(<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="l00273"></a><span class="lineno"> 273</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7a">Kind</a> k = R-><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a28206b01079f4c177bdd23518f471039">getKind</a>();</div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> <span class="keywordflow">return</span> k >= <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa70e9168233c3900817a1b14cbdcc233e">BEG_NON_STATIC_GLOBAL_MEMSPACES</a> &&</div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> k <= <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa5ddb121d3af42bc0029847ffaebef320">END_NON_STATIC_GLOBAL_MEMSPACES</a>;</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"> 278</span> <span class="comment"></span></div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> <span class="comment">/// \brief The region containing globals which are defined in system/external</span></div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> <span class="comment">/// headers and are considered modifiable by system calls (ex: errno).</span></div>
+<div class="line"><a name="l00281"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1GlobalSystemSpaceRegion.html"> 281</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1GlobalSystemSpaceRegion.html" title="The region containing globals which are defined in system/external headers and are considered modifia...">GlobalSystemSpaceRegion</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1ento_1_1NonStaticGlobalSpaceRegion.html" title="The region for all the non-static global variables.">NonStaticGlobalSpaceRegion</a> {</div>
+<div class="line"><a name="l00282"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1GlobalSystemSpaceRegion.html#ae8b8185ad7e63c6f200f0c0b68388a39"> 282</a></span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html">MemRegionManager</a>;</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> <a class="code" href="classclang_1_1ento_1_1GlobalSystemSpaceRegion.html" title="The region containing globals which are defined in system/external headers and are considered modifia...">GlobalSystemSpaceRegion</a>(<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html">MemRegionManager</a> *mgr)</div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> : <a class="code" href="classclang_1_1ento_1_1NonStaticGlobalSpaceRegion.html" title="The region for all the non-static global variables.">NonStaticGlobalSpaceRegion</a>(mgr, <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa1fa9444fdc00a4462e203a5c01e5a589">GlobalSystemSpaceRegionKind</a>) {}</div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> </div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> <span class="keyword">public</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> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1GlobalSystemSpaceRegion.html#a0b14019cda3a98522d29c8da69ebaa74">dumpToStream</a>(raw_ostream &os) <span class="keyword">const</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"><a class="code" href="classclang_1_1ento_1_1GlobalSystemSpaceRegion.html#a9e002f9988adb588e10f47dd094dfa6c"> 291</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1GlobalSystemSpaceRegion.html#a9e002f9988adb588e10f47dd094dfa6c">classof</a>(<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="l00292"></a><span class="lineno"> 292</span> <span class="keywordflow">return</span> R-><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a28206b01079f4c177bdd23518f471039">getKind</a>() == <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa1fa9444fdc00a4462e203a5c01e5a589">GlobalSystemSpaceRegionKind</a>;</div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> }</div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> };</div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> <span class="comment"></span></div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> <span class="comment">/// \brief The region containing globals which are considered not to be modified</span></div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> <span class="comment">/// or point to data which could be modified as a result of a function call</span></div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> <span class="comment">/// (system or internal). Ex: Const global scalars would be modeled as part of</span></div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> <span class="comment">/// this region. This region also includes most system globals since they have</span></div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> <span class="comment">/// low chance of being modified.</span></div>
+<div class="line"><a name="l00301"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1GlobalImmutableSpaceRegion.html"> 301</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1GlobalImmutableSpaceRegion.html" title="The region containing globals which are considered not to be modified or point to data which could be...">GlobalImmutableSpaceRegion</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1ento_1_1NonStaticGlobalSpaceRegion.html" title="The region for all the non-static global variables.">NonStaticGlobalSpaceRegion</a> {</div>
+<div class="line"><a name="l00302"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1GlobalImmutableSpaceRegion.html#ae8b8185ad7e63c6f200f0c0b68388a39"> 302</a></span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html">MemRegionManager</a>;</div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> </div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> <a class="code" href="classclang_1_1ento_1_1GlobalImmutableSpaceRegion.html" title="The region containing globals which are considered not to be modified or point to data which could be...">GlobalImmutableSpaceRegion</a>(<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html">MemRegionManager</a> *mgr)</div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> : <a class="code" href="classclang_1_1ento_1_1NonStaticGlobalSpaceRegion.html" title="The region for all the non-static global variables.">NonStaticGlobalSpaceRegion</a>(mgr, <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aaedbec81b85bfc94b1c707826997d5519">GlobalImmutableSpaceRegionKind</a>) {}</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> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> </div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1GlobalImmutableSpaceRegion.html#a0f2009860356ae491e298070689d62ce">dumpToStream</a>(raw_ostream &os) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> </div>
+<div class="line"><a name="l00311"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1GlobalImmutableSpaceRegion.html#ac71f99eba79fb8e3be2a43790839f85e"> 311</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1GlobalImmutableSpaceRegion.html#ac71f99eba79fb8e3be2a43790839f85e">classof</a>(<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="l00312"></a><span class="lineno"> 312</span> <span class="keywordflow">return</span> R-><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a28206b01079f4c177bdd23518f471039">getKind</a>() == <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aaedbec81b85bfc94b1c707826997d5519">GlobalImmutableSpaceRegionKind</a>;</div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> }</div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> };</div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> <span class="comment"></span></div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> <span class="comment">/// \brief The region containing globals which can be modified by calls to</span></div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> <span class="comment">/// "internally" defined functions - (for now just) functions other then system</span></div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> <span class="comment">/// calls.</span></div>
+<div class="line"><a name="l00319"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1GlobalInternalSpaceRegion.html"> 319</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1GlobalInternalSpaceRegion.html" title="The region containing globals which can be modified by calls to "internally" defined functions - (for...">GlobalInternalSpaceRegion</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1ento_1_1NonStaticGlobalSpaceRegion.html" title="The region for all the non-static global variables.">NonStaticGlobalSpaceRegion</a> {</div>
+<div class="line"><a name="l00320"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1GlobalInternalSpaceRegion.html#ae8b8185ad7e63c6f200f0c0b68388a39"> 320</a></span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html">MemRegionManager</a>;</div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> </div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> <a class="code" href="classclang_1_1ento_1_1GlobalInternalSpaceRegion.html" title="The region containing globals which can be modified by calls to "internally" defined functions - (for...">GlobalInternalSpaceRegion</a>(<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html">MemRegionManager</a> *mgr)</div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> : <a class="code" href="classclang_1_1ento_1_1NonStaticGlobalSpaceRegion.html" title="The region for all the non-static global variables.">NonStaticGlobalSpaceRegion</a>(mgr, <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa187402ba660cdf2c2c492909b4c0e074">GlobalInternalSpaceRegionKind</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> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> </div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1GlobalInternalSpaceRegion.html#aeadd26a9e795eb6ccce50101760432dd">dumpToStream</a>(raw_ostream &os) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> </div>
+<div class="line"><a name="l00329"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1GlobalInternalSpaceRegion.html#a89eabfef8ee523516cd67ecd341b2689"> 329</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1GlobalInternalSpaceRegion.html#a89eabfef8ee523516cd67ecd341b2689">classof</a>(<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="l00330"></a><span class="lineno"> 330</span> <span class="keywordflow">return</span> R-><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a28206b01079f4c177bdd23518f471039">getKind</a>() == <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa187402ba660cdf2c2c492909b4c0e074">GlobalInternalSpaceRegionKind</a>;</div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> }</div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> };</div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> </div>
+<div class="line"><a name="l00334"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1HeapSpaceRegion.html"> 334</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1HeapSpaceRegion.html">HeapSpaceRegion</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1ento_1_1MemSpaceRegion.html">MemSpaceRegion</a> {</div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> anchor();</div>
+<div class="line"><a name="l00336"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1HeapSpaceRegion.html#ae8b8185ad7e63c6f200f0c0b68388a39"> 336</a></span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html">MemRegionManager</a>;</div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> </div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> <a class="code" href="classclang_1_1ento_1_1HeapSpaceRegion.html">HeapSpaceRegion</a>(<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html">MemRegionManager</a> *mgr)</div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> : <a class="code" href="classclang_1_1ento_1_1MemSpaceRegion.html">MemSpaceRegion</a>(mgr, <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa4333862239919a0791d55fa6aa4bd301">HeapSpaceRegionKind</a>) {}</div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> </div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1HeapSpaceRegion.html#a623d42fda3b17283b92a9a4385e5819a">dumpToStream</a>(raw_ostream &os) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> </div>
+<div class="line"><a name="l00344"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1HeapSpaceRegion.html#ab2f2b88364e9ad0a3676ea176be74afe"> 344</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1HeapSpaceRegion.html#ab2f2b88364e9ad0a3676ea176be74afe">classof</a>(<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="l00345"></a><span class="lineno"> 345</span> <span class="keywordflow">return</span> R-><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a28206b01079f4c177bdd23518f471039">getKind</a>() == <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa4333862239919a0791d55fa6aa4bd301">HeapSpaceRegionKind</a>;</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> };</div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> </div>
+<div class="line"><a name="l00349"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1UnknownSpaceRegion.html"> 349</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1UnknownSpaceRegion.html">UnknownSpaceRegion</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1ento_1_1MemSpaceRegion.html">MemSpaceRegion</a> {</div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> anchor();</div>
+<div class="line"><a name="l00351"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1UnknownSpaceRegion.html#ae8b8185ad7e63c6f200f0c0b68388a39"> 351</a></span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html">MemRegionManager</a>;</div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> <a class="code" href="classclang_1_1ento_1_1UnknownSpaceRegion.html">UnknownSpaceRegion</a>(<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html">MemRegionManager</a> *mgr)</div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> : <a class="code" href="classclang_1_1ento_1_1MemSpaceRegion.html">MemSpaceRegion</a>(mgr, <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa06125b8a8f8fc75f548246cb161ab902">UnknownSpaceRegionKind</a>) {}</div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> </div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1UnknownSpaceRegion.html#a035bcba7de9113ddcf0d91b5508c62af">dumpToStream</a>(raw_ostream &os) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> </div>
+<div class="line"><a name="l00358"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1UnknownSpaceRegion.html#a8dabe97849dd4f47c3988a54a1583d4f"> 358</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1UnknownSpaceRegion.html#a8dabe97849dd4f47c3988a54a1583d4f">classof</a>(<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="l00359"></a><span class="lineno"> 359</span> <span class="keywordflow">return</span> R-><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a28206b01079f4c177bdd23518f471039">getKind</a>() == <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa06125b8a8f8fc75f548246cb161ab902">UnknownSpaceRegionKind</a>;</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> };</div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> </div>
+<div class="line"><a name="l00363"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1StackSpaceRegion.html"> 363</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1StackSpaceRegion.html">StackSpaceRegion</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1ento_1_1MemSpaceRegion.html">MemSpaceRegion</a> {</div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1StackFrameContext.html">StackFrameContext</a> *SFC;</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> <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00368"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1StackSpaceRegion.html#aa289b3e252eeefcc54a7e18b4605b69d"> 368</a></span> <a class="code" href="classclang_1_1ento_1_1StackSpaceRegion.html#aa289b3e252eeefcc54a7e18b4605b69d">StackSpaceRegion</a>(<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html">MemRegionManager</a> *mgr, <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7a">Kind</a> k, <span class="keyword">const</span> <a class="code" href="classclang_1_1StackFrameContext.html">StackFrameContext</a> *sfc)</div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> : <a class="code" href="classclang_1_1ento_1_1MemSpaceRegion.html">MemSpaceRegion</a>(mgr, k), SFC(sfc) {</div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> assert(<a class="code" href="classclang_1_1ento_1_1StackSpaceRegion.html#a3988293bb346916b7f9ad43b31e67186">classof</a>(<span class="keyword">this</span>));</div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> }</div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span> </div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> <span class="keyword">public</span>: </div>
+<div class="line"><a name="l00374"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1StackSpaceRegion.html#a3d380a72e4d0f2277653dfcc1b4e1724"> 374</a></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1StackFrameContext.html">StackFrameContext</a> *<a class="code" href="classclang_1_1ento_1_1StackSpaceRegion.html#a3d380a72e4d0f2277653dfcc1b4e1724">getStackFrame</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> SFC; }</div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> </div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1StackSpaceRegion.html#a419c94bc5cce29a6aae516ce055cba63">Profile</a>(llvm::FoldingSetNodeID &<a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> </div>
+<div class="line"><a name="l00378"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1StackSpaceRegion.html#a3988293bb346916b7f9ad43b31e67186"> 378</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1StackSpaceRegion.html#a3988293bb346916b7f9ad43b31e67186">classof</a>(<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="l00379"></a><span class="lineno"> 379</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7a">Kind</a> k = R-><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a28206b01079f4c177bdd23518f471039">getKind</a>();</div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> <span class="keywordflow">return</span> k >= <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa2906f87d911b696befba9a1c6c579d18">StackLocalsSpaceRegionKind</a> &&</div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> k <= <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa974cb3919b025c61108347e32414abad">StackArgumentsSpaceRegionKind</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> </div>
+<div class="line"><a name="l00385"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1StackLocalsSpaceRegion.html"> 385</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1StackLocalsSpaceRegion.html">StackLocalsSpaceRegion</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1ento_1_1StackSpaceRegion.html">StackSpaceRegion</a> {</div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> anchor();</div>
+<div class="line"><a name="l00387"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1StackLocalsSpaceRegion.html#ae8b8185ad7e63c6f200f0c0b68388a39"> 387</a></span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html">MemRegionManager</a>;</div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span> <a class="code" href="classclang_1_1ento_1_1StackLocalsSpaceRegion.html">StackLocalsSpaceRegion</a>(<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html">MemRegionManager</a> *mgr, <span class="keyword">const</span> <a class="code" href="classclang_1_1StackFrameContext.html">StackFrameContext</a> *sfc)</div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> : <a class="code" href="classclang_1_1ento_1_1StackSpaceRegion.html">StackSpaceRegion</a>(mgr, <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa2906f87d911b696befba9a1c6c579d18">StackLocalsSpaceRegionKind</a>, sfc) {}</div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> </div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1StackLocalsSpaceRegion.html#af21c43685ecf094b1407b35d9c91567e">dumpToStream</a>(raw_ostream &os) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span> </div>
+<div class="line"><a name="l00394"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1StackLocalsSpaceRegion.html#a37eede946c999dd0791aff5f0deb2bb1"> 394</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1StackLocalsSpaceRegion.html#a37eede946c999dd0791aff5f0deb2bb1">classof</a>(<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="l00395"></a><span class="lineno"> 395</span> <span class="keywordflow">return</span> R-><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a28206b01079f4c177bdd23518f471039">getKind</a>() == <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa2906f87d911b696befba9a1c6c579d18">StackLocalsSpaceRegionKind</a>;</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> };</div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> </div>
+<div class="line"><a name="l00399"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1StackArgumentsSpaceRegion.html"> 399</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1StackArgumentsSpaceRegion.html">StackArgumentsSpaceRegion</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1ento_1_1StackSpaceRegion.html">StackSpaceRegion</a> {</div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> anchor();</div>
+<div class="line"><a name="l00402"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1StackArgumentsSpaceRegion.html#ae8b8185ad7e63c6f200f0c0b68388a39"> 402</a></span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html">MemRegionManager</a>;</div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> <a class="code" href="classclang_1_1ento_1_1StackArgumentsSpaceRegion.html">StackArgumentsSpaceRegion</a>(<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html">MemRegionManager</a> *mgr, <span class="keyword">const</span> <a class="code" href="classclang_1_1StackFrameContext.html">StackFrameContext</a> *sfc)</div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> : <a class="code" href="classclang_1_1ento_1_1StackSpaceRegion.html">StackSpaceRegion</a>(mgr, <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa974cb3919b025c61108347e32414abad">StackArgumentsSpaceRegionKind</a>, sfc) {}</div>
+<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> <span class="keyword">public</span>:</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> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1StackArgumentsSpaceRegion.html#a0a7fbac11e2a384ca78d647303c9deb0">dumpToStream</a>(raw_ostream &os) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> </div>
+<div class="line"><a name="l00409"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1StackArgumentsSpaceRegion.html#a76eb011c86daf3a0da2a4eab0aaeb093"> 409</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1StackArgumentsSpaceRegion.html#a76eb011c86daf3a0da2a4eab0aaeb093">classof</a>(<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="l00410"></a><span class="lineno"> 410</span> <span class="keywordflow">return</span> R-><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a28206b01079f4c177bdd23518f471039">getKind</a>() == <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa974cb3919b025c61108347e32414abad">StackArgumentsSpaceRegionKind</a>;</div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> }</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> </div>
+<div class="line"><a name="l00414"></a><span class="lineno"> 414</span> <span class="comment"></span></div>
+<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> <span class="comment">/// SubRegion - A region that subsets another larger region. Most regions</span></div>
+<div class="line"><a name="l00416"></a><span class="lineno"> 416</span> <span class="comment">/// are subclasses of SubRegion.</span></div>
+<div class="line"><a name="l00417"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1SubRegion.html"> 417</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1SubRegion.html">SubRegion</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html" title="MemRegion - The root abstract class for all memory regions.">MemRegion</a> {</div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> anchor();</div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00421"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1SubRegion.html#a27438f6035bc4a416e18ec825c7d9fd2"> 421</a></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>* <a class="code" href="classclang_1_1ento_1_1SubRegion.html#a27438f6035bc4a416e18ec825c7d9fd2">superRegion</a>;</div>
+<div class="line"><a name="l00422"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1SubRegion.html#a23f3fad665a6796ab4b0305e43367973"> 422</a></span> <a class="code" href="classclang_1_1ento_1_1SubRegion.html#a23f3fad665a6796ab4b0305e43367973">SubRegion</a>(<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>* sReg, <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7a">Kind</a> k) : <a class="code" href="classclang_1_1ento_1_1MemRegion.html" title="MemRegion - The root abstract class for all memory regions.">MemRegion</a>(k), <a class="code" href="classclang_1_1ento_1_1SubRegion.html#a27438f6035bc4a416e18ec825c7d9fd2">superRegion</a>(sReg) {}</div>
+<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00424"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1SubRegion.html#ada0aa8debb5fb41ca2c50ee2eb6c3ac1"> 424</a></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>* <a class="code" href="classclang_1_1ento_1_1SubRegion.html#ada0aa8debb5fb41ca2c50ee2eb6c3ac1">getSuperRegion</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ento_1_1SubRegion.html#a27438f6035bc4a416e18ec825c7d9fd2">superRegion</a>;</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> <span class="comment"></span></div>
+<div class="line"><a name="l00428"></a><span class="lineno"> 428</span> <span class="comment"> /// getExtent - Returns the size of the region in bytes.</span></div>
+<div class="line"><a name="l00429"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1SubRegion.html#a42a7e21b8a1635dfb5359010e6ef84e9"> 429</a></span> <span class="comment"></span> <span class="keyword">virtual</span> <a class="code" href="classclang_1_1ento_1_1DefinedOrUnknownSVal.html">DefinedOrUnknownSVal</a> <a class="code" href="classclang_1_1ento_1_1SubRegion.html#a42a7e21b8a1635dfb5359010e6ef84e9" title="getExtent - Returns the size of the region in bytes.">getExtent</a>(<a class="code" href="classclang_1_1ento_1_1SValBuilder.html">SValBuilder</a> &svalBuilder)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ento_1_1UnknownVal.html">UnknownVal</a>();</div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</span> }</div>
+<div class="line"><a name="l00432"></a><span class="lineno"> 432</span> </div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span> <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html">MemRegionManager</a>* <a class="code" href="classclang_1_1ento_1_1SubRegion.html#afff317d26de89f494f4572eeac283d9e">getMemRegionManager</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span> </div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1SubRegion.html#ac873b579519262f574b4856b4e76f903" title="Check if the region is a subregion of the given region.">isSubRegionOf</a>(<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) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> </div>
+<div class="line"><a name="l00437"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1SubRegion.html#a1956a5c1c2f589dea5587c634186d73b"> 437</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1SubRegion.html#a1956a5c1c2f589dea5587c634186d73b">classof</a>(<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="l00438"></a><span class="lineno"> 438</span> <span class="keywordflow">return</span> R-><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a28206b01079f4c177bdd23518f471039">getKind</a>() > <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa765270917e82819b0ff7e30e65e11cf5">END_MEMSPACES</a>;</div>
+<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> }</div>
+<div class="line"><a name="l00440"></a><span class="lineno"> 440</span> };</div>
+<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> </div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> <span class="comment">// MemRegion subclasses.</span></div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span> <span class="comment">//===----------------------------------------------------------------------===//</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">/// AllocaRegion - A region that represents an untyped blob of bytes created</span></div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> <span class="comment">/// by a call to 'alloca'.</span></div>
+<div class="line"><a name="l00448"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1AllocaRegion.html"> 448</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1AllocaRegion.html">AllocaRegion</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1ento_1_1SubRegion.html">SubRegion</a> {</div>
+<div class="line"><a name="l00449"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1AllocaRegion.html#ae8b8185ad7e63c6f200f0c0b68388a39"> 449</a></span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html">MemRegionManager</a>;</div>
+<div class="line"><a name="l00450"></a><span class="lineno"> 450</span> <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00451"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1AllocaRegion.html#a72e926e8ca81c08f9f972586720a71b0"> 451</a></span> <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1ento_1_1AllocaRegion.html#a72e926e8ca81c08f9f972586720a71b0">Cnt</a>; <span class="comment">// Block counter. Used to distinguish different pieces of</span></div>
+<div class="line"><a name="l00452"></a><span class="lineno"> 452</span> <span class="comment">// memory allocated by alloca at the same call site.</span></div>
+<div class="line"><a name="l00453"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1AllocaRegion.html#a98c82bf2630cb1ad1737d240345de119"> 453</a></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *<a class="code" href="classclang_1_1ento_1_1AllocaRegion.html#a98c82bf2630cb1ad1737d240345de119">Ex</a>;</div>
+<div class="line"><a name="l00454"></a><span class="lineno"> 454</span> </div>
+<div class="line"><a name="l00455"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1AllocaRegion.html#aff865eaeeb1e9653f2cf2b0965a53488"> 455</a></span> <a class="code" href="classclang_1_1ento_1_1AllocaRegion.html#aff865eaeeb1e9653f2cf2b0965a53488">AllocaRegion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *ex, <span class="keywordtype">unsigned</span> cnt, <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> *<a class="code" href="classclang_1_1ento_1_1SubRegion.html#a27438f6035bc4a416e18ec825c7d9fd2">superRegion</a>)</div>
+<div class="line"><a name="l00456"></a><span class="lineno"> 456</span> : <a class="code" href="classclang_1_1ento_1_1SubRegion.html">SubRegion</a>(superRegion, <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aaf60d996de54e21c78cfcff99fffdf5d8">AllocaRegionKind</a>), <a class="code" href="classclang_1_1ento_1_1AllocaRegion.html#a72e926e8ca81c08f9f972586720a71b0">Cnt</a>(cnt), <a class="code" href="classclang_1_1ento_1_1AllocaRegion.html#a98c82bf2630cb1ad1737d240345de119">Ex</a>(ex) {}</div>
+<div class="line"><a name="l00457"></a><span class="lineno"> 457</span> </div>
+<div class="line"><a name="l00458"></a><span class="lineno"> 458</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span> </div>
+<div class="line"><a name="l00460"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1AllocaRegion.html#a94714d73678aba668eab7b33ce877458"> 460</a></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *<a class="code" href="classclang_1_1ento_1_1AllocaRegion.html#a94714d73678aba668eab7b33ce877458">getExpr</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ento_1_1AllocaRegion.html#a98c82bf2630cb1ad1737d240345de119">Ex</a>; }</div>
+<div class="line"><a name="l00461"></a><span class="lineno"> 461</span> </div>
+<div class="line"><a name="l00462"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1AllocaRegion.html#a488aa1303bc80cb116a7fc20680db311"> 462</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1AllocaRegion.html#a488aa1303bc80cb116a7fc20680db311">isBoundable</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">true</span>; }</div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> </div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> <a class="code" href="classclang_1_1ento_1_1DefinedOrUnknownSVal.html">DefinedOrUnknownSVal</a> <a class="code" href="classclang_1_1ento_1_1AllocaRegion.html#ad1e0830263e3d01ec5e49a68c50b7feb" title="getExtent - Returns the size of the region in bytes.">getExtent</a>(<a class="code" href="classclang_1_1ento_1_1SValBuilder.html">SValBuilder</a> &svalBuilder) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00465"></a><span class="lineno"> 465</span> </div>
+<div class="line"><a name="l00466"></a><span class="lineno"> 466</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1AllocaRegion.html#a31173b2fd2163aa3ec70d6a351265088">Profile</a>(llvm::FoldingSetNodeID& <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> </div>
+<div class="line"><a name="l00468"></a><span class="lineno"> 468</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1AllocaRegion.html#a0ed392e719b1988317dad914371878ad">ProfileRegion</a>(llvm::FoldingSetNodeID& <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>, <span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *<a class="code" href="classclang_1_1ento_1_1AllocaRegion.html#a98c82bf2630cb1ad1737d240345de119">Ex</a>,</div>
+<div class="line"><a name="l00469"></a><span class="lineno"> 469</span> <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1ento_1_1AllocaRegion.html#a72e926e8ca81c08f9f972586720a71b0">Cnt</a>, <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> *<a class="code" href="classclang_1_1ento_1_1SubRegion.html#a27438f6035bc4a416e18ec825c7d9fd2">superRegion</a>);</div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</span> </div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1AllocaRegion.html#af2bda9ec3d08a09376e44dbdb345ec6c">dumpToStream</a>(raw_ostream &os) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00472"></a><span class="lineno"> 472</span> </div>
+<div class="line"><a name="l00473"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1AllocaRegion.html#a77e5883717003f4d3c44d04254e08376"> 473</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1AllocaRegion.html#a77e5883717003f4d3c44d04254e08376">classof</a>(<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="l00474"></a><span class="lineno"> 474</span> <span class="keywordflow">return</span> R-><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a28206b01079f4c177bdd23518f471039">getKind</a>() == <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aaf60d996de54e21c78cfcff99fffdf5d8">AllocaRegionKind</a>;</div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span> }</div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span> };</div>
+<div class="line"><a name="l00477"></a><span class="lineno"> 477</span> <span class="comment"></span></div>
+<div class="line"><a name="l00478"></a><span class="lineno"> 478</span> <span class="comment">/// TypedRegion - An abstract class representing regions that are typed.</span></div>
+<div class="line"><a name="l00479"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1TypedRegion.html"> 479</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1TypedRegion.html" title="TypedRegion - An abstract class representing regions that are typed.">TypedRegion</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1ento_1_1SubRegion.html">SubRegion</a> {</div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1TypedRegion.html#a94df82e5b2cff83c538102acc2723a9a">anchor</a>();</div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</span> <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00483"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1TypedRegion.html#aac28b9168c17bcaffdae0fb0ba2f70e4"> 483</a></span> <a class="code" href="classclang_1_1ento_1_1TypedRegion.html#aac28b9168c17bcaffdae0fb0ba2f70e4">TypedRegion</a>(<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>* sReg, <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7a">Kind</a> k) : <a class="code" href="classclang_1_1ento_1_1SubRegion.html">SubRegion</a>(sReg, k) {}</div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span> </div>
+<div class="line"><a name="l00485"></a><span class="lineno"> 485</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00486"></a><span class="lineno"> 486</span> <span class="keyword">virtual</span> <a class="code" href="classclang_1_1QualType.html">QualType</a> <a class="code" href="classclang_1_1ento_1_1TypedRegion.html#a990dd653392f1adcc235b8bd6539fb04">getLocationType</a>() <span class="keyword">const</span> = 0;</div>
+<div class="line"><a name="l00487"></a><span class="lineno"> 487</span> </div>
+<div class="line"><a name="l00488"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1TypedRegion.html#a8ef9e01607892f6e4085f19378d78279"> 488</a></span> <a class="code" href="classclang_1_1QualType.html">QualType</a> <a class="code" href="classclang_1_1ento_1_1TypedRegion.html#a8ef9e01607892f6e4085f19378d78279">getDesugaredLocationType</a>(<a class="code" href="classclang_1_1ASTContext.html" title="Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...">ASTContext</a> &<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00489"></a><span class="lineno"> 489</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ento_1_1TypedRegion.html#a990dd653392f1adcc235b8bd6539fb04">getLocationType</a>().<a class="code" href="classclang_1_1QualType.html#a8fea264ee06d380d6047eca8e9710ea6">getDesugaredType</a>(Context);</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> </div>
+<div class="line"><a name="l00492"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1TypedRegion.html#a78a7d63edd01f234ac3a986aae1e1940"> 492</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1TypedRegion.html#a78a7d63edd01f234ac3a986aae1e1940">isBoundable</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">true</span>; }</div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span> </div>
+<div class="line"><a name="l00494"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1TypedRegion.html#afb48dc331806876baf89fd1e28a55ad0"> 494</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1TypedRegion.html#afb48dc331806876baf89fd1e28a55ad0">classof</a>(<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="l00495"></a><span class="lineno"> 495</span> <span class="keywordtype">unsigned</span> k = R-><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a28206b01079f4c177bdd23518f471039">getKind</a>();</div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</span> <span class="keywordflow">return</span> k >= <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa3c97dd6860aae82b777d060bc2e358c1">BEG_TYPED_REGIONS</a> && k <= <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa89b59e1a18f72376f83fad22a7aaf045">END_TYPED_REGIONS</a>;</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> };</div>
+<div class="line"><a name="l00499"></a><span class="lineno"> 499</span> <span class="comment"></span></div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span> <span class="comment">/// TypedValueRegion - An abstract class representing regions having a typed value.</span></div>
+<div class="line"><a name="l00501"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1TypedValueRegion.html"> 501</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1TypedValueRegion.html" title="TypedValueRegion - An abstract class representing regions having a typed value.">TypedValueRegion</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1ento_1_1TypedRegion.html" title="TypedRegion - An abstract class representing regions that are typed.">TypedRegion</a> {</div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00503"></a><span class="lineno"> 503</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1TypedValueRegion.html#a87b1ce4bdb09a1e2d141c2a7d01a3be1">anchor</a>();</div>
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span> <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00505"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1TypedValueRegion.html#afaa08ce5cc48693cb90c91a059d7cf65"> 505</a></span> <a class="code" href="classclang_1_1ento_1_1TypedValueRegion.html#afaa08ce5cc48693cb90c91a059d7cf65">TypedValueRegion</a>(<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>* sReg, <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7a">Kind</a> k) : <a class="code" href="classclang_1_1ento_1_1TypedRegion.html" title="TypedRegion - An abstract class representing regions that are typed.">TypedRegion</a>(sReg, k) {}</div>
+<div class="line"><a name="l00506"></a><span class="lineno"> 506</span> </div>
+<div class="line"><a name="l00507"></a><span class="lineno"> 507</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</span> <span class="keyword">virtual</span> <a class="code" href="classclang_1_1QualType.html">QualType</a> <a class="code" href="classclang_1_1ento_1_1TypedValueRegion.html#a527b908a410f8b916205d6db9420969e">getValueType</a>() <span class="keyword">const</span> = 0;</div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span> </div>
+<div class="line"><a name="l00510"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1TypedValueRegion.html#ac60beda6032fcc75de4358f92f97cbf8"> 510</a></span> <span class="keyword">virtual</span> <a class="code" href="classclang_1_1QualType.html">QualType</a> <a class="code" href="classclang_1_1ento_1_1TypedValueRegion.html#ac60beda6032fcc75de4358f92f97cbf8">getLocationType</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00511"></a><span class="lineno"> 511</span> <span class="comment">// FIXME: We can possibly optimize this later to cache this value.</span></div>
+<div class="line"><a name="l00512"></a><span class="lineno"> 512</span> <a class="code" href="classclang_1_1QualType.html">QualType</a> T = <a class="code" href="classclang_1_1ento_1_1TypedValueRegion.html#a527b908a410f8b916205d6db9420969e">getValueType</a>();</div>
+<div class="line"><a name="l00513"></a><span class="lineno"> 513</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 = <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a582a40115ffa064a32e78bfa90de4097">getContext</a>();</div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span> <span class="keywordflow">if</span> (T-><a class="code" href="classclang_1_1Type.html#a12103ea8bee9506930287bab68a08569">getAs</a><<a class="code" href="classclang_1_1ObjCObjectType.html">ObjCObjectType</a>>())</div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span> <span class="keywordflow">return</span> ctx.<a class="code" href="classclang_1_1ASTContext.html#a5c1abc77f994ace61ebfd7c864b64244" title="Return a ObjCObjectPointerType type for the given ObjCObjectType.">getObjCObjectPointerType</a>(T);</div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span> <span class="keywordflow">return</span> ctx.<a class="code" href="classclang_1_1ASTContext.html#a3574cad49cba0fc48ab7b4c953e7e31e" title="Return the uniqued reference to the type for a pointer to the specified type.">getPointerType</a>(<a class="code" href="classclang_1_1ento_1_1TypedValueRegion.html#a527b908a410f8b916205d6db9420969e">getValueType</a>());</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"><a class="code" href="classclang_1_1ento_1_1TypedValueRegion.html#a63d1ad571f5c6d8a1e8f3f8a264d3a4a"> 519</a></span> <a class="code" href="classclang_1_1QualType.html">QualType</a> <a class="code" href="classclang_1_1ento_1_1TypedValueRegion.html#a63d1ad571f5c6d8a1e8f3f8a264d3a4a">getDesugaredValueType</a>(<a class="code" href="classclang_1_1ASTContext.html" title="Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...">ASTContext</a> &<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span> <a class="code" href="classclang_1_1QualType.html">QualType</a> T = <a class="code" href="classclang_1_1ento_1_1TypedValueRegion.html#a527b908a410f8b916205d6db9420969e">getValueType</a>();</div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span> <span class="keywordflow">return</span> T.<a class="code" href="classclang_1_1QualType.html#a084f18db440f4553cd6708681186aa06">getTypePtrOrNull</a>() ? T.<a class="code" href="classclang_1_1QualType.html#a8fea264ee06d380d6047eca8e9710ea6">getDesugaredType</a>(Context) : T;</div>
+<div class="line"><a name="l00522"></a><span class="lineno"> 522</span> }</div>
+<div class="line"><a name="l00523"></a><span class="lineno"> 523</span> </div>
+<div class="line"><a name="l00524"></a><span class="lineno"> 524</span> <a class="code" href="classclang_1_1ento_1_1DefinedOrUnknownSVal.html">DefinedOrUnknownSVal</a> <a class="code" href="classclang_1_1ento_1_1TypedValueRegion.html#a34bcd0db290db518a5b75e442635261d" title="getExtent - Returns the size of the region in bytes.">getExtent</a>(<a class="code" href="classclang_1_1ento_1_1SValBuilder.html">SValBuilder</a> &svalBuilder) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00525"></a><span class="lineno"> 525</span> </div>
+<div class="line"><a name="l00526"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1TypedValueRegion.html#a57f9552695601f8b8b0b4255c36c1a55"> 526</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1TypedValueRegion.html#a57f9552695601f8b8b0b4255c36c1a55">classof</a>(<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="l00527"></a><span class="lineno"> 527</span> <span class="keywordtype">unsigned</span> k = R-><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a28206b01079f4c177bdd23518f471039">getKind</a>();</div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span> <span class="keywordflow">return</span> k >= <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa18f6d0c8d7cabcb4db28b21b820d0ead">BEG_TYPED_VALUE_REGIONS</a> && k <= <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa6b36035f09e5ec902e45b9b9c193478a">END_TYPED_VALUE_REGIONS</a>;</div>
+<div class="line"><a name="l00529"></a><span class="lineno"> 529</span> }</div>
+<div class="line"><a name="l00530"></a><span class="lineno"> 530</span> };</div>
+<div class="line"><a name="l00531"></a><span class="lineno"> 531</span> </div>
+<div class="line"><a name="l00532"></a><span class="lineno"> 532</span> </div>
+<div class="line"><a name="l00533"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1CodeTextRegion.html"> 533</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1CodeTextRegion.html">CodeTextRegion</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1ento_1_1TypedRegion.html" title="TypedRegion - An abstract class representing regions that are typed.">TypedRegion</a> {</div>
+<div class="line"><a name="l00534"></a><span class="lineno"> 534</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00535"></a><span class="lineno"> 535</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1CodeTextRegion.html#a9085f6980e91dfc3786ad4f03b9e7f4f">anchor</a>();</div>
+<div class="line"><a name="l00536"></a><span class="lineno"> 536</span> <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00537"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1CodeTextRegion.html#a9f30a7918c34fe149ba40171f1a395b7"> 537</a></span> <a class="code" href="classclang_1_1ento_1_1CodeTextRegion.html#a9f30a7918c34fe149ba40171f1a395b7">CodeTextRegion</a>(<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> *sreg, <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7a">Kind</a> k) : <a class="code" href="classclang_1_1ento_1_1TypedRegion.html" title="TypedRegion - An abstract class representing regions that are typed.">TypedRegion</a>(sreg, k) {}</div>
+<div class="line"><a name="l00538"></a><span class="lineno"> 538</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00539"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1CodeTextRegion.html#a61974654e730c8cca450b2cc6c77669e"> 539</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1CodeTextRegion.html#a61974654e730c8cca450b2cc6c77669e">isBoundable</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div>
+<div class="line"><a name="l00540"></a><span class="lineno"> 540</span> </div>
+<div class="line"><a name="l00541"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1CodeTextRegion.html#a7f8498182fd43f482d79eb08c9246975"> 541</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1CodeTextRegion.html#a7f8498182fd43f482d79eb08c9246975">classof</a>(<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="l00542"></a><span class="lineno"> 542</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7a">Kind</a> k = R-><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a28206b01079f4c177bdd23518f471039">getKind</a>();</div>
+<div class="line"><a name="l00543"></a><span class="lineno"> 543</span> <span class="keywordflow">return</span> k >= <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa51a2be0ecafb27db458751dee72d882a">FunctionTextRegionKind</a> && k <= <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aadcb3ecd9d548b71103a6a25ee4250450">BlockTextRegionKind</a>;</div>
+<div class="line"><a name="l00544"></a><span class="lineno"> 544</span> }</div>
+<div class="line"><a name="l00545"></a><span class="lineno"> 545</span> };</div>
+<div class="line"><a name="l00546"></a><span class="lineno"> 546</span> <span class="comment"></span></div>
+<div class="line"><a name="l00547"></a><span class="lineno"> 547</span> <span class="comment">/// FunctionTextRegion - A region that represents code texts of function.</span></div>
+<div class="line"><a name="l00548"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1FunctionTextRegion.html"> 548</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1FunctionTextRegion.html" title="FunctionTextRegion - A region that represents code texts of function.">FunctionTextRegion</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1ento_1_1CodeTextRegion.html">CodeTextRegion</a> {</div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1NamedDecl.html">NamedDecl</a> *FD;</div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00551"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1FunctionTextRegion.html#a6a97f21564aa599104421852b95e0b55"> 551</a></span> <a class="code" href="classclang_1_1ento_1_1FunctionTextRegion.html#a6a97f21564aa599104421852b95e0b55">FunctionTextRegion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1NamedDecl.html">NamedDecl</a> *fd, <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>* sreg)</div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span> : <a class="code" href="classclang_1_1ento_1_1CodeTextRegion.html">CodeTextRegion</a>(sreg, <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa51a2be0ecafb27db458751dee72d882a">FunctionTextRegionKind</a>), FD(fd) {</div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span> assert(isa<ObjCMethodDecl>(fd) || isa<FunctionDecl>(fd));</div>
+<div class="line"><a name="l00554"></a><span class="lineno"> 554</span> }</div>
+<div class="line"><a name="l00555"></a><span class="lineno"> 555</span> </div>
+<div class="line"><a name="l00556"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1FunctionTextRegion.html#a063a55f606bc6b32677ccc2fac008f23"> 556</a></span> <a class="code" href="classclang_1_1QualType.html">QualType</a> <a class="code" href="classclang_1_1ento_1_1FunctionTextRegion.html#a063a55f606bc6b32677ccc2fac008f23">getLocationType</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00557"></a><span class="lineno"> 557</span> <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> &Ctx = <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a582a40115ffa064a32e78bfa90de4097">getContext</a>();</div>
+<div class="line"><a name="l00558"></a><span class="lineno"> 558</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1FunctionDecl.html">FunctionDecl</a> *D = dyn_cast<FunctionDecl>(FD)) {</div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span> <span class="keywordflow">return</span> Ctx.<a class="code" href="classclang_1_1ASTContext.html#a3574cad49cba0fc48ab7b4c953e7e31e" title="Return the uniqued reference to the type for a pointer to the specified type.">getPointerType</a>(D->getType());</div>
+<div class="line"><a name="l00560"></a><span class="lineno"> 560</span> }</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> assert(isa<ObjCMethodDecl>(FD));</div>
+<div class="line"><a name="l00563"></a><span class="lineno"> 563</span> assert(<span class="keyword">false</span> && <span class="stringliteral">"Getting the type of ObjCMethod is not supported yet"</span>);</div>
+<div class="line"><a name="l00564"></a><span class="lineno"> 564</span> </div>
+<div class="line"><a name="l00565"></a><span class="lineno"> 565</span> <span class="comment">// TODO: We might want to return a different type here (ex: id (*ty)(...))</span></div>
+<div class="line"><a name="l00566"></a><span class="lineno"> 566</span> <span class="comment">// depending on how it is used.</span></div>
+<div class="line"><a name="l00567"></a><span class="lineno"> 567</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1QualType.html">QualType</a>();</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> </div>
+<div class="line"><a name="l00570"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1FunctionTextRegion.html#af34678c5e85017716a28640d04ac816c"> 570</a></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1NamedDecl.html">NamedDecl</a> *<a class="code" href="classclang_1_1ento_1_1FunctionTextRegion.html#af34678c5e85017716a28640d04ac816c">getDecl</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00571"></a><span class="lineno"> 571</span> <span class="keywordflow">return</span> FD;</div>
+<div class="line"><a name="l00572"></a><span class="lineno"> 572</span> }</div>
+<div class="line"><a name="l00573"></a><span class="lineno"> 573</span> </div>
+<div class="line"><a name="l00574"></a><span class="lineno"> 574</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1FunctionTextRegion.html#ae571647ae1a0056ce3786442091142e2">dumpToStream</a>(raw_ostream &os) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00575"></a><span class="lineno"> 575</span> </div>
+<div class="line"><a name="l00576"></a><span class="lineno"> 576</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1FunctionTextRegion.html#a5e823407568586c0d56141386ab35335">Profile</a>(llvm::FoldingSetNodeID& <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00577"></a><span class="lineno"> 577</span> </div>
+<div class="line"><a name="l00578"></a><span class="lineno"> 578</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1FunctionTextRegion.html#aa7037aa607cfc312bd025bebfed49fc5">ProfileRegion</a>(llvm::FoldingSetNodeID& <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>, <span class="keyword">const</span> <a class="code" href="classclang_1_1NamedDecl.html">NamedDecl</a> *FD,</div>
+<div class="line"><a name="l00579"></a><span class="lineno"> 579</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>*);</div>
+<div class="line"><a name="l00580"></a><span class="lineno"> 580</span> </div>
+<div class="line"><a name="l00581"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1FunctionTextRegion.html#a223d209b648b9901a3a3bfc9cdef2f58"> 581</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1FunctionTextRegion.html#a223d209b648b9901a3a3bfc9cdef2f58">classof</a>(<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="l00582"></a><span class="lineno"> 582</span> <span class="keywordflow">return</span> R-><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a28206b01079f4c177bdd23518f471039">getKind</a>() == <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa51a2be0ecafb27db458751dee72d882a">FunctionTextRegionKind</a>;</div>
+<div class="line"><a name="l00583"></a><span class="lineno"> 583</span> }</div>
+<div class="line"><a name="l00584"></a><span class="lineno"> 584</span> };</div>
+<div class="line"><a name="l00585"></a><span class="lineno"> 585</span> </div>
+<div class="line"><a name="l00586"></a><span class="lineno"> 586</span> <span class="comment"></span></div>
+<div class="line"><a name="l00587"></a><span class="lineno"> 587</span> <span class="comment">/// BlockTextRegion - A region that represents code texts of blocks (closures).</span></div>
+<div class="line"><a name="l00588"></a><span class="lineno"> 588</span> <span class="comment">/// Blocks are represented with two kinds of regions. BlockTextRegions</span></div>
+<div class="line"><a name="l00589"></a><span class="lineno"> 589</span> <span class="comment">/// represent the "code", while BlockDataRegions represent instances of blocks,</span></div>
+<div class="line"><a name="l00590"></a><span class="lineno"> 590</span> <span class="comment">/// which correspond to "code+data". The distinction is important, because</span></div>
+<div class="line"><a name="l00591"></a><span class="lineno"> 591</span> <span class="comment">/// like a closure a block captures the values of externally referenced</span></div>
+<div class="line"><a name="l00592"></a><span class="lineno"> 592</span> <span class="comment">/// variables.</span></div>
+<div class="line"><a name="l00593"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BlockTextRegion.html"> 593</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1BlockTextRegion.html">BlockTextRegion</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1ento_1_1CodeTextRegion.html">CodeTextRegion</a> {</div>
+<div class="line"><a name="l00594"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BlockTextRegion.html#ae8b8185ad7e63c6f200f0c0b68388a39"> 594</a></span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html">MemRegionManager</a>;</div>
+<div class="line"><a name="l00595"></a><span class="lineno"> 595</span> </div>
+<div class="line"><a name="l00596"></a><span class="lineno"> 596</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1BlockDecl.html">BlockDecl</a> *BD;</div>
+<div class="line"><a name="l00597"></a><span class="lineno"> 597</span> <a class="code" href="classclang_1_1AnalysisDeclContext.html">AnalysisDeclContext</a> *AC;</div>
+<div class="line"><a name="l00598"></a><span class="lineno"> 598</span> <a class="code" href="classclang_1_1CanQual.html">CanQualType</a> locTy;</div>
+<div class="line"><a name="l00599"></a><span class="lineno"> 599</span> </div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</span> <a class="code" href="classclang_1_1ento_1_1BlockTextRegion.html">BlockTextRegion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1BlockDecl.html">BlockDecl</a> *bd, <a class="code" href="classclang_1_1CanQual.html">CanQualType</a> lTy,</div>
+<div class="line"><a name="l00601"></a><span class="lineno"> 601</span> <a class="code" href="classclang_1_1AnalysisDeclContext.html">AnalysisDeclContext</a> *ac, <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>* sreg)</div>
+<div class="line"><a name="l00602"></a><span class="lineno"> 602</span> : <a class="code" href="classclang_1_1ento_1_1CodeTextRegion.html">CodeTextRegion</a>(sreg, <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aadcb3ecd9d548b71103a6a25ee4250450">BlockTextRegionKind</a>), BD(bd), AC(ac), locTy(lTy) {}</div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span> </div>
+<div class="line"><a name="l00604"></a><span class="lineno"> 604</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00605"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BlockTextRegion.html#a4a735f623828a054c565308791b66dd5"> 605</a></span> <a class="code" href="classclang_1_1QualType.html">QualType</a> <a class="code" href="classclang_1_1ento_1_1BlockTextRegion.html#a4a735f623828a054c565308791b66dd5">getLocationType</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00606"></a><span class="lineno"> 606</span> <span class="keywordflow">return</span> locTy;</div>
+<div class="line"><a name="l00607"></a><span class="lineno"> 607</span> }</div>
+<div class="line"><a name="l00608"></a><span class="lineno"> 608</span> </div>
+<div class="line"><a name="l00609"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BlockTextRegion.html#abba5cb1a95686f8824f6459aabc00cdd"> 609</a></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1BlockDecl.html">BlockDecl</a> *<a class="code" href="classclang_1_1ento_1_1BlockTextRegion.html#abba5cb1a95686f8824f6459aabc00cdd">getDecl</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00610"></a><span class="lineno"> 610</span> <span class="keywordflow">return</span> BD;</div>
+<div class="line"><a name="l00611"></a><span class="lineno"> 611</span> }</div>
+<div class="line"><a name="l00612"></a><span class="lineno"> 612</span> </div>
+<div class="line"><a name="l00613"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BlockTextRegion.html#a032524fd04b7e91d2ca921dd7e24cfbd"> 613</a></span> <a class="code" href="classclang_1_1AnalysisDeclContext.html">AnalysisDeclContext</a> *<a class="code" href="classclang_1_1ento_1_1BlockTextRegion.html#a032524fd04b7e91d2ca921dd7e24cfbd">getAnalysisDeclContext</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> AC; }</div>
+<div class="line"><a name="l00614"></a><span class="lineno"> 614</span> </div>
+<div class="line"><a name="l00615"></a><span class="lineno"> 615</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1BlockTextRegion.html#a7d6c0eb4322546559ef3f929227f4138">dumpToStream</a>(raw_ostream &os) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00616"></a><span class="lineno"> 616</span> </div>
+<div class="line"><a name="l00617"></a><span class="lineno"> 617</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1BlockTextRegion.html#aae3747ca2e4cd27d549989282be2d9f6">Profile</a>(llvm::FoldingSetNodeID& <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00618"></a><span class="lineno"> 618</span> </div>
+<div class="line"><a name="l00619"></a><span class="lineno"> 619</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1BlockTextRegion.html#af973f7ff4c146cd99f44df4f95546f3a">ProfileRegion</a>(llvm::FoldingSetNodeID& <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>, <span class="keyword">const</span> <a class="code" href="classclang_1_1BlockDecl.html">BlockDecl</a> *BD,</div>
+<div class="line"><a name="l00620"></a><span class="lineno"> 620</span> <a class="code" href="classclang_1_1CanQual.html">CanQualType</a>, <span class="keyword">const</span> <a class="code" href="classclang_1_1AnalysisDeclContext.html">AnalysisDeclContext</a>*,</div>
+<div class="line"><a name="l00621"></a><span class="lineno"> 621</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>*);</div>
+<div class="line"><a name="l00622"></a><span class="lineno"> 622</span> </div>
+<div class="line"><a name="l00623"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BlockTextRegion.html#ac9d557cc8dcb6d5bfe88db1bfdcb8e2c"> 623</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1BlockTextRegion.html#ac9d557cc8dcb6d5bfe88db1bfdcb8e2c">classof</a>(<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="l00624"></a><span class="lineno"> 624</span> <span class="keywordflow">return</span> R-><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a28206b01079f4c177bdd23518f471039">getKind</a>() == <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aadcb3ecd9d548b71103a6a25ee4250450">BlockTextRegionKind</a>;</div>
+<div class="line"><a name="l00625"></a><span class="lineno"> 625</span> }</div>
+<div class="line"><a name="l00626"></a><span class="lineno"> 626</span> };</div>
+<div class="line"><a name="l00627"></a><span class="lineno"> 627</span> <span class="comment"></span></div>
+<div class="line"><a name="l00628"></a><span class="lineno"> 628</span> <span class="comment">/// BlockDataRegion - A region that represents a block instance.</span></div>
+<div class="line"><a name="l00629"></a><span class="lineno"> 629</span> <span class="comment">/// Blocks are represented with two kinds of regions. BlockTextRegions</span></div>
+<div class="line"><a name="l00630"></a><span class="lineno"> 630</span> <span class="comment">/// represent the "code", while BlockDataRegions represent instances of blocks,</span></div>
+<div class="line"><a name="l00631"></a><span class="lineno"> 631</span> <span class="comment">/// which correspond to "code+data". The distinction is important, because</span></div>
+<div class="line"><a name="l00632"></a><span class="lineno"> 632</span> <span class="comment">/// like a closure a block captures the values of externally referenced</span></div>
+<div class="line"><a name="l00633"></a><span class="lineno"> 633</span> <span class="comment">/// variables.</span></div>
+<div class="line"><a name="l00634"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BlockDataRegion.html"> 634</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1BlockDataRegion.html">BlockDataRegion</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1ento_1_1TypedRegion.html" title="TypedRegion - An abstract class representing regions that are typed.">TypedRegion</a> {</div>
+<div class="line"><a name="l00635"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BlockDataRegion.html#ae8b8185ad7e63c6f200f0c0b68388a39"> 635</a></span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html">MemRegionManager</a>;</div>
+<div class="line"><a name="l00636"></a><span class="lineno"> 636</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1BlockTextRegion.html">BlockTextRegion</a> *BC;</div>
+<div class="line"><a name="l00637"></a><span class="lineno"> 637</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1LocationContext.html">LocationContext</a> *LC; <span class="comment">// Can be null */</span></div>
+<div class="line"><a name="l00638"></a><span class="lineno"> 638</span> <span class="keywordtype">unsigned</span> BlockCount;</div>
+<div class="line"><a name="l00639"></a><span class="lineno"> 639</span> <span class="keywordtype">void</span> *ReferencedVars;</div>
+<div class="line"><a name="l00640"></a><span class="lineno"> 640</span> <span class="keywordtype">void</span> *OriginalVars;</div>
+<div class="line"><a name="l00641"></a><span class="lineno"> 641</span> </div>
+<div class="line"><a name="l00642"></a><span class="lineno"> 642</span> <a class="code" href="classclang_1_1ento_1_1BlockDataRegion.html">BlockDataRegion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1BlockTextRegion.html">BlockTextRegion</a> *bc, <span class="keyword">const</span> <a class="code" href="classclang_1_1LocationContext.html">LocationContext</a> *lc,</div>
+<div class="line"><a name="l00643"></a><span class="lineno"> 643</span> <span class="keywordtype">unsigned</span> count, <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> *sreg)</div>
+<div class="line"><a name="l00644"></a><span class="lineno"> 644</span> : <a class="code" href="classclang_1_1ento_1_1TypedRegion.html" title="TypedRegion - An abstract class representing regions that are typed.">TypedRegion</a>(sreg, <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aae6d4c8bdcf7387ec5b5171b5108950d6">BlockDataRegionKind</a>), BC(bc), LC(lc),</div>
+<div class="line"><a name="l00645"></a><span class="lineno"> 645</span> BlockCount(count),</div>
+<div class="line"><a name="l00646"></a><span class="lineno"> 646</span> ReferencedVars(0), OriginalVars(0) {}</div>
+<div class="line"><a name="l00647"></a><span class="lineno"> 647</span> </div>
+<div class="line"><a name="l00648"></a><span class="lineno"> 648</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00649"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BlockDataRegion.html#a168cbff3f7a2dc9e261a571addbe2da3"> 649</a></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1BlockTextRegion.html">BlockTextRegion</a> *<a class="code" href="classclang_1_1ento_1_1BlockDataRegion.html#a168cbff3f7a2dc9e261a571addbe2da3">getCodeRegion</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> BC; }</div>
+<div class="line"><a name="l00650"></a><span class="lineno"> 650</span> </div>
+<div class="line"><a name="l00651"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BlockDataRegion.html#aafb46b6a99af6482396ee9c7b8dc70ea"> 651</a></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1BlockDecl.html">BlockDecl</a> *<a class="code" href="classclang_1_1ento_1_1BlockDataRegion.html#aafb46b6a99af6482396ee9c7b8dc70ea">getDecl</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> BC-><a class="code" href="classclang_1_1ento_1_1BlockTextRegion.html#abba5cb1a95686f8824f6459aabc00cdd">getDecl</a>(); }</div>
+<div class="line"><a name="l00652"></a><span class="lineno"> 652</span> </div>
+<div class="line"><a name="l00653"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BlockDataRegion.html#a791fbb8566fb7ac16411de85ad8ee728"> 653</a></span> <a class="code" href="classclang_1_1QualType.html">QualType</a> <a class="code" href="classclang_1_1ento_1_1BlockDataRegion.html#a791fbb8566fb7ac16411de85ad8ee728">getLocationType</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> BC-><a class="code" href="classclang_1_1ento_1_1BlockTextRegion.html#a4a735f623828a054c565308791b66dd5">getLocationType</a>(); }</div>
+<div class="line"><a name="l00654"></a><span class="lineno"> 654</span> </div>
+<div class="line"><a name="l00655"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BlockDataRegion_1_1referenced__vars__iterator.html"> 655</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1BlockDataRegion_1_1referenced__vars__iterator.html">referenced_vars_iterator</a> {</div>
+<div class="line"><a name="l00656"></a><span class="lineno"> 656</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> * <span class="keyword">const</span> *R;</div>
+<div class="line"><a name="l00657"></a><span class="lineno"> 657</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> * <span class="keyword">const</span> *OriginalR;</div>
+<div class="line"><a name="l00658"></a><span class="lineno"> 658</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00659"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BlockDataRegion_1_1referenced__vars__iterator.html#ab2be6f62737613547066c9b00a7c8296"> 659</a></span> <span class="keyword">explicit</span> <a class="code" href="classclang_1_1ento_1_1BlockDataRegion_1_1referenced__vars__iterator.html#ab2be6f62737613547066c9b00a7c8296">referenced_vars_iterator</a>(<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> * <span class="keyword">const</span> *r,</div>
+<div class="line"><a name="l00660"></a><span class="lineno"> 660</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> * <span class="keyword">const</span> *originalR)</div>
+<div class="line"><a name="l00661"></a><span class="lineno"> 661</span> : R(r), OriginalR(originalR) {}</div>
+<div class="line"><a name="l00662"></a><span class="lineno"> 662</span> </div>
+<div class="line"><a name="l00663"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BlockDataRegion_1_1referenced__vars__iterator.html#a9efbbd6d89f7eff18c103cfb39d370a8"> 663</a></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1VarRegion.html">VarRegion</a> *<a class="code" href="classclang_1_1ento_1_1BlockDataRegion_1_1referenced__vars__iterator.html#a9efbbd6d89f7eff18c103cfb39d370a8">getCapturedRegion</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00664"></a><span class="lineno"> 664</span> <span class="keywordflow">return</span> cast<VarRegion>(*R);</div>
+<div class="line"><a name="l00665"></a><span class="lineno"> 665</span> }</div>
+<div class="line"><a name="l00666"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BlockDataRegion_1_1referenced__vars__iterator.html#afcacdd4ee6e89f6c1330f3da8f68e62c"> 666</a></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1VarRegion.html">VarRegion</a> *<a class="code" href="classclang_1_1ento_1_1BlockDataRegion_1_1referenced__vars__iterator.html#afcacdd4ee6e89f6c1330f3da8f68e62c">getOriginalRegion</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00667"></a><span class="lineno"> 667</span> <span class="keywordflow">return</span> cast<VarRegion>(*OriginalR);</div>
+<div class="line"><a name="l00668"></a><span class="lineno"> 668</span> }</div>
+<div class="line"><a name="l00669"></a><span class="lineno"> 669</span> </div>
+<div class="line"><a name="l00670"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BlockDataRegion_1_1referenced__vars__iterator.html#adc8d37c6473b67066e39bb52b8feda27"> 670</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1BlockDataRegion_1_1referenced__vars__iterator.html#adc8d37c6473b67066e39bb52b8feda27">operator==</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1BlockDataRegion_1_1referenced__vars__iterator.html">referenced_vars_iterator</a> &I)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00671"></a><span class="lineno"> 671</span> assert((R == 0) == (I.R == 0));</div>
+<div class="line"><a name="l00672"></a><span class="lineno"> 672</span> <span class="keywordflow">return</span> I.R == R;</div>
+<div class="line"><a name="l00673"></a><span class="lineno"> 673</span> }</div>
+<div class="line"><a name="l00674"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BlockDataRegion_1_1referenced__vars__iterator.html#a5839baaa332ae65013cbd79402217fc3"> 674</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1BlockDataRegion_1_1referenced__vars__iterator.html#a5839baaa332ae65013cbd79402217fc3">operator!=</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1BlockDataRegion_1_1referenced__vars__iterator.html">referenced_vars_iterator</a> &I)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00675"></a><span class="lineno"> 675</span> assert((R == 0) == (I.R == 0));</div>
+<div class="line"><a name="l00676"></a><span class="lineno"> 676</span> <span class="keywordflow">return</span> I.R != R;</div>
+<div class="line"><a name="l00677"></a><span class="lineno"> 677</span> }</div>
+<div class="line"><a name="l00678"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BlockDataRegion_1_1referenced__vars__iterator.html#a815547f6a44a1aeba7a745b6d7c7eadb"> 678</a></span> <a class="code" href="classclang_1_1ento_1_1BlockDataRegion_1_1referenced__vars__iterator.html">referenced_vars_iterator</a> &<a class="code" href="classclang_1_1ento_1_1BlockDataRegion_1_1referenced__vars__iterator.html#a815547f6a44a1aeba7a745b6d7c7eadb">operator++</a>() {</div>
+<div class="line"><a name="l00679"></a><span class="lineno"> 679</span> ++R;</div>
+<div class="line"><a name="l00680"></a><span class="lineno"> 680</span> ++OriginalR;</div>
+<div class="line"><a name="l00681"></a><span class="lineno"> 681</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00682"></a><span class="lineno"> 682</span> }</div>
+<div class="line"><a name="l00683"></a><span class="lineno"> 683</span> };</div>
+<div class="line"><a name="l00684"></a><span class="lineno"> 684</span> <span class="comment"></span></div>
+<div class="line"><a name="l00685"></a><span class="lineno"> 685</span> <span class="comment"> /// Return the original region for a captured region, if</span></div>
+<div class="line"><a name="l00686"></a><span class="lineno"> 686</span> <span class="comment"> /// one exists.</span></div>
+<div class="line"><a name="l00687"></a><span class="lineno"> 687</span> <span class="comment"></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1VarRegion.html">VarRegion</a> *<a class="code" href="classclang_1_1ento_1_1BlockDataRegion.html#a2f2ed6c005aadb2e39a6536761afe5ae">getOriginalRegion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1VarRegion.html">VarRegion</a> *VR) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00688"></a><span class="lineno"> 688</span> </div>
+<div class="line"><a name="l00689"></a><span class="lineno"> 689</span> referenced_vars_iterator <a class="code" href="classclang_1_1ento_1_1BlockDataRegion.html#a7166227e54d9529e64e5bed0ac074cf7">referenced_vars_begin</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00690"></a><span class="lineno"> 690</span> referenced_vars_iterator <a class="code" href="classclang_1_1ento_1_1BlockDataRegion.html#aefef0dc63c694c21ed8330cd2ef8c7e8">referenced_vars_end</a>() <span class="keyword">const</span>; </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="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1BlockDataRegion.html#ab56946206690427b8f280d14088df7b0">dumpToStream</a>(raw_ostream &os) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00693"></a><span class="lineno"> 693</span> </div>
+<div class="line"><a name="l00694"></a><span class="lineno"> 694</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1BlockDataRegion.html#a62e2b04882de18144fb82f504473223f">Profile</a>(llvm::FoldingSetNodeID& <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00695"></a><span class="lineno"> 695</span> </div>
+<div class="line"><a name="l00696"></a><span class="lineno"> 696</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1BlockDataRegion.html#a9111ac93762b4e97ecdd80728cd45516">ProfileRegion</a>(llvm::FoldingSetNodeID&, <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1BlockTextRegion.html">BlockTextRegion</a> *,</div>
+<div class="line"><a name="l00697"></a><span class="lineno"> 697</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1LocationContext.html">LocationContext</a> *, <span class="keywordtype">unsigned</span>,</div>
+<div class="line"><a name="l00698"></a><span class="lineno"> 698</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> *);</div>
+<div class="line"><a name="l00699"></a><span class="lineno"> 699</span> </div>
+<div class="line"><a name="l00700"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BlockDataRegion.html#a47d33fb0c67b4a1744758907870bf27e"> 700</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1BlockDataRegion.html#a47d33fb0c67b4a1744758907870bf27e">classof</a>(<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="l00701"></a><span class="lineno"> 701</span> <span class="keywordflow">return</span> R-><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a28206b01079f4c177bdd23518f471039">getKind</a>() == <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aae6d4c8bdcf7387ec5b5171b5108950d6">BlockDataRegionKind</a>;</div>
+<div class="line"><a name="l00702"></a><span class="lineno"> 702</span> }</div>
+<div class="line"><a name="l00703"></a><span class="lineno"> 703</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00704"></a><span class="lineno"> 704</span> <span class="keywordtype">void</span> LazyInitializeReferencedVars();</div>
+<div class="line"><a name="l00705"></a><span class="lineno"> 705</span> std::pair<const VarRegion *, const VarRegion *></div>
+<div class="line"><a name="l00706"></a><span class="lineno"> 706</span> getCaptureRegions(<span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *VD);</div>
+<div class="line"><a name="l00707"></a><span class="lineno"> 707</span> };</div>
+<div class="line"><a name="l00708"></a><span class="lineno"> 708</span> <span class="comment"></span></div>
+<div class="line"><a name="l00709"></a><span class="lineno"> 709</span> <span class="comment">/// SymbolicRegion - A special, "non-concrete" region. Unlike other region</span></div>
+<div class="line"><a name="l00710"></a><span class="lineno"> 710</span> <span class="comment">/// clases, SymbolicRegion represents a region that serves as an alias for</span></div>
+<div class="line"><a name="l00711"></a><span class="lineno"> 711</span> <span class="comment">/// either a real region, a NULL pointer, etc. It essentially is used to</span></div>
+<div class="line"><a name="l00712"></a><span class="lineno"> 712</span> <span class="comment">/// map the concept of symbolic values into the domain of regions. Symbolic</span></div>
+<div class="line"><a name="l00713"></a><span class="lineno"> 713</span> <span class="comment">/// regions do not need to be typed.</span></div>
+<div class="line"><a name="l00714"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1SymbolicRegion.html"> 714</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1SymbolicRegion.html">SymbolicRegion</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1ento_1_1SubRegion.html">SubRegion</a> {</div>
+<div class="line"><a name="l00715"></a><span class="lineno"> 715</span> <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00716"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1SymbolicRegion.html#a27fee7146b18f857006e725774219cdf"> 716</a></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1SymExpr.html" title="Symbolic value. These values used to capture symbolic execution of the program.">SymbolRef</a> <a class="code" href="classclang_1_1ento_1_1SymbolicRegion.html#a27fee7146b18f857006e725774219cdf">sym</a>;</div>
+<div class="line"><a name="l00717"></a><span class="lineno"> 717</span> </div>
+<div class="line"><a name="l00718"></a><span class="lineno"> 718</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00719"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1SymbolicRegion.html#a8e186638bff28514cfc65d151cc3c3b9"> 719</a></span> <a class="code" href="classclang_1_1ento_1_1SymbolicRegion.html#a8e186638bff28514cfc65d151cc3c3b9">SymbolicRegion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1SymExpr.html" title="Symbolic value. These values used to capture symbolic execution of the program.">SymbolRef</a> s, <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>* sreg)</div>
+<div class="line"><a name="l00720"></a><span class="lineno"> 720</span> : <a class="code" href="classclang_1_1ento_1_1SubRegion.html">SubRegion</a>(sreg, <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa4b704a264a5d520093583ff34f8886ca">SymbolicRegionKind</a>), <a class="code" href="classclang_1_1ento_1_1SymbolicRegion.html#a27fee7146b18f857006e725774219cdf">sym</a>(s) {}</div>
+<div class="line"><a name="l00721"></a><span class="lineno"> 721</span> </div>
+<div class="line"><a name="l00722"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1SymbolicRegion.html#afe29902a526a71d8ae40b925a7237244"> 722</a></span> <a class="code" href="classclang_1_1ento_1_1SymExpr.html" title="Symbolic value. These values used to capture symbolic execution of the program.">SymbolRef</a> <a class="code" href="classclang_1_1ento_1_1SymbolicRegion.html#afe29902a526a71d8ae40b925a7237244">getSymbol</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00723"></a><span class="lineno"> 723</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ento_1_1SymbolicRegion.html#a27fee7146b18f857006e725774219cdf">sym</a>;</div>
+<div class="line"><a name="l00724"></a><span class="lineno"> 724</span> }</div>
+<div class="line"><a name="l00725"></a><span class="lineno"> 725</span> </div>
+<div class="line"><a name="l00726"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1SymbolicRegion.html#acf40671cfdd05e9353da6c9c208e9e80"> 726</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1SymbolicRegion.html#acf40671cfdd05e9353da6c9c208e9e80">isBoundable</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">true</span>; }</div>
+<div class="line"><a name="l00727"></a><span class="lineno"> 727</span> </div>
+<div class="line"><a name="l00728"></a><span class="lineno"> 728</span> <a class="code" href="classclang_1_1ento_1_1DefinedOrUnknownSVal.html">DefinedOrUnknownSVal</a> <a class="code" href="classclang_1_1ento_1_1SymbolicRegion.html#a6a915356cca2477241cfc7bc3f07f101" title="getExtent - Returns the size of the region in bytes.">getExtent</a>(<a class="code" href="classclang_1_1ento_1_1SValBuilder.html">SValBuilder</a> &svalBuilder) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00729"></a><span class="lineno"> 729</span> </div>
+<div class="line"><a name="l00730"></a><span class="lineno"> 730</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1SymbolicRegion.html#a570f43fd6b557316fd629779d8d50a46">Profile</a>(llvm::FoldingSetNodeID& <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00731"></a><span class="lineno"> 731</span> </div>
+<div class="line"><a name="l00732"></a><span class="lineno"> 732</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1SymbolicRegion.html#abf45d5f11a131333a22e99bff05f78c1">ProfileRegion</a>(llvm::FoldingSetNodeID& <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>,</div>
+<div class="line"><a name="l00733"></a><span class="lineno"> 733</span> <a class="code" href="classclang_1_1ento_1_1SymExpr.html" title="Symbolic value. These values used to capture symbolic execution of the program.">SymbolRef</a> <a class="code" href="classclang_1_1ento_1_1SymbolicRegion.html#a27fee7146b18f857006e725774219cdf">sym</a>,</div>
+<div class="line"><a name="l00734"></a><span class="lineno"> 734</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>* <a class="code" href="classclang_1_1ento_1_1SubRegion.html#a27438f6035bc4a416e18ec825c7d9fd2">superRegion</a>);</div>
+<div class="line"><a name="l00735"></a><span class="lineno"> 735</span> </div>
+<div class="line"><a name="l00736"></a><span class="lineno"> 736</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1SymbolicRegion.html#a57fc3ca4cf4016e727258426bc6290ab">dumpToStream</a>(raw_ostream &os) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00737"></a><span class="lineno"> 737</span> </div>
+<div class="line"><a name="l00738"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1SymbolicRegion.html#a3aaea0b710096c98a07e080c1bf95f5e"> 738</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1SymbolicRegion.html#a3aaea0b710096c98a07e080c1bf95f5e">classof</a>(<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="l00739"></a><span class="lineno"> 739</span> <span class="keywordflow">return</span> R-><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a28206b01079f4c177bdd23518f471039">getKind</a>() == <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa4b704a264a5d520093583ff34f8886ca">SymbolicRegionKind</a>;</div>
+<div class="line"><a name="l00740"></a><span class="lineno"> 740</span> }</div>
+<div class="line"><a name="l00741"></a><span class="lineno"> 741</span> };</div>
+<div class="line"><a name="l00742"></a><span class="lineno"> 742</span> <span class="comment"></span></div>
+<div class="line"><a name="l00743"></a><span class="lineno"> 743</span> <span class="comment">/// StringRegion - Region associated with a StringLiteral.</span></div>
+<div class="line"><a name="l00744"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1StringRegion.html"> 744</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1StringRegion.html" title="StringRegion - Region associated with a StringLiteral.">StringRegion</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1ento_1_1TypedValueRegion.html" title="TypedValueRegion - An abstract class representing regions having a typed value.">TypedValueRegion</a> {</div>
+<div class="line"><a name="l00745"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1StringRegion.html#ae8b8185ad7e63c6f200f0c0b68388a39"> 745</a></span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html">MemRegionManager</a>;</div>
+<div class="line"><a name="l00746"></a><span class="lineno"> 746</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1StringLiteral.html">StringLiteral</a>* Str;</div>
+<div class="line"><a name="l00747"></a><span class="lineno"> 747</span> <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00748"></a><span class="lineno"> 748</span> </div>
+<div class="line"><a name="l00749"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1StringRegion.html#a369cc473d4e695a5f30cd9efab38124a"> 749</a></span> <a class="code" href="classclang_1_1ento_1_1StringRegion.html#a369cc473d4e695a5f30cd9efab38124a">StringRegion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1StringLiteral.html">StringLiteral</a>* str, <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>* sreg)</div>
+<div class="line"><a name="l00750"></a><span class="lineno"> 750</span> : <a class="code" href="classclang_1_1ento_1_1TypedValueRegion.html" title="TypedValueRegion - An abstract class representing regions having a typed value.">TypedValueRegion</a>(sreg, <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa18995bef846f10bc3162f67e954f723a">StringRegionKind</a>), Str(str) {}</div>
+<div class="line"><a name="l00751"></a><span class="lineno"> 751</span> </div>
+<div class="line"><a name="l00752"></a><span class="lineno"> 752</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1StringRegion.html#ad89c4e016d29e012d65ebb19b24427da">ProfileRegion</a>(llvm::FoldingSetNodeID& <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>,</div>
+<div class="line"><a name="l00753"></a><span class="lineno"> 753</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1StringLiteral.html">StringLiteral</a>* Str,</div>
+<div class="line"><a name="l00754"></a><span class="lineno"> 754</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>* <a class="code" href="classclang_1_1ento_1_1SubRegion.html#a27438f6035bc4a416e18ec825c7d9fd2">superRegion</a>);</div>
+<div class="line"><a name="l00755"></a><span class="lineno"> 755</span> </div>
+<div class="line"><a name="l00756"></a><span class="lineno"> 756</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00757"></a><span class="lineno"> 757</span> </div>
+<div class="line"><a name="l00758"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1StringRegion.html#a487671ace4db363223ed6af1e4f3f251"> 758</a></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1StringLiteral.html">StringLiteral</a>* <a class="code" href="classclang_1_1ento_1_1StringRegion.html#a487671ace4db363223ed6af1e4f3f251">getStringLiteral</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Str; }</div>
+<div class="line"><a name="l00759"></a><span class="lineno"> 759</span> </div>
+<div class="line"><a name="l00760"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1StringRegion.html#a9f851659267bfb1fab53fe59b6cb07e8"> 760</a></span> <a class="code" href="classclang_1_1QualType.html">QualType</a> <a class="code" href="classclang_1_1ento_1_1StringRegion.html#a9f851659267bfb1fab53fe59b6cb07e8">getValueType</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00761"></a><span class="lineno"> 761</span> <span class="keywordflow">return</span> Str-><a class="code" href="classclang_1_1Expr.html#a3dd8850a4ad8a5b5f595dd9e9446187b">getType</a>();</div>
+<div class="line"><a name="l00762"></a><span class="lineno"> 762</span> }</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> <a class="code" href="classclang_1_1ento_1_1DefinedOrUnknownSVal.html">DefinedOrUnknownSVal</a> <a class="code" href="classclang_1_1ento_1_1StringRegion.html#ad760288aaef2e5d812db65e7a2bde3a7" title="getExtent - Returns the size of the region in bytes.">getExtent</a>(<a class="code" href="classclang_1_1ento_1_1SValBuilder.html">SValBuilder</a> &svalBuilder) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00765"></a><span class="lineno"> 765</span> </div>
+<div class="line"><a name="l00766"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1StringRegion.html#a670f305c4c2d43726e8707c229968c87"> 766</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1StringRegion.html#a670f305c4c2d43726e8707c229968c87">isBoundable</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div>
+<div class="line"><a name="l00767"></a><span class="lineno"> 767</span> </div>
+<div class="line"><a name="l00768"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1StringRegion.html#a515fd903746de6477a4585233332bd60"> 768</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1StringRegion.html#a515fd903746de6477a4585233332bd60">Profile</a>(llvm::FoldingSetNodeID& <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00769"></a><span class="lineno"> 769</span> <a class="code" href="classclang_1_1ento_1_1StringRegion.html#ad89c4e016d29e012d65ebb19b24427da">ProfileRegion</a>(ID, Str, <a class="code" href="classclang_1_1ento_1_1SubRegion.html#a27438f6035bc4a416e18ec825c7d9fd2">superRegion</a>);</div>
+<div class="line"><a name="l00770"></a><span class="lineno"> 770</span> }</div>
+<div class="line"><a name="l00771"></a><span class="lineno"> 771</span> </div>
+<div class="line"><a name="l00772"></a><span class="lineno"> 772</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1StringRegion.html#a89faab22176e4f9169ca9cdd281f97ce">dumpToStream</a>(raw_ostream &os) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00773"></a><span class="lineno"> 773</span> </div>
+<div class="line"><a name="l00774"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1StringRegion.html#a041e51224aaf67a43b9f2c0ff2da9757"> 774</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1StringRegion.html#a041e51224aaf67a43b9f2c0ff2da9757">classof</a>(<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="l00775"></a><span class="lineno"> 775</span> <span class="keywordflow">return</span> R-><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a28206b01079f4c177bdd23518f471039">getKind</a>() == <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa18995bef846f10bc3162f67e954f723a">StringRegionKind</a>;</div>
+<div class="line"><a name="l00776"></a><span class="lineno"> 776</span> }</div>
+<div class="line"><a name="l00777"></a><span class="lineno"> 777</span> };</div>
+<div class="line"><a name="l00778"></a><span class="lineno"> 778</span> <span class="comment"></span></div>
+<div class="line"><a name="l00779"></a><span class="lineno"> 779</span> <span class="comment">/// The region associated with an ObjCStringLiteral.</span></div>
+<div class="line"><a name="l00780"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1ObjCStringRegion.html"> 780</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1ObjCStringRegion.html" title="The region associated with an ObjCStringLiteral.">ObjCStringRegion</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1ento_1_1TypedValueRegion.html" title="TypedValueRegion - An abstract class representing regions having a typed value.">TypedValueRegion</a> {</div>
+<div class="line"><a name="l00781"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1ObjCStringRegion.html#ae8b8185ad7e63c6f200f0c0b68388a39"> 781</a></span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html">MemRegionManager</a>;</div>
+<div class="line"><a name="l00782"></a><span class="lineno"> 782</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCStringLiteral.html">ObjCStringLiteral</a>* Str;</div>
+<div class="line"><a name="l00783"></a><span class="lineno"> 783</span> <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00784"></a><span class="lineno"> 784</span> </div>
+<div class="line"><a name="l00785"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1ObjCStringRegion.html#ac1f22dd11829eea2c84372f048e2abc7"> 785</a></span> <a class="code" href="classclang_1_1ento_1_1ObjCStringRegion.html#ac1f22dd11829eea2c84372f048e2abc7">ObjCStringRegion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCStringLiteral.html">ObjCStringLiteral</a>* str, <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>* sreg)</div>
+<div class="line"><a name="l00786"></a><span class="lineno"> 786</span> : <a class="code" href="classclang_1_1ento_1_1TypedValueRegion.html" title="TypedValueRegion - An abstract class representing regions having a typed value.">TypedValueRegion</a>(sreg, <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa4959f0f0fc942bcb2b1ea9562eec862d">ObjCStringRegionKind</a>), Str(str) {}</div>
+<div class="line"><a name="l00787"></a><span class="lineno"> 787</span> </div>
+<div class="line"><a name="l00788"></a><span class="lineno"> 788</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1ObjCStringRegion.html#a8b9ee530cea9f1a17b8ed8de0b8205d1">ProfileRegion</a>(llvm::FoldingSetNodeID& <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>,</div>
+<div class="line"><a name="l00789"></a><span class="lineno"> 789</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCStringLiteral.html">ObjCStringLiteral</a>* Str,</div>
+<div class="line"><a name="l00790"></a><span class="lineno"> 790</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>* <a class="code" href="classclang_1_1ento_1_1SubRegion.html#a27438f6035bc4a416e18ec825c7d9fd2">superRegion</a>);</div>
+<div class="line"><a name="l00791"></a><span class="lineno"> 791</span> </div>
+<div class="line"><a name="l00792"></a><span class="lineno"> 792</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00793"></a><span class="lineno"> 793</span> </div>
+<div class="line"><a name="l00794"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1ObjCStringRegion.html#aa6d5b4603663f5d5bdbe1837280aa0ac"> 794</a></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCStringLiteral.html">ObjCStringLiteral</a>* <a class="code" href="classclang_1_1ento_1_1ObjCStringRegion.html#aa6d5b4603663f5d5bdbe1837280aa0ac">getObjCStringLiteral</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Str; }</div>
+<div class="line"><a name="l00795"></a><span class="lineno"> 795</span> </div>
+<div class="line"><a name="l00796"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1ObjCStringRegion.html#a236555d4bf337392eb798888ca7c6b1f"> 796</a></span> <a class="code" href="classclang_1_1QualType.html">QualType</a> <a class="code" href="classclang_1_1ento_1_1ObjCStringRegion.html#a236555d4bf337392eb798888ca7c6b1f">getValueType</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00797"></a><span class="lineno"> 797</span> <span class="keywordflow">return</span> Str-><a class="code" href="classclang_1_1Expr.html#a3dd8850a4ad8a5b5f595dd9e9446187b">getType</a>();</div>
+<div class="line"><a name="l00798"></a><span class="lineno"> 798</span> }</div>
+<div class="line"><a name="l00799"></a><span class="lineno"> 799</span> </div>
+<div class="line"><a name="l00800"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1ObjCStringRegion.html#ab6ab90c1eddbc711b7009204236b208f"> 800</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1ObjCStringRegion.html#ab6ab90c1eddbc711b7009204236b208f">isBoundable</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div>
+<div class="line"><a name="l00801"></a><span class="lineno"> 801</span> </div>
+<div class="line"><a name="l00802"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1ObjCStringRegion.html#acbb09144e33753f6903b6bcb4e62dda3"> 802</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1ObjCStringRegion.html#acbb09144e33753f6903b6bcb4e62dda3">Profile</a>(llvm::FoldingSetNodeID& <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00803"></a><span class="lineno"> 803</span> <a class="code" href="classclang_1_1ento_1_1ObjCStringRegion.html#a8b9ee530cea9f1a17b8ed8de0b8205d1">ProfileRegion</a>(ID, Str, <a class="code" href="classclang_1_1ento_1_1SubRegion.html#a27438f6035bc4a416e18ec825c7d9fd2">superRegion</a>);</div>
+<div class="line"><a name="l00804"></a><span class="lineno"> 804</span> }</div>
+<div class="line"><a name="l00805"></a><span class="lineno"> 805</span> </div>
+<div class="line"><a name="l00806"></a><span class="lineno"> 806</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1ObjCStringRegion.html#add673f54ace86b3ed5b80ec0ac8365bd">dumpToStream</a>(raw_ostream &os) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00807"></a><span class="lineno"> 807</span> </div>
+<div class="line"><a name="l00808"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1ObjCStringRegion.html#a3bef915ce1b529514fd215b4a4ab3179"> 808</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1ObjCStringRegion.html#a3bef915ce1b529514fd215b4a4ab3179">classof</a>(<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="l00809"></a><span class="lineno"> 809</span> <span class="keywordflow">return</span> R-><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a28206b01079f4c177bdd23518f471039">getKind</a>() == <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa4959f0f0fc942bcb2b1ea9562eec862d">ObjCStringRegionKind</a>;</div>
+<div class="line"><a name="l00810"></a><span class="lineno"> 810</span> }</div>
+<div class="line"><a name="l00811"></a><span class="lineno"> 811</span> };</div>
+<div class="line"><a name="l00812"></a><span class="lineno"> 812</span> <span class="comment"></span></div>
+<div class="line"><a name="l00813"></a><span class="lineno"> 813</span> <span class="comment">/// CompoundLiteralRegion - A memory region representing a compound literal.</span></div>
+<div class="line"><a name="l00814"></a><span class="lineno"> 814</span> <span class="comment">/// Compound literals are essentially temporaries that are stack allocated</span></div>
+<div class="line"><a name="l00815"></a><span class="lineno"> 815</span> <span class="comment">/// or in the global constant pool.</span></div>
+<div class="line"><a name="l00816"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1CompoundLiteralRegion.html"> 816</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1CompoundLiteralRegion.html">CompoundLiteralRegion</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1ento_1_1TypedValueRegion.html" title="TypedValueRegion - An abstract class representing regions having a typed value.">TypedValueRegion</a> {</div>
+<div class="line"><a name="l00817"></a><span class="lineno"> 817</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00818"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1CompoundLiteralRegion.html#ae8b8185ad7e63c6f200f0c0b68388a39"> 818</a></span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html">MemRegionManager</a>;</div>
+<div class="line"><a name="l00819"></a><span class="lineno"> 819</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1CompoundLiteralExpr.html">CompoundLiteralExpr</a> *CL;</div>
+<div class="line"><a name="l00820"></a><span class="lineno"> 820</span> </div>
+<div class="line"><a name="l00821"></a><span class="lineno"> 821</span> <a class="code" href="classclang_1_1ento_1_1CompoundLiteralRegion.html">CompoundLiteralRegion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CompoundLiteralExpr.html">CompoundLiteralExpr</a> *cl, <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>* sReg)</div>
+<div class="line"><a name="l00822"></a><span class="lineno"> 822</span> : <a class="code" href="classclang_1_1ento_1_1TypedValueRegion.html" title="TypedValueRegion - An abstract class representing regions having a typed value.">TypedValueRegion</a>(sReg, <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aaeb78544f4eef4272d2fdaab921829b17">CompoundLiteralRegionKind</a>), CL(cl) {}</div>
+<div class="line"><a name="l00823"></a><span class="lineno"> 823</span> </div>
+<div class="line"><a name="l00824"></a><span class="lineno"> 824</span> <span class="keyword">static</span> <span class="keywordtype">void</span> ProfileRegion(llvm::FoldingSetNodeID& <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>,</div>
+<div class="line"><a name="l00825"></a><span class="lineno"> 825</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1CompoundLiteralExpr.html">CompoundLiteralExpr</a> *CL,</div>
+<div class="line"><a name="l00826"></a><span class="lineno"> 826</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>* <a class="code" href="classclang_1_1ento_1_1SubRegion.html#a27438f6035bc4a416e18ec825c7d9fd2">superRegion</a>);</div>
+<div class="line"><a name="l00827"></a><span class="lineno"> 827</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00828"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1CompoundLiteralRegion.html#a1e61e345d491c108624064d2091e7236"> 828</a></span> <a class="code" href="classclang_1_1QualType.html">QualType</a> <a class="code" href="classclang_1_1ento_1_1CompoundLiteralRegion.html#a1e61e345d491c108624064d2091e7236">getValueType</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00829"></a><span class="lineno"> 829</span> <span class="keywordflow">return</span> CL-><a class="code" href="classclang_1_1Expr.html#a3dd8850a4ad8a5b5f595dd9e9446187b">getType</a>();</div>
+<div class="line"><a name="l00830"></a><span class="lineno"> 830</span> }</div>
+<div class="line"><a name="l00831"></a><span class="lineno"> 831</span> </div>
+<div class="line"><a name="l00832"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1CompoundLiteralRegion.html#a271abc44e22c884d6340f8d6a1a9cf3b"> 832</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1CompoundLiteralRegion.html#a271abc44e22c884d6340f8d6a1a9cf3b">isBoundable</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> !CL-><a class="code" href="classclang_1_1CompoundLiteralExpr.html#ad57cda2056b141f75cc33da9ae7db769">isFileScope</a>(); }</div>
+<div class="line"><a name="l00833"></a><span class="lineno"> 833</span> </div>
+<div class="line"><a name="l00834"></a><span class="lineno"> 834</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1CompoundLiteralRegion.html#a1a5e5d705000cd559b1bc28afc1d7bbb">Profile</a>(llvm::FoldingSetNodeID& <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00835"></a><span class="lineno"> 835</span> </div>
+<div class="line"><a name="l00836"></a><span class="lineno"> 836</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1CompoundLiteralRegion.html#aaa71b723112a9894f0c6a9a6a4f015a4">dumpToStream</a>(raw_ostream &os) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00837"></a><span class="lineno"> 837</span> </div>
+<div class="line"><a name="l00838"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1CompoundLiteralRegion.html#af3274527ccbc3814fcfa5773171311be"> 838</a></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1CompoundLiteralExpr.html">CompoundLiteralExpr</a> *<a class="code" href="classclang_1_1ento_1_1CompoundLiteralRegion.html#af3274527ccbc3814fcfa5773171311be">getLiteralExpr</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> CL; }</div>
+<div class="line"><a name="l00839"></a><span class="lineno"> 839</span> </div>
+<div class="line"><a name="l00840"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1CompoundLiteralRegion.html#af268383c1fe444be2885b9e55977b613"> 840</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1CompoundLiteralRegion.html#af268383c1fe444be2885b9e55977b613">classof</a>(<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="l00841"></a><span class="lineno"> 841</span> <span class="keywordflow">return</span> R-><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a28206b01079f4c177bdd23518f471039">getKind</a>() == <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aaeb78544f4eef4272d2fdaab921829b17">CompoundLiteralRegionKind</a>;</div>
+<div class="line"><a name="l00842"></a><span class="lineno"> 842</span> }</div>
+<div class="line"><a name="l00843"></a><span class="lineno"> 843</span> };</div>
+<div class="line"><a name="l00844"></a><span class="lineno"> 844</span> </div>
+<div class="line"><a name="l00845"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1DeclRegion.html"> 845</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1DeclRegion.html">DeclRegion</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1ento_1_1TypedValueRegion.html" title="TypedValueRegion - An abstract class representing regions having a typed value.">TypedValueRegion</a> {</div>
+<div class="line"><a name="l00846"></a><span class="lineno"> 846</span> <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00847"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1DeclRegion.html#a574619871d967803b0f8d9690c301e75"> 847</a></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1Decl.html">Decl</a> *<a class="code" href="classclang_1_1ento_1_1DeclRegion.html#a574619871d967803b0f8d9690c301e75">D</a>;</div>
+<div class="line"><a name="l00848"></a><span class="lineno"> 848</span> </div>
+<div class="line"><a name="l00849"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1DeclRegion.html#af331e4154c71cda216b4b48392762e59"> 849</a></span> <a class="code" href="classclang_1_1ento_1_1DeclRegion.html#af331e4154c71cda216b4b48392762e59">DeclRegion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Decl.html">Decl</a> *d, <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>* sReg, <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7a">Kind</a> k)</div>
+<div class="line"><a name="l00850"></a><span class="lineno"> 850</span> : <a class="code" href="classclang_1_1ento_1_1TypedValueRegion.html" title="TypedValueRegion - An abstract class representing regions having a typed value.">TypedValueRegion</a>(sReg, k), <a class="code" href="classclang_1_1ento_1_1DeclRegion.html#a574619871d967803b0f8d9690c301e75">D</a>(d) {}</div>
+<div class="line"><a name="l00851"></a><span class="lineno"> 851</span> </div>
+<div class="line"><a name="l00852"></a><span class="lineno"> 852</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1DeclRegion.html#a9942dfa137125811139f4481e58fd251">ProfileRegion</a>(llvm::FoldingSetNodeID& <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>, <span class="keyword">const</span> <a class="code" href="classclang_1_1Decl.html">Decl</a> *<a class="code" href="classclang_1_1ento_1_1DeclRegion.html#a574619871d967803b0f8d9690c301e75">D</a>,</div>
+<div class="line"><a name="l00853"></a><span class="lineno"> 853</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>* <a class="code" href="classclang_1_1ento_1_1SubRegion.html#a27438f6035bc4a416e18ec825c7d9fd2">superRegion</a>, <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a> k);</div>
+<div class="line"><a name="l00854"></a><span class="lineno"> 854</span> </div>
+<div class="line"><a name="l00855"></a><span class="lineno"> 855</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00856"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1DeclRegion.html#a1828c9c10d27c4decd15dfc9760f86ca"> 856</a></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1Decl.html">Decl</a> *<a class="code" href="classclang_1_1ento_1_1DeclRegion.html#a1828c9c10d27c4decd15dfc9760f86ca">getDecl</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ento_1_1DeclRegion.html#a574619871d967803b0f8d9690c301e75">D</a>; }</div>
+<div class="line"><a name="l00857"></a><span class="lineno"> 857</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1DeclRegion.html#af3608a69fec15c21c2eea38a507574c7">Profile</a>(llvm::FoldingSetNodeID& <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00858"></a><span class="lineno"> 858</span> </div>
+<div class="line"><a name="l00859"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1DeclRegion.html#acb24fa989fe7925b37015d67e4b55520"> 859</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1DeclRegion.html#acb24fa989fe7925b37015d67e4b55520">classof</a>(<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="l00860"></a><span class="lineno"> 860</span> <span class="keywordtype">unsigned</span> k = R-><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a28206b01079f4c177bdd23518f471039">getKind</a>();</div>
+<div class="line"><a name="l00861"></a><span class="lineno"> 861</span> <span class="keywordflow">return</span> k >= <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aaf7d35af5609fce6024a3cb70041716ad">BEG_DECL_REGIONS</a> && k <= <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa205e6945a8cd0cbcd802ba6d36950961">END_DECL_REGIONS</a>;</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> };</div>
+<div class="line"><a name="l00864"></a><span class="lineno"> 864</span> </div>
+<div class="line"><a name="l00865"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1VarRegion.html"> 865</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1VarRegion.html">VarRegion</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1ento_1_1DeclRegion.html">DeclRegion</a> {</div>
+<div class="line"><a name="l00866"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1VarRegion.html#ae8b8185ad7e63c6f200f0c0b68388a39"> 866</a></span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html">MemRegionManager</a>;</div>
+<div class="line"><a name="l00867"></a><span class="lineno"> 867</span> </div>
+<div class="line"><a name="l00868"></a><span class="lineno"> 868</span> <span class="comment">// Constructors and private methods.</span></div>
+<div class="line"><a name="l00869"></a><span class="lineno"> 869</span> <a class="code" href="classclang_1_1ento_1_1VarRegion.html">VarRegion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *vd, <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>* sReg)</div>
+<div class="line"><a name="l00870"></a><span class="lineno"> 870</span> : <a class="code" href="classclang_1_1ento_1_1DeclRegion.html">DeclRegion</a>(vd, sReg, <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa9a38b47b1e384056d015fe98063d5203">VarRegionKind</a>) {}</div>
+<div class="line"><a name="l00871"></a><span class="lineno"> 871</span> </div>
+<div class="line"><a name="l00872"></a><span class="lineno"> 872</span> <span class="keyword">static</span> <span class="keywordtype">void</span> ProfileRegion(llvm::FoldingSetNodeID& <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>, <span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *VD,</div>
+<div class="line"><a name="l00873"></a><span class="lineno"> 873</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> *<a class="code" href="classclang_1_1ento_1_1SubRegion.html#a27438f6035bc4a416e18ec825c7d9fd2">superRegion</a>) {</div>
+<div class="line"><a name="l00874"></a><span class="lineno"> 874</span> <a class="code" href="classclang_1_1ento_1_1DeclRegion.html#a9942dfa137125811139f4481e58fd251">DeclRegion::ProfileRegion</a>(ID, VD, superRegion, <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa9a38b47b1e384056d015fe98063d5203">VarRegionKind</a>);</div>
+<div class="line"><a name="l00875"></a><span class="lineno"> 875</span> }</div>
+<div class="line"><a name="l00876"></a><span class="lineno"> 876</span> </div>
+<div class="line"><a name="l00877"></a><span class="lineno"> 877</span> <span class="keywordtype">void</span> Profile(llvm::FoldingSetNodeID& <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00878"></a><span class="lineno"> 878</span> </div>
+<div class="line"><a name="l00879"></a><span class="lineno"> 879</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00880"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1VarRegion.html#ab06cf2729ec224250d044facc6c7d47b"> 880</a></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *<a class="code" href="classclang_1_1ento_1_1VarRegion.html#ab06cf2729ec224250d044facc6c7d47b">getDecl</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> cast<VarDecl>(<a class="code" href="classclang_1_1ento_1_1DeclRegion.html#a574619871d967803b0f8d9690c301e75">D</a>); }</div>
+<div class="line"><a name="l00881"></a><span class="lineno"> 881</span> </div>
+<div class="line"><a name="l00882"></a><span class="lineno"> 882</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1StackFrameContext.html">StackFrameContext</a> *<a class="code" href="classclang_1_1ento_1_1VarRegion.html#a36ae6ac28457afacf9c45f72116ca3b2">getStackFrame</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00883"></a><span class="lineno"> 883</span> </div>
+<div class="line"><a name="l00884"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1VarRegion.html#adc1ef5233c12828f28f5bb80ea4eef3a"> 884</a></span> <a class="code" href="classclang_1_1QualType.html">QualType</a> <a class="code" href="classclang_1_1ento_1_1VarRegion.html#adc1ef5233c12828f28f5bb80ea4eef3a">getValueType</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00885"></a><span class="lineno"> 885</span> <span class="comment">// FIXME: We can cache this if needed.</span></div>
+<div class="line"><a name="l00886"></a><span class="lineno"> 886</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ento_1_1VarRegion.html#ab06cf2729ec224250d044facc6c7d47b">getDecl</a>()-><a class="code" href="classclang_1_1ValueDecl.html#aefa6d3327144aee23d2935f41d993484">getType</a>();</div>
+<div class="line"><a name="l00887"></a><span class="lineno"> 887</span> }</div>
+<div class="line"><a name="l00888"></a><span class="lineno"> 888</span> </div>
+<div class="line"><a name="l00889"></a><span class="lineno"> 889</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1VarRegion.html#a621d140533df0b888a94528f2c9b8c82">dumpToStream</a>(raw_ostream &os) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00890"></a><span class="lineno"> 890</span> </div>
+<div class="line"><a name="l00891"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1VarRegion.html#abb369535615c08e81f00ade02615a5a5"> 891</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1VarRegion.html#abb369535615c08e81f00ade02615a5a5">classof</a>(<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="l00892"></a><span class="lineno"> 892</span> <span class="keywordflow">return</span> R-><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a28206b01079f4c177bdd23518f471039">getKind</a>() == <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa9a38b47b1e384056d015fe98063d5203">VarRegionKind</a>;</div>
+<div class="line"><a name="l00893"></a><span class="lineno"> 893</span> }</div>
+<div class="line"><a name="l00894"></a><span class="lineno"> 894</span> </div>
+<div class="line"><a name="l00895"></a><span class="lineno"> 895</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1VarRegion.html#af851f9d99577973fc54ccc4425ad4008" title="Returns true if this region's textual representation can be used as part of a larger expression...">canPrintPrettyAsExpr</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00896"></a><span class="lineno"> 896</span> </div>
+<div class="line"><a name="l00897"></a><span class="lineno"> 897</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1VarRegion.html#ac4adbdd31e6c4a722091092f4a37ee50" title="Print the region as expression.">printPrettyAsExpr</a>(raw_ostream &os) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00898"></a><span class="lineno"> 898</span> };</div>
+<div class="line"><a name="l00899"></a><span class="lineno"> 899</span> <span class="comment"></span></div>
+<div class="line"><a name="l00900"></a><span class="lineno"> 900</span> <span class="comment">/// CXXThisRegion - Represents the region for the implicit 'this' parameter</span></div>
+<div class="line"><a name="l00901"></a><span class="lineno"> 901</span> <span class="comment">/// in a call to a C++ method. This region doesn't represent the object</span></div>
+<div class="line"><a name="l00902"></a><span class="lineno"> 902</span> <span class="comment">/// referred to by 'this', but rather 'this' itself.</span></div>
+<div class="line"><a name="l00903"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1CXXThisRegion.html"> 903</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1CXXThisRegion.html">CXXThisRegion</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1ento_1_1TypedValueRegion.html" title="TypedValueRegion - An abstract class representing regions having a typed value.">TypedValueRegion</a> {</div>
+<div class="line"><a name="l00904"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1CXXThisRegion.html#ae8b8185ad7e63c6f200f0c0b68388a39"> 904</a></span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html">MemRegionManager</a>;</div>
+<div class="line"><a name="l00905"></a><span class="lineno"> 905</span> <a class="code" href="classclang_1_1ento_1_1CXXThisRegion.html">CXXThisRegion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1PointerType.html">PointerType</a> *thisPointerTy,</div>
+<div class="line"><a name="l00906"></a><span class="lineno"> 906</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> *sReg)</div>
+<div class="line"><a name="l00907"></a><span class="lineno"> 907</span> : <a class="code" href="classclang_1_1ento_1_1TypedValueRegion.html" title="TypedValueRegion - An abstract class representing regions having a typed value.">TypedValueRegion</a>(sReg, <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aacf1e8afce13a7b94403f16fc5707811f">CXXThisRegionKind</a>), ThisPointerTy(thisPointerTy) {}</div>
+<div class="line"><a name="l00908"></a><span class="lineno"> 908</span> </div>
+<div class="line"><a name="l00909"></a><span class="lineno"> 909</span> <span class="keyword">static</span> <span class="keywordtype">void</span> ProfileRegion(llvm::FoldingSetNodeID &<a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>,</div>
+<div class="line"><a name="l00910"></a><span class="lineno"> 910</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1PointerType.html">PointerType</a> *PT,</div>
+<div class="line"><a name="l00911"></a><span class="lineno"> 911</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> *sReg);</div>
+<div class="line"><a name="l00912"></a><span class="lineno"> 912</span> </div>
+<div class="line"><a name="l00913"></a><span class="lineno"> 913</span> <span class="keywordtype">void</span> Profile(llvm::FoldingSetNodeID &<a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00914"></a><span class="lineno"> 914</span> </div>
+<div class="line"><a name="l00915"></a><span class="lineno"> 915</span> <span class="keyword">public</span>: </div>
+<div class="line"><a name="l00916"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1CXXThisRegion.html#ad9437108268b1df95953538a64e23360"> 916</a></span> <a class="code" href="classclang_1_1QualType.html">QualType</a> <a class="code" href="classclang_1_1ento_1_1CXXThisRegion.html#ad9437108268b1df95953538a64e23360">getValueType</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00917"></a><span class="lineno"> 917</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1QualType.html">QualType</a>(ThisPointerTy, 0);</div>
+<div class="line"><a name="l00918"></a><span class="lineno"> 918</span> }</div>
+<div class="line"><a name="l00919"></a><span class="lineno"> 919</span> </div>
+<div class="line"><a name="l00920"></a><span class="lineno"> 920</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1CXXThisRegion.html#ab1c5f674a4fdf8dcf4c6bdd26a9b3486">dumpToStream</a>(raw_ostream &os) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00921"></a><span class="lineno"> 921</span> </div>
+<div class="line"><a name="l00922"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1CXXThisRegion.html#a23d058447d8707427ae80071863f32f5"> 922</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1CXXThisRegion.html#a23d058447d8707427ae80071863f32f5">classof</a>(<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="l00923"></a><span class="lineno"> 923</span> <span class="keywordflow">return</span> R-><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a28206b01079f4c177bdd23518f471039">getKind</a>() == <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aacf1e8afce13a7b94403f16fc5707811f">CXXThisRegionKind</a>;</div>
+<div class="line"><a name="l00924"></a><span class="lineno"> 924</span> }</div>
+<div class="line"><a name="l00925"></a><span class="lineno"> 925</span> </div>
+<div class="line"><a name="l00926"></a><span class="lineno"> 926</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00927"></a><span class="lineno"> 927</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1PointerType.html">PointerType</a> *ThisPointerTy;</div>
+<div class="line"><a name="l00928"></a><span class="lineno"> 928</span> };</div>
+<div class="line"><a name="l00929"></a><span class="lineno"> 929</span> </div>
+<div class="line"><a name="l00930"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1FieldRegion.html"> 930</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1FieldRegion.html">FieldRegion</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1ento_1_1DeclRegion.html">DeclRegion</a> {</div>
+<div class="line"><a name="l00931"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1FieldRegion.html#ae8b8185ad7e63c6f200f0c0b68388a39"> 931</a></span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html">MemRegionManager</a>;</div>
+<div class="line"><a name="l00932"></a><span class="lineno"> 932</span> </div>
+<div class="line"><a name="l00933"></a><span class="lineno"> 933</span> <a class="code" href="classclang_1_1ento_1_1FieldRegion.html">FieldRegion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1FieldDecl.html">FieldDecl</a> *fd, <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>* sReg)</div>
+<div class="line"><a name="l00934"></a><span class="lineno"> 934</span> : <a class="code" href="classclang_1_1ento_1_1DeclRegion.html">DeclRegion</a>(fd, sReg, <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa0dac4037e8370a9a55f2f8b2cab6ba6f">FieldRegionKind</a>) {}</div>
+<div class="line"><a name="l00935"></a><span class="lineno"> 935</span> </div>
+<div class="line"><a name="l00936"></a><span class="lineno"> 936</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00937"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1FieldRegion.html#a558e24f4ebcc5ee30d7c5b97632c0cbd"> 937</a></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1FieldDecl.html">FieldDecl</a> *<a class="code" href="classclang_1_1ento_1_1FieldRegion.html#a558e24f4ebcc5ee30d7c5b97632c0cbd">getDecl</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> cast<FieldDecl>(<a class="code" href="classclang_1_1ento_1_1DeclRegion.html#a574619871d967803b0f8d9690c301e75">D</a>); }</div>
+<div class="line"><a name="l00938"></a><span class="lineno"> 938</span> </div>
+<div class="line"><a name="l00939"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1FieldRegion.html#a6e3d2cbf7e8dea535a0cdef6c71ccb26"> 939</a></span> <a class="code" href="classclang_1_1QualType.html">QualType</a> <a class="code" href="classclang_1_1ento_1_1FieldRegion.html#a6e3d2cbf7e8dea535a0cdef6c71ccb26">getValueType</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00940"></a><span class="lineno"> 940</span> <span class="comment">// FIXME: We can cache this if needed.</span></div>
+<div class="line"><a name="l00941"></a><span class="lineno"> 941</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ento_1_1FieldRegion.html#a558e24f4ebcc5ee30d7c5b97632c0cbd">getDecl</a>()-><a class="code" href="classclang_1_1ValueDecl.html#aefa6d3327144aee23d2935f41d993484">getType</a>();</div>
+<div class="line"><a name="l00942"></a><span class="lineno"> 942</span> }</div>
+<div class="line"><a name="l00943"></a><span class="lineno"> 943</span> </div>
+<div class="line"><a name="l00944"></a><span class="lineno"> 944</span> <a class="code" href="classclang_1_1ento_1_1DefinedOrUnknownSVal.html">DefinedOrUnknownSVal</a> <a class="code" href="classclang_1_1ento_1_1FieldRegion.html#acc9d173aae4793f3e2f52b2e06d3974a" title="getExtent - Returns the size of the region in bytes.">getExtent</a>(<a class="code" href="classclang_1_1ento_1_1SValBuilder.html">SValBuilder</a> &svalBuilder) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00945"></a><span class="lineno"> 945</span> </div>
+<div class="line"><a name="l00946"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1FieldRegion.html#adf1c843a6e9c30027318f18ba81bc109"> 946</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1FieldRegion.html#adf1c843a6e9c30027318f18ba81bc109">ProfileRegion</a>(llvm::FoldingSetNodeID& <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>, <span class="keyword">const</span> <a class="code" href="classclang_1_1FieldDecl.html">FieldDecl</a> *FD,</div>
+<div class="line"><a name="l00947"></a><span class="lineno"> 947</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>* <a class="code" href="classclang_1_1ento_1_1SubRegion.html#a27438f6035bc4a416e18ec825c7d9fd2">superRegion</a>) {</div>
+<div class="line"><a name="l00948"></a><span class="lineno"> 948</span> <a class="code" href="classclang_1_1ento_1_1DeclRegion.html#a9942dfa137125811139f4481e58fd251">DeclRegion::ProfileRegion</a>(ID, FD, superRegion, <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa0dac4037e8370a9a55f2f8b2cab6ba6f">FieldRegionKind</a>);</div>
+<div class="line"><a name="l00949"></a><span class="lineno"> 949</span> }</div>
+<div class="line"><a name="l00950"></a><span class="lineno"> 950</span> </div>
+<div class="line"><a name="l00951"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1FieldRegion.html#a20dcfded2d9a466c0354f1eab88238b1"> 951</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1FieldRegion.html#a20dcfded2d9a466c0354f1eab88238b1">classof</a>(<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="l00952"></a><span class="lineno"> 952</span> <span class="keywordflow">return</span> R-><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a28206b01079f4c177bdd23518f471039">getKind</a>() == <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa0dac4037e8370a9a55f2f8b2cab6ba6f">FieldRegionKind</a>;</div>
+<div class="line"><a name="l00953"></a><span class="lineno"> 953</span> }</div>
+<div class="line"><a name="l00954"></a><span class="lineno"> 954</span> </div>
+<div class="line"><a name="l00955"></a><span class="lineno"> 955</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1FieldRegion.html#aef9d58a04808f91c90cfc9ec693e9afd">dumpToStream</a>(raw_ostream &os) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00956"></a><span class="lineno"> 956</span> </div>
+<div class="line"><a name="l00957"></a><span class="lineno"> 957</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1FieldRegion.html#a49a243702688a4a96e69bbdf61731ac6" title="Returns true if this region can be printed in a user-friendly way.">canPrintPretty</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00958"></a><span class="lineno"> 958</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1FieldRegion.html#a46520606b81d81f17bc0b8d2dddc55cd" title="Print the region for use in diagnostics.">printPretty</a>(raw_ostream &os) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00959"></a><span class="lineno"> 959</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1FieldRegion.html#ac290dae20638bfdc1c40c5b483e1bf00" title="Returns true if this region's textual representation can be used as part of a larger expression...">canPrintPrettyAsExpr</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00960"></a><span class="lineno"> 960</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1FieldRegion.html#a62310e332eace758f294fb03e565a265" title="Print the region as expression.">printPrettyAsExpr</a>(raw_ostream &os) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00961"></a><span class="lineno"> 961</span> };</div>
+<div class="line"><a name="l00962"></a><span class="lineno"> 962</span> </div>
+<div class="line"><a name="l00963"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1ObjCIvarRegion.html"> 963</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1ObjCIvarRegion.html">ObjCIvarRegion</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1ento_1_1DeclRegion.html">DeclRegion</a> {</div>
+<div class="line"><a name="l00964"></a><span class="lineno"> 964</span> </div>
+<div class="line"><a name="l00965"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1ObjCIvarRegion.html#ae8b8185ad7e63c6f200f0c0b68388a39"> 965</a></span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html">MemRegionManager</a>;</div>
+<div class="line"><a name="l00966"></a><span class="lineno"> 966</span> </div>
+<div class="line"><a name="l00967"></a><span class="lineno"> 967</span> <a class="code" href="classclang_1_1ento_1_1ObjCIvarRegion.html">ObjCIvarRegion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *ivd, <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>* sReg);</div>
+<div class="line"><a name="l00968"></a><span class="lineno"> 968</span> </div>
+<div class="line"><a name="l00969"></a><span class="lineno"> 969</span> <span class="keyword">static</span> <span class="keywordtype">void</span> ProfileRegion(llvm::FoldingSetNodeID& <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>, <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *ivd,</div>
+<div class="line"><a name="l00970"></a><span class="lineno"> 970</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>* <a class="code" href="classclang_1_1ento_1_1SubRegion.html#a27438f6035bc4a416e18ec825c7d9fd2">superRegion</a>);</div>
+<div class="line"><a name="l00971"></a><span class="lineno"> 971</span> </div>
+<div class="line"><a name="l00972"></a><span class="lineno"> 972</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00973"></a><span class="lineno"> 973</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *<a class="code" href="classclang_1_1ento_1_1ObjCIvarRegion.html#aeec7b5cfec77b01c6b6d10f874767a2c">getDecl</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00974"></a><span class="lineno"> 974</span> <a class="code" href="classclang_1_1QualType.html">QualType</a> <a class="code" href="classclang_1_1ento_1_1ObjCIvarRegion.html#adde2e57155e0d836ae0416bbd1e2dd50">getValueType</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00975"></a><span class="lineno"> 975</span> </div>
+<div class="line"><a name="l00976"></a><span class="lineno"> 976</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1ObjCIvarRegion.html#a7084bef09007a59a22b7f4a4833859bb" title="Returns true if this region's textual representation can be used as part of a larger expression...">canPrintPrettyAsExpr</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00977"></a><span class="lineno"> 977</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1ObjCIvarRegion.html#aacd53e215e587de710ffa7014e981f90" title="Print the region as expression.">printPrettyAsExpr</a>(raw_ostream &os) <span class="keyword">const</span>;</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="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1ObjCIvarRegion.html#a8be8c40453c6e36cd50eb303c795dc7f">dumpToStream</a>(raw_ostream &os) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00980"></a><span class="lineno"> 980</span> </div>
+<div class="line"><a name="l00981"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1ObjCIvarRegion.html#a6949af036e495621d0cee24a314d9182"> 981</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1ObjCIvarRegion.html#a6949af036e495621d0cee24a314d9182">classof</a>(<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="l00982"></a><span class="lineno"> 982</span> <span class="keywordflow">return</span> R-><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a28206b01079f4c177bdd23518f471039">getKind</a>() == <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa3b9557ecfdd2831b60d00843ffc704bc">ObjCIvarRegionKind</a>;</div>
+<div class="line"><a name="l00983"></a><span class="lineno"> 983</span> }</div>
+<div class="line"><a name="l00984"></a><span class="lineno"> 984</span> };</div>
+<div class="line"><a name="l00985"></a><span class="lineno"> 985</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00986"></a><span class="lineno"> 986</span> <span class="comment">// Auxiliary data classes for use with MemRegions.</span></div>
+<div class="line"><a name="l00987"></a><span class="lineno"> 987</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00988"></a><span class="lineno"> 988</span> </div>
+<div class="line"><a name="l00989"></a><span class="lineno"> 989</span> <span class="keyword">class </span>ElementRegion;</div>
+<div class="line"><a name="l00990"></a><span class="lineno"> 990</span> </div>
+<div class="line"><a name="l00991"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1RegionRawOffset.html"> 991</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1RegionRawOffset.html">RegionRawOffset</a> {</div>
+<div class="line"><a name="l00992"></a><span class="lineno"> 992</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00993"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1RegionRawOffset.html#a4c86fd4ca55612e95565b3fce02224b5"> 993</a></span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1ElementRegion.html" title="ElementRegin is used to represent both array elements and casts.">ElementRegion</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="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;</div>
+<div class="line"><a name="l00996"></a><span class="lineno"> 996</span> <a class="code" href="classclang_1_1CharUnits.html">CharUnits</a> <a class="code" href="namespaceclang_1_1io.html#ae0bbdf4a2b076935546931e52d48d29b">Offset</a>;</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> <a class="code" href="classclang_1_1ento_1_1RegionRawOffset.html">RegionRawOffset</a>(<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>* reg, <a class="code" href="classclang_1_1CharUnits.html">CharUnits</a> offset = <a class="code" href="classclang_1_1CharUnits.html#ae8fbc6063b513b85cd488904994ac8c2" title="Zero - Construct a CharUnits quantity of zero.">CharUnits::Zero</a>())</div>
+<div class="line"><a name="l00999"></a><span class="lineno"> 999</span> : Region(reg), <a class="code" href="namespaceclang_1_1io.html#ae0bbdf4a2b076935546931e52d48d29b">Offset</a>(offset) {}</div>
+<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span> </div>
+<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span> <span class="comment">// FIXME: Eventually support symbolic offsets.</span></div>
+<div class="line"><a name="l01003"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1RegionRawOffset.html#ad18174cfe804152edf91c38176c29c21"> 1003</a></span> <a class="code" href="classclang_1_1CharUnits.html">CharUnits</a> <a class="code" href="classclang_1_1ento_1_1RegionRawOffset.html#ad18174cfe804152edf91c38176c29c21">getOffset</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="namespaceclang_1_1io.html#ae0bbdf4a2b076935546931e52d48d29b">Offset</a>; }</div>
+<div class="line"><a name="l01004"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1RegionRawOffset.html#ad38473d6daf8cbae889dc8d12ff85f16"> 1004</a></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> *<a class="code" href="classclang_1_1ento_1_1RegionRawOffset.html#ad38473d6daf8cbae889dc8d12ff85f16">getRegion</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Region; }</div>
+<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span> </div>
+<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1RegionRawOffset.html#ae81a21712e4cb33cc3a9148f36c26ef1">dumpToStream</a>(raw_ostream &os) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1RegionRawOffset.html#a3951785f54cfee7899e1c63e54a796ae">dump</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span> };</div>
+<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span> <span class="comment"></span></div>
+<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span> <span class="comment">/// \brief ElementRegin is used to represent both array elements and casts.</span></div>
+<div class="line"><a name="l01011"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1ElementRegion.html"> 1011</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1ElementRegion.html" title="ElementRegin is used to represent both array elements and casts.">ElementRegion</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1ento_1_1TypedValueRegion.html" title="TypedValueRegion - An abstract class representing regions having a typed value.">TypedValueRegion</a> {</div>
+<div class="line"><a name="l01012"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1ElementRegion.html#ae8b8185ad7e63c6f200f0c0b68388a39"> 1012</a></span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html">MemRegionManager</a>;</div>
+<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span> </div>
+<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span> <a class="code" href="classclang_1_1QualType.html">QualType</a> ElementType;</div>
+<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span> <a class="code" href="classclang_1_1ento_1_1NonLoc.html">NonLoc</a> Index;</div>
+<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span> </div>
+<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span> <a class="code" href="classclang_1_1ento_1_1ElementRegion.html" title="ElementRegin is used to represent both array elements and casts.">ElementRegion</a>(<a class="code" href="classclang_1_1QualType.html">QualType</a> elementType, <a class="code" href="classclang_1_1ento_1_1NonLoc.html">NonLoc</a> Idx, <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>* sReg)</div>
+<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span> : <a class="code" href="classclang_1_1ento_1_1TypedValueRegion.html" title="TypedValueRegion - An abstract class representing regions having a typed value.">TypedValueRegion</a>(sReg, <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa84bf11c70c2e09bf52c0cde4a517fd49">ElementRegionKind</a>),</div>
+<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span> ElementType(elementType), Index(Idx) {</div>
+<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span> assert((!Idx.<a class="code" href="classclang_1_1ento_1_1SVal.html#a4a9c4d5842ebb929dc6ed897ee2bd57a" title="Convert to the specified SVal type, returning None if this SVal is not of the desired type...">getAs</a><<a class="code" href="classclang_1_1ento_1_1nonloc_1_1ConcreteInt.html" title="Value representing integer constant.">nonloc::ConcreteInt</a>>() ||</div>
+<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span> Idx.<a class="code" href="classclang_1_1ento_1_1SVal.html#aa678905bf16cd5cc2f97ab4fb143edee" title="Convert to the specified SVal type, asserting that this SVal is of the desired type.">castAs</a><<a class="code" href="classclang_1_1ento_1_1nonloc_1_1ConcreteInt.html" title="Value representing integer constant.">nonloc::ConcreteInt</a>>().<a class="code" href="classclang_1_1ento_1_1nonloc_1_1ConcreteInt.html#a05650b03e880d51ab4f7fc2fb854b5fd">getValue</a>().isSigned()) &&</div>
+<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span> <span class="stringliteral">"The index must be signed"</span>);</div>
+<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span> }</div>
+<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span> </div>
+<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span> <span class="keyword">static</span> <span class="keywordtype">void</span> ProfileRegion(llvm::FoldingSetNodeID& <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>, <a class="code" href="classclang_1_1QualType.html">QualType</a> elementType,</div>
+<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span> <a class="code" href="classclang_1_1ento_1_1SVal.html">SVal</a> Idx, <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>* <a class="code" href="classclang_1_1ento_1_1SubRegion.html#a27438f6035bc4a416e18ec825c7d9fd2">superRegion</a>);</div>
+<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span> </div>
+<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span> </div>
+<div class="line"><a name="l01030"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1ElementRegion.html#a0c86b2841f74e7a10e1c0f8183c04683"> 1030</a></span> <a class="code" href="classclang_1_1ento_1_1NonLoc.html">NonLoc</a> <a class="code" href="classclang_1_1ento_1_1ElementRegion.html#a0c86b2841f74e7a10e1c0f8183c04683">getIndex</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Index; }</div>
+<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span> </div>
+<div class="line"><a name="l01032"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1ElementRegion.html#a250e28bb6ec58edce5262146d24031a4"> 1032</a></span> <a class="code" href="classclang_1_1QualType.html">QualType</a> <a class="code" href="classclang_1_1ento_1_1ElementRegion.html#a250e28bb6ec58edce5262146d24031a4">getValueType</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span> <span class="keywordflow">return</span> ElementType;</div>
+<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span> }</div>
+<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span> </div>
+<div class="line"><a name="l01036"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1ElementRegion.html#a4d0db120da905148948c5fc6a7887954"> 1036</a></span> <a class="code" href="classclang_1_1QualType.html">QualType</a> <a class="code" href="classclang_1_1ento_1_1ElementRegion.html#a4d0db120da905148948c5fc6a7887954">getElementType</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span> <span class="keywordflow">return</span> ElementType;</div>
+<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span> }<span class="comment"></span></div>
+<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span> <span class="comment"> /// Compute the offset within the array. The array might also be a subobject.</span></div>
+<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span> <span class="comment"></span> <a class="code" href="classclang_1_1ento_1_1RegionRawOffset.html">RegionRawOffset</a> <a class="code" href="classclang_1_1ento_1_1ElementRegion.html#ac67c8fc1b383842c27ff1b0102af03b0" title="Compute the offset within the array. The array might also be a subobject.">getAsArrayOffset</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span> </div>
+<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1ElementRegion.html#a97a614d67d449785793d4b1d67843ea0">dumpToStream</a>(raw_ostream &os) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span> </div>
+<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1ElementRegion.html#a7b63b1c1647b2501fc79ceb6384ffcbf">Profile</a>(llvm::FoldingSetNodeID& <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span> </div>
+<div class="line"><a name="l01046"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1ElementRegion.html#a034d605229da40357832ded76edf1718"> 1046</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1ElementRegion.html#a034d605229da40357832ded76edf1718">classof</a>(<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="l01047"></a><span class="lineno"> 1047</span> <span class="keywordflow">return</span> R-><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a28206b01079f4c177bdd23518f471039">getKind</a>() == <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa84bf11c70c2e09bf52c0cde4a517fd49">ElementRegionKind</a>;</div>
+<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span> }</div>
+<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span> };</div>
+<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span> </div>
+<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span> <span class="comment">// C++ temporary object associated with an expression.</span></div>
+<div class="line"><a name="l01052"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1CXXTempObjectRegion.html"> 1052</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1CXXTempObjectRegion.html">CXXTempObjectRegion</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1ento_1_1TypedValueRegion.html" title="TypedValueRegion - An abstract class representing regions having a typed value.">TypedValueRegion</a> {</div>
+<div class="line"><a name="l01053"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1CXXTempObjectRegion.html#ae8b8185ad7e63c6f200f0c0b68388a39"> 1053</a></span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html">MemRegionManager</a>;</div>
+<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span> </div>
+<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> <span class="keyword">const</span> *Ex;</div>
+<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span> </div>
+<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span> <a class="code" href="classclang_1_1ento_1_1CXXTempObjectRegion.html">CXXTempObjectRegion</a>(<a class="code" href="classclang_1_1Expr.html">Expr</a> <span class="keyword">const</span> *E, <a class="code" href="classclang_1_1ento_1_1MemRegion.html" title="MemRegion - The root abstract class for all memory regions.">MemRegion</a> <span class="keyword">const</span> *sReg) </div>
+<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span> : <a class="code" href="classclang_1_1ento_1_1TypedValueRegion.html" title="TypedValueRegion - An abstract class representing regions having a typed value.">TypedValueRegion</a>(sReg, <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa5d81d3102e743aa7a55b487f66d89674">CXXTempObjectRegionKind</a>), Ex(E) {}</div>
+<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span> </div>
+<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span> <span class="keyword">static</span> <span class="keywordtype">void</span> ProfileRegion(llvm::FoldingSetNodeID &<a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>,</div>
+<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> <span class="keyword">const</span> *E, <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> *sReg);</div>
+<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span> </div>
+<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l01064"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1CXXTempObjectRegion.html#a1c393fd35b3901bb60d846f09c010252"> 1064</a></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *<a class="code" href="classclang_1_1ento_1_1CXXTempObjectRegion.html#a1c393fd35b3901bb60d846f09c010252">getExpr</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Ex; }</div>
+<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span> </div>
+<div class="line"><a name="l01066"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1CXXTempObjectRegion.html#a44bc53d205176be3cce32e826c1ca55b"> 1066</a></span> <a class="code" href="classclang_1_1QualType.html">QualType</a> <a class="code" href="classclang_1_1ento_1_1CXXTempObjectRegion.html#a44bc53d205176be3cce32e826c1ca55b">getValueType</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span> <span class="keywordflow">return</span> Ex-><a class="code" href="classclang_1_1Expr.html#a3dd8850a4ad8a5b5f595dd9e9446187b">getType</a>();</div>
+<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span> }</div>
+<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span> </div>
+<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1CXXTempObjectRegion.html#a9ab5a447e263c51d674e36364227497c">dumpToStream</a>(raw_ostream &os) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span> </div>
+<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1CXXTempObjectRegion.html#a0f9751d9d66061e4ed87690b34512e26">Profile</a>(llvm::FoldingSetNodeID &<a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span> </div>
+<div class="line"><a name="l01074"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1CXXTempObjectRegion.html#a86cb7c035376b874af9636ea1cbb6d4d"> 1074</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1CXXTempObjectRegion.html#a86cb7c035376b874af9636ea1cbb6d4d">classof</a>(<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="l01075"></a><span class="lineno"> 1075</span> <span class="keywordflow">return</span> R-><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a28206b01079f4c177bdd23518f471039">getKind</a>() == <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa5d81d3102e743aa7a55b487f66d89674">CXXTempObjectRegionKind</a>;</div>
+<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span> }</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> </div>
+<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span> <span class="comment">// CXXBaseObjectRegion represents a base object within a C++ object. It is </span></div>
+<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span> <span class="comment">// identified by the base class declaration and the region of its parent object.</span></div>
+<div class="line"><a name="l01081"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1CXXBaseObjectRegion.html"> 1081</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1CXXBaseObjectRegion.html">CXXBaseObjectRegion</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1ento_1_1TypedValueRegion.html" title="TypedValueRegion - An abstract class representing regions having a typed value.">TypedValueRegion</a> {</div>
+<div class="line"><a name="l01082"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1CXXBaseObjectRegion.html#ae8b8185ad7e63c6f200f0c0b68388a39"> 1082</a></span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html">MemRegionManager</a>;</div>
+<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span> </div>
+<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span> llvm::PointerIntPair<const CXXRecordDecl *, 1, bool> Data;</div>
+<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span> </div>
+<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span> <a class="code" href="classclang_1_1ento_1_1CXXBaseObjectRegion.html">CXXBaseObjectRegion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *RD, <span class="keywordtype">bool</span> IsVirtual,</div>
+<div class="line"><a name="l01087"></a><span class="lineno"> 1087</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> *SReg)</div>
+<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span> : <a class="code" href="classclang_1_1ento_1_1TypedValueRegion.html" title="TypedValueRegion - An abstract class representing regions having a typed value.">TypedValueRegion</a>(SReg, <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa3cd149e3a25ac452667867c58748883d">CXXBaseObjectRegionKind</a>), Data(RD, IsVirtual) {}</div>
+<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span> </div>
+<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span> <span class="keyword">static</span> <span class="keywordtype">void</span> ProfileRegion(llvm::FoldingSetNodeID &<a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>, <span class="keyword">const</span> <a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *RD,</div>
+<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span> <span class="keywordtype">bool</span> IsVirtual, <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> *SReg);</div>
+<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span> </div>
+<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l01094"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1CXXBaseObjectRegion.html#a1eecdfb53e282362139d2d7025be2c56"> 1094</a></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *<a class="code" href="classclang_1_1ento_1_1CXXBaseObjectRegion.html#a1eecdfb53e282362139d2d7025be2c56">getDecl</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Data.getPointer(); }</div>
+<div class="line"><a name="l01095"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1CXXBaseObjectRegion.html#abf3f674935de679ac43f190a46368898"> 1095</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1CXXBaseObjectRegion.html#abf3f674935de679ac43f190a46368898">isVirtual</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Data.getInt(); }</div>
+<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span> </div>
+<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span> <a class="code" href="classclang_1_1QualType.html">QualType</a> <a class="code" href="classclang_1_1ento_1_1CXXBaseObjectRegion.html#a1d12337d76098e35a081bc15a2af8247">getValueType</a>() <span class="keyword">const</span>;</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="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1CXXBaseObjectRegion.html#a9911135a8d1228c57f6ee1bcfcd81f9c">dumpToStream</a>(raw_ostream &os) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span> </div>
+<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1CXXBaseObjectRegion.html#aabc2b723c490c7559e0f1bd6004c6361">Profile</a>(llvm::FoldingSetNodeID &<a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span> </div>
+<div class="line"><a name="l01103"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1CXXBaseObjectRegion.html#a85308e7dd547ebbc86d0143b8c7e7c63"> 1103</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1CXXBaseObjectRegion.html#a85308e7dd547ebbc86d0143b8c7e7c63">classof</a>(<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) {</div>
+<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span> <span class="keywordflow">return</span> region-><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a28206b01079f4c177bdd23518f471039">getKind</a>() == <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa3cd149e3a25ac452667867c58748883d">CXXBaseObjectRegionKind</a>;</div>
+<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span> }</div>
+<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span> </div>
+<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1CXXBaseObjectRegion.html#a51e126f2f23c5dc238f8c1b358dc3cbc" title="Returns true if this region's textual representation can be used as part of a larger expression...">canPrintPrettyAsExpr</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span> </div>
+<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1CXXBaseObjectRegion.html#a91a0b0be00c57e878dac05aa20e999ac" title="Print the region as expression.">printPrettyAsExpr</a>(raw_ostream &os) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span> };</div>
+<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span> </div>
+<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span> <span class="keyword">template</span><<span class="keyword">typename</span> RegionTy></div>
+<div class="line"><a name="l01113"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a5bfe0bf2cd4249c7e2895bd3478979d2"> 1113</a></span> <span class="keyword">const</span> RegionTy* <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a5bfe0bf2cd4249c7e2895bd3478979d2">MemRegion::getAs</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> RegionTy* RT = dyn_cast<RegionTy>(<span class="keyword">this</span>))</div>
+<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span> <span class="keywordflow">return</span> RT;</div>
+<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span> </div>
+<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span> <span class="keywordflow">return</span> <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div>
+<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span> }</div>
+<div class="line"><a name="l01119"></a><span class="lineno"> 1119</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">// MemRegionManager - Factory object for creating regions.</span></div>
+<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span> </div>
+<div class="line"><a name="l01124"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html"> 1124</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html">MemRegionManager</a> {</div>
+<div class="line"><a name="l01125"></a><span class="lineno"> 1125</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;</div>
+<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span> llvm::BumpPtrAllocator& A;</div>
+<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span> llvm::FoldingSet<MemRegion> Regions;</div>
+<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span> </div>
+<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span> <a class="code" href="classclang_1_1ento_1_1GlobalInternalSpaceRegion.html" title="The region containing globals which can be modified by calls to "internally" defined functions - (for...">GlobalInternalSpaceRegion</a> *InternalGlobals;</div>
+<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span> <a class="code" href="classclang_1_1ento_1_1GlobalSystemSpaceRegion.html" title="The region containing globals which are defined in system/external headers and are considered modifia...">GlobalSystemSpaceRegion</a> *SystemGlobals;</div>
+<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span> <a class="code" href="classclang_1_1ento_1_1GlobalImmutableSpaceRegion.html" title="The region containing globals which are considered not to be modified or point to data which could be...">GlobalImmutableSpaceRegion</a> *ImmutableGlobals;</div>
+<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span> </div>
+<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span> </div>
+<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span> llvm::DenseMap<const StackFrameContext *, StackLocalsSpaceRegion *> </div>
+<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span> StackLocalsSpaceRegions;</div>
+<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span> llvm::DenseMap<const StackFrameContext *, StackArgumentsSpaceRegion *></div>
+<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span> StackArgumentsSpaceRegions;</div>
+<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span> llvm::DenseMap<const CodeTextRegion *, StaticGlobalSpaceRegion *></div>
+<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span> StaticsGlobalSpaceRegions;</div>
+<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span> </div>
+<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span> <a class="code" href="classclang_1_1ento_1_1HeapSpaceRegion.html">HeapSpaceRegion</a> *heap;</div>
+<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span> <a class="code" href="classclang_1_1ento_1_1UnknownSpaceRegion.html">UnknownSpaceRegion</a> *unknown;</div>
+<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span> <a class="code" href="classclang_1_1ento_1_1MemSpaceRegion.html">MemSpaceRegion</a> *code;</div>
+<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span> </div>
+<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l01146"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a90360c486b5e192bf6c8cb8107ba3463"> 1146</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a90360c486b5e192bf6c8cb8107ba3463">MemRegionManager</a>(<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, llvm::BumpPtrAllocator& a)</div>
+<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span> : C(c), A(a), InternalGlobals(0), SystemGlobals(0), ImmutableGlobals(0),</div>
+<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span> heap(0), unknown(0), code(0) {}</div>
+<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span> </div>
+<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span> <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a81361df615f3b120c26aca72070d14e2">~MemRegionManager</a>();</div>
+<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span> </div>
+<div class="line"><a name="l01152"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a46ae579c8d6badced3eabc41de347b89"> 1152</a></span> <a class="code" href="classclang_1_1ASTContext.html" title="Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...">ASTContext</a> &<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a46ae579c8d6badced3eabc41de347b89">getContext</a>() { <span class="keywordflow">return</span> C; }</div>
+<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span> </div>
+<div class="line"><a name="l01154"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a4ed454ae11b67c4bd75c4bd0af592f46"> 1154</a></span> llvm::BumpPtrAllocator &<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a4ed454ae11b67c4bd75c4bd0af592f46">getAllocator</a>() { <span class="keywordflow">return</span> A; }</div>
+<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span> <span class="comment"></span></div>
+<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span> <span class="comment"> /// getStackLocalsRegion - Retrieve the memory region associated with the</span></div>
+<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span> <span class="comment"> /// specified stack frame.</span></div>
+<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span> <span class="comment"></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1StackLocalsSpaceRegion.html">StackLocalsSpaceRegion</a> *</div>
+<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span> <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a57cca4f579dd4ff0a86df2f43164d9b8">getStackLocalsRegion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1StackFrameContext.html">StackFrameContext</a> *STC);</div>
+<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span> <span class="comment"></span></div>
+<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span> <span class="comment"> /// getStackArgumentsRegion - Retrieve the memory region associated with</span></div>
+<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span> <span class="comment"> /// function/method arguments of the specified stack frame.</span></div>
+<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span> <span class="comment"></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1StackArgumentsSpaceRegion.html">StackArgumentsSpaceRegion</a> *</div>
+<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span> <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a0a662835f1186882b54df07884f1bc6f">getStackArgumentsRegion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1StackFrameContext.html">StackFrameContext</a> *STC);</div>
+<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span> <span class="comment"></span></div>
+<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span> <span class="comment"> /// getGlobalsRegion - Retrieve the memory region associated with</span></div>
+<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span> <span class="comment"> /// global variables.</span></div>
+<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span> <span class="comment"></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1GlobalsSpaceRegion.html">GlobalsSpaceRegion</a> *<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a5ed592046be8ba53d90f8122cf9707fa">getGlobalsRegion</a>(</div>
+<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7a">MemRegion::Kind</a> K = <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a989ad91da2dcfef9e3d177fcc8c8eb7aa187402ba660cdf2c2c492909b4c0e074">MemRegion::GlobalInternalSpaceRegionKind</a>,</div>
+<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1CodeTextRegion.html">CodeTextRegion</a> *R = 0);</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"> /// getHeapRegion - Retrieve the memory region associated with the</span></div>
+<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span> <span class="comment"> /// generic "heap".</span></div>
+<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span> <span class="comment"></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1HeapSpaceRegion.html">HeapSpaceRegion</a> *<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a0524d75beb6bfae73f55225429594246">getHeapRegion</a>();</div>
+<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span> <span class="comment"></span></div>
+<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span> <span class="comment"> /// getUnknownRegion - Retrieve the memory region associated with unknown</span></div>
+<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span> <span class="comment"> /// memory space.</span></div>
+<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span> <span class="comment"></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1MemSpaceRegion.html">MemSpaceRegion</a> *<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a59839721c940d58a91e6f41f2f4de0e2">getUnknownRegion</a>();</div>
+<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span> </div>
+<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1MemSpaceRegion.html">MemSpaceRegion</a> *<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a1e10e7b9e2bdce7ef782fd889930a52b">getCodeRegion</a>();</div>
+<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span> <span class="comment"></span></div>
+<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span> <span class="comment"> /// getAllocaRegion - Retrieve a region associated with a call to alloca().</span></div>
+<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span> <span class="comment"></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1AllocaRegion.html">AllocaRegion</a> *<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a4cc7b97d9a169a160e1ea6f3a83f8f89" title="getAllocaRegion - Retrieve a region associated with a call to alloca().">getAllocaRegion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *Ex, <span class="keywordtype">unsigned</span> Cnt,</div>
+<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1LocationContext.html">LocationContext</a> *LC);</div>
+<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span> <span class="comment"></span></div>
+<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span> <span class="comment"> /// getCompoundLiteralRegion - Retrieve the region associated with a</span></div>
+<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span> <span class="comment"> /// given CompoundLiteral.</span></div>
+<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span> <span class="comment"></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1CompoundLiteralRegion.html">CompoundLiteralRegion</a>*</div>
+<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span> <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a3728b4008f05f9f697de7cfe29b86be1">getCompoundLiteralRegion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CompoundLiteralExpr.html">CompoundLiteralExpr</a> *CL,</div>
+<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1LocationContext.html">LocationContext</a> *LC);</div>
+<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span> <span class="comment"></span></div>
+<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span> <span class="comment"> /// getCXXThisRegion - Retrieve the [artificial] region associated with the</span></div>
+<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span> <span class="comment"> /// parameter 'this'.</span></div>
+<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span> <span class="comment"></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1CXXThisRegion.html">CXXThisRegion</a> *<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a0b457bac5c22ddd1cf3821276ec03ab0">getCXXThisRegion</a>(<a class="code" href="classclang_1_1QualType.html">QualType</a> thisPointerTy,</div>
+<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1LocationContext.html">LocationContext</a> *LC);</div>
+<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span> <span class="comment"></span></div>
+<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span> <span class="comment"> /// \brief Retrieve or create a "symbolic" memory region.</span></div>
+<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span> <span class="comment"></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1SymbolicRegion.html">SymbolicRegion</a>* <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#ac1623fa901e33889624b06fa0c4eede3" title="Retrieve or create a "symbolic" memory region.">getSymbolicRegion</a>(<a class="code" href="classclang_1_1ento_1_1SymExpr.html" title="Symbolic value. These values used to capture symbolic execution of the program.">SymbolRef</a> Sym);</div>
+<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span> <span class="comment"></span></div>
+<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span> <span class="comment"> /// \brief Return a unique symbolic region belonging to heap memory space.</span></div>
+<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span> <span class="comment"></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1SymbolicRegion.html">SymbolicRegion</a> *<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a803ac72e14ffd0ea4d096d2ee0f90e01" title="Return a unique symbolic region belonging to heap memory space.">getSymbolicHeapRegion</a>(<a class="code" href="classclang_1_1ento_1_1SymExpr.html" title="Symbolic value. These values used to capture symbolic execution of the program.">SymbolRef</a> sym);</div>
+<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span> </div>
+<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1StringRegion.html" title="StringRegion - Region associated with a StringLiteral.">StringRegion</a> *<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a952db68004224966afec823c25e436e0">getStringRegion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1StringLiteral.html">StringLiteral</a>* Str);</div>
+<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span> </div>
+<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1ObjCStringRegion.html" title="The region associated with an ObjCStringLiteral.">ObjCStringRegion</a> *<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a86f43d271501a6785df876371549ffdc">getObjCStringRegion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCStringLiteral.html">ObjCStringLiteral</a> *Str);</div>
+<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span> <span class="comment"></span></div>
+<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span> <span class="comment"> /// getVarRegion - Retrieve or create the memory region associated with</span></div>
+<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span> <span class="comment"> /// a specified VarDecl and LocationContext.</span></div>
+<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span> <span class="comment"></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1VarRegion.html">VarRegion</a>* <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a8ba4db1926a47f16b352463774bcb24a">getVarRegion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *D, <span class="keyword">const</span> <a class="code" href="classclang_1_1LocationContext.html">LocationContext</a> *LC);</div>
+<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span> <span class="comment"></span></div>
+<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span> <span class="comment"> /// getVarRegion - Retrieve or create the memory region associated with</span></div>
+<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span> <span class="comment"> /// a specified VarDecl and super region.</span></div>
+<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span> <span class="comment"></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1VarRegion.html">VarRegion</a>* <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a8ba4db1926a47f16b352463774bcb24a">getVarRegion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *D, <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> *superR);</div>
+<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span> <span class="comment"></span></div>
+<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span> <span class="comment"> /// getElementRegion - Retrieve the memory region associated with the</span></div>
+<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span> <span class="comment"> /// associated element type, index, and super region.</span></div>
+<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span> <span class="comment"></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1ElementRegion.html" title="ElementRegin is used to represent both array elements and casts.">ElementRegion</a> *<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a62f05ab0863b11eff4514187027e3e24">getElementRegion</a>(<a class="code" href="classclang_1_1QualType.html">QualType</a> elementType, <a class="code" href="classclang_1_1ento_1_1NonLoc.html">NonLoc</a> Idx,</div>
+<div class="line"><a name="l01218"></a><span class="lineno"> 1218</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> *superRegion,</div>
+<div class="line"><a name="l01219"></a><span class="lineno"> 1219</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="l01220"></a><span class="lineno"> 1220</span> </div>
+<div class="line"><a name="l01221"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a78e815772ab32d62447f4fc3f8aee08b"> 1221</a></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1ElementRegion.html" title="ElementRegin is used to represent both array elements and casts.">ElementRegion</a> *<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a78e815772ab32d62447f4fc3f8aee08b">getElementRegionWithSuper</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1ElementRegion.html" title="ElementRegin is used to represent both array elements and casts.">ElementRegion</a> *ER,</div>
+<div class="line"><a name="l01222"></a><span class="lineno"> 1222</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> *superRegion) {</div>
+<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a62f05ab0863b11eff4514187027e3e24">getElementRegion</a>(ER-><a class="code" href="classclang_1_1ento_1_1ElementRegion.html#a4d0db120da905148948c5fc6a7887954">getElementType</a>(), ER-><a class="code" href="classclang_1_1ento_1_1ElementRegion.html#a0c86b2841f74e7a10e1c0f8183c04683">getIndex</a>(),</div>
+<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span> superRegion, ER-><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a582a40115ffa064a32e78bfa90de4097">getContext</a>());</div>
+<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span> }</div>
+<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span> <span class="comment"></span></div>
+<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span> <span class="comment"> /// getFieldRegion - Retrieve or create the memory region associated with</span></div>
+<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span> <span class="comment"> /// a specified FieldDecl. 'superRegion' corresponds to the containing</span></div>
+<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span> <span class="comment"> /// memory region (which typically represents the memory representing</span></div>
+<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span> <span class="comment"> /// a structure or class).</span></div>
+<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span> <span class="comment"></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1FieldRegion.html">FieldRegion</a> *<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#ac4f2a817212670423f5d767d56aea9f6">getFieldRegion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1FieldDecl.html">FieldDecl</a> *fd,</div>
+<div class="line"><a name="l01232"></a><span class="lineno"> 1232</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>* superRegion);</div>
+<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span> </div>
+<div class="line"><a name="l01234"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a8814b7d0666a86a32c3cc8e2968b2c7c"> 1234</a></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1FieldRegion.html">FieldRegion</a> *<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a8814b7d0666a86a32c3cc8e2968b2c7c">getFieldRegionWithSuper</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1FieldRegion.html">FieldRegion</a> *FR,</div>
+<div class="line"><a name="l01235"></a><span class="lineno"> 1235</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> *superRegion) {</div>
+<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#ac4f2a817212670423f5d767d56aea9f6">getFieldRegion</a>(FR-><a class="code" href="classclang_1_1ento_1_1FieldRegion.html#a558e24f4ebcc5ee30d7c5b97632c0cbd">getDecl</a>(), superRegion);</div>
+<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span> }</div>
+<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span> <span class="comment"></span></div>
+<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span> <span class="comment"> /// getObjCIvarRegion - Retrieve or create the memory region associated with</span></div>
+<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span> <span class="comment"> /// a specified Objective-c instance variable. 'superRegion' corresponds</span></div>
+<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span> <span class="comment"> /// to the containing region (which typically represents the Objective-C</span></div>
+<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span> <span class="comment"> /// object).</span></div>
+<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span> <span class="comment"></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1ObjCIvarRegion.html">ObjCIvarRegion</a> *<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a0216df2c50004f8e34197fe3ef716bec">getObjCIvarRegion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *ivd,</div>
+<div class="line"><a name="l01244"></a><span class="lineno"> 1244</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>* superRegion);</div>
+<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span> </div>
+<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1CXXTempObjectRegion.html">CXXTempObjectRegion</a> *<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#ab4791cc0a0e157866cde6df03ef26d51">getCXXTempObjectRegion</a>(<a class="code" href="classclang_1_1Expr.html">Expr</a> <span class="keyword">const</span> *Ex,</div>
+<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span> <a class="code" href="classclang_1_1LocationContext.html">LocationContext</a> <span class="keyword">const</span> *LC);</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"> /// Create a CXXBaseObjectRegion with the given base class for region</span></div>
+<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span> <span class="comment"> /// \p Super.</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"> /// The type of \p Super is assumed be a class deriving from \p BaseClass.</span></div>
+<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span> <span class="comment"></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1CXXBaseObjectRegion.html">CXXBaseObjectRegion</a> *</div>
+<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span> <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#ace39a0c67490cc480fec5d4de3bee245">getCXXBaseObjectRegion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *BaseClass, <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> *Super,</div>
+<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span> <span class="keywordtype">bool</span> IsVirtual);</div>
+<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span> <span class="comment"></span></div>
+<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span> <span class="comment"> /// Create a CXXBaseObjectRegion with the same CXXRecordDecl but a different</span></div>
+<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span> <span class="comment"> /// super region.</span></div>
+<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span> <span class="comment"></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1CXXBaseObjectRegion.html">CXXBaseObjectRegion</a> *</div>
+<div class="line"><a name="l01260"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a03653eacb70ae2afe8e3d71cdc2f34c9"> 1260</a></span> <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a03653eacb70ae2afe8e3d71cdc2f34c9">getCXXBaseObjectRegionWithSuper</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1CXXBaseObjectRegion.html">CXXBaseObjectRegion</a> *baseReg, </div>
+<div class="line"><a name="l01261"></a><span class="lineno"> 1261</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> *superRegion) {</div>
+<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#ace39a0c67490cc480fec5d4de3bee245">getCXXBaseObjectRegion</a>(baseReg-><a class="code" href="classclang_1_1ento_1_1CXXBaseObjectRegion.html#a1eecdfb53e282362139d2d7025be2c56">getDecl</a>(), superRegion,</div>
+<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span> baseReg-><a class="code" href="classclang_1_1ento_1_1CXXBaseObjectRegion.html#abf3f674935de679ac43f190a46368898">isVirtual</a>());</div>
+<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span> }</div>
+<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span> </div>
+<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1FunctionTextRegion.html" title="FunctionTextRegion - A region that represents code texts of function.">FunctionTextRegion</a> *<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a70cb34919c5f113570f2509c36dff917">getFunctionTextRegion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1NamedDecl.html">NamedDecl</a> *FD);</div>
+<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1BlockTextRegion.html">BlockTextRegion</a> *<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a46cdd9cf98802db14be22598c6a6bc25">getBlockTextRegion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1BlockDecl.html">BlockDecl</a> *BD,</div>
+<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span> <a class="code" href="classclang_1_1CanQual.html">CanQualType</a> locTy,</div>
+<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span> <a class="code" href="classclang_1_1AnalysisDeclContext.html">AnalysisDeclContext</a> *AC);</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"> /// getBlockDataRegion - Get the memory region associated with an instance</span></div>
+<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span> <span class="comment"> /// of a block. Unlike many other MemRegions, the LocationContext*</span></div>
+<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span> <span class="comment"> /// argument is allowed to be NULL for cases where we have no known</span></div>
+<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span> <span class="comment"> /// context.</span></div>
+<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span> <span class="comment"></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1BlockDataRegion.html">BlockDataRegion</a> *<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a57f41ee29331a1d63936a564cef2a377">getBlockDataRegion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1BlockTextRegion.html">BlockTextRegion</a> *bc,</div>
+<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1LocationContext.html">LocationContext</a> *lc,</div>
+<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span> <span class="keywordtype">unsigned</span> blockCount);</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"> /// Create a CXXTempObjectRegion for temporaries which are lifetime-extended</span></div>
+<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span> <span class="comment"> /// by static references. This differs from getCXXTempObjectRegion in the</span></div>
+<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span> <span class="comment"> /// super-region used.</span></div>
+<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span> <span class="comment"></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1CXXTempObjectRegion.html">CXXTempObjectRegion</a> *<a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a7a9d2268aa1437b3328b6fd044d13461">getCXXStaticTempObjectRegion</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *Ex);</div>
+<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span> </div>
+<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span> <span class="keyword">template</span> <<span class="keyword">typename</span> RegionTy, <span class="keyword">typename</span> A1></div>
+<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span> RegionTy* getRegion(<span class="keyword">const</span> A1 a1);</div>
+<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span> </div>
+<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span> <span class="keyword">template</span> <<span class="keyword">typename</span> RegionTy, <span class="keyword">typename</span> A1></div>
+<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span> RegionTy* getSubRegion(<span class="keyword">const</span> A1 a1, <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>* superRegion);</div>
+<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span> </div>
+<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span> <span class="keyword">template</span> <<span class="keyword">typename</span> RegionTy, <span class="keyword">typename</span> A1, <span class="keyword">typename</span> A2></div>
+<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span> RegionTy* getRegion(<span class="keyword">const</span> A1 a1, <span class="keyword">const</span> A2 a2);</div>
+<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span> </div>
+<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span> <span class="keyword">template</span> <<span class="keyword">typename</span> RegionTy, <span class="keyword">typename</span> A1, <span class="keyword">typename</span> A2></div>
+<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span> RegionTy* getSubRegion(<span class="keyword">const</span> A1 a1, <span class="keyword">const</span> A2 a2,</div>
+<div class="line"><a name="l01296"></a><span class="lineno"> 1296</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>* superRegion);</div>
+<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span> </div>
+<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span> <span class="keyword">template</span> <<span class="keyword">typename</span> RegionTy, <span class="keyword">typename</span> A1, <span class="keyword">typename</span> A2, <span class="keyword">typename</span> A3></div>
+<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span> RegionTy* getSubRegion(<span class="keyword">const</span> A1 a1, <span class="keyword">const</span> A2 a2, <span class="keyword">const</span> A3 a3,</div>
+<div class="line"><a name="l01300"></a><span class="lineno"> 1300</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>* superRegion);</div>
+<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span> </div>
+<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span> <span class="keyword">template</span> <<span class="keyword">typename</span> REG></div>
+<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span> <span class="keyword">const</span> REG* LazyAllocate(REG*& region);</div>
+<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span> </div>
+<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span> <span class="keyword">template</span> <<span class="keyword">typename</span> REG, <span class="keyword">typename</span> ARG></div>
+<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span> <span class="keyword">const</span> REG* LazyAllocate(REG*& region, ARG a);</div>
+<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span> };</div>
+<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span> </div>
+<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span> <span class="comment">// Out-of-line member definitions.</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> </div>
+<div class="line"><a name="l01313"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1MemRegion.html#a582a40115ffa064a32e78bfa90de4097"> 1313</a></span> <span class="keyword">inline</span> <a class="code" href="classclang_1_1ASTContext.html" title="Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...">ASTContext</a> &<a class="code" href="classclang_1_1ento_1_1MemRegion.html#a582a40115ffa064a32e78bfa90de4097">MemRegion::getContext</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span> <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ento_1_1MemRegion.html#a42d5a4e9b920a91c18fb0e09306fd0e5">getMemRegionManager</a>()-><a class="code" href="classclang_1_1ento_1_1MemRegionManager.html#a46ae579c8d6badced3eabc41de347b89">getContext</a>();</div>
+<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span> }</div>
+<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span> </div>
+<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span> <span class="comment">// Means for storing region/symbol handling traits.</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"></span></div>
+<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span> <span class="comment">/// Information about invalidation for a particular region/symbol.</span></div>
+<div class="line"><a name="l01322"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1RegionAndSymbolInvalidationTraits.html"> 1322</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1RegionAndSymbolInvalidationTraits.html" title="Information about invalidation for a particular region/symbol.">RegionAndSymbolInvalidationTraits</a> {</div>
+<div class="line"><a name="l01323"></a><span class="lineno"> 1323</span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> StorageTypeForKinds;</div>
+<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span> llvm::DenseMap<const MemRegion *, StorageTypeForKinds> MRTraitsMap;</div>
+<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span> llvm::DenseMap<SymbolRef, StorageTypeForKinds> SymTraitsMap;</div>
+<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span> </div>
+<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span> <span class="keyword">typedef</span> llvm::DenseMap<const MemRegion *, StorageTypeForKinds>::const_iterator</div>
+<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span> const_region_iterator;</div>
+<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span> <span class="keyword">typedef</span> llvm::DenseMap<SymbolRef, StorageTypeForKinds>::const_iterator</div>
+<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span> const_symbol_iterator;</div>
+<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span> </div>
+<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span> <span class="keyword">public</span>:<span class="comment"></span></div>
+<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span> <span class="comment"> /// \brief Describes different invalidation traits.</span></div>
+<div class="line"><a name="l01334"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1RegionAndSymbolInvalidationTraits.html#a2a15c0ea94987dd8c6a63b6b51db5756"> 1334</a></span> <span class="comment"></span> <span class="keyword">enum</span> <a class="code" href="classclang_1_1ento_1_1RegionAndSymbolInvalidationTraits.html#a2a15c0ea94987dd8c6a63b6b51db5756" title="Describes different invalidation traits.">InvalidationKinds</a> {<span class="comment"></span></div>
+<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span> <span class="comment"> /// Tells that a region's contents is not changed.</span></div>
+<div class="line"><a name="l01336"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1RegionAndSymbolInvalidationTraits.html#a2a15c0ea94987dd8c6a63b6b51db5756a0a10f8f685131c75e067b51ad679201e"> 1336</a></span> <span class="comment"></span> <a class="code" href="classclang_1_1ento_1_1RegionAndSymbolInvalidationTraits.html#a2a15c0ea94987dd8c6a63b6b51db5756a0a10f8f685131c75e067b51ad679201e" title="Tells that a region's contents is not changed.">TK_PreserveContents</a> = 0x1,<span class="comment"></span></div>
+<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span> <span class="comment"> /// Suppress pointer-escaping of a region.</span></div>
+<div class="line"><a name="l01338"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1RegionAndSymbolInvalidationTraits.html#a2a15c0ea94987dd8c6a63b6b51db5756afbfc482825cf2a04f609358704268104"> 1338</a></span> <span class="comment"></span> <a class="code" href="classclang_1_1ento_1_1RegionAndSymbolInvalidationTraits.html#a2a15c0ea94987dd8c6a63b6b51db5756afbfc482825cf2a04f609358704268104" title="Suppress pointer-escaping of a region.">TK_SuppressEscape</a> = 0x2</div>
+<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span> </div>
+<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span> <span class="comment">// Do not forget to extend StorageTypeForKinds if number of traits exceed </span></div>
+<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span> <span class="comment">// the number of bits StorageTypeForKinds can store.</span></div>
+<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span> };</div>
+<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span> </div>
+<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1RegionAndSymbolInvalidationTraits.html#acb459994eca782926d09722ad0626b39">setTrait</a>(<a class="code" href="classclang_1_1ento_1_1SymExpr.html" title="Symbolic value. These values used to capture symbolic execution of the program.">SymbolRef</a> Sym, <a class="code" href="classclang_1_1ento_1_1RegionAndSymbolInvalidationTraits.html#a2a15c0ea94987dd8c6a63b6b51db5756" title="Describes different invalidation traits.">InvalidationKinds</a> IK);</div>
+<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1RegionAndSymbolInvalidationTraits.html#acb459994eca782926d09722ad0626b39">setTrait</a>(<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> *MR, <a class="code" href="classclang_1_1ento_1_1RegionAndSymbolInvalidationTraits.html#a2a15c0ea94987dd8c6a63b6b51db5756" title="Describes different invalidation traits.">InvalidationKinds</a> IK);</div>
+<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1RegionAndSymbolInvalidationTraits.html#acd1d39caea084d342ef7864d09f31b06">hasTrait</a>(<a class="code" href="classclang_1_1ento_1_1SymExpr.html" title="Symbolic value. These values used to capture symbolic execution of the program.">SymbolRef</a> Sym, <a class="code" href="classclang_1_1ento_1_1RegionAndSymbolInvalidationTraits.html#a2a15c0ea94987dd8c6a63b6b51db5756" title="Describes different invalidation traits.">InvalidationKinds</a> IK);</div>
+<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1ento_1_1RegionAndSymbolInvalidationTraits.html#acd1d39caea084d342ef7864d09f31b06">hasTrait</a>(<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> *MR, <a class="code" href="classclang_1_1ento_1_1RegionAndSymbolInvalidationTraits.html#a2a15c0ea94987dd8c6a63b6b51db5756" title="Describes different invalidation traits.">InvalidationKinds</a> IK);</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="comment">// end GR namespace</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> } <span class="comment">// end clang namespace</span></div>
+<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span> </div>
+<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span> <span class="comment">// Pretty-printing regions.</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> </div>
+<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span> <span class="keyword">namespace </span>llvm {</div>
+<div class="line"><a name="l01359"></a><span class="lineno"><a class="code" href="namespacellvm.html#a6919a5f8e800244beb4a80b866ee79c4"> 1359</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> raw_ostream &<a class="code" href="namespacellvm.html#a6919a5f8e800244beb4a80b866ee79c4">operator<<</a>(raw_ostream &os,</div>
+<div class="line"><a name="l01360"></a><span class="lineno"> 1360</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.">clang::ento::MemRegion</a>* R) {</div>
+<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span> R-><a class="code" href="classclang_1_1ento_1_1MemRegion.html#aafd47af3fe31c352c9fbcb6ff8731a93">dumpToStream</a>(os);</div>
+<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span> <span class="keywordflow">return</span> os;</div>
+<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span> }</div>
+<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span> } <span class="comment">// end llvm namespace</span></div>
+<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span> </div>
+<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span> <span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:43 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