[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