[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/BasicObjCFoundationChecks_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/BasicObjCFoundationChecks_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/BasicObjCFoundationChecks_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/BasicObjCFoundationChecks_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,1321 @@
+<!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: BasicObjCFoundationChecks.cpp Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_87e2a7550f83bd8cbfc92736891468fc.html">lib</a></li><li class="navelem"><a class="el" href="dir_fd0691f76a19cc33074025cb3a574e66.html">StaticAnalyzer</a></li><li class="navelem"><a class="el" href="dir_5fa4c591fb04e7ea3227105bf6cc3359.html">Checkers</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">BasicObjCFoundationChecks.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="BasicObjCFoundationChecks_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">//== BasicObjCFoundationChecks.cpp - Simple Apple-Foundation checks -*- 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 BasicObjCFoundationChecks, a class that encapsulates</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="comment">//  a set of simple checks to run on Objective-C code using Apple's Foundation</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="comment">//  classes.</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="ClangSACheckers_8h.html">ClangSACheckers.h</a>"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</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="l00018"></a><span class="lineno">   18</span> <span class="preprocessor">#include "<a class="code" href="DeclObjC_8h.html">clang/AST/DeclObjC.h</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="preprocessor">#include "<a class="code" href="Expr_8h.html">clang/AST/Expr.h</a>"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="preprocessor">#include "<a class="code" href="ExprObjC_8h.html">clang/AST/ExprObjC.h</a>"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="preprocessor">#include "<a class="code" href="StmtObjC_8h.html" title="Defines the Objective-C statement AST node classes.">clang/AST/StmtObjC.h</a>"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="preprocessor">#include "<a class="code" href="CocoaConventions_8h.html">clang/Analysis/DomainSpecific/CocoaConventions.h</a>"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="preprocessor">#include "<a class="code" href="BugType_8h.html">clang/StaticAnalyzer/Core/BugReporter/BugType.h</a>"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="preprocessor">#include "<a class="code" href="Checker_8h.html">clang/StaticAnalyzer/Core/Checker.h</a>"</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="preprocessor">#include "<a class="code" href="CheckerManager_8h.html">clang/StaticAnalyzer/Core/CheckerManager.h</a>"</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="preprocessor">#include "<a class="code" href="CallEvent_8h.html">clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h</a>"</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="preprocessor">#include "<a class="code" href="CheckerContext_8h.html">clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h</a>"</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="preprocessor">#include "<a class="code" href="ExplodedGraph_8h.html">clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h</a>"</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="preprocessor">#include "<a class="code" href="ExprEngine_8h.html">clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h</a>"</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</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="l00031"></a><span class="lineno">   31</span> <span class="preprocessor">#include "<a class="code" href="ProgramState_8h.html">clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h</a>"</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span> <span class="preprocessor">#include "llvm/ADT/SmallString.h"</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span> <span class="preprocessor">#include "llvm/ADT/StringMap.h"</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span> <span class="preprocessor">#include "llvm/Support/raw_ostream.h"</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span> </div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span> <span class="keyword">using namespace </span>clang;</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span> <span class="keyword">using namespace </span>ento;</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">namespace </span>{</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span> <span class="keyword">class </span>APIMisuse : <span class="keyword">public</span> <a class="code" href="classclang_1_1ento_1_1BugType.html">BugType</a> {</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>   APIMisuse(<span class="keyword">const</span> <span class="keywordtype">char</span>* name) : <a class="code" href="classclang_1_1ento_1_1BugType.html">BugType</a>(name, <span class="stringliteral">"API Misuse (Apple)"</span>) {}</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span> };</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span> } <span class="comment">// end anonymous namespace</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span> </div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span> <span class="comment">// Utility functions.</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span> </div>
+<div class="line"><a name="l00050"></a><span class="lineno"><a class="code" href="BasicObjCFoundationChecks_8cpp.html#ab91fe16a4acf42262c10101f460a4e25">   50</a></span> <span class="keyword">static</span> StringRef <a class="code" href="BasicObjCFoundationChecks_8cpp.html#ab91fe16a4acf42262c10101f460a4e25">GetReceiverInterfaceName</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodCall.html" title="Represents any expression that calls an Objective-C method.">ObjCMethodCall</a> &msg) {</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *<a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a> = msg.<a class="code" href="classclang_1_1ObjCMethodCall.html#a77809ae142f65cb2f8352d8f416e61db" title="Get the interface for the receiver.">getReceiverInterface</a>())</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>     <span class="keywordflow">return</span> <a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>->getIdentifier()->getName();</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>   <span class="keywordflow">return</span> StringRef();</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span> }</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span> </div>
+<div class="line"><a name="l00056"></a><span class="lineno"><a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6">   56</a></span> <span class="keyword">enum</span> <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6">FoundationClass</a> {</div>
+<div class="line"><a name="l00057"></a><span class="lineno"><a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6a21e7aeccc42f26b2e942ae4655e793cb">   57</a></span>   <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6a21e7aeccc42f26b2e942ae4655e793cb">FC_None</a>,</div>
+<div class="line"><a name="l00058"></a><span class="lineno"><a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6a870bd58d814cca18f0b4784e3bee5232">   58</a></span>   <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6a870bd58d814cca18f0b4784e3bee5232">FC_NSArray</a>,</div>
+<div class="line"><a name="l00059"></a><span class="lineno"><a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6aecf88e14bd4e5e2b01aa69eaff87aa04">   59</a></span>   <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6aecf88e14bd4e5e2b01aa69eaff87aa04">FC_NSDictionary</a>,</div>
+<div class="line"><a name="l00060"></a><span class="lineno"><a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6acaaf606a7c8158230ec2717bdde06b5b">   60</a></span>   <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6acaaf606a7c8158230ec2717bdde06b5b">FC_NSEnumerator</a>,</div>
+<div class="line"><a name="l00061"></a><span class="lineno"><a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6a28092e02c5f3e1dae5d13d8ca0226db1">   61</a></span>   <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6a28092e02c5f3e1dae5d13d8ca0226db1">FC_NSNull</a>,</div>
+<div class="line"><a name="l00062"></a><span class="lineno"><a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6ac8790640f676635c798cf6ff2aeedcd6">   62</a></span>   <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6ac8790640f676635c798cf6ff2aeedcd6">FC_NSOrderedSet</a>,</div>
+<div class="line"><a name="l00063"></a><span class="lineno"><a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6a93dc55c38218e65c4f54c24e1eace1ae">   63</a></span>   <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6a93dc55c38218e65c4f54c24e1eace1ae">FC_NSSet</a>,</div>
+<div class="line"><a name="l00064"></a><span class="lineno"><a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6a9bc9a52cef75b57a1891076b8b08cb4c">   64</a></span>   <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6a9bc9a52cef75b57a1891076b8b08cb4c">FC_NSString</a></div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span> };</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span> </div>
+<div class="line"><a name="l00067"></a><span class="lineno"><a class="code" href="BasicObjCFoundationChecks_8cpp.html#a2a4e44325df6137bd11b14a88e025dcc">   67</a></span> <span class="keyword">static</span> <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6">FoundationClass</a> <a class="code" href="BasicObjCFoundationChecks_8cpp.html#a2a4e44325df6137bd11b14a88e025dcc">findKnownClass</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *<a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>,</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>                                       <span class="keywordtype">bool</span> IncludeSuperclasses = <span class="keyword">true</span>) {</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>   <span class="keyword">static</span> llvm::StringMap<FoundationClass> Classes;</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>   <span class="keywordflow">if</span> (Classes.empty()) {</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>     Classes[<span class="stringliteral">"NSArray"</span>] = <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6a870bd58d814cca18f0b4784e3bee5232">FC_NSArray</a>;</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>     Classes[<span class="stringliteral">"NSDictionary"</span>] = <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6aecf88e14bd4e5e2b01aa69eaff87aa04">FC_NSDictionary</a>;</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>     Classes[<span class="stringliteral">"NSEnumerator"</span>] = <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6acaaf606a7c8158230ec2717bdde06b5b">FC_NSEnumerator</a>;</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>     Classes[<span class="stringliteral">"NSNull"</span>] = <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6a28092e02c5f3e1dae5d13d8ca0226db1">FC_NSNull</a>;</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>     Classes[<span class="stringliteral">"NSOrderedSet"</span>] = <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6ac8790640f676635c798cf6ff2aeedcd6">FC_NSOrderedSet</a>;</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>     Classes[<span class="stringliteral">"NSSet"</span>] = <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6a93dc55c38218e65c4f54c24e1eace1ae">FC_NSSet</a>;</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>     Classes[<span class="stringliteral">"NSString"</span>] = <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6a9bc9a52cef75b57a1891076b8b08cb4c">FC_NSString</a>;</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>   }</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span> </div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>   <span class="comment">// FIXME: Should we cache this at all?</span></div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>   <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6">FoundationClass</a> result = Classes.lookup(ID-><a class="code" href="classclang_1_1NamedDecl.html#a554752f8f43eea0e6288da7205167fe2">getIdentifier</a>()-><a class="code" href="classclang_1_1IdentifierInfo.html#a94caec6a16e508e8ca39eacd278bd2c5" title="Return the actual identifier string.">getName</a>());</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>   <span class="keywordflow">if</span> (result == <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6a21e7aeccc42f26b2e942ae4655e793cb">FC_None</a> && IncludeSuperclasses)</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>     <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *Super = ID-><a class="code" href="classclang_1_1ObjCInterfaceDecl.html#a5f23eb5cda9e27622e71382d1dc4b95d">getSuperClass</a>())</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>       <span class="keywordflow">return</span> <a class="code" href="BasicObjCFoundationChecks_8cpp.html#a2a4e44325df6137bd11b14a88e025dcc">findKnownClass</a>(Super);</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span> </div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>   <span class="keywordflow">return</span> result;</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span> }</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span> </div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span> <span class="comment">// NilArgChecker - Check for prohibited nil arguments to ObjC method calls.</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span> </div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span> <span class="keyword">namespace </span>{</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>   <span class="keyword">class </span>NilArgChecker : <span class="keyword">public</span> <a class="code" href="classclang_1_1ento_1_1Checker.html">Checker</a><check::PreObjCMessage,</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>                                        check::PostStmt<ObjCDictionaryLiteral>,</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>                                        check::PostStmt<ObjCArrayLiteral> > {</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>     <span class="keyword">mutable</span> <a class="code" href="classllvm_1_1OwningPtr.html">OwningPtr<APIMisuse></a> BT;</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span> </div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>     <span class="keywordtype">void</span> warnIfNilExpr(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *E,</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>                        <span class="keyword">const</span> <span class="keywordtype">char</span> *Msg,</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>                        <a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span> </div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>     <span class="keywordtype">void</span> warnIfNilArg(<a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C,</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>                       <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodCall.html" title="Represents any expression that calls an Objective-C method.">ObjCMethodCall</a> &msg, <span class="keywordtype">unsigned</span> Arg,</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>                       <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6">FoundationClass</a> Class,</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>                       <span class="keywordtype">bool</span> CanBeSubscript = <span class="keyword">false</span>) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span> </div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>     <span class="keywordtype">void</span> generateBugReport(<a class="code" href="classclang_1_1ento_1_1ExplodedNode.html">ExplodedNode</a> *N,</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>                            StringRef Msg,</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>                            <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> Range,</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>                            <span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *<a class="code" href="classclang_1_1Expr.html">Expr</a>,</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>                            <a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span> </div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>   <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>     <span class="keywordtype">void</span> checkPreObjCMessage(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodCall.html" title="Represents any expression that calls an Objective-C method.">ObjCMethodCall</a> &M, <a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>     <span class="keywordtype">void</span> checkPostStmt(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCDictionaryLiteral.html">ObjCDictionaryLiteral</a> *DL,</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>                        <a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>     <span class="keywordtype">void</span> checkPostStmt(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCArrayLiteral.html">ObjCArrayLiteral</a> *AL,</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>                        <a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>   };</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span> }</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span> </div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span> <span class="keywordtype">void</span> NilArgChecker::warnIfNilExpr(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *E,</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>                                   <span class="keyword">const</span> <span class="keywordtype">char</span> *Msg,</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>                                   <a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>   <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">ProgramStateRef</a> <a class="code" href="Format_8cpp.html#a83e9e4ff6cb05dbdf72ab2a01aa289c0">State</a> = C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a81bd66f80b18117a9a64a8d0daa62825">getState</a>();</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>   <span class="keywordflow">if</span> (State->isNull(C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a0d759e052a03b3b956294899dc2ccd0d" title="Get the value of arbitrary expressions at this point in the path.">getSVal</a>(E)).isConstrainedTrue()) {</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="keywordflow">if</span> (<a class="code" href="classclang_1_1ento_1_1ExplodedNode.html">ExplodedNode</a> *N = C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#adeea33a5a2bed190210c4a2bb807a6f0" title="Generate a sink node. Generating a sink stops exploration of the given path.">generateSink</a>()) {</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>       generateBugReport(N, Msg, E-><a class="code" href="classclang_1_1Stmt.html#a6844392ee6148b5fe821f211b95e5d1b">getSourceRange</a>(), E, C);</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>     }</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>     </div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>   }</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span> }</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span> </div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span> <span class="keywordtype">void</span> NilArgChecker::warnIfNilArg(<a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C,</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>                                  <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodCall.html" title="Represents any expression that calls an Objective-C method.">ObjCMethodCall</a> &msg,</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>                                  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> Arg,</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>                                  <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6">FoundationClass</a> Class,</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>                                  <span class="keywordtype">bool</span> CanBeSubscript)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>   <span class="comment">// Check if the argument is nil.</span></div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>   <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">ProgramStateRef</a> State = C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a81bd66f80b18117a9a64a8d0daa62825">getState</a>();</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>   <span class="keywordflow">if</span> (!State->isNull(msg.getArgSVal(Arg)).isConstrainedTrue())</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>       </div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1ento_1_1ExplodedNode.html">ExplodedNode</a> *N = C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#adeea33a5a2bed190210c4a2bb807a6f0" title="Generate a sink node. Generating a sink stops exploration of the given path.">generateSink</a>()) {</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>     <a class="code" href="classllvm_1_1SmallString.html">SmallString<128></a> sbuf;</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>     llvm::raw_svector_ostream os(sbuf);</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>     <span class="keywordflow">if</span> (CanBeSubscript && msg.<a class="code" href="classclang_1_1ObjCMethodCall.html#a759141470c046607d2570284f6c51089">getMessageKind</a>() == <a class="code" href="namespaceclang.html#ad0e3fb5bb6ead756fa217bdd3b11d966a1b9c682762c8c80e9d5af352e80ac648">OCM_Subscript</a>) {</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>       <span class="keywordflow">if</span> (Class == <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6a870bd58d814cca18f0b4784e3bee5232">FC_NSArray</a>) {</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>         os << <span class="stringliteral">"Array element cannot be nil"</span>;</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>       } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Class == <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6aecf88e14bd4e5e2b01aa69eaff87aa04">FC_NSDictionary</a>) {</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>         <span class="keywordflow">if</span> (Arg == 0) {</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>           os << <span class="stringliteral">"Value stored into '"</span>;</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>           os << <a class="code" href="BasicObjCFoundationChecks_8cpp.html#ab91fe16a4acf42262c10101f460a4e25">GetReceiverInterfaceName</a>(msg) << <span class="stringliteral">"' cannot be nil"</span>;</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>         } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>           assert(Arg == 1);</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>           os << <span class="stringliteral">"'"</span><< <a class="code" href="BasicObjCFoundationChecks_8cpp.html#ab91fe16a4acf42262c10101f460a4e25">GetReceiverInterfaceName</a>(msg) << <span class="stringliteral">"' key cannot be nil"</span>;</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>         }</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>       } <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>         llvm_unreachable(<span class="stringliteral">"Missing foundation class for the subscript expr"</span>);</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span> </div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>       <span class="keywordflow">if</span> (Class == <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6aecf88e14bd4e5e2b01aa69eaff87aa04">FC_NSDictionary</a>) {</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>         <span class="keywordflow">if</span> (Arg == 0)</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>           os << <span class="stringliteral">"Value argument "</span>;</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>         <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>           assert(Arg == 1);</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>           os << <span class="stringliteral">"Key argument "</span>;</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>         os << <span class="stringliteral">"to '"</span> << msg.<a class="code" href="classclang_1_1ObjCMethodCall.html#a60e54f95046b7e000d1960c66c162462">getSelector</a>().<a class="code" href="classclang_1_1Selector.html#a0c56d387ecb718cc92340804fc575979" title="Derive the full selector name (e.g. "foo:bar:") and return it as an std::string.">getAsString</a>() << <span class="stringliteral">"' cannot be nil"</span>;</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>       } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>         os << <span class="stringliteral">"Argument to '"</span> << <a class="code" href="BasicObjCFoundationChecks_8cpp.html#ab91fe16a4acf42262c10101f460a4e25">GetReceiverInterfaceName</a>(msg) << <span class="stringliteral">"' method '"</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>         << msg.<a class="code" href="classclang_1_1ObjCMethodCall.html#a60e54f95046b7e000d1960c66c162462">getSelector</a>().<a class="code" href="classclang_1_1Selector.html#a0c56d387ecb718cc92340804fc575979" title="Derive the full selector name (e.g. "foo:bar:") and return it as an std::string.">getAsString</a>() << <span class="stringliteral">"' cannot be nil"</span>;</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>     </div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>     generateBugReport(N, os.str(), msg.getArgSourceRange(Arg),</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>                       msg.<a class="code" href="classclang_1_1ObjCMethodCall.html#a3d8a8ee4d9d449b0f6776123492911ab">getArgExpr</a>(Arg), C);</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>   }</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span> }</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span> </div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span> <span class="keywordtype">void</span> NilArgChecker::generateBugReport(<a class="code" href="classclang_1_1ento_1_1ExplodedNode.html">ExplodedNode</a> *N,</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>                                       StringRef Msg,</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>                                       <a class="code" href="classclang_1_1SourceRange.html" title="A trival tuple used to represent a source range.">SourceRange</a> Range,</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>                                       <span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *E,</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>                                       <a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>   <span class="keywordflow">if</span> (!BT)</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>     BT.reset(<span class="keyword">new</span> APIMisuse(<span class="stringliteral">"nil argument"</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>   <a class="code" href="classclang_1_1ento_1_1BugReport.html">BugReport</a> *R = <span class="keyword">new</span> <a class="code" href="classclang_1_1ento_1_1BugReport.html">BugReport</a>(*BT, Msg, N);</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>   R-><a class="code" href="classclang_1_1ento_1_1BugReport.html#a31f1757d10fc4f936ea143a894e51f39" title="Add a range to a bug report.">addRange</a>(Range);</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>   <a class="code" href="namespaceclang_1_1ento_1_1bugreporter.html#a532da89ff4c3d8214a04da342a553dc5">bugreporter::trackNullOrUndefValue</a>(N, E, *R);</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>   C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#ae7738af2cbfd1d713edec33d3203dff5" title="Emit the diagnostics report.">emitReport</a>(R);</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span> }</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span> </div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span> <span class="keywordtype">void</span> NilArgChecker::checkPreObjCMessage(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodCall.html" title="Represents any expression that calls an Objective-C method.">ObjCMethodCall</a> &msg,</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>                                         <a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *<a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a> = msg.<a class="code" href="classclang_1_1ObjCMethodCall.html#a77809ae142f65cb2f8352d8f416e61db" title="Get the interface for the receiver.">getReceiverInterface</a>();</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>   <span class="keywordflow">if</span> (!ID)</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span> </div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>   <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6">FoundationClass</a> Class = <a class="code" href="BasicObjCFoundationChecks_8cpp.html#a2a4e44325df6137bd11b14a88e025dcc">findKnownClass</a>(ID);</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span> </div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span>   <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> InvalidArgIndex = <a class="code" href="limits_8h.html#ac998ea02fbd821fc123d60445ce76f38">UINT_MAX</a>;</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span>   <span class="keywordtype">unsigned</span> Arg = InvalidArgIndex;</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>   <span class="keywordtype">bool</span> CanBeSubscript = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>   </div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>   <span class="keywordflow">if</span> (Class == <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6a9bc9a52cef75b57a1891076b8b08cb4c">FC_NSString</a>) {</div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span>     <a class="code" href="classclang_1_1Selector.html" title="Smart pointer class that efficiently represents Objective-C method names.">Selector</a> <a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a> = msg.<a class="code" href="classclang_1_1ObjCMethodCall.html#a60e54f95046b7e000d1960c66c162462">getSelector</a>();</div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span>     </div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>     <span class="keywordflow">if</span> (S.<a class="code" href="classclang_1_1Selector.html#a27ff9883d243e82c10340d6146e49a7a">isUnarySelector</a>())</div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span>     </div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span>     <span class="comment">// FIXME: This is going to be really slow doing these checks with</span></div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>     <span class="comment">//  lexical comparisons.</span></div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>     </div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>     std::string NameStr = S.<a class="code" href="classclang_1_1Selector.html#a0c56d387ecb718cc92340804fc575979" title="Derive the full selector name (e.g. "foo:bar:") and return it as an std::string.">getAsString</a>();</div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span>     StringRef Name(NameStr);</div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span>     assert(!Name.empty());</div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span>     </div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>     <span class="comment">// FIXME: Checking for initWithFormat: will not work in most cases</span></div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>     <span class="comment">//  yet because [NSString alloc] returns id, not NSString*.  We will</span></div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>     <span class="comment">//  need support for tracking expected-type information in the analyzer</span></div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>     <span class="comment">//  to find these errors.</span></div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span>     <span class="keywordflow">if</span> (Name == <span class="stringliteral">"caseInsensitiveCompare:"</span> ||</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span>         Name == <span class="stringliteral">"compare:"</span> ||</div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span>         Name == <span class="stringliteral">"compare:options:"</span> ||</div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span>         Name == <span class="stringliteral">"compare:options:range:"</span> ||</div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span>         Name == <span class="stringliteral">"compare:options:range:locale:"</span> ||</div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span>         Name == <span class="stringliteral">"componentsSeparatedByCharactersInSet:"</span> ||</div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>         Name == <span class="stringliteral">"initWithFormat:"</span>) {</div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span>       Arg = 0;</div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span>     }</div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Class == <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6a870bd58d814cca18f0b4784e3bee5232">FC_NSArray</a>) {</div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span>     <a class="code" href="classclang_1_1Selector.html" title="Smart pointer class that efficiently represents Objective-C method names.">Selector</a> S = msg.<a class="code" href="classclang_1_1ObjCMethodCall.html#a60e54f95046b7e000d1960c66c162462">getSelector</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="keywordflow">if</span> (S.<a class="code" href="classclang_1_1Selector.html#a27ff9883d243e82c10340d6146e49a7a">isUnarySelector</a>())</div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span>       <span class="keywordflow">return</span>;</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>     <span class="keywordflow">if</span> (S.<a class="code" href="classclang_1_1Selector.html#aa64896d1220d9750ecb2553af301971f" title="Retrieve the name at a given position in the selector.">getNameForSlot</a>(0).equals(<span class="stringliteral">"addObject"</span>)) {</div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span>       Arg = 0;</div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (S.<a class="code" href="classclang_1_1Selector.html#aa64896d1220d9750ecb2553af301971f" title="Retrieve the name at a given position in the selector.">getNameForSlot</a>(0).equals(<span class="stringliteral">"insertObject"</span>) &&</div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span>                S.<a class="code" href="classclang_1_1Selector.html#aa64896d1220d9750ecb2553af301971f" title="Retrieve the name at a given position in the selector.">getNameForSlot</a>(1).equals(<span class="stringliteral">"atIndex"</span>)) {</div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span>       Arg = 0;</div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (S.<a class="code" href="classclang_1_1Selector.html#aa64896d1220d9750ecb2553af301971f" title="Retrieve the name at a given position in the selector.">getNameForSlot</a>(0).equals(<span class="stringliteral">"replaceObjectAtIndex"</span>) &&</div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span>                S.<a class="code" href="classclang_1_1Selector.html#aa64896d1220d9750ecb2553af301971f" title="Retrieve the name at a given position in the selector.">getNameForSlot</a>(1).equals(<span class="stringliteral">"withObject"</span>)) {</div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span>       Arg = 1;</div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (S.<a class="code" href="classclang_1_1Selector.html#aa64896d1220d9750ecb2553af301971f" title="Retrieve the name at a given position in the selector.">getNameForSlot</a>(0).equals(<span class="stringliteral">"setObject"</span>) &&</div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span>                S.<a class="code" href="classclang_1_1Selector.html#aa64896d1220d9750ecb2553af301971f" title="Retrieve the name at a given position in the selector.">getNameForSlot</a>(1).equals(<span class="stringliteral">"atIndexedSubscript"</span>)) {</div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span>       Arg = 0;</div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span>       CanBeSubscript = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (S.<a class="code" href="classclang_1_1Selector.html#aa64896d1220d9750ecb2553af301971f" title="Retrieve the name at a given position in the selector.">getNameForSlot</a>(0).equals(<span class="stringliteral">"arrayByAddingObject"</span>)) {</div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span>       Arg = 0;</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>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Class == <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6aecf88e14bd4e5e2b01aa69eaff87aa04">FC_NSDictionary</a>) {</div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span>     <a class="code" href="classclang_1_1Selector.html" title="Smart pointer class that efficiently represents Objective-C method names.">Selector</a> S = msg.<a class="code" href="classclang_1_1ObjCMethodCall.html#a60e54f95046b7e000d1960c66c162462">getSelector</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>     <span class="keywordflow">if</span> (S.<a class="code" href="classclang_1_1Selector.html#a27ff9883d243e82c10340d6146e49a7a">isUnarySelector</a>())</div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span> </div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span>     <span class="keywordflow">if</span> (S.<a class="code" href="classclang_1_1Selector.html#aa64896d1220d9750ecb2553af301971f" title="Retrieve the name at a given position in the selector.">getNameForSlot</a>(0).equals(<span class="stringliteral">"dictionaryWithObject"</span>) &&</div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span>         S.<a class="code" href="classclang_1_1Selector.html#aa64896d1220d9750ecb2553af301971f" title="Retrieve the name at a given position in the selector.">getNameForSlot</a>(1).equals(<span class="stringliteral">"forKey"</span>)) {</div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span>       Arg = 0;</div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span>       warnIfNilArg(C, msg, <span class="comment">/* Arg */</span>1, Class);</div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (S.<a class="code" href="classclang_1_1Selector.html#aa64896d1220d9750ecb2553af301971f" title="Retrieve the name at a given position in the selector.">getNameForSlot</a>(0).equals(<span class="stringliteral">"setObject"</span>) &&</div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span>                S.<a class="code" href="classclang_1_1Selector.html#aa64896d1220d9750ecb2553af301971f" title="Retrieve the name at a given position in the selector.">getNameForSlot</a>(1).equals(<span class="stringliteral">"forKey"</span>)) {</div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span>       Arg = 0;</div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span>       warnIfNilArg(C, msg, <span class="comment">/* Arg */</span>1, Class);</div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (S.<a class="code" href="classclang_1_1Selector.html#aa64896d1220d9750ecb2553af301971f" title="Retrieve the name at a given position in the selector.">getNameForSlot</a>(0).equals(<span class="stringliteral">"setObject"</span>) &&</div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span>                S.<a class="code" href="classclang_1_1Selector.html#aa64896d1220d9750ecb2553af301971f" title="Retrieve the name at a given position in the selector.">getNameForSlot</a>(1).equals(<span class="stringliteral">"forKeyedSubscript"</span>)) {</div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span>       CanBeSubscript = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span>       Arg = 0;</div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span>       warnIfNilArg(C, msg, <span class="comment">/* Arg */</span>1, Class, CanBeSubscript);</div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span>     } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (S.<a class="code" href="classclang_1_1Selector.html#aa64896d1220d9750ecb2553af301971f" title="Retrieve the name at a given position in the selector.">getNameForSlot</a>(0).equals(<span class="stringliteral">"removeObjectForKey"</span>)) {</div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span>       Arg = 0;</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>   }</div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span> </div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span>   <span class="comment">// If argument is '0', report a warning.</span></div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span>   <span class="keywordflow">if</span> ((Arg != InvalidArgIndex))</div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span>     warnIfNilArg(C, msg, Arg, Class, CanBeSubscript);</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">  287</span> </div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span> <span class="keywordtype">void</span> NilArgChecker::checkPostStmt(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCArrayLiteral.html">ObjCArrayLiteral</a> *AL,</div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span>                                   <a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span>   <span class="keywordtype">unsigned</span> NumOfElements = AL-><a class="code" href="classclang_1_1ObjCArrayLiteral.html#a3f7ac85eb0aca575940ae1551c6f2d0f" title="getNumElements - Return number of elements of objective-c array literal.">getNumElements</a>();</div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i < NumOfElements; ++i) {</div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span>     warnIfNilExpr(AL-><a class="code" href="classclang_1_1ObjCArrayLiteral.html#ad597d76758a8cfea7d67918b3a0d8b16" title="getExpr - Return the Expr at the specified index.">getElement</a>(i), <span class="stringliteral">"Array element cannot be nil"</span>, C);</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> </div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span> <span class="keywordtype">void</span> NilArgChecker::checkPostStmt(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCDictionaryLiteral.html">ObjCDictionaryLiteral</a> *DL,</div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span>                                   <a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span>   <span class="keywordtype">unsigned</span> NumOfElements = DL-><a class="code" href="classclang_1_1ObjCDictionaryLiteral.html#aef9e73035eb6a8fdf38fd81809eeb514">getNumElements</a>();</div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i < NumOfElements; ++i) {</div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span>     <a class="code" href="structclang_1_1ObjCDictionaryElement.html" title="An element in an Objective-C dictionary literal.">ObjCDictionaryElement</a> Element = DL-><a class="code" href="classclang_1_1ObjCDictionaryLiteral.html#ae2889ca5ab2ab4c6eab1b5892fe790cf">getKeyValueElement</a>(i);</div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span>     warnIfNilExpr(Element.<a class="code" href="structclang_1_1ObjCDictionaryElement.html#ae19b4fe17956b4c452068a05c52f99ce" title="The key for the dictionary element.">Key</a>, <span class="stringliteral">"Dictionary key cannot be nil"</span>, C);</div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span>     warnIfNilExpr(Element.<a class="code" href="structclang_1_1ObjCDictionaryElement.html#a4b07b000d1fb894e24f9f9fa04f1452d" title="The value of the dictionary element.">Value</a>, <span class="stringliteral">"Dictionary value cannot be nil"</span>, C);</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> }</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> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span> <span class="comment">// Error reporting.</span></div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span> </div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span> <span class="keyword">namespace </span>{</div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span> <span class="keyword">class </span>CFNumberCreateChecker : <span class="keyword">public</span> <a class="code" href="classclang_1_1ento_1_1Checker.html">Checker</a>< check::PreStmt<CallExpr> > {</div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span>   <span class="keyword">mutable</span> <a class="code" href="classllvm_1_1OwningPtr.html">OwningPtr<APIMisuse></a> BT;</div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span>   <span class="keyword">mutable</span> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a>* II;</div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span>   CFNumberCreateChecker() : II(0) {}</div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span> </div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span>   <span class="keywordtype">void</span> checkPreStmt(<span class="keyword">const</span> <a class="code" href="classclang_1_1CallExpr.html">CallExpr</a> *CE, <a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span> </div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span>   <span class="keywordtype">void</span> EmitError(<span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1TypedRegion.html" title="TypedRegion - An abstract class representing regions that are typed.">TypedRegion</a>* R, <span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *Ex,</div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span>                 uint64_t SourceSize, uint64_t TargetSize, uint64_t NumberKind);</div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span> };</div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span> } <span class="comment">// end anonymous namespace</span></div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span> </div>
+<div class="line"><a name="l00325"></a><span class="lineno"><a class="code" href="BasicObjCFoundationChecks_8cpp.html#aeafd274469fc040dcc2bcda1c73fde3c">  325</a></span> <span class="keyword">enum</span> <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aeafd274469fc040dcc2bcda1c73fde3c">CFNumberType</a> {</div>
+<div class="line"><a name="l00326"></a><span class="lineno"><a class="code" href="BasicObjCFoundationChecks_8cpp.html#aeafd274469fc040dcc2bcda1c73fde3caa0145b6ea8a961a1f1e9751841f0305f">  326</a></span>   <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aeafd274469fc040dcc2bcda1c73fde3caa0145b6ea8a961a1f1e9751841f0305f">kCFNumberSInt8Type</a> = 1,</div>
+<div class="line"><a name="l00327"></a><span class="lineno"><a class="code" href="BasicObjCFoundationChecks_8cpp.html#aeafd274469fc040dcc2bcda1c73fde3ca1eaa671d044b83c99c8e1683f9fe862d">  327</a></span>   <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aeafd274469fc040dcc2bcda1c73fde3ca1eaa671d044b83c99c8e1683f9fe862d">kCFNumberSInt16Type</a> = 2,</div>
+<div class="line"><a name="l00328"></a><span class="lineno"><a class="code" href="BasicObjCFoundationChecks_8cpp.html#aeafd274469fc040dcc2bcda1c73fde3ca77835c5f2922e1369a87de743d1715b4">  328</a></span>   <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aeafd274469fc040dcc2bcda1c73fde3ca77835c5f2922e1369a87de743d1715b4">kCFNumberSInt32Type</a> = 3,</div>
+<div class="line"><a name="l00329"></a><span class="lineno"><a class="code" href="BasicObjCFoundationChecks_8cpp.html#aeafd274469fc040dcc2bcda1c73fde3ca788cf5499d3d5693a5c312186dedf501">  329</a></span>   <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aeafd274469fc040dcc2bcda1c73fde3ca788cf5499d3d5693a5c312186dedf501">kCFNumberSInt64Type</a> = 4,</div>
+<div class="line"><a name="l00330"></a><span class="lineno"><a class="code" href="BasicObjCFoundationChecks_8cpp.html#aeafd274469fc040dcc2bcda1c73fde3ca6480f40bb3bdbaa959017dc2982dab4d">  330</a></span>   <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aeafd274469fc040dcc2bcda1c73fde3ca6480f40bb3bdbaa959017dc2982dab4d">kCFNumberFloat32Type</a> = 5,</div>
+<div class="line"><a name="l00331"></a><span class="lineno"><a class="code" href="BasicObjCFoundationChecks_8cpp.html#aeafd274469fc040dcc2bcda1c73fde3cad098660838d3af77e5a769023cd4e29b">  331</a></span>   <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aeafd274469fc040dcc2bcda1c73fde3cad098660838d3af77e5a769023cd4e29b">kCFNumberFloat64Type</a> = 6,</div>
+<div class="line"><a name="l00332"></a><span class="lineno"><a class="code" href="BasicObjCFoundationChecks_8cpp.html#aeafd274469fc040dcc2bcda1c73fde3cac74be8449e505171ffbc73f4577a9a21">  332</a></span>   <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aeafd274469fc040dcc2bcda1c73fde3cac74be8449e505171ffbc73f4577a9a21">kCFNumberCharType</a> = 7,</div>
+<div class="line"><a name="l00333"></a><span class="lineno"><a class="code" href="BasicObjCFoundationChecks_8cpp.html#aeafd274469fc040dcc2bcda1c73fde3ca8b60e34093e6f6ebc610ccebbd89d671">  333</a></span>   <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aeafd274469fc040dcc2bcda1c73fde3ca8b60e34093e6f6ebc610ccebbd89d671">kCFNumberShortType</a> = 8,</div>
+<div class="line"><a name="l00334"></a><span class="lineno"><a class="code" href="BasicObjCFoundationChecks_8cpp.html#aeafd274469fc040dcc2bcda1c73fde3ca0cdbcedf04d27cb83e79643d9b062bfc">  334</a></span>   <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aeafd274469fc040dcc2bcda1c73fde3ca0cdbcedf04d27cb83e79643d9b062bfc">kCFNumberIntType</a> = 9,</div>
+<div class="line"><a name="l00335"></a><span class="lineno"><a class="code" href="BasicObjCFoundationChecks_8cpp.html#aeafd274469fc040dcc2bcda1c73fde3ca0c6248717ad6dd44dfad938c2933df0b">  335</a></span>   <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aeafd274469fc040dcc2bcda1c73fde3ca0c6248717ad6dd44dfad938c2933df0b">kCFNumberLongType</a> = 10,</div>
+<div class="line"><a name="l00336"></a><span class="lineno"><a class="code" href="BasicObjCFoundationChecks_8cpp.html#aeafd274469fc040dcc2bcda1c73fde3caaedbab9e9d68ce464701ea1a5f275c25">  336</a></span>   <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aeafd274469fc040dcc2bcda1c73fde3caaedbab9e9d68ce464701ea1a5f275c25">kCFNumberLongLongType</a> = 11,</div>
+<div class="line"><a name="l00337"></a><span class="lineno"><a class="code" href="BasicObjCFoundationChecks_8cpp.html#aeafd274469fc040dcc2bcda1c73fde3ca04dbd5a916bf33d5558e336b9da5b8bd">  337</a></span>   <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aeafd274469fc040dcc2bcda1c73fde3ca04dbd5a916bf33d5558e336b9da5b8bd">kCFNumberFloatType</a> = 12,</div>
+<div class="line"><a name="l00338"></a><span class="lineno"><a class="code" href="BasicObjCFoundationChecks_8cpp.html#aeafd274469fc040dcc2bcda1c73fde3ca4b0051937822479f84f0f1b3f5a70379">  338</a></span>   <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aeafd274469fc040dcc2bcda1c73fde3ca4b0051937822479f84f0f1b3f5a70379">kCFNumberDoubleType</a> = 13,</div>
+<div class="line"><a name="l00339"></a><span class="lineno"><a class="code" href="BasicObjCFoundationChecks_8cpp.html#aeafd274469fc040dcc2bcda1c73fde3cad9e08e5b2a8cb1dc5e48ba32c1185bf3">  339</a></span>   <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aeafd274469fc040dcc2bcda1c73fde3cad9e08e5b2a8cb1dc5e48ba32c1185bf3">kCFNumberCFIndexType</a> = 14,</div>
+<div class="line"><a name="l00340"></a><span class="lineno"><a class="code" href="BasicObjCFoundationChecks_8cpp.html#aeafd274469fc040dcc2bcda1c73fde3cad379f14657042d675f7d2b232075c784">  340</a></span>   <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aeafd274469fc040dcc2bcda1c73fde3cad379f14657042d675f7d2b232075c784">kCFNumberNSIntegerType</a> = 15,</div>
+<div class="line"><a name="l00341"></a><span class="lineno"><a class="code" href="BasicObjCFoundationChecks_8cpp.html#aeafd274469fc040dcc2bcda1c73fde3caf2aa50f69972b4d8ee3d1788237b33b1">  341</a></span>   <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aeafd274469fc040dcc2bcda1c73fde3caf2aa50f69972b4d8ee3d1788237b33b1">kCFNumberCGFloatType</a> = 16</div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span> };</div>
+<div class="line"><a name="l00343"></a><span class="lineno">  343</span> </div>
+<div class="line"><a name="l00344"></a><span class="lineno"><a class="code" href="BasicObjCFoundationChecks_8cpp.html#a4ab916b32ee1b52d606d73f809af02c9">  344</a></span> <span class="keyword">static</span> <a class="code" href="classllvm_1_1Optional.html">Optional<uint64_t></a> <a class="code" href="BasicObjCFoundationChecks_8cpp.html#a4ab916b32ee1b52d606d73f809af02c9">GetCFNumberSize</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, uint64_t i) {</div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span>   <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> FixedSize[] = { 8, 16, 32, 64, 32, 64 };</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="keywordflow">if</span> (i < <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aeafd274469fc040dcc2bcda1c73fde3cac74be8449e505171ffbc73f4577a9a21">kCFNumberCharType</a>)</div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span>     <span class="keywordflow">return</span> FixedSize[i-1];</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>   <a class="code" href="classclang_1_1QualType.html">QualType</a> T;</div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span> </div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span>   <span class="keywordflow">switch</span> (i) {</div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span>     <span class="keywordflow">case</span> <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aeafd274469fc040dcc2bcda1c73fde3cac74be8449e505171ffbc73f4577a9a21">kCFNumberCharType</a>:     T = Ctx.<a class="code" href="classclang_1_1ASTContext.html#a80ed5a736a74c76bbbd66b90821d1689">CharTy</a>;     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span>     <span class="keywordflow">case</span> <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aeafd274469fc040dcc2bcda1c73fde3ca8b60e34093e6f6ebc610ccebbd89d671">kCFNumberShortType</a>:    T = Ctx.<a class="code" href="classclang_1_1ASTContext.html#ac369991763a2aa6bf9a8a3ded653afd8">ShortTy</a>;    <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span>     <span class="keywordflow">case</span> <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aeafd274469fc040dcc2bcda1c73fde3ca0cdbcedf04d27cb83e79643d9b062bfc">kCFNumberIntType</a>:      T = Ctx.<a class="code" href="classclang_1_1ASTContext.html#a873a1148a8ffe184f0e5bd27bf90c0dc">IntTy</a>;      <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span>     <span class="keywordflow">case</span> <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aeafd274469fc040dcc2bcda1c73fde3ca0c6248717ad6dd44dfad938c2933df0b">kCFNumberLongType</a>:     T = Ctx.<a class="code" href="classclang_1_1ASTContext.html#a0ba7f01d5d975ce7f18b482b052f10fb">LongTy</a>;     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span>     <span class="keywordflow">case</span> <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aeafd274469fc040dcc2bcda1c73fde3caaedbab9e9d68ce464701ea1a5f275c25">kCFNumberLongLongType</a>: T = Ctx.<a class="code" href="classclang_1_1ASTContext.html#adca2e7646f51ee1e280cfad7b108bc60">LongLongTy</a>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span>     <span class="keywordflow">case</span> <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aeafd274469fc040dcc2bcda1c73fde3ca04dbd5a916bf33d5558e336b9da5b8bd">kCFNumberFloatType</a>:    T = Ctx.<a class="code" href="classclang_1_1ASTContext.html#a30d239b8f8a7995d23cb4349038fa74f">FloatTy</a>;    <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00359"></a><span class="lineno">  359</span>     <span class="keywordflow">case</span> <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aeafd274469fc040dcc2bcda1c73fde3ca4b0051937822479f84f0f1b3f5a70379">kCFNumberDoubleType</a>:   T = Ctx.<a class="code" href="classclang_1_1ASTContext.html#a366594144d93311decc086cb980d69c2">DoubleTy</a>;   <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span>     <span class="keywordflow">case</span> <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aeafd274469fc040dcc2bcda1c73fde3cad9e08e5b2a8cb1dc5e48ba32c1185bf3">kCFNumberCFIndexType</a>:</div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span>     <span class="keywordflow">case</span> <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aeafd274469fc040dcc2bcda1c73fde3cad379f14657042d675f7d2b232075c784">kCFNumberNSIntegerType</a>:</div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span>     <span class="keywordflow">case</span> <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aeafd274469fc040dcc2bcda1c73fde3caf2aa50f69972b4d8ee3d1788237b33b1">kCFNumberCGFloatType</a>:</div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span>       <span class="comment">// FIXME: We need a way to map from names to Type*.</span></div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span>     <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span>       <span class="keywordflow">return</span> None;</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> </div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span>   <span class="keywordflow">return</span> Ctx.<a class="code" href="classclang_1_1ASTContext.html#a3e16bd856974e4ac9710e0c507a60cee" title="Return the size of the specified (complete) type T, in bits.">getTypeSize</a>(T);</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">  371</span> <span class="preprocessor">#if 0</span></div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span> <span class="preprocessor"></span><span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* GetCFNumberTypeStr(uint64_t i) {</div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span>   <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* Names[] = {</div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span>     <span class="stringliteral">"kCFNumberSInt8Type"</span>,</div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span>     <span class="stringliteral">"kCFNumberSInt16Type"</span>,</div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span>     <span class="stringliteral">"kCFNumberSInt32Type"</span>,</div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span>     <span class="stringliteral">"kCFNumberSInt64Type"</span>,</div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span>     <span class="stringliteral">"kCFNumberFloat32Type"</span>,</div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span>     <span class="stringliteral">"kCFNumberFloat64Type"</span>,</div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span>     <span class="stringliteral">"kCFNumberCharType"</span>,</div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span>     <span class="stringliteral">"kCFNumberShortType"</span>,</div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span>     <span class="stringliteral">"kCFNumberIntType"</span>,</div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span>     <span class="stringliteral">"kCFNumberLongType"</span>,</div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span>     <span class="stringliteral">"kCFNumberLongLongType"</span>,</div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span>     <span class="stringliteral">"kCFNumberFloatType"</span>,</div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span>     <span class="stringliteral">"kCFNumberDoubleType"</span>,</div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span>     <span class="stringliteral">"kCFNumberCFIndexType"</span>,</div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span>     <span class="stringliteral">"kCFNumberNSIntegerType"</span>,</div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span>     <span class="stringliteral">"kCFNumberCGFloatType"</span></div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span>   };</div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span> </div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span>   <span class="keywordflow">return</span> i <= <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aeafd274469fc040dcc2bcda1c73fde3caf2aa50f69972b4d8ee3d1788237b33b1">kCFNumberCGFloatType</a> ? Names[i-1] : <span class="stringliteral">"Invalid CFNumberType"</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">  394</span> <span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00396"></a><span class="lineno">  396</span> <span class="keywordtype">void</span> CFNumberCreateChecker::checkPreStmt(<span class="keyword">const</span> <a class="code" href="classclang_1_1CallExpr.html">CallExpr</a> *CE,</div>
+<div class="line"><a name="l00397"></a><span class="lineno">  397</span>                                          <a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span>   <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">ProgramStateRef</a> state = C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a81bd66f80b18117a9a64a8d0daa62825">getState</a>();</div>
+<div class="line"><a name="l00399"></a><span class="lineno">  399</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1FunctionDecl.html">FunctionDecl</a> *FD = C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a2a0e7306ff0eb1f79a33db7539516632" title="Get the declaration of the called function (path-sensitive).">getCalleeDecl</a>(CE);</div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span>   <span class="keywordflow">if</span> (!FD)</div>
+<div class="line"><a name="l00401"></a><span class="lineno">  401</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00402"></a><span class="lineno">  402</span>   </div>
+<div class="line"><a name="l00403"></a><span class="lineno">  403</span>   <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 = C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#ae6c98ff68628991ee1d07ad7d848b41f">getASTContext</a>();</div>
+<div class="line"><a name="l00404"></a><span class="lineno">  404</span>   <span class="keywordflow">if</span> (!II)</div>
+<div class="line"><a name="l00405"></a><span class="lineno">  405</span>     II = &Ctx.<a class="code" href="classclang_1_1ASTContext.html#a4f95adb9958e22fbe55212ae6482feb4">Idents</a>.<a class="code" href="classclang_1_1IdentifierTable.html#aea14376d325400caa8a8183d14a02f39" title="Return the identifier token info for the specified named identifier.">get</a>(<span class="stringliteral">"CFNumberCreate"</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="keywordflow">if</span> (FD-><a class="code" href="classclang_1_1NamedDecl.html#a554752f8f43eea0e6288da7205167fe2">getIdentifier</a>() != II || CE-><a class="code" href="classclang_1_1CallExpr.html#a244fff3c657a825bbfe3771137c8fb83">getNumArgs</a>() != 3)</div>
+<div class="line"><a name="l00408"></a><span class="lineno">  408</span>     <span class="keywordflow">return</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="comment">// Get the value of the "theType" argument.</span></div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1LocationContext.html">LocationContext</a> *LCtx = C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a7581c66c5849fab4a40b321024c9c136">getLocationContext</a>();</div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span>   <a class="code" href="classclang_1_1ento_1_1SVal.html">SVal</a> TheTypeVal = state->getSVal(CE-><a class="code" href="classclang_1_1CallExpr.html#aa454d6f1e76623da60451885239f63c6" title="getArg - Return the specified argument.">getArg</a>(1), LCtx);</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">// FIXME: We really should allow ranges of valid theType values, and</span></div>
+<div class="line"><a name="l00415"></a><span class="lineno">  415</span>   <span class="comment">//   bifurcate the state appropriately.</span></div>
+<div class="line"><a name="l00416"></a><span class="lineno">  416</span>   <a class="code" href="classllvm_1_1Optional.html">Optional<nonloc::ConcreteInt></a> V = TheTypeVal.<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="l00417"></a><span class="lineno">  417</span>   <span class="keywordflow">if</span> (!V)</div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span> </div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span>   uint64_t NumberKind = V->getValue().getLimitedValue();</div>
+<div class="line"><a name="l00421"></a><span class="lineno">  421</span>   <a class="code" href="classllvm_1_1Optional.html">Optional<uint64_t></a> OptTargetSize = <a class="code" href="BasicObjCFoundationChecks_8cpp.html#a4ab916b32ee1b52d606d73f809af02c9">GetCFNumberSize</a>(Ctx, NumberKind);</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">// FIXME: In some cases we can emit an error.</span></div>
+<div class="line"><a name="l00424"></a><span class="lineno">  424</span>   <span class="keywordflow">if</span> (!OptTargetSize)</div>
+<div class="line"><a name="l00425"></a><span class="lineno">  425</span>     <span class="keywordflow">return</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>   uint64_t TargetSize = *OptTargetSize;</div>
+<div class="line"><a name="l00428"></a><span class="lineno">  428</span> </div>
+<div class="line"><a name="l00429"></a><span class="lineno">  429</span>   <span class="comment">// Look at the value of the integer being passed by reference.  Essentially</span></div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span>   <span class="comment">// we want to catch cases where the value passed in is not equal to the</span></div>
+<div class="line"><a name="l00431"></a><span class="lineno">  431</span>   <span class="comment">// size of the type being created.</span></div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span>   <a class="code" href="classclang_1_1ento_1_1SVal.html">SVal</a> TheValueExpr = state->getSVal(CE-><a class="code" href="classclang_1_1CallExpr.html#aa454d6f1e76623da60451885239f63c6" title="getArg - Return the specified argument.">getArg</a>(2), LCtx);</div>
+<div class="line"><a name="l00433"></a><span class="lineno">  433</span> </div>
+<div class="line"><a name="l00434"></a><span class="lineno">  434</span>   <span class="comment">// FIXME: Eventually we should handle arbitrary locations.  We can do this</span></div>
+<div class="line"><a name="l00435"></a><span class="lineno">  435</span>   <span class="comment">//  by having an enhanced memory model that does low-level typing.</span></div>
+<div class="line"><a name="l00436"></a><span class="lineno">  436</span>   <a class="code" href="classllvm_1_1Optional.html">Optional<loc::MemRegionVal></a> LV = TheValueExpr.<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_1loc_1_1MemRegionVal.html">loc::MemRegionVal</a>>();</div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span>   <span class="keywordflow">if</span> (!LV)</div>
+<div class="line"><a name="l00438"></a><span class="lineno">  438</span>     <span class="keywordflow">return</span>;</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>   <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>* R = dyn_cast<<a class="code" href="classclang_1_1ento_1_1TypedValueRegion.html" title="TypedValueRegion - An abstract class representing regions having a typed value.">TypedValueRegion</a>>(LV->stripCasts());</div>
+<div class="line"><a name="l00441"></a><span class="lineno">  441</span>   <span class="keywordflow">if</span> (!R)</div>
+<div class="line"><a name="l00442"></a><span class="lineno">  442</span>     <span class="keywordflow">return</span>;</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>   <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>(R-><a class="code" href="classclang_1_1ento_1_1TypedValueRegion.html#a527b908a410f8b916205d6db9420969e">getValueType</a>());</div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span> </div>
+<div class="line"><a name="l00446"></a><span class="lineno">  446</span>   <span class="comment">// FIXME: If the pointee isn't an integer type, should we flag a warning?</span></div>
+<div class="line"><a name="l00447"></a><span class="lineno">  447</span>   <span class="comment">//  People can do weird stuff with pointers.</span></div>
+<div class="line"><a name="l00448"></a><span class="lineno">  448</span> </div>
+<div class="line"><a name="l00449"></a><span class="lineno">  449</span>   <span class="keywordflow">if</span> (!T-><a class="code" href="classclang_1_1Type.html#afa340c23f27a4a28f20bdf52d69a0a4c" title="Determine whether this type is an integral or enumeration type.">isIntegralOrEnumerationType</a>())</div>
+<div class="line"><a name="l00450"></a><span class="lineno">  450</span>     <span class="keywordflow">return</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">  452</span>   uint64_t SourceSize = Ctx.<a class="code" href="classclang_1_1ASTContext.html#a3e16bd856974e4ac9710e0c507a60cee" title="Return the size of the specified (complete) type T, in bits.">getTypeSize</a>(T);</div>
+<div class="line"><a name="l00453"></a><span class="lineno">  453</span> </div>
+<div class="line"><a name="l00454"></a><span class="lineno">  454</span>   <span class="comment">// CHECK: is SourceSize == TargetSize</span></div>
+<div class="line"><a name="l00455"></a><span class="lineno">  455</span>   <span class="keywordflow">if</span> (SourceSize == TargetSize)</div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00457"></a><span class="lineno">  457</span> </div>
+<div class="line"><a name="l00458"></a><span class="lineno">  458</span>   <span class="comment">// Generate an error.  Only generate a sink if 'SourceSize < TargetSize';</span></div>
+<div class="line"><a name="l00459"></a><span class="lineno">  459</span>   <span class="comment">// otherwise generate a regular node.</span></div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span>   <span class="comment">//</span></div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span>   <span class="comment">// FIXME: We can actually create an abstract "CFNumber" object that has</span></div>
+<div class="line"><a name="l00462"></a><span class="lineno">  462</span>   <span class="comment">//  the bits initialized to the provided values.</span></div>
+<div class="line"><a name="l00463"></a><span class="lineno">  463</span>   <span class="comment">//</span></div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1ento_1_1ExplodedNode.html">ExplodedNode</a> *N = SourceSize < TargetSize ? C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#adeea33a5a2bed190210c4a2bb807a6f0" title="Generate a sink node. Generating a sink stops exploration of the given path.">generateSink</a>() </div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span>                                                 : C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a264f48d97809707049689c37aa35af78" title="Generates a new transition in the program state graph (ExplodedGraph). Uses the default CheckerContex...">addTransition</a>()) {</div>
+<div class="line"><a name="l00466"></a><span class="lineno">  466</span>     <a class="code" href="classllvm_1_1SmallString.html">SmallString<128></a> sbuf;</div>
+<div class="line"><a name="l00467"></a><span class="lineno">  467</span>     llvm::raw_svector_ostream os(sbuf);</div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span>     </div>
+<div class="line"><a name="l00469"></a><span class="lineno">  469</span>     os << (SourceSize == 8 ? <span class="stringliteral">"An "</span> : <span class="stringliteral">"A "</span>)</div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span>        << SourceSize << <span class="stringliteral">" bit integer is used to initialize a CFNumber "</span></div>
+<div class="line"><a name="l00471"></a><span class="lineno">  471</span>                         <span class="stringliteral">"object that represents "</span></div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span>        << (TargetSize == 8 ? <span class="stringliteral">"an "</span> : <span class="stringliteral">"a "</span>)</div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span>        << TargetSize << <span class="stringliteral">" bit integer. "</span>;</div>
+<div class="line"><a name="l00474"></a><span class="lineno">  474</span>     </div>
+<div class="line"><a name="l00475"></a><span class="lineno">  475</span>     <span class="keywordflow">if</span> (SourceSize < TargetSize)</div>
+<div class="line"><a name="l00476"></a><span class="lineno">  476</span>       os << (TargetSize - SourceSize)</div>
+<div class="line"><a name="l00477"></a><span class="lineno">  477</span>       << <span class="stringliteral">" bits of the CFNumber value will be garbage."</span> ;</div>
+<div class="line"><a name="l00478"></a><span class="lineno">  478</span>     <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00479"></a><span class="lineno">  479</span>       os << (SourceSize - TargetSize)</div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span>       << <span class="stringliteral">" bits of the input integer will be lost."</span>;</div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span> </div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span>     <span class="keywordflow">if</span> (!BT)</div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span>       BT.reset(<span class="keyword">new</span> APIMisuse(<span class="stringliteral">"Bad use of CFNumberCreate"</span>));</div>
+<div class="line"><a name="l00484"></a><span class="lineno">  484</span>     </div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span>     <a class="code" href="classclang_1_1ento_1_1BugReport.html">BugReport</a> *report = <span class="keyword">new</span> <a class="code" href="classclang_1_1ento_1_1BugReport.html">BugReport</a>(*BT, os.str(), N);</div>
+<div class="line"><a name="l00486"></a><span class="lineno">  486</span>     report-><a class="code" href="classclang_1_1ento_1_1BugReport.html#a31f1757d10fc4f936ea143a894e51f39" title="Add a range to a bug report.">addRange</a>(CE-><a class="code" href="classclang_1_1CallExpr.html#aa454d6f1e76623da60451885239f63c6" title="getArg - Return the specified argument.">getArg</a>(2)-><a class="code" href="classclang_1_1Stmt.html#a6844392ee6148b5fe821f211b95e5d1b">getSourceRange</a>());</div>
+<div class="line"><a name="l00487"></a><span class="lineno">  487</span>     C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#ae7738af2cbfd1d713edec33d3203dff5" title="Emit the diagnostics report.">emitReport</a>(report);</div>
+<div class="line"><a name="l00488"></a><span class="lineno">  488</span>   }</div>
+<div class="line"><a name="l00489"></a><span class="lineno">  489</span> }</div>
+<div class="line"><a name="l00490"></a><span class="lineno">  490</span> </div>
+<div class="line"><a name="l00491"></a><span class="lineno">  491</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00492"></a><span class="lineno">  492</span> <span class="comment">// CFRetain/CFRelease/CFMakeCollectable checking for null arguments.</span></div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00494"></a><span class="lineno">  494</span> </div>
+<div class="line"><a name="l00495"></a><span class="lineno">  495</span> <span class="keyword">namespace </span>{</div>
+<div class="line"><a name="l00496"></a><span class="lineno">  496</span> <span class="keyword">class </span>CFRetainReleaseChecker : <span class="keyword">public</span> <a class="code" href="classclang_1_1ento_1_1Checker.html">Checker</a>< check::PreStmt<CallExpr> > {</div>
+<div class="line"><a name="l00497"></a><span class="lineno">  497</span>   <span class="keyword">mutable</span> <a class="code" href="classllvm_1_1OwningPtr.html">OwningPtr<APIMisuse></a> BT;</div>
+<div class="line"><a name="l00498"></a><span class="lineno">  498</span>   <span class="keyword">mutable</span> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *Retain, *Release, *<a class="code" href="namespaceclang_1_1ento_1_1objc__retain.html#aa00a91227772ff16132e17e0249d13fca528ecf99a1be2379cb53e6f540c56605">MakeCollectable</a>;</div>
+<div class="line"><a name="l00499"></a><span class="lineno">  499</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00500"></a><span class="lineno">  500</span>   CFRetainReleaseChecker(): Retain(0), Release(0), <a class="code" href="namespaceclang_1_1ento_1_1objc__retain.html#aa00a91227772ff16132e17e0249d13fca528ecf99a1be2379cb53e6f540c56605">MakeCollectable</a>(0) {}</div>
+<div class="line"><a name="l00501"></a><span class="lineno">  501</span>   <span class="keywordtype">void</span> checkPreStmt(<span class="keyword">const</span> <a class="code" href="classclang_1_1CallExpr.html">CallExpr</a> *CE, <a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00502"></a><span class="lineno">  502</span> };</div>
+<div class="line"><a name="l00503"></a><span class="lineno">  503</span> } <span class="comment">// end anonymous namespace</span></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">  506</span> <span class="keywordtype">void</span> CFRetainReleaseChecker::checkPreStmt(<span class="keyword">const</span> <a class="code" href="classclang_1_1CallExpr.html">CallExpr</a> *CE,</div>
+<div class="line"><a name="l00507"></a><span class="lineno">  507</span>                                           <a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00508"></a><span class="lineno">  508</span>   <span class="comment">// If the CallExpr doesn't have exactly 1 argument just give up checking.</span></div>
+<div class="line"><a name="l00509"></a><span class="lineno">  509</span>   <span class="keywordflow">if</span> (CE-><a class="code" href="classclang_1_1CallExpr.html#a244fff3c657a825bbfe3771137c8fb83">getNumArgs</a>() != 1)</div>
+<div class="line"><a name="l00510"></a><span class="lineno">  510</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00511"></a><span class="lineno">  511</span> </div>
+<div class="line"><a name="l00512"></a><span class="lineno">  512</span>   <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">ProgramStateRef</a> state = C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a81bd66f80b18117a9a64a8d0daa62825">getState</a>();</div>
+<div class="line"><a name="l00513"></a><span class="lineno">  513</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1FunctionDecl.html">FunctionDecl</a> *FD = C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a2a0e7306ff0eb1f79a33db7539516632" title="Get the declaration of the called function (path-sensitive).">getCalleeDecl</a>(CE);</div>
+<div class="line"><a name="l00514"></a><span class="lineno">  514</span>   <span class="keywordflow">if</span> (!FD)</div>
+<div class="line"><a name="l00515"></a><span class="lineno">  515</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00516"></a><span class="lineno">  516</span>   </div>
+<div class="line"><a name="l00517"></a><span class="lineno">  517</span>   <span class="keywordflow">if</span> (!BT) {</div>
+<div class="line"><a name="l00518"></a><span class="lineno">  518</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 = C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#ae6c98ff68628991ee1d07ad7d848b41f">getASTContext</a>();</div>
+<div class="line"><a name="l00519"></a><span class="lineno">  519</span>     Retain = &Ctx.<a class="code" href="classclang_1_1ASTContext.html#a4f95adb9958e22fbe55212ae6482feb4">Idents</a>.<a class="code" href="classclang_1_1IdentifierTable.html#aea14376d325400caa8a8183d14a02f39" title="Return the identifier token info for the specified named identifier.">get</a>(<span class="stringliteral">"CFRetain"</span>);</div>
+<div class="line"><a name="l00520"></a><span class="lineno">  520</span>     Release = &Ctx.<a class="code" href="classclang_1_1ASTContext.html#a4f95adb9958e22fbe55212ae6482feb4">Idents</a>.<a class="code" href="classclang_1_1IdentifierTable.html#aea14376d325400caa8a8183d14a02f39" title="Return the identifier token info for the specified named identifier.">get</a>(<span class="stringliteral">"CFRelease"</span>);</div>
+<div class="line"><a name="l00521"></a><span class="lineno">  521</span>     <a class="code" href="namespaceclang_1_1ento_1_1objc__retain.html#aa00a91227772ff16132e17e0249d13fca528ecf99a1be2379cb53e6f540c56605">MakeCollectable</a> = &Ctx.<a class="code" href="classclang_1_1ASTContext.html#a4f95adb9958e22fbe55212ae6482feb4">Idents</a>.<a class="code" href="classclang_1_1IdentifierTable.html#aea14376d325400caa8a8183d14a02f39" title="Return the identifier token info for the specified named identifier.">get</a>(<span class="stringliteral">"CFMakeCollectable"</span>);</div>
+<div class="line"><a name="l00522"></a><span class="lineno">  522</span>     BT.reset(</div>
+<div class="line"><a name="l00523"></a><span class="lineno">  523</span>       <span class="keyword">new</span> APIMisuse(<span class="stringliteral">"null passed to CFRetain/CFRelease/CFMakeCollectable"</span>));</div>
+<div class="line"><a name="l00524"></a><span class="lineno">  524</span>   }</div>
+<div class="line"><a name="l00525"></a><span class="lineno">  525</span> </div>
+<div class="line"><a name="l00526"></a><span class="lineno">  526</span>   <span class="comment">// Check if we called CFRetain/CFRelease/CFMakeCollectable.</span></div>
+<div class="line"><a name="l00527"></a><span class="lineno">  527</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *FuncII = FD-><a class="code" href="classclang_1_1NamedDecl.html#a554752f8f43eea0e6288da7205167fe2">getIdentifier</a>();</div>
+<div class="line"><a name="l00528"></a><span class="lineno">  528</span>   <span class="keywordflow">if</span> (!(FuncII == Retain || FuncII == Release || FuncII == <a class="code" href="namespaceclang_1_1ento_1_1objc__retain.html#aa00a91227772ff16132e17e0249d13fca528ecf99a1be2379cb53e6f540c56605">MakeCollectable</a>))</div>
+<div class="line"><a name="l00529"></a><span class="lineno">  529</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00530"></a><span class="lineno">  530</span> </div>
+<div class="line"><a name="l00531"></a><span class="lineno">  531</span>   <span class="comment">// FIXME: The rest of this just checks that the argument is non-null.</span></div>
+<div class="line"><a name="l00532"></a><span class="lineno">  532</span>   <span class="comment">// It should probably be refactored and combined with NonNullParamChecker.</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">  534</span>   <span class="comment">// Get the argument's value.</span></div>
+<div class="line"><a name="l00535"></a><span class="lineno">  535</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *Arg = CE-><a class="code" href="classclang_1_1CallExpr.html#aa454d6f1e76623da60451885239f63c6" title="getArg - Return the specified argument.">getArg</a>(0);</div>
+<div class="line"><a name="l00536"></a><span class="lineno">  536</span>   <a class="code" href="classclang_1_1ento_1_1SVal.html">SVal</a> ArgVal = state->getSVal(Arg, C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a7581c66c5849fab4a40b321024c9c136">getLocationContext</a>());</div>
+<div class="line"><a name="l00537"></a><span class="lineno">  537</span>   <a class="code" href="classllvm_1_1Optional.html">Optional<DefinedSVal></a> DefArgVal = ArgVal.<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_1DefinedSVal.html">DefinedSVal</a>>();</div>
+<div class="line"><a name="l00538"></a><span class="lineno">  538</span>   <span class="keywordflow">if</span> (!DefArgVal)</div>
+<div class="line"><a name="l00539"></a><span class="lineno">  539</span>     <span class="keywordflow">return</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>   <span class="comment">// Get a NULL value.</span></div>
+<div class="line"><a name="l00542"></a><span class="lineno">  542</span>   <a class="code" href="classclang_1_1ento_1_1SValBuilder.html">SValBuilder</a> &svalBuilder = C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a791437277a1f6304084fcd605ca3e4ee">getSValBuilder</a>();</div>
+<div class="line"><a name="l00543"></a><span class="lineno">  543</span>   <a class="code" href="classclang_1_1ento_1_1DefinedSVal.html">DefinedSVal</a> zero =</div>
+<div class="line"><a name="l00544"></a><span class="lineno">  544</span>       svalBuilder.<a class="code" href="classclang_1_1ento_1_1SValBuilder.html#a0ef9c6ec4c6b97119ca815ca2893329f" title="Construct an SVal representing '0' for the specified type.">makeZeroVal</a>(Arg-><a class="code" href="classclang_1_1Expr.html#a3dd8850a4ad8a5b5f595dd9e9446187b">getType</a>()).castAs<DefinedSVal>();</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">// Make an expression asserting that they're equal.</span></div>
+<div class="line"><a name="l00547"></a><span class="lineno">  547</span>   <a class="code" href="classclang_1_1ento_1_1DefinedOrUnknownSVal.html">DefinedOrUnknownSVal</a> ArgIsNull = svalBuilder.<a class="code" href="classclang_1_1ento_1_1SValBuilder.html#a0fe15b1c761ef0d65eef77566f31901a">evalEQ</a>(state, zero, *DefArgVal);</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>   <span class="comment">// Are they equal?</span></div>
+<div class="line"><a name="l00550"></a><span class="lineno">  550</span>   <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">ProgramStateRef</a> stateTrue, stateFalse;</div>
+<div class="line"><a name="l00551"></a><span class="lineno">  551</span>   llvm::tie(stateTrue, stateFalse) = state->assume(ArgIsNull);</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>   <span class="keywordflow">if</span> (stateTrue && !stateFalse) {</div>
+<div class="line"><a name="l00554"></a><span class="lineno">  554</span>     <a class="code" href="classclang_1_1ento_1_1ExplodedNode.html">ExplodedNode</a> *N = C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#adeea33a5a2bed190210c4a2bb807a6f0" title="Generate a sink node. Generating a sink stops exploration of the given path.">generateSink</a>(stateTrue);</div>
+<div class="line"><a name="l00555"></a><span class="lineno">  555</span>     <span class="keywordflow">if</span> (!N)</div>
+<div class="line"><a name="l00556"></a><span class="lineno">  556</span>       <span class="keywordflow">return</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">  558</span>     <span class="keyword">const</span> <span class="keywordtype">char</span> *description;</div>
+<div class="line"><a name="l00559"></a><span class="lineno">  559</span>     <span class="keywordflow">if</span> (FuncII == Retain)</div>
+<div class="line"><a name="l00560"></a><span class="lineno">  560</span>       description = <span class="stringliteral">"Null pointer argument in call to CFRetain"</span>;</div>
+<div class="line"><a name="l00561"></a><span class="lineno">  561</span>     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (FuncII == Release)</div>
+<div class="line"><a name="l00562"></a><span class="lineno">  562</span>       description = <span class="stringliteral">"Null pointer argument in call to CFRelease"</span>;</div>
+<div class="line"><a name="l00563"></a><span class="lineno">  563</span>     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (FuncII == <a class="code" href="namespaceclang_1_1ento_1_1objc__retain.html#aa00a91227772ff16132e17e0249d13fca528ecf99a1be2379cb53e6f540c56605">MakeCollectable</a>)</div>
+<div class="line"><a name="l00564"></a><span class="lineno">  564</span>       description = <span class="stringliteral">"Null pointer argument in call to CFMakeCollectable"</span>;</div>
+<div class="line"><a name="l00565"></a><span class="lineno">  565</span>     <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00566"></a><span class="lineno">  566</span>       llvm_unreachable(<span class="stringliteral">"impossible case"</span>);</div>
+<div class="line"><a name="l00567"></a><span class="lineno">  567</span> </div>
+<div class="line"><a name="l00568"></a><span class="lineno">  568</span>     <a class="code" href="classclang_1_1ento_1_1BugReport.html">BugReport</a> *report = <span class="keyword">new</span> <a class="code" href="classclang_1_1ento_1_1BugReport.html">BugReport</a>(*BT, description, N);</div>
+<div class="line"><a name="l00569"></a><span class="lineno">  569</span>     report-><a class="code" href="classclang_1_1ento_1_1BugReport.html#a31f1757d10fc4f936ea143a894e51f39" title="Add a range to a bug report.">addRange</a>(Arg-><a class="code" href="classclang_1_1Stmt.html#a6844392ee6148b5fe821f211b95e5d1b">getSourceRange</a>());</div>
+<div class="line"><a name="l00570"></a><span class="lineno">  570</span>     <a class="code" href="namespaceclang_1_1ento_1_1bugreporter.html#a532da89ff4c3d8214a04da342a553dc5">bugreporter::trackNullOrUndefValue</a>(N, Arg, *report);</div>
+<div class="line"><a name="l00571"></a><span class="lineno">  571</span>     C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#ae7738af2cbfd1d713edec33d3203dff5" title="Emit the diagnostics report.">emitReport</a>(report);</div>
+<div class="line"><a name="l00572"></a><span class="lineno">  572</span>     <span class="keywordflow">return</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> </div>
+<div class="line"><a name="l00575"></a><span class="lineno">  575</span>   <span class="comment">// From here on, we know the argument is non-null.</span></div>
+<div class="line"><a name="l00576"></a><span class="lineno">  576</span>   C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a264f48d97809707049689c37aa35af78" title="Generates a new transition in the program state graph (ExplodedGraph). Uses the default CheckerContex...">addTransition</a>(stateFalse);</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> </div>
+<div class="line"><a name="l00579"></a><span class="lineno">  579</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00580"></a><span class="lineno">  580</span> <span class="comment">// Check for sending 'retain', 'release', or 'autorelease' directly to a Class.</span></div>
+<div class="line"><a name="l00581"></a><span class="lineno">  581</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00582"></a><span class="lineno">  582</span> </div>
+<div class="line"><a name="l00583"></a><span class="lineno">  583</span> <span class="keyword">namespace </span>{</div>
+<div class="line"><a name="l00584"></a><span class="lineno">  584</span> <span class="keyword">class </span>ClassReleaseChecker : <span class="keyword">public</span> <a class="code" href="classclang_1_1ento_1_1Checker.html">Checker</a><check::PreObjCMessage> {</div>
+<div class="line"><a name="l00585"></a><span class="lineno">  585</span>   <span class="keyword">mutable</span> <a class="code" href="classclang_1_1Selector.html" title="Smart pointer class that efficiently represents Objective-C method names.">Selector</a> releaseS;</div>
+<div class="line"><a name="l00586"></a><span class="lineno">  586</span>   <span class="keyword">mutable</span> <a class="code" href="classclang_1_1Selector.html" title="Smart pointer class that efficiently represents Objective-C method names.">Selector</a> retainS;</div>
+<div class="line"><a name="l00587"></a><span class="lineno">  587</span>   <span class="keyword">mutable</span> <a class="code" href="classclang_1_1Selector.html" title="Smart pointer class that efficiently represents Objective-C method names.">Selector</a> autoreleaseS;</div>
+<div class="line"><a name="l00588"></a><span class="lineno">  588</span>   <span class="keyword">mutable</span> <a class="code" href="classclang_1_1Selector.html" title="Smart pointer class that efficiently represents Objective-C method names.">Selector</a> drainS;</div>
+<div class="line"><a name="l00589"></a><span class="lineno">  589</span>   <span class="keyword">mutable</span> <a class="code" href="classllvm_1_1OwningPtr.html">OwningPtr<BugType></a> BT;</div>
+<div class="line"><a name="l00590"></a><span class="lineno">  590</span> </div>
+<div class="line"><a name="l00591"></a><span class="lineno">  591</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00592"></a><span class="lineno">  592</span>   <span class="keywordtype">void</span> checkPreObjCMessage(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodCall.html" title="Represents any expression that calls an Objective-C method.">ObjCMethodCall</a> &msg, <a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C) <span class="keyword">const</span>;</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">  595</span> </div>
+<div class="line"><a name="l00596"></a><span class="lineno">  596</span> <span class="keywordtype">void</span> ClassReleaseChecker::checkPreObjCMessage(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodCall.html" title="Represents any expression that calls an Objective-C method.">ObjCMethodCall</a> &msg,</div>
+<div class="line"><a name="l00597"></a><span class="lineno">  597</span>                                               <a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00598"></a><span class="lineno">  598</span>   </div>
+<div class="line"><a name="l00599"></a><span class="lineno">  599</span>   <span class="keywordflow">if</span> (!BT) {</div>
+<div class="line"><a name="l00600"></a><span class="lineno">  600</span>     BT.reset(<span class="keyword">new</span> APIMisuse(<span class="stringliteral">"message incorrectly sent to class instead of class "</span></div>
+<div class="line"><a name="l00601"></a><span class="lineno">  601</span>                            <span class="stringliteral">"instance"</span>));</div>
+<div class="line"><a name="l00602"></a><span class="lineno">  602</span>   </div>
+<div class="line"><a name="l00603"></a><span class="lineno">  603</span>     <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 = C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#ae6c98ff68628991ee1d07ad7d848b41f">getASTContext</a>();</div>
+<div class="line"><a name="l00604"></a><span class="lineno">  604</span>     releaseS = <a class="code" href="namespaceclang.html#a2a239358dba4d59740ad4a772f0b2c58" title="Utility function for constructing a nullary selector.">GetNullarySelector</a>(<span class="stringliteral">"release"</span>, Ctx);</div>
+<div class="line"><a name="l00605"></a><span class="lineno">  605</span>     retainS = <a class="code" href="namespaceclang.html#a2a239358dba4d59740ad4a772f0b2c58" title="Utility function for constructing a nullary selector.">GetNullarySelector</a>(<span class="stringliteral">"retain"</span>, Ctx);</div>
+<div class="line"><a name="l00606"></a><span class="lineno">  606</span>     autoreleaseS = <a class="code" href="namespaceclang.html#a2a239358dba4d59740ad4a772f0b2c58" title="Utility function for constructing a nullary selector.">GetNullarySelector</a>(<span class="stringliteral">"autorelease"</span>, Ctx);</div>
+<div class="line"><a name="l00607"></a><span class="lineno">  607</span>     drainS = <a class="code" href="namespaceclang.html#a2a239358dba4d59740ad4a772f0b2c58" title="Utility function for constructing a nullary selector.">GetNullarySelector</a>(<span class="stringliteral">"drain"</span>, Ctx);</div>
+<div class="line"><a name="l00608"></a><span class="lineno">  608</span>   }</div>
+<div class="line"><a name="l00609"></a><span class="lineno">  609</span>   </div>
+<div class="line"><a name="l00610"></a><span class="lineno">  610</span>   <span class="keywordflow">if</span> (msg.<a class="code" href="classclang_1_1ObjCMethodCall.html#abee465f9cd64b110a39f3ab4952aa0c0">isInstanceMessage</a>())</div>
+<div class="line"><a name="l00611"></a><span class="lineno">  611</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00612"></a><span class="lineno">  612</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *Class = msg.<a class="code" href="classclang_1_1ObjCMethodCall.html#a77809ae142f65cb2f8352d8f416e61db" title="Get the interface for the receiver.">getReceiverInterface</a>();</div>
+<div class="line"><a name="l00613"></a><span class="lineno">  613</span>   assert(Class);</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>   <a class="code" href="classclang_1_1Selector.html" title="Smart pointer class that efficiently represents Objective-C method names.">Selector</a> S = msg.<a class="code" href="classclang_1_1ObjCMethodCall.html#a60e54f95046b7e000d1960c66c162462">getSelector</a>();</div>
+<div class="line"><a name="l00616"></a><span class="lineno">  616</span>   <span class="keywordflow">if</span> (!(S == releaseS || S == retainS || S == autoreleaseS || S == drainS))</div>
+<div class="line"><a name="l00617"></a><span class="lineno">  617</span>     <span class="keywordflow">return</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="keywordflow">if</span> (<a class="code" href="classclang_1_1ento_1_1ExplodedNode.html">ExplodedNode</a> *N = C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a264f48d97809707049689c37aa35af78" title="Generates a new transition in the program state graph (ExplodedGraph). Uses the default CheckerContex...">addTransition</a>()) {</div>
+<div class="line"><a name="l00620"></a><span class="lineno">  620</span>     <a class="code" href="classllvm_1_1SmallString.html">SmallString<200></a> buf;</div>
+<div class="line"><a name="l00621"></a><span class="lineno">  621</span>     llvm::raw_svector_ostream os(buf);</div>
+<div class="line"><a name="l00622"></a><span class="lineno">  622</span> </div>
+<div class="line"><a name="l00623"></a><span class="lineno">  623</span>     os << <span class="stringliteral">"The '"</span> << S.<a class="code" href="classclang_1_1Selector.html#a0c56d387ecb718cc92340804fc575979" title="Derive the full selector name (e.g. "foo:bar:") and return it as an std::string.">getAsString</a>() << <span class="stringliteral">"' message should be sent to instances "</span></div>
+<div class="line"><a name="l00624"></a><span class="lineno">  624</span>           <span class="stringliteral">"of class '"</span> << Class-><a class="code" href="classclang_1_1NamedDecl.html#aaf790590f634520a99e0b45699fc45c3">getName</a>()</div>
+<div class="line"><a name="l00625"></a><span class="lineno">  625</span>        << <span class="stringliteral">"' and not the class directly"</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>     <a class="code" href="classclang_1_1ento_1_1BugReport.html">BugReport</a> *report = <span class="keyword">new</span> <a class="code" href="classclang_1_1ento_1_1BugReport.html">BugReport</a>(*BT, os.str(), N);</div>
+<div class="line"><a name="l00628"></a><span class="lineno">  628</span>     report-><a class="code" href="classclang_1_1ento_1_1BugReport.html#a31f1757d10fc4f936ea143a894e51f39" title="Add a range to a bug report.">addRange</a>(msg.<a class="code" href="classclang_1_1ObjCMethodCall.html#ad25dfac49ca78ceac101e6ff26db28ee">getSourceRange</a>());</div>
+<div class="line"><a name="l00629"></a><span class="lineno">  629</span>     C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#ae7738af2cbfd1d713edec33d3203dff5" title="Emit the diagnostics report.">emitReport</a>(report);</div>
+<div class="line"><a name="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">  632</span> </div>
+<div class="line"><a name="l00633"></a><span class="lineno">  633</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00634"></a><span class="lineno">  634</span> <span class="comment">// Check for passing non-Objective-C types to variadic methods that expect</span></div>
+<div class="line"><a name="l00635"></a><span class="lineno">  635</span> <span class="comment">// only Objective-C types.</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> </div>
+<div class="line"><a name="l00638"></a><span class="lineno">  638</span> <span class="keyword">namespace </span>{</div>
+<div class="line"><a name="l00639"></a><span class="lineno">  639</span> <span class="keyword">class </span>VariadicMethodTypeChecker : <span class="keyword">public</span> <a class="code" href="classclang_1_1ento_1_1Checker.html">Checker</a><check::PreObjCMessage> {</div>
+<div class="line"><a name="l00640"></a><span class="lineno">  640</span>   <span class="keyword">mutable</span> <a class="code" href="classclang_1_1Selector.html" title="Smart pointer class that efficiently represents Objective-C method names.">Selector</a> arrayWithObjectsS;</div>
+<div class="line"><a name="l00641"></a><span class="lineno">  641</span>   <span class="keyword">mutable</span> <a class="code" href="classclang_1_1Selector.html" title="Smart pointer class that efficiently represents Objective-C method names.">Selector</a> dictionaryWithObjectsAndKeysS;</div>
+<div class="line"><a name="l00642"></a><span class="lineno">  642</span>   <span class="keyword">mutable</span> <a class="code" href="classclang_1_1Selector.html" title="Smart pointer class that efficiently represents Objective-C method names.">Selector</a> setWithObjectsS;</div>
+<div class="line"><a name="l00643"></a><span class="lineno">  643</span>   <span class="keyword">mutable</span> <a class="code" href="classclang_1_1Selector.html" title="Smart pointer class that efficiently represents Objective-C method names.">Selector</a> orderedSetWithObjectsS;</div>
+<div class="line"><a name="l00644"></a><span class="lineno">  644</span>   <span class="keyword">mutable</span> <a class="code" href="classclang_1_1Selector.html" title="Smart pointer class that efficiently represents Objective-C method names.">Selector</a> initWithObjectsS;</div>
+<div class="line"><a name="l00645"></a><span class="lineno">  645</span>   <span class="keyword">mutable</span> <a class="code" href="classclang_1_1Selector.html" title="Smart pointer class that efficiently represents Objective-C method names.">Selector</a> initWithObjectsAndKeysS;</div>
+<div class="line"><a name="l00646"></a><span class="lineno">  646</span>   <span class="keyword">mutable</span> <a class="code" href="classllvm_1_1OwningPtr.html">OwningPtr<BugType></a> BT;</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="keywordtype">bool</span> isVariadicMessage(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodCall.html" title="Represents any expression that calls an Objective-C method.">ObjCMethodCall</a> &msg) <span class="keyword">const</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">public</span>:</div>
+<div class="line"><a name="l00651"></a><span class="lineno">  651</span>   <span class="keywordtype">void</span> checkPreObjCMessage(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodCall.html" title="Represents any expression that calls an Objective-C method.">ObjCMethodCall</a> &msg, <a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00652"></a><span class="lineno">  652</span> };</div>
+<div class="line"><a name="l00653"></a><span class="lineno">  653</span> }</div>
+<div class="line"><a name="l00654"></a><span class="lineno">  654</span> <span class="comment"></span></div>
+<div class="line"><a name="l00655"></a><span class="lineno">  655</span> <span class="comment">/// isVariadicMessage - Returns whether the given message is a variadic message,</span></div>
+<div class="line"><a name="l00656"></a><span class="lineno">  656</span> <span class="comment">/// where all arguments must be Objective-C types.</span></div>
+<div class="line"><a name="l00657"></a><span class="lineno">  657</span> <span class="comment"></span><span class="keywordtype">bool</span></div>
+<div class="line"><a name="l00658"></a><span class="lineno">  658</span> VariadicMethodTypeChecker::isVariadicMessage(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodCall.html" title="Represents any expression that calls an Objective-C method.">ObjCMethodCall</a> &msg)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00659"></a><span class="lineno">  659</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *MD = msg.<a class="code" href="classclang_1_1ObjCMethodCall.html#a9dd4b185ace5a3745c311ccb22adcadd">getDecl</a>();</div>
+<div class="line"><a name="l00660"></a><span class="lineno">  660</span>   </div>
+<div class="line"><a name="l00661"></a><span class="lineno">  661</span>   <span class="keywordflow">if</span> (!MD || !MD-><a class="code" href="classclang_1_1ObjCMethodDecl.html#af47b19dc4279f1cf2572ca1a0a8d730e">isVariadic</a>() || isa<ObjCProtocolDecl>(MD-><a class="code" href="classclang_1_1Decl.html#af67e1a1d24dcc51093b95dbcf68d4288">getDeclContext</a>()))</div>
+<div class="line"><a name="l00662"></a><span class="lineno">  662</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00663"></a><span class="lineno">  663</span>   </div>
+<div class="line"><a name="l00664"></a><span class="lineno">  664</span>   <a class="code" href="classclang_1_1Selector.html" title="Smart pointer class that efficiently represents Objective-C method names.">Selector</a> S = msg.<a class="code" href="classclang_1_1ObjCMethodCall.html#a60e54f95046b7e000d1960c66c162462">getSelector</a>();</div>
+<div class="line"><a name="l00665"></a><span class="lineno">  665</span>   </div>
+<div class="line"><a name="l00666"></a><span class="lineno">  666</span>   <span class="keywordflow">if</span> (msg.<a class="code" href="classclang_1_1ObjCMethodCall.html#abee465f9cd64b110a39f3ab4952aa0c0">isInstanceMessage</a>()) {</div>
+<div class="line"><a name="l00667"></a><span class="lineno">  667</span>     <span class="comment">// FIXME: Ideally we'd look at the receiver interface here, but that's not</span></div>
+<div class="line"><a name="l00668"></a><span class="lineno">  668</span>     <span class="comment">// useful for init, because alloc returns 'id'. In theory, this could lead</span></div>
+<div class="line"><a name="l00669"></a><span class="lineno">  669</span>     <span class="comment">// to false positives, for example if there existed a class that had an</span></div>
+<div class="line"><a name="l00670"></a><span class="lineno">  670</span>     <span class="comment">// initWithObjects: implementation that does accept non-Objective-C pointer</span></div>
+<div class="line"><a name="l00671"></a><span class="lineno">  671</span>     <span class="comment">// types, but the chance of that happening is pretty small compared to the</span></div>
+<div class="line"><a name="l00672"></a><span class="lineno">  672</span>     <span class="comment">// gains that this analysis gives.</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_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *Class = MD-><a class="code" href="classclang_1_1ObjCMethodDecl.html#ae289a054485ee4d1d66b33e833e16091">getClassInterface</a>();</div>
+<div class="line"><a name="l00674"></a><span class="lineno">  674</span> </div>
+<div class="line"><a name="l00675"></a><span class="lineno">  675</span>     <span class="keywordflow">switch</span> (<a class="code" href="BasicObjCFoundationChecks_8cpp.html#a2a4e44325df6137bd11b14a88e025dcc">findKnownClass</a>(Class)) {</div>
+<div class="line"><a name="l00676"></a><span class="lineno">  676</span>     <span class="keywordflow">case</span> <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6a870bd58d814cca18f0b4784e3bee5232">FC_NSArray</a>:</div>
+<div class="line"><a name="l00677"></a><span class="lineno">  677</span>     <span class="keywordflow">case</span> <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6ac8790640f676635c798cf6ff2aeedcd6">FC_NSOrderedSet</a>:</div>
+<div class="line"><a name="l00678"></a><span class="lineno">  678</span>     <span class="keywordflow">case</span> <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6a93dc55c38218e65c4f54c24e1eace1ae">FC_NSSet</a>:</div>
+<div class="line"><a name="l00679"></a><span class="lineno">  679</span>       <span class="keywordflow">return</span> S == initWithObjectsS;</div>
+<div class="line"><a name="l00680"></a><span class="lineno">  680</span>     <span class="keywordflow">case</span> <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6aecf88e14bd4e5e2b01aa69eaff87aa04">FC_NSDictionary</a>:</div>
+<div class="line"><a name="l00681"></a><span class="lineno">  681</span>       <span class="keywordflow">return</span> S == initWithObjectsAndKeysS;</div>
+<div class="line"><a name="l00682"></a><span class="lineno">  682</span>     <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l00683"></a><span class="lineno">  683</span>       <span class="keywordflow">return</span> <span class="keyword">false</span>;</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>   } <span class="keywordflow">else</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_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *Class = msg.<a class="code" href="classclang_1_1ObjCMethodCall.html#a77809ae142f65cb2f8352d8f416e61db" title="Get the interface for the receiver.">getReceiverInterface</a>();</div>
+<div class="line"><a name="l00687"></a><span class="lineno">  687</span> </div>
+<div class="line"><a name="l00688"></a><span class="lineno">  688</span>     <span class="keywordflow">switch</span> (<a class="code" href="BasicObjCFoundationChecks_8cpp.html#a2a4e44325df6137bd11b14a88e025dcc">findKnownClass</a>(Class)) {</div>
+<div class="line"><a name="l00689"></a><span class="lineno">  689</span>       <span class="keywordflow">case</span> <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6a870bd58d814cca18f0b4784e3bee5232">FC_NSArray</a>:</div>
+<div class="line"><a name="l00690"></a><span class="lineno">  690</span>         <span class="keywordflow">return</span> S == arrayWithObjectsS;</div>
+<div class="line"><a name="l00691"></a><span class="lineno">  691</span>       <span class="keywordflow">case</span> <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6ac8790640f676635c798cf6ff2aeedcd6">FC_NSOrderedSet</a>:</div>
+<div class="line"><a name="l00692"></a><span class="lineno">  692</span>         <span class="keywordflow">return</span> S == orderedSetWithObjectsS;</div>
+<div class="line"><a name="l00693"></a><span class="lineno">  693</span>       <span class="keywordflow">case</span> <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6a93dc55c38218e65c4f54c24e1eace1ae">FC_NSSet</a>:</div>
+<div class="line"><a name="l00694"></a><span class="lineno">  694</span>         <span class="keywordflow">return</span> S == setWithObjectsS;</div>
+<div class="line"><a name="l00695"></a><span class="lineno">  695</span>       <span class="keywordflow">case</span> <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6aecf88e14bd4e5e2b01aa69eaff87aa04">FC_NSDictionary</a>:</div>
+<div class="line"><a name="l00696"></a><span class="lineno">  696</span>         <span class="keywordflow">return</span> S == dictionaryWithObjectsAndKeysS;</div>
+<div class="line"><a name="l00697"></a><span class="lineno">  697</span>       <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l00698"></a><span class="lineno">  698</span>         <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00699"></a><span class="lineno">  699</span>     }</div>
+<div class="line"><a name="l00700"></a><span class="lineno">  700</span>   }</div>
+<div class="line"><a name="l00701"></a><span class="lineno">  701</span> }</div>
+<div class="line"><a name="l00702"></a><span class="lineno">  702</span> </div>
+<div class="line"><a name="l00703"></a><span class="lineno">  703</span> <span class="keywordtype">void</span> VariadicMethodTypeChecker::checkPreObjCMessage(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodCall.html" title="Represents any expression that calls an Objective-C method.">ObjCMethodCall</a> &msg,</div>
+<div class="line"><a name="l00704"></a><span class="lineno">  704</span>                                                     <a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00705"></a><span class="lineno">  705</span>   <span class="keywordflow">if</span> (!BT) {</div>
+<div class="line"><a name="l00706"></a><span class="lineno">  706</span>     BT.reset(<span class="keyword">new</span> APIMisuse(<span class="stringliteral">"Arguments passed to variadic method aren't all "</span></div>
+<div class="line"><a name="l00707"></a><span class="lineno">  707</span>                            <span class="stringliteral">"Objective-C pointer types"</span>));</div>
+<div class="line"><a name="l00708"></a><span class="lineno">  708</span> </div>
+<div class="line"><a name="l00709"></a><span class="lineno">  709</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 = C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#ae6c98ff68628991ee1d07ad7d848b41f">getASTContext</a>();</div>
+<div class="line"><a name="l00710"></a><span class="lineno">  710</span>     arrayWithObjectsS = <a class="code" href="namespaceclang.html#a76eb8ffd4176c64e1a1d28bab750b6dc" title="Utility function for constructing an unary selector.">GetUnarySelector</a>(<span class="stringliteral">"arrayWithObjects"</span>, Ctx);</div>
+<div class="line"><a name="l00711"></a><span class="lineno">  711</span>     dictionaryWithObjectsAndKeysS = </div>
+<div class="line"><a name="l00712"></a><span class="lineno">  712</span>       <a class="code" href="namespaceclang.html#a76eb8ffd4176c64e1a1d28bab750b6dc" title="Utility function for constructing an unary selector.">GetUnarySelector</a>(<span class="stringliteral">"dictionaryWithObjectsAndKeys"</span>, Ctx);</div>
+<div class="line"><a name="l00713"></a><span class="lineno">  713</span>     setWithObjectsS = <a class="code" href="namespaceclang.html#a76eb8ffd4176c64e1a1d28bab750b6dc" title="Utility function for constructing an unary selector.">GetUnarySelector</a>(<span class="stringliteral">"setWithObjects"</span>, Ctx);</div>
+<div class="line"><a name="l00714"></a><span class="lineno">  714</span>     orderedSetWithObjectsS = <a class="code" href="namespaceclang.html#a76eb8ffd4176c64e1a1d28bab750b6dc" title="Utility function for constructing an unary selector.">GetUnarySelector</a>(<span class="stringliteral">"orderedSetWithObjects"</span>, Ctx);</div>
+<div class="line"><a name="l00715"></a><span class="lineno">  715</span> </div>
+<div class="line"><a name="l00716"></a><span class="lineno">  716</span>     initWithObjectsS = <a class="code" href="namespaceclang.html#a76eb8ffd4176c64e1a1d28bab750b6dc" title="Utility function for constructing an unary selector.">GetUnarySelector</a>(<span class="stringliteral">"initWithObjects"</span>, Ctx);</div>
+<div class="line"><a name="l00717"></a><span class="lineno">  717</span>     initWithObjectsAndKeysS = <a class="code" href="namespaceclang.html#a76eb8ffd4176c64e1a1d28bab750b6dc" title="Utility function for constructing an unary selector.">GetUnarySelector</a>(<span class="stringliteral">"initWithObjectsAndKeys"</span>, Ctx);</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="keywordflow">if</span> (!isVariadicMessage(msg))</div>
+<div class="line"><a name="l00721"></a><span class="lineno">  721</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00722"></a><span class="lineno">  722</span> </div>
+<div class="line"><a name="l00723"></a><span class="lineno">  723</span>   <span class="comment">// We are not interested in the selector arguments since they have</span></div>
+<div class="line"><a name="l00724"></a><span class="lineno">  724</span>   <span class="comment">// well-defined types, so the compiler will issue a warning for them.</span></div>
+<div class="line"><a name="l00725"></a><span class="lineno">  725</span>   <span class="keywordtype">unsigned</span> variadicArgsBegin = msg.<a class="code" href="classclang_1_1ObjCMethodCall.html#a60e54f95046b7e000d1960c66c162462">getSelector</a>().<a class="code" href="classclang_1_1Selector.html#ab184ee3814539b0c0d4cfbf47c448cc7">getNumArgs</a>();</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="comment">// We're not interested in the last argument since it has to be nil or the</span></div>
+<div class="line"><a name="l00728"></a><span class="lineno">  728</span>   <span class="comment">// compiler would have issued a warning for it elsewhere.</span></div>
+<div class="line"><a name="l00729"></a><span class="lineno">  729</span>   <span class="keywordtype">unsigned</span> variadicArgsEnd = msg.<a class="code" href="classclang_1_1ObjCMethodCall.html#ae9e59b092905e58f227d4fe3a0c5b34b">getNumArgs</a>() - 1;</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="keywordflow">if</span> (variadicArgsEnd <= variadicArgsBegin)</div>
+<div class="line"><a name="l00732"></a><span class="lineno">  732</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00733"></a><span class="lineno">  733</span> </div>
+<div class="line"><a name="l00734"></a><span class="lineno">  734</span>   <span class="comment">// Verify that all arguments have Objective-C types.</span></div>
+<div class="line"><a name="l00735"></a><span class="lineno">  735</span>   <a class="code" href="classllvm_1_1Optional.html">Optional<ExplodedNode*></a> errorNode;</div>
+<div class="line"><a name="l00736"></a><span class="lineno">  736</span>   <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">ProgramStateRef</a> state = C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a81bd66f80b18117a9a64a8d0daa62825">getState</a>();</div>
+<div class="line"><a name="l00737"></a><span class="lineno">  737</span>   </div>
+<div class="line"><a name="l00738"></a><span class="lineno">  738</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = variadicArgsBegin; I != variadicArgsEnd; ++I) {</div>
+<div class="line"><a name="l00739"></a><span class="lineno">  739</span>     <a class="code" href="classclang_1_1QualType.html">QualType</a> ArgTy = msg.<a class="code" href="classclang_1_1ObjCMethodCall.html#a3d8a8ee4d9d449b0f6776123492911ab">getArgExpr</a>(I)-><a class="code" href="classclang_1_1Expr.html#a3dd8850a4ad8a5b5f595dd9e9446187b">getType</a>();</div>
+<div class="line"><a name="l00740"></a><span class="lineno">  740</span>     <span class="keywordflow">if</span> (ArgTy-><a class="code" href="classclang_1_1Type.html#aa9be9c3ceec53da8edbbb86bbf895fff">isObjCObjectPointerType</a>())</div>
+<div class="line"><a name="l00741"></a><span class="lineno">  741</span>       <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00742"></a><span class="lineno">  742</span> </div>
+<div class="line"><a name="l00743"></a><span class="lineno">  743</span>     <span class="comment">// Block pointers are treaded as Objective-C pointers.</span></div>
+<div class="line"><a name="l00744"></a><span class="lineno">  744</span>     <span class="keywordflow">if</span> (ArgTy-><a class="code" href="classclang_1_1Type.html#ad6cd1a04cac76bfb304bbc02bf23a9bb">isBlockPointerType</a>())</div>
+<div class="line"><a name="l00745"></a><span class="lineno">  745</span>       <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00746"></a><span class="lineno">  746</span> </div>
+<div class="line"><a name="l00747"></a><span class="lineno">  747</span>     <span class="comment">// Ignore pointer constants.</span></div>
+<div class="line"><a name="l00748"></a><span class="lineno">  748</span>     <span class="keywordflow">if</span> (msg.getArgSVal(I).getAs<<a class="code" href="classclang_1_1ento_1_1loc_1_1ConcreteInt.html">loc::ConcreteInt</a>>())</div>
+<div class="line"><a name="l00749"></a><span class="lineno">  749</span>       <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00750"></a><span class="lineno">  750</span>     </div>
+<div class="line"><a name="l00751"></a><span class="lineno">  751</span>     <span class="comment">// Ignore pointer types annotated with 'NSObject' attribute.</span></div>
+<div class="line"><a name="l00752"></a><span class="lineno">  752</span>     <span class="keywordflow">if</span> (C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#ae6c98ff68628991ee1d07ad7d848b41f">getASTContext</a>().<a class="code" href="classclang_1_1ASTContext.html#a9d350ed6b9d7a93c269a19a212a72110" title="Return true if this is an NSObject object with its NSObject attribute set.">isObjCNSObjectType</a>(ArgTy))</div>
+<div class="line"><a name="l00753"></a><span class="lineno">  753</span>       <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00754"></a><span class="lineno">  754</span>     </div>
+<div class="line"><a name="l00755"></a><span class="lineno">  755</span>     <span class="comment">// Ignore CF references, which can be toll-free bridged.</span></div>
+<div class="line"><a name="l00756"></a><span class="lineno">  756</span>     <span class="keywordflow">if</span> (<a class="code" href="namespaceclang_1_1ento_1_1coreFoundation.html#ac05ef7cd6f4fa4f1a78eb2349972095b">coreFoundation::isCFObjectRef</a>(ArgTy))</div>
+<div class="line"><a name="l00757"></a><span class="lineno">  757</span>       <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00758"></a><span class="lineno">  758</span> </div>
+<div class="line"><a name="l00759"></a><span class="lineno">  759</span>     <span class="comment">// Generate only one error node to use for all bug reports.</span></div>
+<div class="line"><a name="l00760"></a><span class="lineno">  760</span>     <span class="keywordflow">if</span> (!errorNode.hasValue())</div>
+<div class="line"><a name="l00761"></a><span class="lineno">  761</span>       errorNode = C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a264f48d97809707049689c37aa35af78" title="Generates a new transition in the program state graph (ExplodedGraph). Uses the default CheckerContex...">addTransition</a>();</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>     <span class="keywordflow">if</span> (!errorNode.getValue())</div>
+<div class="line"><a name="l00764"></a><span class="lineno">  764</span>       <span class="keywordflow">continue</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">  766</span>     <a class="code" href="classllvm_1_1SmallString.html">SmallString<128></a> sbuf;</div>
+<div class="line"><a name="l00767"></a><span class="lineno">  767</span>     llvm::raw_svector_ostream os(sbuf);</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>     StringRef TypeName = <a class="code" href="BasicObjCFoundationChecks_8cpp.html#ab91fe16a4acf42262c10101f460a4e25">GetReceiverInterfaceName</a>(msg);</div>
+<div class="line"><a name="l00770"></a><span class="lineno">  770</span>     <span class="keywordflow">if</span> (!TypeName.empty())</div>
+<div class="line"><a name="l00771"></a><span class="lineno">  771</span>       os << <span class="stringliteral">"Argument to '"</span> << TypeName << <span class="stringliteral">"' method '"</span>;</div>
+<div class="line"><a name="l00772"></a><span class="lineno">  772</span>     <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00773"></a><span class="lineno">  773</span>       os << <span class="stringliteral">"Argument to method '"</span>;</div>
+<div class="line"><a name="l00774"></a><span class="lineno">  774</span> </div>
+<div class="line"><a name="l00775"></a><span class="lineno">  775</span>     os << msg.<a class="code" href="classclang_1_1ObjCMethodCall.html#a60e54f95046b7e000d1960c66c162462">getSelector</a>().<a class="code" href="classclang_1_1Selector.html#a0c56d387ecb718cc92340804fc575979" title="Derive the full selector name (e.g. "foo:bar:") and return it as an std::string.">getAsString</a>() </div>
+<div class="line"><a name="l00776"></a><span class="lineno">  776</span>        << <span class="stringliteral">"' should be an Objective-C pointer type, not '"</span>;</div>
+<div class="line"><a name="l00777"></a><span class="lineno">  777</span>     ArgTy.<a class="code" href="classclang_1_1QualType.html#a9b8a1fcc3a196c76d7d3ffe8d69d6d07">print</a>(os, C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#ac711e193dd4ad4011da56d95cdf1d8f7">getLangOpts</a>());</div>
+<div class="line"><a name="l00778"></a><span class="lineno">  778</span>     os << <span class="stringliteral">"'"</span>;</div>
+<div class="line"><a name="l00779"></a><span class="lineno">  779</span> </div>
+<div class="line"><a name="l00780"></a><span class="lineno">  780</span>     <a class="code" href="classclang_1_1ento_1_1BugReport.html">BugReport</a> *R = <span class="keyword">new</span> <a class="code" href="classclang_1_1ento_1_1BugReport.html">BugReport</a>(*BT, os.str(), errorNode.getValue());</div>
+<div class="line"><a name="l00781"></a><span class="lineno">  781</span>     R-><a class="code" href="classclang_1_1ento_1_1BugReport.html#a31f1757d10fc4f936ea143a894e51f39" title="Add a range to a bug report.">addRange</a>(msg.getArgSourceRange(I));</div>
+<div class="line"><a name="l00782"></a><span class="lineno">  782</span>     C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#ae7738af2cbfd1d713edec33d3203dff5" title="Emit the diagnostics report.">emitReport</a>(R);</div>
+<div class="line"><a name="l00783"></a><span class="lineno">  783</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">  785</span> </div>
+<div class="line"><a name="l00786"></a><span class="lineno">  786</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00787"></a><span class="lineno">  787</span> <span class="comment">// Improves the modeling of loops over Cocoa collections.</span></div>
+<div class="line"><a name="l00788"></a><span class="lineno">  788</span> <span class="comment">//===----------------------------------------------------------------------===//</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">// The map from container symbol to the container count symbol.</span></div>
+<div class="line"><a name="l00791"></a><span class="lineno">  791</span> <span class="comment">// We currently will remember the last countainer count symbol encountered.</span></div>
+<div class="line"><a name="l00792"></a><span class="lineno">  792</span> <a class="code" href="MacOSKeychainAPIChecker_8cpp.html#a7e7410348933f0f1e06f82deb494dd48">REGISTER_MAP_WITH_PROGRAMSTATE</a>(ContainerCountMap, <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_1SymExpr.html" title="Symbolic value. These values used to capture symbolic execution of the program.">SymbolRef</a>)</div>
+<div class="line"><a name="l00793"></a><span class="lineno">  793</span> <a class="code" href="MacOSKeychainAPIChecker_8cpp.html#a7e7410348933f0f1e06f82deb494dd48">REGISTER_MAP_WITH_PROGRAMSTATE</a>(ContainerNonEmptyMap, <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>, <span class="keywordtype">bool</span>)</div>
+<div class="line"><a name="l00794"></a><span class="lineno">  794</span> </div>
+<div class="line"><a name="l00795"></a><span class="lineno">  795</span> namespace {</div>
+<div class="line"><a name="l00796"></a><span class="lineno">  796</span> <span class="keyword">class </span>ObjCLoopChecker</div>
+<div class="line"><a name="l00797"></a><span class="lineno">  797</span>   : <span class="keyword">public</span> <a class="code" href="classclang_1_1ento_1_1Checker.html">Checker</a><check::PostStmt<ObjCForCollectionStmt>,</div>
+<div class="line"><a name="l00798"></a><span class="lineno">  798</span>                    check::PostObjCMessage,</div>
+<div class="line"><a name="l00799"></a><span class="lineno">  799</span>                    check::DeadSymbols,</div>
+<div class="line"><a name="l00800"></a><span class="lineno">  800</span>                    check::PointerEscape > {</div>
+<div class="line"><a name="l00801"></a><span class="lineno">  801</span>   <span class="keyword">mutable</span> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *CountSelectorII;</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="keywordtype">bool</span> isCollectionCountMethod(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodCall.html" title="Represents any expression that calls an Objective-C method.">ObjCMethodCall</a> &M,</div>
+<div class="line"><a name="l00804"></a><span class="lineno">  804</span>                                <a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00805"></a><span class="lineno">  805</span> </div>
+<div class="line"><a name="l00806"></a><span class="lineno">  806</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00807"></a><span class="lineno">  807</span>   ObjCLoopChecker() : CountSelectorII(0) {}</div>
+<div class="line"><a name="l00808"></a><span class="lineno">  808</span>   <span class="keywordtype">void</span> checkPostStmt(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCForCollectionStmt.html" title="Represents Objective-C's collection statement.">ObjCForCollectionStmt</a> *FCS, <a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00809"></a><span class="lineno">  809</span>   <span class="keywordtype">void</span> checkPostObjCMessage(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodCall.html" title="Represents any expression that calls an Objective-C method.">ObjCMethodCall</a> &M, <a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00810"></a><span class="lineno">  810</span>   <span class="keywordtype">void</span> checkDeadSymbols(<a class="code" href="classclang_1_1ento_1_1SymbolReaper.html" title="A class responsible for cleaning up unused symbols.">SymbolReaper</a> &SymReaper, <a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00811"></a><span class="lineno">  811</span>   <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">ProgramStateRef</a> checkPointerEscape(<a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">ProgramStateRef</a> State,</div>
+<div class="line"><a name="l00812"></a><span class="lineno">  812</span>                                      <span class="keyword">const</span> <a class="code" href="classllvm_1_1DenseSet.html">InvalidatedSymbols</a> &Escaped,</div>
+<div class="line"><a name="l00813"></a><span class="lineno">  813</span>                                      <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1CallEvent.html" title="Represents an abstract call to a function or method along a particular path.">CallEvent</a> *Call,</div>
+<div class="line"><a name="l00814"></a><span class="lineno">  814</span>                                      <a class="code" href="namespaceclang_1_1ento.html#a1f45158b71c9d04bfd6094ee29a38e59" title="Describes the different reasons a pointer escapes during analysis.">PointerEscapeKind</a> <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a>) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00815"></a><span class="lineno">  815</span> };</div>
+<div class="line"><a name="l00816"></a><span class="lineno">  816</span> }</div>
+<div class="line"><a name="l00817"></a><span class="lineno">  817</span> </div>
+<div class="line"><a name="l00818"></a><span class="lineno"><a class="code" href="BasicObjCFoundationChecks_8cpp.html#a79ecac92a9a4f1b276ef7a4e5cebfa34">  818</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="BasicObjCFoundationChecks_8cpp.html#a79ecac92a9a4f1b276ef7a4e5cebfa34">isKnownNonNilCollectionType</a>(<a class="code" href="classclang_1_1QualType.html">QualType</a> T) {</div>
+<div class="line"><a name="l00819"></a><span class="lineno">  819</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCObjectPointerType.html">ObjCObjectPointerType</a> *PT = T-><a class="code" href="classclang_1_1Type.html#a12103ea8bee9506930287bab68a08569">getAs</a><<a class="code" href="classclang_1_1ObjCObjectPointerType.html">ObjCObjectPointerType</a>>();</div>
+<div class="line"><a name="l00820"></a><span class="lineno">  820</span>   <span class="keywordflow">if</span> (!PT)</div>
+<div class="line"><a name="l00821"></a><span class="lineno">  821</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00822"></a><span class="lineno">  822</span>   </div>
+<div class="line"><a name="l00823"></a><span class="lineno">  823</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *ID = PT-><a class="code" href="classclang_1_1ObjCObjectPointerType.html#a74a117fdc7c1e38b75939935f1a243ff">getInterfaceDecl</a>();</div>
+<div class="line"><a name="l00824"></a><span class="lineno">  824</span>   <span class="keywordflow">if</span> (!ID)</div>
+<div class="line"><a name="l00825"></a><span class="lineno">  825</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00826"></a><span class="lineno">  826</span> </div>
+<div class="line"><a name="l00827"></a><span class="lineno">  827</span>   <span class="keywordflow">switch</span> (<a class="code" href="BasicObjCFoundationChecks_8cpp.html#a2a4e44325df6137bd11b14a88e025dcc">findKnownClass</a>(ID)) {</div>
+<div class="line"><a name="l00828"></a><span class="lineno">  828</span>   <span class="keywordflow">case</span> <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6a870bd58d814cca18f0b4784e3bee5232">FC_NSArray</a>:</div>
+<div class="line"><a name="l00829"></a><span class="lineno">  829</span>   <span class="keywordflow">case</span> <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6aecf88e14bd4e5e2b01aa69eaff87aa04">FC_NSDictionary</a>:</div>
+<div class="line"><a name="l00830"></a><span class="lineno">  830</span>   <span class="keywordflow">case</span> <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6acaaf606a7c8158230ec2717bdde06b5b">FC_NSEnumerator</a>:</div>
+<div class="line"><a name="l00831"></a><span class="lineno">  831</span>   <span class="keywordflow">case</span> <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6ac8790640f676635c798cf6ff2aeedcd6">FC_NSOrderedSet</a>:</div>
+<div class="line"><a name="l00832"></a><span class="lineno">  832</span>   <span class="keywordflow">case</span> <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6a93dc55c38218e65c4f54c24e1eace1ae">FC_NSSet</a>:</div>
+<div class="line"><a name="l00833"></a><span class="lineno">  833</span>     <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00834"></a><span class="lineno">  834</span>   <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l00835"></a><span class="lineno">  835</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</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> <span class="comment"></span></div>
+<div class="line"><a name="l00839"></a><span class="lineno">  839</span> <span class="comment">/// Assumes that the collection is non-nil.</span></div>
+<div class="line"><a name="l00840"></a><span class="lineno">  840</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00841"></a><span class="lineno">  841</span> <span class="comment">/// If the collection is known to be nil, returns NULL to indicate an infeasible</span></div>
+<div class="line"><a name="l00842"></a><span class="lineno">  842</span> <span class="comment">/// path.</span></div>
+<div class="line"><a name="l00843"></a><span class="lineno"><a class="code" href="BasicObjCFoundationChecks_8cpp.html#a1a395d5b17a200dc6b84d778f0e5d231">  843</a></span> <span class="comment"></span><span class="keyword">static</span> <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">ProgramStateRef</a> <a class="code" href="BasicObjCFoundationChecks_8cpp.html#a1a395d5b17a200dc6b84d778f0e5d231">checkCollectionNonNil</a>(<a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C,</div>
+<div class="line"><a name="l00844"></a><span class="lineno">  844</span>                                              <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">ProgramStateRef</a> State,</div>
+<div class="line"><a name="l00845"></a><span class="lineno">  845</span>                                              <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCForCollectionStmt.html" title="Represents Objective-C's collection statement.">ObjCForCollectionStmt</a> *FCS) {</div>
+<div class="line"><a name="l00846"></a><span class="lineno">  846</span>   <span class="keywordflow">if</span> (!State)</div>
+<div class="line"><a name="l00847"></a><span class="lineno">  847</span>     <span class="keywordflow">return</span> <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</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">  849</span>   <a class="code" href="classclang_1_1ento_1_1SVal.html">SVal</a> CollectionVal = C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a0d759e052a03b3b956294899dc2ccd0d" title="Get the value of arbitrary expressions at this point in the path.">getSVal</a>(FCS-><a class="code" href="classclang_1_1ObjCForCollectionStmt.html#a4bc912c3ad7e9cc5b19a22b7dd743139">getCollection</a>());</div>
+<div class="line"><a name="l00850"></a><span class="lineno">  850</span>   <a class="code" href="classllvm_1_1Optional.html">Optional<DefinedSVal></a> KnownCollection = CollectionVal.<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_1DefinedSVal.html">DefinedSVal</a>>();</div>
+<div class="line"><a name="l00851"></a><span class="lineno">  851</span>   <span class="keywordflow">if</span> (!KnownCollection)</div>
+<div class="line"><a name="l00852"></a><span class="lineno">  852</span>     <span class="keywordflow">return</span> <a class="code" href="Format_8cpp.html#a83e9e4ff6cb05dbdf72ab2a01aa289c0">State</a>;</div>
+<div class="line"><a name="l00853"></a><span class="lineno">  853</span> </div>
+<div class="line"><a name="l00854"></a><span class="lineno">  854</span>   <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">ProgramStateRef</a> StNonNil, StNil;</div>
+<div class="line"><a name="l00855"></a><span class="lineno">  855</span>   llvm::tie(StNonNil, StNil) = State->assume(*KnownCollection);</div>
+<div class="line"><a name="l00856"></a><span class="lineno">  856</span>   <span class="keywordflow">if</span> (StNil && !StNonNil) {</div>
+<div class="line"><a name="l00857"></a><span class="lineno">  857</span>     <span class="comment">// The collection is nil. This path is infeasible.</span></div>
+<div class="line"><a name="l00858"></a><span class="lineno">  858</span>     <span class="keywordflow">return</span> <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div>
+<div class="line"><a name="l00859"></a><span class="lineno">  859</span>   }</div>
+<div class="line"><a name="l00860"></a><span class="lineno">  860</span> </div>
+<div class="line"><a name="l00861"></a><span class="lineno">  861</span>   <span class="keywordflow">return</span> StNonNil;</div>
+<div class="line"><a name="l00862"></a><span class="lineno">  862</span> }</div>
+<div class="line"><a name="l00863"></a><span class="lineno">  863</span> <span class="comment"></span></div>
+<div class="line"><a name="l00864"></a><span class="lineno">  864</span> <span class="comment">/// Assumes that the collection elements are non-nil.</span></div>
+<div class="line"><a name="l00865"></a><span class="lineno">  865</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00866"></a><span class="lineno">  866</span> <span class="comment">/// This only applies if the collection is one of those known not to contain</span></div>
+<div class="line"><a name="l00867"></a><span class="lineno">  867</span> <span class="comment">/// nil values.</span></div>
+<div class="line"><a name="l00868"></a><span class="lineno"><a class="code" href="BasicObjCFoundationChecks_8cpp.html#ada326547799f2819472ff9cab3ce8ac1">  868</a></span> <span class="comment"></span><span class="keyword">static</span> <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">ProgramStateRef</a> <a class="code" href="BasicObjCFoundationChecks_8cpp.html#ada326547799f2819472ff9cab3ce8ac1">checkElementNonNil</a>(<a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C,</div>
+<div class="line"><a name="l00869"></a><span class="lineno">  869</span>                                           <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">ProgramStateRef</a> State,</div>
+<div class="line"><a name="l00870"></a><span class="lineno">  870</span>                                           <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCForCollectionStmt.html" title="Represents Objective-C's collection statement.">ObjCForCollectionStmt</a> *FCS) {</div>
+<div class="line"><a name="l00871"></a><span class="lineno">  871</span>   <span class="keywordflow">if</span> (!State)</div>
+<div class="line"><a name="l00872"></a><span class="lineno">  872</span>     <span class="keywordflow">return</span> <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</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="comment">// See if the collection is one where we /know/ the elements are non-nil.</span></div>
+<div class="line"><a name="l00875"></a><span class="lineno">  875</span>   <span class="keywordflow">if</span> (!<a class="code" href="BasicObjCFoundationChecks_8cpp.html#a79ecac92a9a4f1b276ef7a4e5cebfa34">isKnownNonNilCollectionType</a>(FCS-><a class="code" href="classclang_1_1ObjCForCollectionStmt.html#a4bc912c3ad7e9cc5b19a22b7dd743139">getCollection</a>()-><a class="code" href="classclang_1_1Expr.html#a3dd8850a4ad8a5b5f595dd9e9446187b">getType</a>()))</div>
+<div class="line"><a name="l00876"></a><span class="lineno">  876</span>     <span class="keywordflow">return</span> <a class="code" href="Format_8cpp.html#a83e9e4ff6cb05dbdf72ab2a01aa289c0">State</a>;</div>
+<div class="line"><a name="l00877"></a><span class="lineno">  877</span> </div>
+<div class="line"><a name="l00878"></a><span class="lineno">  878</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1LocationContext.html">LocationContext</a> *LCtx = C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a7581c66c5849fab4a40b321024c9c136">getLocationContext</a>();</div>
+<div class="line"><a name="l00879"></a><span class="lineno">  879</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *Element = FCS-><a class="code" href="classclang_1_1ObjCForCollectionStmt.html#a13ce6a12def9e05f184b2bf674d77c70">getElement</a>();</div>
+<div class="line"><a name="l00880"></a><span class="lineno">  880</span> </div>
+<div class="line"><a name="l00881"></a><span class="lineno">  881</span>   <span class="comment">// FIXME: Copied from ExprEngineObjC.</span></div>
+<div class="line"><a name="l00882"></a><span class="lineno">  882</span>   <a class="code" href="classllvm_1_1Optional.html">Optional<Loc></a> ElementLoc;</div>
+<div class="line"><a name="l00883"></a><span class="lineno">  883</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1DeclStmt.html">DeclStmt</a> *DS = dyn_cast<DeclStmt>(Element)) {</div>
+<div class="line"><a name="l00884"></a><span class="lineno">  884</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *ElemDecl = cast<VarDecl>(DS->getSingleDecl());</div>
+<div class="line"><a name="l00885"></a><span class="lineno">  885</span>     assert(ElemDecl-><a class="code" href="classclang_1_1VarDecl.html#af6438debfc45cb2ad2d5cb5ce2711e0c">getInit</a>() == 0);</div>
+<div class="line"><a name="l00886"></a><span class="lineno">  886</span>     ElementLoc = State->getLValue(ElemDecl, LCtx);</div>
+<div class="line"><a name="l00887"></a><span class="lineno">  887</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00888"></a><span class="lineno">  888</span>     ElementLoc = State->getSVal(Element, LCtx).getAs<<a class="code" href="classclang_1_1ento_1_1Loc.html">Loc</a>>();</div>
+<div class="line"><a name="l00889"></a><span class="lineno">  889</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">  891</span>   <span class="keywordflow">if</span> (!ElementLoc)</div>
+<div class="line"><a name="l00892"></a><span class="lineno">  892</span>     <span class="keywordflow">return</span> <a class="code" href="Format_8cpp.html#a83e9e4ff6cb05dbdf72ab2a01aa289c0">State</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>   <span class="comment">// Go ahead and assume the value is non-nil.</span></div>
+<div class="line"><a name="l00895"></a><span class="lineno">  895</span>   <a class="code" href="classclang_1_1ento_1_1SVal.html">SVal</a> Val = State->getSVal(*ElementLoc);</div>
+<div class="line"><a name="l00896"></a><span class="lineno">  896</span>   <span class="keywordflow">return</span> State->assume(Val.<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_1DefinedOrUnknownSVal.html">DefinedOrUnknownSVal</a>>(), <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00897"></a><span class="lineno">  897</span> }</div>
+<div class="line"><a name="l00898"></a><span class="lineno">  898</span> <span class="comment"></span></div>
+<div class="line"><a name="l00899"></a><span class="lineno">  899</span> <span class="comment">/// Returns NULL state if the collection is known to contain elements</span></div>
+<div class="line"><a name="l00900"></a><span class="lineno">  900</span> <span class="comment">/// (or is known not to contain elements if the Assumption parameter is false.)</span></div>
+<div class="line"><a name="l00901"></a><span class="lineno">  901</span> <span class="comment"></span><span class="keyword">static</span> <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">ProgramStateRef</a></div>
+<div class="line"><a name="l00902"></a><span class="lineno"><a class="code" href="BasicObjCFoundationChecks_8cpp.html#a9d519853feb880971a2f54a669afad81">  902</a></span> <a class="code" href="BasicObjCFoundationChecks_8cpp.html#a9d519853feb880971a2f54a669afad81">assumeCollectionNonEmpty</a>(<a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C, <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">ProgramStateRef</a> State,</div>
+<div class="line"><a name="l00903"></a><span class="lineno">  903</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> CollectionS, <span class="keywordtype">bool</span> Assumption) {</div>
+<div class="line"><a name="l00904"></a><span class="lineno">  904</span>   <span class="keywordflow">if</span> (!State || !CollectionS)</div>
+<div class="line"><a name="l00905"></a><span class="lineno">  905</span>     <span class="keywordflow">return</span> <a class="code" href="Format_8cpp.html#a83e9e4ff6cb05dbdf72ab2a01aa289c0">State</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>   <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> *CountS = State->get<ContainerCountMap>(CollectionS);</div>
+<div class="line"><a name="l00908"></a><span class="lineno">  908</span>   <span class="keywordflow">if</span> (!CountS) {</div>
+<div class="line"><a name="l00909"></a><span class="lineno">  909</span>     <span class="keyword">const</span> <span class="keywordtype">bool</span> *KnownNonEmpty = State->get<ContainerNonEmptyMap>(CollectionS);</div>
+<div class="line"><a name="l00910"></a><span class="lineno">  910</span>     <span class="keywordflow">if</span> (!KnownNonEmpty)</div>
+<div class="line"><a name="l00911"></a><span class="lineno">  911</span>       <span class="keywordflow">return</span> State->set<ContainerNonEmptyMap>(CollectionS, Assumption);</div>
+<div class="line"><a name="l00912"></a><span class="lineno">  912</span>     <span class="keywordflow">return</span> (Assumption == *KnownNonEmpty) ? State : <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</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> </div>
+<div class="line"><a name="l00915"></a><span class="lineno">  915</span>   <a class="code" href="classclang_1_1ento_1_1SValBuilder.html">SValBuilder</a> &SvalBuilder = C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a791437277a1f6304084fcd605ca3e4ee">getSValBuilder</a>();</div>
+<div class="line"><a name="l00916"></a><span class="lineno">  916</span>   <a class="code" href="classclang_1_1ento_1_1SVal.html">SVal</a> CountGreaterThanZeroVal =</div>
+<div class="line"><a name="l00917"></a><span class="lineno">  917</span>     SvalBuilder.<a class="code" href="classclang_1_1ento_1_1SValBuilder.html#ae2b560aefe6d35547b11ab0f8c1919f4">evalBinOp</a>(State, <a class="code" href="namespaceclang.html#a443b552ee80020cfeb2b86c99e7f85e1a9ff57a80bfff7f4a29cfc5ea9525ed6f">BO_GT</a>,</div>
+<div class="line"><a name="l00918"></a><span class="lineno">  918</span>                           <a class="code" href="classclang_1_1ento_1_1nonloc_1_1SymbolVal.html" title="Represents symbolic expression.">nonloc::SymbolVal</a>(*CountS),</div>
+<div class="line"><a name="l00919"></a><span class="lineno">  919</span>                           SvalBuilder.<a class="code" href="classclang_1_1ento_1_1SValBuilder.html#a64d6f6dbe80edaf522a08d9e29ed49ff">makeIntVal</a>(0, (*CountS)->getType()),</div>
+<div class="line"><a name="l00920"></a><span class="lineno">  920</span>                           SvalBuilder.<a class="code" href="classclang_1_1ento_1_1SValBuilder.html#a281bfc8da76dfb6404917e2c554ec4d6">getConditionType</a>());</div>
+<div class="line"><a name="l00921"></a><span class="lineno">  921</span>   <a class="code" href="classllvm_1_1Optional.html">Optional<DefinedSVal></a> CountGreaterThanZero =</div>
+<div class="line"><a name="l00922"></a><span class="lineno">  922</span>     CountGreaterThanZeroVal.<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_1DefinedSVal.html">DefinedSVal</a>>();</div>
+<div class="line"><a name="l00923"></a><span class="lineno">  923</span>   <span class="keywordflow">if</span> (!CountGreaterThanZero) {</div>
+<div class="line"><a name="l00924"></a><span class="lineno">  924</span>     <span class="comment">// The SValBuilder cannot construct a valid SVal for this condition.</span></div>
+<div class="line"><a name="l00925"></a><span class="lineno">  925</span>     <span class="comment">// This means we cannot properly reason about it.</span></div>
+<div class="line"><a name="l00926"></a><span class="lineno">  926</span>     <span class="keywordflow">return</span> <a class="code" href="Format_8cpp.html#a83e9e4ff6cb05dbdf72ab2a01aa289c0">State</a>;</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> </div>
+<div class="line"><a name="l00929"></a><span class="lineno">  929</span>   <span class="keywordflow">return</span> State->assume(*CountGreaterThanZero, Assumption);</div>
+<div class="line"><a name="l00930"></a><span class="lineno">  930</span> }</div>
+<div class="line"><a name="l00931"></a><span class="lineno">  931</span> </div>
+<div class="line"><a name="l00932"></a><span class="lineno">  932</span> <span class="keyword">static</span> <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">ProgramStateRef</a></div>
+<div class="line"><a name="l00933"></a><span class="lineno"><a class="code" href="BasicObjCFoundationChecks_8cpp.html#aad37768f300db5cf13c1e62d97f191de">  933</a></span> <a class="code" href="BasicObjCFoundationChecks_8cpp.html#a9d519853feb880971a2f54a669afad81">assumeCollectionNonEmpty</a>(<a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C, <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">ProgramStateRef</a> State,</div>
+<div class="line"><a name="l00934"></a><span class="lineno">  934</span>                          <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCForCollectionStmt.html" title="Represents Objective-C's collection statement.">ObjCForCollectionStmt</a> *FCS,</div>
+<div class="line"><a name="l00935"></a><span class="lineno">  935</span>                          <span class="keywordtype">bool</span> Assumption) {</div>
+<div class="line"><a name="l00936"></a><span class="lineno">  936</span>   <span class="keywordflow">if</span> (!State)</div>
+<div class="line"><a name="l00937"></a><span class="lineno">  937</span>     <span class="keywordflow">return</span> <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</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>   <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> CollectionS =</div>
+<div class="line"><a name="l00940"></a><span class="lineno">  940</span>     State->getSVal(FCS-><a class="code" href="classclang_1_1ObjCForCollectionStmt.html#a4bc912c3ad7e9cc5b19a22b7dd743139">getCollection</a>(), C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a7581c66c5849fab4a40b321024c9c136">getLocationContext</a>()).getAsSymbol();</div>
+<div class="line"><a name="l00941"></a><span class="lineno">  941</span>   <span class="keywordflow">return</span> <a class="code" href="BasicObjCFoundationChecks_8cpp.html#a9d519853feb880971a2f54a669afad81">assumeCollectionNonEmpty</a>(C, State, CollectionS, Assumption);</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="comment"></span></div>
+<div class="line"><a name="l00945"></a><span class="lineno">  945</span> <span class="comment">/// If the fist block edge is a back edge, we are reentering the loop.</span></div>
+<div class="line"><a name="l00946"></a><span class="lineno"><a class="code" href="BasicObjCFoundationChecks_8cpp.html#a06f0fe6eb91d3fbf16f87fabe5cd6bcf">  946</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="BasicObjCFoundationChecks_8cpp.html#a06f0fe6eb91d3fbf16f87fabe5cd6bcf" title="If the fist block edge is a back edge, we are reentering the loop.">alreadyExecutedAtLeastOneLoopIteration</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1ExplodedNode.html">ExplodedNode</a> *N,</div>
+<div class="line"><a name="l00947"></a><span class="lineno">  947</span>                                              <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCForCollectionStmt.html" title="Represents Objective-C's collection statement.">ObjCForCollectionStmt</a> *FCS) {</div>
+<div class="line"><a name="l00948"></a><span class="lineno">  948</span>   <span class="keywordflow">if</span> (!N)</div>
+<div class="line"><a name="l00949"></a><span class="lineno">  949</span>     <span class="keywordflow">return</span> <span class="keyword">false</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">  951</span>   <a class="code" href="classclang_1_1ProgramPoint.html">ProgramPoint</a> <a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a> = N-><a class="code" href="classclang_1_1ento_1_1ExplodedNode.html#afb4d9693286307b3fcba2bb9fdbef530" title="getLocation - Returns the edge associated with the given node.">getLocation</a>();</div>
+<div class="line"><a name="l00952"></a><span class="lineno">  952</span>   <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1Optional.html">Optional<BlockEdge></a> BE = P.<a class="code" href="classclang_1_1ProgramPoint.html#a18cdaf6f5c806edd0c3b437f94fdb5cb" title="Convert to the specified ProgramPoint type, returning None if this ProgramPoint is not of the desired...">getAs</a><<a class="code" href="classclang_1_1BlockEdge.html">BlockEdge</a>>()) {</div>
+<div class="line"><a name="l00953"></a><span class="lineno">  953</span>     <span class="keywordflow">if</span> (BE->getSrc()->getLoopTarget() == FCS)</div>
+<div class="line"><a name="l00954"></a><span class="lineno">  954</span>       <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00955"></a><span class="lineno">  955</span>     <span class="keywordflow">return</span> <span class="keyword">false</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> </div>
+<div class="line"><a name="l00958"></a><span class="lineno">  958</span>   <span class="comment">// Keep looking for a block edge.</span></div>
+<div class="line"><a name="l00959"></a><span class="lineno">  959</span>   <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1ento_1_1ExplodedNode.html#ad7f3eae46d0b6ff12bf20e1306c7cc45">ExplodedNode::const_pred_iterator</a> I = N-><a class="code" href="classclang_1_1ento_1_1ExplodedNode.html#a20538149cf337ff911fdd487f56c0732">pred_begin</a>(),</div>
+<div class="line"><a name="l00960"></a><span class="lineno">  960</span>                                          E = N-><a class="code" href="classclang_1_1ento_1_1ExplodedNode.html#a1d3f927855df1cf4da332cc5ef00ad28">pred_end</a>(); I != E; ++I) {</div>
+<div class="line"><a name="l00961"></a><span class="lineno">  961</span>     <span class="keywordflow">if</span> (<a class="code" href="BasicObjCFoundationChecks_8cpp.html#a06f0fe6eb91d3fbf16f87fabe5cd6bcf" title="If the fist block edge is a back edge, we are reentering the loop.">alreadyExecutedAtLeastOneLoopIteration</a>(*I, FCS))</div>
+<div class="line"><a name="l00962"></a><span class="lineno">  962</span>       <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00963"></a><span class="lineno">  963</span>   }</div>
+<div class="line"><a name="l00964"></a><span class="lineno">  964</span> </div>
+<div class="line"><a name="l00965"></a><span class="lineno">  965</span>   <span class="keywordflow">return</span> <span class="keyword">false</span>;</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> </div>
+<div class="line"><a name="l00968"></a><span class="lineno">  968</span> <span class="keywordtype">void</span> ObjCLoopChecker::checkPostStmt(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCForCollectionStmt.html" title="Represents Objective-C's collection statement.">ObjCForCollectionStmt</a> *FCS,</div>
+<div class="line"><a name="l00969"></a><span class="lineno">  969</span>                                     <a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00970"></a><span class="lineno">  970</span>   <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">ProgramStateRef</a> State = C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a81bd66f80b18117a9a64a8d0daa62825">getState</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="comment">// Check if this is the branch for the end of the loop.</span></div>
+<div class="line"><a name="l00973"></a><span class="lineno">  973</span>   <a class="code" href="classclang_1_1ento_1_1SVal.html">SVal</a> CollectionSentinel = C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a0d759e052a03b3b956294899dc2ccd0d" title="Get the value of arbitrary expressions at this point in the path.">getSVal</a>(FCS);</div>
+<div class="line"><a name="l00974"></a><span class="lineno">  974</span>   <span class="keywordflow">if</span> (CollectionSentinel.<a class="code" href="classclang_1_1ento_1_1SVal.html#a39e08d242aab936652cc53b326cbcc04">isZeroConstant</a>()) {</div>
+<div class="line"><a name="l00975"></a><span class="lineno">  975</span>     <span class="keywordflow">if</span> (!<a class="code" href="BasicObjCFoundationChecks_8cpp.html#a06f0fe6eb91d3fbf16f87fabe5cd6bcf" title="If the fist block edge is a back edge, we are reentering the loop.">alreadyExecutedAtLeastOneLoopIteration</a>(C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a930928b571decc73554143360f348384" title="Returns the previous node in the exploded graph, which includes the state of the program before the c...">getPredecessor</a>(), FCS))</div>
+<div class="line"><a name="l00976"></a><span class="lineno">  976</span>       State = <a class="code" href="BasicObjCFoundationChecks_8cpp.html#a9d519853feb880971a2f54a669afad81">assumeCollectionNonEmpty</a>(C, State, FCS, <span class="comment">/*Assumption*/</span><span class="keyword">false</span>);</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="comment">// Otherwise, this is a branch that goes through the loop body.</span></div>
+<div class="line"><a name="l00979"></a><span class="lineno">  979</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00980"></a><span class="lineno">  980</span>     State = <a class="code" href="BasicObjCFoundationChecks_8cpp.html#a1a395d5b17a200dc6b84d778f0e5d231">checkCollectionNonNil</a>(C, State, FCS);</div>
+<div class="line"><a name="l00981"></a><span class="lineno">  981</span>     State = <a class="code" href="BasicObjCFoundationChecks_8cpp.html#ada326547799f2819472ff9cab3ce8ac1">checkElementNonNil</a>(C, State, FCS);</div>
+<div class="line"><a name="l00982"></a><span class="lineno">  982</span>     State = <a class="code" href="BasicObjCFoundationChecks_8cpp.html#a9d519853feb880971a2f54a669afad81">assumeCollectionNonEmpty</a>(C, State, FCS, <span class="comment">/*Assumption*/</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">if</span> (!State)</div>
+<div class="line"><a name="l00986"></a><span class="lineno">  986</span>     C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#adeea33a5a2bed190210c4a2bb807a6f0" title="Generate a sink node. Generating a sink stops exploration of the given path.">generateSink</a>();</div>
+<div class="line"><a name="l00987"></a><span class="lineno">  987</span>   <span class="keywordflow">else</span> <span class="keywordflow">if</span> (State != C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a81bd66f80b18117a9a64a8d0daa62825">getState</a>())</div>
+<div class="line"><a name="l00988"></a><span class="lineno">  988</span>     C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a264f48d97809707049689c37aa35af78" title="Generates a new transition in the program state graph (ExplodedGraph). Uses the default CheckerContex...">addTransition</a>(State);</div>
+<div class="line"><a name="l00989"></a><span class="lineno">  989</span> }</div>
+<div class="line"><a name="l00990"></a><span class="lineno">  990</span> </div>
+<div class="line"><a name="l00991"></a><span class="lineno">  991</span> <span class="keywordtype">bool</span> ObjCLoopChecker::isCollectionCountMethod(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodCall.html" title="Represents any expression that calls an Objective-C method.">ObjCMethodCall</a> &M,</div>
+<div class="line"><a name="l00992"></a><span class="lineno">  992</span>                                               <a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00993"></a><span class="lineno">  993</span>   <a class="code" href="classclang_1_1Selector.html" title="Smart pointer class that efficiently represents Objective-C method names.">Selector</a> S = M.<a class="code" href="classclang_1_1ObjCMethodCall.html#a60e54f95046b7e000d1960c66c162462">getSelector</a>();</div>
+<div class="line"><a name="l00994"></a><span class="lineno">  994</span>   <span class="comment">// Initialize the identifiers on first use.</span></div>
+<div class="line"><a name="l00995"></a><span class="lineno">  995</span>   <span class="keywordflow">if</span> (!CountSelectorII)</div>
+<div class="line"><a name="l00996"></a><span class="lineno">  996</span>     CountSelectorII = &C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#ae6c98ff68628991ee1d07ad7d848b41f">getASTContext</a>().<a class="code" href="classclang_1_1ASTContext.html#a4f95adb9958e22fbe55212ae6482feb4">Idents</a>.<a class="code" href="classclang_1_1IdentifierTable.html#aea14376d325400caa8a8183d14a02f39" title="Return the identifier token info for the specified named identifier.">get</a>(<span class="stringliteral">"count"</span>);</div>
+<div class="line"><a name="l00997"></a><span class="lineno">  997</span> </div>
+<div class="line"><a name="l00998"></a><span class="lineno">  998</span>   <span class="comment">// If the method returns collection count, record the value.</span></div>
+<div class="line"><a name="l00999"></a><span class="lineno">  999</span>   <span class="keywordflow">if</span> (S.<a class="code" href="classclang_1_1Selector.html#a27ff9883d243e82c10340d6146e49a7a">isUnarySelector</a>() &&</div>
+<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>       (S.<a class="code" href="classclang_1_1Selector.html#a79b49f4b847c9fea73947aad1fc1ccf8" title="Retrieve the identifier at a given position in the selector.">getIdentifierInfoForSlot</a>(0) == CountSelectorII))</div>
+<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>     <span class="keywordflow">return</span> <span class="keyword">true</span>;</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>   <span class="keywordflow">return</span> <span class="keyword">false</span>;</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> <span class="keywordtype">void</span> ObjCLoopChecker::checkPostObjCMessage(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodCall.html" title="Represents any expression that calls an Objective-C method.">ObjCMethodCall</a> &M,</div>
+<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>                                            <a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>   <span class="keywordflow">if</span> (!M.<a class="code" href="classclang_1_1ObjCMethodCall.html#abee465f9cd64b110a39f3ab4952aa0c0">isInstanceMessage</a>())</div>
+<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span> </div>
+<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *ClassID = M.<a class="code" href="classclang_1_1ObjCMethodCall.html#a77809ae142f65cb2f8352d8f416e61db" title="Get the interface for the receiver.">getReceiverInterface</a>();</div>
+<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>   <span class="keywordflow">if</span> (!ClassID)</div>
+<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span> </div>
+<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>   <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6">FoundationClass</a> Class = <a class="code" href="BasicObjCFoundationChecks_8cpp.html#a2a4e44325df6137bd11b14a88e025dcc">findKnownClass</a>(ClassID);</div>
+<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>   <span class="keywordflow">if</span> (Class != <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6aecf88e14bd4e5e2b01aa69eaff87aa04">FC_NSDictionary</a> &&</div>
+<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>       Class != <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6a870bd58d814cca18f0b4784e3bee5232">FC_NSArray</a> &&</div>
+<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>       Class != <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6a93dc55c38218e65c4f54c24e1eace1ae">FC_NSSet</a> &&</div>
+<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>       Class != <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6ac8790640f676635c798cf6ff2aeedcd6">FC_NSOrderedSet</a>)</div>
+<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span> </div>
+<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>   <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> ContainerS = M.<a class="code" href="classclang_1_1ObjCMethodCall.html#aec6aa50eb3a012c6da65036a5e7c8025" title="Returns the value of the receiver at the time of this call.">getReceiverSVal</a>().<a class="code" href="classclang_1_1ento_1_1SVal.html#ac25107c9210008fe3d0f8a4ee74eaa85" title="If this SVal wraps a symbol return that SymbolRef. Otherwise, return 0.">getAsSymbol</a>();</div>
+<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>   <span class="keywordflow">if</span> (!ContainerS)</div>
+<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span> </div>
+<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>   <span class="comment">// If we are processing a call to "count", get the symbolic value returned by</span></div>
+<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>   <span class="comment">// a call to "count" and add it to the map.</span></div>
+<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>   <span class="keywordflow">if</span> (!isCollectionCountMethod(M, C))</div>
+<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>   </div>
+<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *MsgExpr = M.<a class="code" href="classclang_1_1ObjCMethodCall.html#a58f6512d85d133edf6010bb910f44323">getOriginExpr</a>();</div>
+<div class="line"><a name="l01032"></a><span class="lineno"> 1032</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> CountS = C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a0d759e052a03b3b956294899dc2ccd0d" title="Get the value of arbitrary expressions at this point in the path.">getSVal</a>(MsgExpr).<a class="code" href="classclang_1_1ento_1_1SVal.html#ac25107c9210008fe3d0f8a4ee74eaa85" title="If this SVal wraps a symbol return that SymbolRef. Otherwise, return 0.">getAsSymbol</a>();</div>
+<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>   <span class="keywordflow">if</span> (CountS) {</div>
+<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>     <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">ProgramStateRef</a> State = C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a81bd66f80b18117a9a64a8d0daa62825">getState</a>();</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>     C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#ad3d19b0bef961baec420448fe2e3a90a">getSymbolManager</a>().<a class="code" href="classclang_1_1ento_1_1SymbolManager.html#a639136ca681d64b7d32a1adee0a0fb06" title="Add artificial symbol dependency.">addSymbolDependency</a>(ContainerS, CountS);</div>
+<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>     State = State->set<ContainerCountMap>(ContainerS, CountS);</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>     <span class="keywordflow">if</span> (<span class="keyword">const</span> <span class="keywordtype">bool</span> *NonEmpty = State->get<ContainerNonEmptyMap>(ContainerS)) {</div>
+<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>       State = State->remove<ContainerNonEmptyMap>(ContainerS);</div>
+<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>       State = <a class="code" href="BasicObjCFoundationChecks_8cpp.html#a9d519853feb880971a2f54a669afad81">assumeCollectionNonEmpty</a>(C, State, ContainerS, *NonEmpty);</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"> 1044</span>     C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a264f48d97809707049689c37aa35af78" title="Generates a new transition in the program state graph (ExplodedGraph). Uses the default CheckerContex...">addTransition</a>(State);</div>
+<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>   }</div>
+<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>   <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span> }</div>
+<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span> </div>
+<div class="line"><a name="l01049"></a><span class="lineno"><a class="code" href="BasicObjCFoundationChecks_8cpp.html#ab5383d7604ee5af21691acb4f7078ac7"> 1049</a></span> <span class="keyword">static</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="BasicObjCFoundationChecks_8cpp.html#ab5383d7604ee5af21691acb4f7078ac7">getMethodReceiverIfKnownImmutable</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1CallEvent.html" title="Represents an abstract call to a function or method along a particular path.">CallEvent</a> *Call) {</div>
+<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodCall.html" title="Represents any expression that calls an Objective-C method.">ObjCMethodCall</a> *Message = dyn_cast_or_null<ObjCMethodCall>(Call);</div>
+<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>   <span class="keywordflow">if</span> (!Message)</div>
+<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>     <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span> </div>
+<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *MD = Message-><a class="code" href="classclang_1_1ObjCMethodCall.html#a9dd4b185ace5a3745c311ccb22adcadd">getDecl</a>();</div>
+<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>   <span class="keywordflow">if</span> (!MD)</div>
+<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>     <span class="keywordflow">return</span> 0;</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="keyword">const</span> <a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *StaticClass;</div>
+<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>   <span class="keywordflow">if</span> (isa<ObjCProtocolDecl>(MD-><a class="code" href="classclang_1_1Decl.html#af67e1a1d24dcc51093b95dbcf68d4288">getDeclContext</a>())) {</div>
+<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>     <span class="comment">// We can't find out where the method was declared without doing more work.</span></div>
+<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>     <span class="comment">// Instead, see if the receiver is statically typed as a known immutable</span></div>
+<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>     <span class="comment">// collection.</span></div>
+<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>     StaticClass = Message-><a class="code" href="classclang_1_1ObjCMethodCall.html#a58f6512d85d133edf6010bb910f44323">getOriginExpr</a>()-><a class="code" href="classclang_1_1ObjCMessageExpr.html#ac1a549d7d104f7d1570a92e7b1554112" title="Retrieve the Objective-C interface to which this message is being directed, if known.">getReceiverInterface</a>();</div>
+<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>     StaticClass = MD-><a class="code" href="classclang_1_1ObjCMethodDecl.html#ae289a054485ee4d1d66b33e833e16091">getClassInterface</a>();</div>
+<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>   }</div>
+<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span> </div>
+<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>   <span class="keywordflow">if</span> (!StaticClass)</div>
+<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>     <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span> </div>
+<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>   <span class="keywordflow">switch</span> (<a class="code" href="BasicObjCFoundationChecks_8cpp.html#a2a4e44325df6137bd11b14a88e025dcc">findKnownClass</a>(StaticClass, <span class="comment">/*IncludeSuper=*/</span><span class="keyword">false</span>)) {</div>
+<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>   <span class="keywordflow">case</span> <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6a21e7aeccc42f26b2e942ae4655e793cb">FC_None</a>:</div>
+<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>     <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>   <span class="keywordflow">case</span> <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6a870bd58d814cca18f0b4784e3bee5232">FC_NSArray</a>:</div>
+<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>   <span class="keywordflow">case</span> <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6aecf88e14bd4e5e2b01aa69eaff87aa04">FC_NSDictionary</a>:</div>
+<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>   <span class="keywordflow">case</span> <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6acaaf606a7c8158230ec2717bdde06b5b">FC_NSEnumerator</a>:</div>
+<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>   <span class="keywordflow">case</span> <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6a28092e02c5f3e1dae5d13d8ca0226db1">FC_NSNull</a>:</div>
+<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>   <span class="keywordflow">case</span> <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6ac8790640f676635c798cf6ff2aeedcd6">FC_NSOrderedSet</a>:</div>
+<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>   <span class="keywordflow">case</span> <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6a93dc55c38218e65c4f54c24e1eace1ae">FC_NSSet</a>:</div>
+<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>   <span class="keywordflow">case</span> <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6a9bc9a52cef75b57a1891076b8b08cb4c">FC_NSString</a>:</div>
+<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>     <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>   }</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>   <span class="keywordflow">return</span> Message-><a class="code" href="classclang_1_1ObjCMethodCall.html#aec6aa50eb3a012c6da65036a5e7c8025" title="Returns the value of the receiver at the time of this call.">getReceiverSVal</a>().<a class="code" href="classclang_1_1ento_1_1SVal.html#ac25107c9210008fe3d0f8a4ee74eaa85" title="If this SVal wraps a symbol return that SymbolRef. Otherwise, return 0.">getAsSymbol</a>();</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> </div>
+<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span> <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">ProgramStateRef</a></div>
+<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span> ObjCLoopChecker::checkPointerEscape(<a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">ProgramStateRef</a> State,</div>
+<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>                                     <span class="keyword">const</span> <a class="code" href="classllvm_1_1DenseSet.html">InvalidatedSymbols</a> &Escaped,</div>
+<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>                                     <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1CallEvent.html" title="Represents an abstract call to a function or method along a particular path.">CallEvent</a> *Call,</div>
+<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>                                     <a class="code" href="namespaceclang_1_1ento.html#a1f45158b71c9d04bfd6094ee29a38e59" title="Describes the different reasons a pointer escapes during analysis.">PointerEscapeKind</a> <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a>)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01092"></a><span class="lineno"> 1092</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> ImmutableReceiver = <a class="code" href="BasicObjCFoundationChecks_8cpp.html#ab5383d7604ee5af21691acb4f7078ac7">getMethodReceiverIfKnownImmutable</a>(Call);</div>
+<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span> </div>
+<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>   <span class="comment">// Remove the invalidated symbols form the collection count map.</span></div>
+<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>   <span class="keywordflow">for</span> (InvalidatedSymbols::const_iterator I = Escaped.begin(),</div>
+<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>        E = Escaped.end();</div>
+<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>        I != E; ++I) {</div>
+<div class="line"><a name="l01098"></a><span class="lineno"> 1098</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> Sym = *I;</div>
+<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span> </div>
+<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>     <span class="comment">// Don't invalidate this symbol's count if we know the method being called</span></div>
+<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>     <span class="comment">// is declared on an immutable class. This isn't completely correct if the</span></div>
+<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>     <span class="comment">// receiver is also passed as an argument, but in most uses of NSArray,</span></div>
+<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>     <span class="comment">// NSDictionary, etc. this isn't likely to happen in a dangerous way.</span></div>
+<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>     <span class="keywordflow">if</span> (Sym == ImmutableReceiver)</div>
+<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>       <span class="keywordflow">continue</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="comment">// The symbol escaped. Pessimistically, assume that the count could have</span></div>
+<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>     <span class="comment">// changed.</span></div>
+<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>     State = State->remove<ContainerCountMap>(Sym);</div>
+<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>     State = State->remove<ContainerNonEmptyMap>(Sym);</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="keywordflow">return</span> <a class="code" href="Format_8cpp.html#a83e9e4ff6cb05dbdf72ab2a01aa289c0">State</a>;</div>
+<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span> }</div>
+<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span> </div>
+<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span> <span class="keywordtype">void</span> ObjCLoopChecker::checkDeadSymbols(<a class="code" href="classclang_1_1ento_1_1SymbolReaper.html" title="A class responsible for cleaning up unused symbols.">SymbolReaper</a> &SymReaper,</div>
+<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>                                        <a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>   <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">ProgramStateRef</a> State = C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a81bd66f80b18117a9a64a8d0daa62825">getState</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>   <span class="comment">// Remove the dead symbols from the collection count map.</span></div>
+<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>   ContainerCountMapTy Tracked = State->get<ContainerCountMap>();</div>
+<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>   <span class="keywordflow">for</span> (ContainerCountMapTy::iterator I = Tracked.begin(),</div>
+<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>                                      E = Tracked.end(); I != E; ++I) {</div>
+<div class="line"><a name="l01123"></a><span class="lineno"> 1123</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> Sym = I->first;</div>
+<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>     <span class="keywordflow">if</span> (SymReaper.<a class="code" href="classclang_1_1ento_1_1SymbolReaper.html#a55a3e2deb99a8c138b1270b8cfdfd76d" title="Returns whether or not a symbol has been confirmed dead.">isDead</a>(Sym)) {</div>
+<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>       State = State->remove<ContainerCountMap>(Sym);</div>
+<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>       State = State->remove<ContainerNonEmptyMap>(Sym);</div>
+<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>     }</div>
+<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>   }</div>
+<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span> </div>
+<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>   C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a264f48d97809707049689c37aa35af78" title="Generates a new transition in the program state graph (ExplodedGraph). Uses the default CheckerContex...">addTransition</a>(State);</div>
+<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span> }</div>
+<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span> </div>
+<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span> <span class="keyword">namespace </span>{<span class="comment"></span></div>
+<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span> <span class="comment">/// \class ObjCNonNilReturnValueChecker</span></div>
+<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span> <span class="comment">/// \brief The checker restricts the return values of APIs known to</span></div>
+<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span> <span class="comment">/// never (or almost never) return 'nil'.</span></div>
+<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span> <span class="comment"></span><span class="keyword">class </span>ObjCNonNilReturnValueChecker</div>
+<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>   : <span class="keyword">public</span> <a class="code" href="classclang_1_1ento_1_1Checker.html">Checker</a><check::PostObjCMessage> {</div>
+<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>     <span class="keyword">mutable</span> <span class="keywordtype">bool</span> <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880aae32940b344dab2f4e31be660ce1ab02">Initialized</a>;</div>
+<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>     <span class="keyword">mutable</span> <a class="code" href="classclang_1_1Selector.html" title="Smart pointer class that efficiently represents Objective-C method names.">Selector</a> ObjectAtIndex;</div>
+<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>     <span class="keyword">mutable</span> <a class="code" href="classclang_1_1Selector.html" title="Smart pointer class that efficiently represents Objective-C method names.">Selector</a> ObjectAtIndexedSubscript;</div>
+<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>     <span class="keyword">mutable</span> <a class="code" href="classclang_1_1Selector.html" title="Smart pointer class that efficiently represents Objective-C method names.">Selector</a> NullSelector;</div>
+<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span> </div>
+<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>   ObjCNonNilReturnValueChecker() : <a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880aae32940b344dab2f4e31be660ce1ab02">Initialized</a>(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>) {}</div>
+<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>   <span class="keywordtype">void</span> checkPostObjCMessage(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodCall.html" title="Represents any expression that calls an Objective-C method.">ObjCMethodCall</a> &M, <a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span> };</div>
+<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span> }</div>
+<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span> </div>
+<div class="line"><a name="l01150"></a><span class="lineno"><a class="code" href="BasicObjCFoundationChecks_8cpp.html#a56eef7820025ef6616e74e383610ee49"> 1150</a></span> <span class="keyword">static</span> <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">ProgramStateRef</a> <a class="code" href="BasicObjCFoundationChecks_8cpp.html#a56eef7820025ef6616e74e383610ee49">assumeExprIsNonNull</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *NonNullExpr,</div>
+<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>                                            <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">ProgramStateRef</a> State,</div>
+<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>                                            <a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C) {</div>
+<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>   <a class="code" href="classclang_1_1ento_1_1SVal.html">SVal</a> Val = State->getSVal(NonNullExpr, C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a7581c66c5849fab4a40b321024c9c136">getLocationContext</a>());</div>
+<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>   <span class="keywordflow">if</span> (<a class="code" href="classllvm_1_1Optional.html">Optional<DefinedOrUnknownSVal></a> DV = Val.<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_1DefinedOrUnknownSVal.html">DefinedOrUnknownSVal</a>>())</div>
+<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>     <span class="keywordflow">return</span> State->assume(*DV, <span class="keyword">true</span>);</div>
+<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>   <span class="keywordflow">return</span> <a class="code" href="Format_8cpp.html#a83e9e4ff6cb05dbdf72ab2a01aa289c0">State</a>;</div>
+<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span> }</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> <span class="keywordtype">void</span> ObjCNonNilReturnValueChecker::checkPostObjCMessage(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodCall.html" title="Represents any expression that calls an Objective-C method.">ObjCMethodCall</a> &M,</div>
+<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>                                                         <a class="code" href="classclang_1_1ento_1_1CheckerContext.html">CheckerContext</a> &C)<span class="keyword"></span></div>
+<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span> <span class="keyword">                                                        const </span>{</div>
+<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>   <a class="code" href="classllvm_1_1IntrusiveRefCntPtr.html">ProgramStateRef</a> State = C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a81bd66f80b18117a9a64a8d0daa62825">getState</a>();</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>   <span class="keywordflow">if</span> (!<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880aae32940b344dab2f4e31be660ce1ab02">Initialized</a>) {</div>
+<div class="line"><a name="l01165"></a><span class="lineno"> 1165</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 = C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#ae6c98ff68628991ee1d07ad7d848b41f">getASTContext</a>();</div>
+<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>     ObjectAtIndex = <a class="code" href="namespaceclang.html#a76eb8ffd4176c64e1a1d28bab750b6dc" title="Utility function for constructing an unary selector.">GetUnarySelector</a>(<span class="stringliteral">"objectAtIndex"</span>, Ctx);</div>
+<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>     ObjectAtIndexedSubscript = <a class="code" href="namespaceclang.html#a76eb8ffd4176c64e1a1d28bab750b6dc" title="Utility function for constructing an unary selector.">GetUnarySelector</a>(<span class="stringliteral">"objectAtIndexedSubscript"</span>, Ctx);</div>
+<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>     NullSelector = <a class="code" href="namespaceclang.html#a2a239358dba4d59740ad4a772f0b2c58" title="Utility function for constructing a nullary selector.">GetNullarySelector</a>(<span class="stringliteral">"null"</span>, Ctx);</div>
+<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>   }</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>   <span class="comment">// Check the receiver type.</span></div>
+<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *Interface = M.<a class="code" href="classclang_1_1ObjCMethodCall.html#a77809ae142f65cb2f8352d8f416e61db" title="Get the interface for the receiver.">getReceiverInterface</a>()) {</div>
+<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span> </div>
+<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>     <span class="comment">// Assume that object returned from '[self init]' or '[super init]' is not</span></div>
+<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>     <span class="comment">// 'nil' if we are processing an inlined function/method.</span></div>
+<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>     <span class="comment">//</span></div>
+<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>     <span class="comment">// A defensive callee will (and should) check if the object returned by</span></div>
+<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>     <span class="comment">// '[super init]' is 'nil' before doing it's own initialization. However,</span></div>
+<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>     <span class="comment">// since 'nil' is rarely returned in practice, we should not warn when the</span></div>
+<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>     <span class="comment">// caller to the defensive constructor uses the object in contexts where</span></div>
+<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>     <span class="comment">// 'nil' is not accepted.</span></div>
+<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>     <span class="keywordflow">if</span> (!C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a8586a3286937063211485cedbd242c1d" title="Return true if the current LocationContext has no caller context.">inTopFrame</a>() && M.<a class="code" href="classclang_1_1ObjCMethodCall.html#a9dd4b185ace5a3745c311ccb22adcadd">getDecl</a>() &&</div>
+<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>         M.<a class="code" href="classclang_1_1ObjCMethodCall.html#a9dd4b185ace5a3745c311ccb22adcadd">getDecl</a>()-><a class="code" href="classclang_1_1ObjCMethodDecl.html#a797418dad629dd1538fd9ebaa6daa1f1" title="Determines the family of this method.">getMethodFamily</a>() == <a class="code" href="namespaceclang.html#a5dc786a6640e4d510cd8b68a5a87a140a7749fb8107514089095277752fe75ece">OMF_init</a> &&</div>
+<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>         M.<a class="code" href="classclang_1_1ObjCMethodCall.html#ad6253b0426cc840abd1cfceec3712609" title="Checks if the receiver refers to 'self' or 'super'.">isReceiverSelfOrSuper</a>()) {</div>
+<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>       State = <a class="code" href="BasicObjCFoundationChecks_8cpp.html#a56eef7820025ef6616e74e383610ee49">assumeExprIsNonNull</a>(M.<a class="code" href="classclang_1_1ObjCMethodCall.html#a58f6512d85d133edf6010bb910f44323">getOriginExpr</a>(), <a class="code" href="Format_8cpp.html#a83e9e4ff6cb05dbdf72ab2a01aa289c0">State</a>, C);</div>
+<div class="line"><a name="l01186"></a><span class="lineno"> 1186</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>     <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6">FoundationClass</a> <a class="code" href="classclang_1_1Expr_1_1Classification.html" title="The return type of classify(). Represents the C++11 expression taxonomy.">Cl</a> = <a class="code" href="BasicObjCFoundationChecks_8cpp.html#a2a4e44325df6137bd11b14a88e025dcc">findKnownClass</a>(Interface);</div>
+<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span> </div>
+<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>     <span class="comment">// Objects returned from</span></div>
+<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>     <span class="comment">// [NSArray|NSOrderedSet]::[ObjectAtIndex|ObjectAtIndexedSubscript]</span></div>
+<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>     <span class="comment">// are never 'nil'.</span></div>
+<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>     <span class="keywordflow">if</span> (Cl == <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6a870bd58d814cca18f0b4784e3bee5232">FC_NSArray</a> || Cl == <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6ac8790640f676635c798cf6ff2aeedcd6">FC_NSOrderedSet</a>) {</div>
+<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>       <a class="code" href="classclang_1_1Selector.html" title="Smart pointer class that efficiently represents Objective-C method names.">Selector</a> Sel = M.<a class="code" href="classclang_1_1ObjCMethodCall.html#a60e54f95046b7e000d1960c66c162462">getSelector</a>();</div>
+<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>       <span class="keywordflow">if</span> (Sel == ObjectAtIndex || Sel == ObjectAtIndexedSubscript) {</div>
+<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>         <span class="comment">// Go ahead and assume the value is non-nil.</span></div>
+<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>         State = <a class="code" href="BasicObjCFoundationChecks_8cpp.html#a56eef7820025ef6616e74e383610ee49">assumeExprIsNonNull</a>(M.<a class="code" href="classclang_1_1ObjCMethodCall.html#a58f6512d85d133edf6010bb910f44323">getOriginExpr</a>(), <a class="code" href="Format_8cpp.html#a83e9e4ff6cb05dbdf72ab2a01aa289c0">State</a>, C);</div>
+<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>       }</div>
+<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>     }</div>
+<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span> </div>
+<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>     <span class="comment">// Objects returned from [NSNull null] are not nil.</span></div>
+<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>     <span class="keywordflow">if</span> (Cl == <a class="code" href="BasicObjCFoundationChecks_8cpp.html#aa865a65b48d42263dba95c6479bcc2e6a28092e02c5f3e1dae5d13d8ca0226db1">FC_NSNull</a>) {</div>
+<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>       <span class="keywordflow">if</span> (M.<a class="code" href="classclang_1_1ObjCMethodCall.html#a60e54f95046b7e000d1960c66c162462">getSelector</a>() == NullSelector) {</div>
+<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>         <span class="comment">// Go ahead and assume the value is non-nil.</span></div>
+<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>         State = <a class="code" href="BasicObjCFoundationChecks_8cpp.html#a56eef7820025ef6616e74e383610ee49">assumeExprIsNonNull</a>(M.<a class="code" href="classclang_1_1ObjCMethodCall.html#a58f6512d85d133edf6010bb910f44323">getOriginExpr</a>(), <a class="code" href="Format_8cpp.html#a83e9e4ff6cb05dbdf72ab2a01aa289c0">State</a>, C);</div>
+<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>       }</div>
+<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>     }</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>   C.<a class="code" href="classclang_1_1ento_1_1CheckerContext.html#a264f48d97809707049689c37aa35af78" title="Generates a new transition in the program state graph (ExplodedGraph). Uses the default CheckerContex...">addTransition</a>(State);</div>
+<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span> }</div>
+<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span> </div>
+<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span> <span class="comment">// Check registration.</span></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> </div>
+<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span> <span class="keywordtype">void</span> ento::registerNilArgChecker(<a class="code" href="classclang_1_1ento_1_1CheckerManager.html">CheckerManager</a> &mgr) {</div>
+<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>   mgr.<a class="code" href="classclang_1_1ento_1_1CheckerManager.html#ab3845ff8b66a7617efdadb219829414a" title="Used to register checkers.">registerChecker</a><NilArgChecker>();</div>
+<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span> }</div>
+<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span> </div>
+<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span> <span class="keywordtype">void</span> ento::registerCFNumberCreateChecker(<a class="code" href="classclang_1_1ento_1_1CheckerManager.html">CheckerManager</a> &mgr) {</div>
+<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>   mgr.<a class="code" href="classclang_1_1ento_1_1CheckerManager.html#ab3845ff8b66a7617efdadb219829414a" title="Used to register checkers.">registerChecker</a><CFNumberCreateChecker>();</div>
+<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span> }</div>
+<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span> </div>
+<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span> <span class="keywordtype">void</span> ento::registerCFRetainReleaseChecker(<a class="code" href="classclang_1_1ento_1_1CheckerManager.html">CheckerManager</a> &mgr) {</div>
+<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>   mgr.<a class="code" href="classclang_1_1ento_1_1CheckerManager.html#ab3845ff8b66a7617efdadb219829414a" title="Used to register checkers.">registerChecker</a><CFRetainReleaseChecker>();</div>
+<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span> }</div>
+<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span> </div>
+<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span> <span class="keywordtype">void</span> ento::registerClassReleaseChecker(<a class="code" href="classclang_1_1ento_1_1CheckerManager.html">CheckerManager</a> &mgr) {</div>
+<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>   mgr.<a class="code" href="classclang_1_1ento_1_1CheckerManager.html#ab3845ff8b66a7617efdadb219829414a" title="Used to register checkers.">registerChecker</a><ClassReleaseChecker>();</div>
+<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span> }</div>
+<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span> </div>
+<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span> <span class="keywordtype">void</span> ento::registerVariadicMethodTypeChecker(<a class="code" href="classclang_1_1ento_1_1CheckerManager.html">CheckerManager</a> &mgr) {</div>
+<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>   mgr.<a class="code" href="classclang_1_1ento_1_1CheckerManager.html#ab3845ff8b66a7617efdadb219829414a" title="Used to register checkers.">registerChecker</a><VariadicMethodTypeChecker>();</div>
+<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span> }</div>
+<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span> </div>
+<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span> <span class="keywordtype">void</span> ento::registerObjCLoopChecker(<a class="code" href="classclang_1_1ento_1_1CheckerManager.html">CheckerManager</a> &mgr) {</div>
+<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>   mgr.<a class="code" href="classclang_1_1ento_1_1CheckerManager.html#ab3845ff8b66a7617efdadb219829414a" title="Used to register checkers.">registerChecker</a><ObjCLoopChecker>();</div>
+<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span> }</div>
+<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span> </div>
+<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span> <span class="keywordtype">void</span> ento::registerObjCNonNilReturnValueChecker(<a class="code" href="classclang_1_1ento_1_1CheckerManager.html">CheckerManager</a> &mgr) {</div>
+<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>   mgr.<a class="code" href="classclang_1_1ento_1_1CheckerManager.html#ab3845ff8b66a7617efdadb219829414a" title="Used to register checkers.">registerChecker</a><ObjCNonNilReturnValueChecker>();</div>
+<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span> }</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:20 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/BasicObjCFoundationChecks_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/BasicObjCFoundationChecks_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/BasicObjCFoundationChecks_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/BasicObjCFoundationChecks_8d_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,594 @@
+<!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: BasicObjCFoundationChecks.d Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_87e2a7550f83bd8cbfc92736891468fc.html">lib</a></li><li class="navelem"><a class="el" href="dir_fd0691f76a19cc33074025cb3a574e66.html">StaticAnalyzer</a></li><li class="navelem"><a class="el" href="dir_5fa4c591fb04e7ea3227105bf6cc3359.html">Checkers</a></li><li class="navelem"><a class="el" href="dir_6f95b71040c11c69a7222376e6764bfb.html">Release+Asserts</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">BasicObjCFoundationChecks.d</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="BasicObjCFoundationChecks_8d.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/Release+Asserts/BasicObjCFoundationChecks.o \</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/Release+Asserts/BasicObjCFoundationChecks.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>  BasicObjCFoundationChecks.cpp ClangSACheckers.h \</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/BugReporter/CommonBugCategories.h \
+ Checkers.inc \</div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ASTContext.h \</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ASTTypeTraits.h \</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ASTFwd.h \</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../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/Checkers/../../../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/Checkers/../../../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/Checkers/../../../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/Checkers/../../../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/Checkers/../../../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/Checkers/../../../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/Checkers/../../../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/Checkers/../../../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/Checkers/../../../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/Checkers/../../../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/Checkers/../../../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/Checkers/../../../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/Checkers/../../../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/Checkers/../../../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/Checkers/../../../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/Checkers/../../../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/Checkers/../../../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/Checkers/../../../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/Checkers/../../../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/Checkers/../../../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/Checkers/../../../include/clang/Basic/<a class="code" href="namespaceclang.html#a78aadfeaf316ded55fdd2d1a9c8815b6" title="Describes the different kinds of linkage (C++ [basic.link], C99 6.2.2) that an entity may have...">Linkage</a>.h \</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../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/Checkers/../../../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/Checkers/../../../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/Checkers/../../../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/Checkers/../../../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/Checkers/../../../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/Checkers/../../../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/Checkers/../../../include/clang/Basic/<a class="code" href="namespaceclang.html#af8a91eed04532d5da41ef08e7c9c081e" title="The various types of exception specifications that exist in C++11.">ExceptionSpecificationType</a>.h \</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/<a class="code" href="namespaceclang.html#afbab15cd4aa598c4e6d9192f7ac4f102" title="Describes the different kinds of visibility that a declaration may have.">Visibility</a>.h \</div>
+<div class="line"><a name="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/Checkers/../../../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/Checkers/../../../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/Checkers/../../../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/Checkers/../../../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/Checkers/../../../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/Checkers/../../../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/Checkers/../../../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/Checkers/../../../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/Checkers/../../../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/Checkers/../../../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/Checkers/../../../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/Checkers/../../../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/Checkers/../../../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/Checkers/../../../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/Checkers/../../../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/Checkers/../../../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/Checkers/../../../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/Checkers/../../../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/Checkers/../../../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/Checkers/../../../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/Checkers/../../../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/Checkers/../../../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/Checkers/../../../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/Checkers/../../../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/Checkers/../../../include/clang/AST/DeclObjC.h \</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/<a class="code" href="namespaceclang.html#a0bca8d4a06a5e7175d2177c94788c9b4" title="Whether all locations of the selector identifiers are in a "standard" position.">SelectorLocationsKind</a>.h \</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/Expr.h \</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ASTVector.h \</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/DeclAccessPair.h \</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/OperationKinds.h \</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/CharInfo.h \</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/TypeTraits.h \</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/Builtins.def \</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ExprObjC.h \</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/StmtObjC.h \</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Analysis/DomainSpecific/CocoaConventions.h \</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/BugReporter/BugType.h \</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/Checker.h \</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Analysis/ProgramPoint.h \</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Analysis/AnalysisContext.h \</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Analysis/CFG.h \</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Analysis/Support/BumpVector.h \</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>  /home/tstellar/llvm/include/llvm/ADT/GraphTraits.h \</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/CheckerManager.h \</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/<a class="code" href="namespaceclang_1_1ento.html#ae512ebf5e0e9f696142c92f5b771ef39">Store</a>.h \</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h \</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h \</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState_Fwd.h \</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h \</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/StoreRef.h \</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>  /home/tstellar/llvm/include/llvm/ADT/ImmutableList.h \</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h \</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h \</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/APSIntType.h \</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/AnalyzerOptions.h \</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/<a class="code" href="namespaceclang.html#ae9c75815d0d02c4fb4c86c9f86a8c9b9" title="Analysis - Set of available source code analyses.">Analyses</a>.def \</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/<a class="code" href="classCallEvent.html">CallEvent</a>.h \</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/DeclCXX.h \</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ASTUnresolvedSet.h \</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/UnresolvedSet.h \</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ExprCXX.h \</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/ExpressionTraits.h \</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/Lambda.h \</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h \</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ConstraintManager.h \</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>  /home/tstellar/llvm/include/llvm/Support/SaveAndRestore.h \</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/<a class="code" href="ProgramState_8cpp.html#a561991ec13c8d67b74fb26984174e5a5">DynamicTypeInfo</a>.h \</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/Environment.h \</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>  /home/tstellar/llvm/include/llvm/ADT/ImmutableMap.h \</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>  /home/tstellar/llvm/include/llvm/ADT/ImmutableSet.h \</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/TaintTag.h \</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h \</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h \</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Analysis/DomainSpecific/ObjCNoReturn.h \</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h \</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitor.h \</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h \</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>  /home/tstellar/llvm/include/llvm/ADT/SmallSet.h \</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>  /home/tstellar/llvm/include/llvm/ADT/ilist.h \</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>  /home/tstellar/llvm/include/llvm/ADT/ilist_node.h \</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h \</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/<a class="code" href="namespaceclang_1_1ento.html#a6fdc30c38dd63e730328d865d956562e">PathDiagnosticConsumers</a>.h \</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h \</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/BlockCounter.h \</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h \</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>  /home/tstellar/llvm/include/llvm/ADT/DepthFirstIterator.h \</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/FunctionSummary.h \</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>  /home/tstellar/llvm/include/llvm/ADT/SmallBitVector.h \</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>  /home/tstellar/llvm/include/llvm/ADT/BitVector.h \</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/WorkList.h \</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ProgramStateTrait.h \</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/SubEngine.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> ClangSACheckers.h:</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span> </div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/BugReporter/CommonBugCategories.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> Checkers.inc:</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span> </div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ASTContext.h:</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span> </div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ASTTypeTraits.h:</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span> </div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ASTFwd.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/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/DeclNodes.inc:</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/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/StmtNodes.inc:</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/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/TypeNodes.def:</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span> </div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/Decl.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/Checkers/../../../include/clang/AST/APValue.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/Checkers/../../../include/clang/Basic/LLVM.h:</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span> </div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span> /home/tstellar/llvm/include/llvm/Support/Casting.h:</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span> </div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span> /home/tstellar/llvm/include/llvm/Support/type_traits.h:</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span> </div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span> /home/tstellar/llvm/include/llvm/Support/DataTypes.h:</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span> </div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span> /home/tstellar/llvm/include/llvm/ADT/None.h:</div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span> </div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span> /home/tstellar/llvm/include/llvm/ADT/APFloat.h:</div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span> </div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span> /home/tstellar/llvm/include/llvm/ADT/APInt.h:</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span> </div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span> /home/tstellar/llvm/include/llvm/ADT/ArrayRef.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/SmallVector.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/Support/AlignOf.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/Compiler.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/include/llvm/Config/llvm-config.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/include/llvm/Support/MathExtras.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/include/llvm/Support/SwapByteOrder.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/APSInt.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/include/llvm/ADT/PointerIntPair.h:</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span> </div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span> /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h:</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span> </div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span> /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h:</div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span> </div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/DeclBase.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/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/AttrIterator.h:</div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span> </div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/DeclarationName.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/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/IdentifierTable.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/Checkers/../../../include/clang/Basic/OperatorKinds.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/Checkers/../../../include/clang/Basic/OperatorKinds.def:</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/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/TokenKinds.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/Checkers/../../../include/clang/Basic/TokenKinds.def:</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/include/llvm/ADT/SmallString.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/include/llvm/ADT/StringRef.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/include/llvm/ADT/StringMap.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/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.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/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/PartialDiagnostic.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/Checkers/../../../include/clang/Basic/Diagnostic.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/Checkers/../../../include/clang/Basic/DiagnosticIDs.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/include/llvm/ADT/IntrusiveRefCntPtr.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/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/DiagnosticCommonKinds.inc:</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/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/DiagnosticOptions.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/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/DiagnosticOptions.def:</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/Checkers/../../../include/clang/Basic/SourceLocation.h:</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/ADT/DenseMap.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/ADT/DenseMapInfo.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/STLExtras.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/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/<a class="code" href="namespaceclang.html#a78aadfeaf316ded55fdd2d1a9c8815b6" title="Describes the different kinds of linkage (C++ [basic.link], C99 6.2.2) that an entity may have...">Linkage</a>.h:</div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span> </div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/Specifiers.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/include/llvm/Support/PrettyStackTrace.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/Checkers/../../../include/clang/AST/ExternalASTSource.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/Checkers/../../../include/clang/AST/CharUnits.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/Checkers/../../../include/clang/AST/Redeclarable.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/Checkers/../../../include/clang/AST/Type.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/Checkers/../../../include/clang/AST/NestedNameSpecifier.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/include/llvm/ADT/FoldingSet.h:</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/Checkers/../../../include/clang/AST/TemplateName.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/Checkers/../../../include/clang/Basic/<a class="code" href="namespaceclang.html#af8a91eed04532d5da41ef08e7c9c081e" title="The various types of exception specifications that exist in C++11.">ExceptionSpecificationType</a>.h:</div>
+<div class="line"><a name="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/Checkers/../../../include/clang/Basic/<a class="code" href="namespaceclang.html#afbab15cd4aa598c4e6d9192f7ac4f102" title="Describes the different kinds of visibility that a declaration may have.">Visibility</a>.h:</div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span> </div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span> /home/tstellar/llvm/include/llvm/ADT/Optional.h:</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/include/llvm/ADT/Twine.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/include/llvm/Support/ErrorHandling.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/Checkers/../../../include/clang/AST/BuiltinTypes.def:</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/include/llvm/Support/raw_ostream.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/Support/FileSystem.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/include/llvm/ADT/OwningPtr.h:</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/include/llvm/Support/TimeValue.h:</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/include/llvm/Support/system_error.h:</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/Checkers/../../../include/clang/AST/Stmt.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/Checkers/../../../include/clang/AST/DeclGroup.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/Checkers/../../../include/clang/AST/StmtIterator.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/Checkers/../../../include/clang/Basic/CapturedStmt.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/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/TemplateBase.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/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/TypeLoc.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/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/TypeLocNodes.def:</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/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/CanonicalType.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/Checkers/../../../include/clang/AST/CommentCommandTraits.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/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/CommentOptions.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/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/CommentCommandList.inc:</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/Checkers/../../../include/clang/AST/PrettyPrinter.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/Checkers/../../../include/clang/Basic/LangOptions.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/Checkers/../../../include/clang/Basic/ObjCRuntime.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/Checkers/../../../include/clang/Basic/VersionTuple.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/include/llvm/ADT/Triple.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/Checkers/../../../include/clang/Basic/Sanitizers.def:</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/Checkers/../../../include/clang/Basic/LangOptions.def:</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/Checkers/../../../include/clang/Basic/OpenCLExtensions.def:</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/Checkers/../../../include/clang/AST/RawCommentList.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/Checkers/../../../include/clang/Basic/SourceManager.h:</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/Checkers/../../../include/clang/Basic/FileManager.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/Checkers/../../../include/clang/Basic/FileSystemOptions.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/include/llvm/ADT/DenseSet.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/include/llvm/Support/MemoryBuffer.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/include/llvm/Support/CBindingWrapping.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/include/llvm-c/Core.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/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/AddressSpaces.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/include/llvm/ADT/SmallPtrSet.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/TinyPtrVector.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/Checkers/../../../include/clang/AST/DeclObjC.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/Checkers/../../../include/clang/AST/<a class="code" href="namespaceclang.html#a0bca8d4a06a5e7175d2177c94788c9b4" title="Whether all locations of the selector identifiers are in a "standard" position.">SelectorLocationsKind</a>.h:</div>
+<div class="line"><a name="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/Checkers/../../../include/clang/AST/Expr.h:</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/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ASTVector.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/Checkers/../../../include/clang/AST/DeclAccessPair.h:</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/Checkers/../../../include/clang/AST/OperationKinds.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/Checkers/../../../include/clang/Basic/CharInfo.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/Checkers/../../../include/clang/Basic/TypeTraits.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/Checkers/../../../include/clang/Basic/Builtins.def:</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/Checkers/../../../include/clang/AST/ExprObjC.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/Checkers/../../../include/clang/AST/StmtObjC.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/Checkers/../../../include/clang/Analysis/DomainSpecific/CocoaConventions.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/Checkers/../../../include/clang/StaticAnalyzer/Core/BugReporter/BugType.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/Checkers/../../../include/clang/StaticAnalyzer/Core/Checker.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/Checkers/../../../include/clang/Analysis/ProgramPoint.h:</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> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Analysis/AnalysisContext.h:</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> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Analysis/CFG.h:</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> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Analysis/Support/BumpVector.h:</div>
+<div class="line"><a name="l00415"></a><span class="lineno">  415</span> </div>
+<div class="line"><a name="l00416"></a><span class="lineno">  416</span> /home/tstellar/llvm/include/llvm/ADT/GraphTraits.h:</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> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/CheckerManager.h:</div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span> </div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/<a class="code" href="namespaceclang_1_1ento.html#ae512ebf5e0e9f696142c92f5b771ef39">Store</a>.h:</div>
+<div class="line"><a name="l00421"></a><span class="lineno">  421</span> </div>
+<div class="line"><a name="l00422"></a><span class="lineno">  422</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h:</div>
+<div class="line"><a name="l00423"></a><span class="lineno">  423</span> </div>
+<div class="line"><a name="l00424"></a><span class="lineno">  424</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h:</div>
+<div class="line"><a name="l00425"></a><span class="lineno">  425</span> </div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState_Fwd.h:</div>
+<div class="line"><a name="l00427"></a><span class="lineno">  427</span> </div>
+<div class="line"><a name="l00428"></a><span class="lineno">  428</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h:</div>
+<div class="line"><a name="l00429"></a><span class="lineno">  429</span> </div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/StoreRef.h:</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> /home/tstellar/llvm/include/llvm/ADT/ImmutableList.h:</div>
+<div class="line"><a name="l00433"></a><span class="lineno">  433</span> </div>
+<div class="line"><a name="l00434"></a><span class="lineno">  434</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h:</div>
+<div class="line"><a name="l00435"></a><span class="lineno">  435</span> </div>
+<div class="line"><a name="l00436"></a><span class="lineno">  436</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:</div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span> </div>
+<div class="line"><a name="l00438"></a><span class="lineno">  438</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/APSIntType.h:</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> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/AnalyzerOptions.h:</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> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/<a class="code" href="namespaceclang.html#ae9c75815d0d02c4fb4c86c9f86a8c9b9" title="Analysis - Set of available source code analyses.">Analyses</a>.def:</div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</span> </div>
+<div class="line"><a name="l00444"></a><span class="lineno">  444</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/<a class="code" href="classCallEvent.html">CallEvent</a>.h:</div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span> </div>
+<div class="line"><a name="l00446"></a><span class="lineno">  446</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/DeclCXX.h:</div>
+<div class="line"><a name="l00447"></a><span class="lineno">  447</span> </div>
+<div class="line"><a name="l00448"></a><span class="lineno">  448</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ASTUnresolvedSet.h:</div>
+<div class="line"><a name="l00449"></a><span class="lineno">  449</span> </div>
+<div class="line"><a name="l00450"></a><span class="lineno">  450</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/UnresolvedSet.h:</div>
+<div class="line"><a name="l00451"></a><span class="lineno">  451</span> </div>
+<div class="line"><a name="l00452"></a><span class="lineno">  452</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ExprCXX.h:</div>
+<div class="line"><a name="l00453"></a><span class="lineno">  453</span> </div>
+<div class="line"><a name="l00454"></a><span class="lineno">  454</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/ExpressionTraits.h:</div>
+<div class="line"><a name="l00455"></a><span class="lineno">  455</span> </div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/Lambda.h:</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> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h:</div>
+<div class="line"><a name="l00459"></a><span class="lineno">  459</span> </div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ConstraintManager.h:</div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span> </div>
+<div class="line"><a name="l00462"></a><span class="lineno">  462</span> /home/tstellar/llvm/include/llvm/Support/SaveAndRestore.h:</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> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/<a class="code" href="ProgramState_8cpp.html#a561991ec13c8d67b74fb26984174e5a5">DynamicTypeInfo</a>.h:</div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span> </div>
+<div class="line"><a name="l00466"></a><span class="lineno">  466</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/Environment.h:</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> /home/tstellar/llvm/include/llvm/ADT/ImmutableMap.h:</div>
+<div class="line"><a name="l00469"></a><span class="lineno">  469</span> </div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span> /home/tstellar/llvm/include/llvm/ADT/ImmutableSet.h:</div>
+<div class="line"><a name="l00471"></a><span class="lineno">  471</span> </div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/TaintTag.h:</div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span> </div>
+<div class="line"><a name="l00474"></a><span class="lineno">  474</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h:</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> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h:</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> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Analysis/DomainSpecific/ObjCNoReturn.h:</div>
+<div class="line"><a name="l00479"></a><span class="lineno">  479</span> </div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h:</div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span> </div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitor.h:</div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span> </div>
+<div class="line"><a name="l00484"></a><span class="lineno">  484</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h:</div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span> </div>
+<div class="line"><a name="l00486"></a><span class="lineno">  486</span> /home/tstellar/llvm/include/llvm/ADT/SmallSet.h:</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> /home/tstellar/llvm/include/llvm/ADT/ilist.h:</div>
+<div class="line"><a name="l00489"></a><span class="lineno">  489</span> </div>
+<div class="line"><a name="l00490"></a><span class="lineno">  490</span> /home/tstellar/llvm/include/llvm/ADT/ilist_node.h:</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> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h:</div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span> </div>
+<div class="line"><a name="l00494"></a><span class="lineno">  494</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/<a class="code" href="namespaceclang_1_1ento.html#a6fdc30c38dd63e730328d865d956562e">PathDiagnosticConsumers</a>.h:</div>
+<div class="line"><a name="l00495"></a><span class="lineno">  495</span> </div>
+<div class="line"><a name="l00496"></a><span class="lineno">  496</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h:</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> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/BlockCounter.h:</div>
+<div class="line"><a name="l00499"></a><span class="lineno">  499</span> </div>
+<div class="line"><a name="l00500"></a><span class="lineno">  500</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h:</div>
+<div class="line"><a name="l00501"></a><span class="lineno">  501</span> </div>
+<div class="line"><a name="l00502"></a><span class="lineno">  502</span> /home/tstellar/llvm/include/llvm/ADT/DepthFirstIterator.h:</div>
+<div class="line"><a name="l00503"></a><span class="lineno">  503</span> </div>
+<div class="line"><a name="l00504"></a><span class="lineno">  504</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/FunctionSummary.h:</div>
+<div class="line"><a name="l00505"></a><span class="lineno">  505</span> </div>
+<div class="line"><a name="l00506"></a><span class="lineno">  506</span> /home/tstellar/llvm/include/llvm/ADT/SmallBitVector.h:</div>
+<div class="line"><a name="l00507"></a><span class="lineno">  507</span> </div>
+<div class="line"><a name="l00508"></a><span class="lineno">  508</span> /home/tstellar/llvm/include/llvm/ADT/BitVector.h:</div>
+<div class="line"><a name="l00509"></a><span class="lineno">  509</span> </div>
+<div class="line"><a name="l00510"></a><span class="lineno">  510</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/WorkList.h:</div>
+<div class="line"><a name="l00511"></a><span class="lineno">  511</span> </div>
+<div class="line"><a name="l00512"></a><span class="lineno">  512</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ProgramStateTrait.h:</div>
+<div class="line"><a name="l00513"></a><span class="lineno">  513</span> </div>
+<div class="line"><a name="l00514"></a><span class="lineno">  514</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/SubEngine.h:</div>
+<div class="line"><a name="l00515"></a><span class="lineno">  515</span> </div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:20 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/BasicValueFactory_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/BasicValueFactory_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/BasicValueFactory_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/BasicValueFactory_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,367 @@
+<!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: BasicValueFactory.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">BasicValueFactory.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="BasicValueFactory_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">//=== BasicValueFactory.cpp - Basic values for Path Sens 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 BasicValueFactory, a class that manages the lifetime</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="comment">//  of APSInt objects and symbolic constraints used by ExprEngine</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="comment">//  and related classes.</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="ASTContext_8h.html" title="Defines the clang::ASTContext interface.">clang/AST/ASTContext.h</a>"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="preprocessor">#include "<a class="code" href="BasicValueFactory_8h.html">clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h</a>"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="preprocessor">#include "<a class="code" href="Store_8h.html">clang/StaticAnalyzer/Core/PathSensitive/Store.h</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> </div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="keyword">using namespace </span>clang;</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="keyword">using namespace </span>ento;</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1CompoundValData.html#a083272cbc78cc289edf78f427d7702a9">   23</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1CompoundValData.html#a083272cbc78cc289edf78f427d7702a9">CompoundValData::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>, <a class="code" href="classclang_1_1QualType.html">QualType</a> T,</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>                               <a class="code" href="classllvm_1_1ImmutableList.html">llvm::ImmutableList<SVal></a> L) {</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>   T.<a class="code" href="classclang_1_1QualType.html#a1c6c1a6e6849767fc8c323966e29f3e3">Profile</a>(ID);</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>   ID.AddPointer(L.getInternalPointer());</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> }</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> </div>
+<div class="line"><a name="l00029"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1LazyCompoundValData.html#a246206bc452cdc65536da478076bba97">   29</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1LazyCompoundValData.html#a246206bc452cdc65536da478076bba97">LazyCompoundValData::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>,</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>                                   <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1StoreRef.html">StoreRef</a> &store,</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</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> *region) {</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>   ID.AddPointer(store.<a class="code" href="classclang_1_1ento_1_1StoreRef.html#a0fb683bfdcd103dbf7330c169e37360e">getStore</a>());</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>   ID.AddPointer(region);</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span> }</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span> </div>
+<div class="line"><a name="l00036"></a><span class="lineno"><a class="code" href="BasicValueFactory_8cpp.html#a2e031ff744d2960e8dfe62ab0d885f18">   36</a></span> <span class="keyword">typedef</span> std::pair<SVal, uintptr_t> <a class="code" href="BasicValueFactory_8cpp.html#a2e031ff744d2960e8dfe62ab0d885f18">SValData</a>;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"><a class="code" href="BasicValueFactory_8cpp.html#a17bbd4f1345cd64d6626646949eb0389">   37</a></span> <span class="keyword">typedef</span> std::pair<SVal, SVal> <a class="code" href="BasicValueFactory_8cpp.html#a17bbd4f1345cd64d6626646949eb0389">SValPair</a>;</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">namespace </span>llvm {</div>
+<div class="line"><a name="l00040"></a><span class="lineno"><a class="code" href="structllvm_1_1FoldingSetTrait_3_01SValData_01_4.html">   40</a></span> <span class="keyword">template</span><> <span class="keyword">struct </span>FoldingSetTrait<<a class="code" href="BasicValueFactory_8cpp.html#a2e031ff744d2960e8dfe62ab0d885f18">SValData</a>> {</div>
+<div class="line"><a name="l00041"></a><span class="lineno"><a class="code" href="structllvm_1_1FoldingSetTrait_3_01SValData_01_4.html#a5c94c4d301b60e5fcee9ce65ab3b8284">   41</a></span>   <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="structllvm_1_1FoldingSetTrait_3_01SValData_01_4.html#a5c94c4d301b60e5fcee9ce65ab3b8284">Profile</a>(<span class="keyword">const</span> <a class="code" href="BasicValueFactory_8cpp.html#a2e031ff744d2960e8dfe62ab0d885f18">SValData</a>& <a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</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="l00042"></a><span class="lineno">   42</span>     X.first.Profile(ID);</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>     ID.AddPointer( (<span class="keywordtype">void</span>*) X.second);</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>   }</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span> };</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span> </div>
+<div class="line"><a name="l00047"></a><span class="lineno"><a class="code" href="structllvm_1_1FoldingSetTrait_3_01SValPair_01_4.html">   47</a></span> <span class="keyword">template</span><> <span class="keyword">struct </span>FoldingSetTrait<<a class="code" href="BasicValueFactory_8cpp.html#a17bbd4f1345cd64d6626646949eb0389">SValPair</a>> {</div>
+<div class="line"><a name="l00048"></a><span class="lineno"><a class="code" href="structllvm_1_1FoldingSetTrait_3_01SValPair_01_4.html#a4121943675b1cfb5ad3f082c5fc781b8">   48</a></span>   <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="structllvm_1_1FoldingSetTrait_3_01SValPair_01_4.html#a4121943675b1cfb5ad3f082c5fc781b8">Profile</a>(<span class="keyword">const</span> <a class="code" href="BasicValueFactory_8cpp.html#a17bbd4f1345cd64d6626646949eb0389">SValPair</a>& <a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</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="l00049"></a><span class="lineno">   49</span>     X.first.Profile(ID);</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>     X.second.Profile(ID);</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>   }</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span> };</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span> }</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span> </div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span> <span class="keyword">typedef</span> llvm::FoldingSet<llvm::FoldingSetNodeWrapper<SValData> ></div>
+<div class="line"><a name="l00056"></a><span class="lineno"><a class="code" href="BasicValueFactory_8cpp.html#aa929a95402ce3310f1f23d6d1bd8b19d">   56</a></span>   <a class="code" href="BasicValueFactory_8cpp.html#aa929a95402ce3310f1f23d6d1bd8b19d">PersistentSValsTy</a>;</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span> </div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span> <span class="keyword">typedef</span> llvm::FoldingSet<llvm::FoldingSetNodeWrapper<SValPair> ></div>
+<div class="line"><a name="l00059"></a><span class="lineno"><a class="code" href="BasicValueFactory_8cpp.html#a4f47e0a8d9dd28ef7a80c7e0d743eeb7">   59</a></span>   <a class="code" href="BasicValueFactory_8cpp.html#a4f47e0a8d9dd28ef7a80c7e0d743eeb7">PersistentSValPairsTy</a>;</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span> </div>
+<div class="line"><a name="l00061"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#ab3de784512fe55508b372478bfc11425">   61</a></span> <a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#ab3de784512fe55508b372478bfc11425">BasicValueFactory::~BasicValueFactory</a>() {</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>   <span class="comment">// Note that the dstor for the contents of APSIntSet will never be called,</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>   <span class="comment">// so we iterate over the set and invoke the dstor for each APSInt.  This</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>   <span class="comment">// frees an aux. memory allocated to represent very large constants.</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>   <span class="keywordflow">for</span> (APSIntSetTy::iterator I=APSIntSet.begin(), E=APSIntSet.end(); I!=E; ++I)</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>     I->getValue().~APSInt();</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span> </div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>   <span class="keyword">delete</span> (<a class="code" href="BasicValueFactory_8cpp.html#aa929a95402ce3310f1f23d6d1bd8b19d">PersistentSValsTy</a>*) PersistentSVals;</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>   <span class="keyword">delete</span> (<a class="code" href="BasicValueFactory_8cpp.html#a4f47e0a8d9dd28ef7a80c7e0d743eeb7">PersistentSValPairsTy</a>*) PersistentSValPairs;</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_1BasicValueFactory.html#a726ebc1c847c9778870af9d016443885">   72</a></span> <span class="keyword">const</span> llvm::APSInt& BasicValueFactory::getValue(<span class="keyword">const</span> llvm::APSInt& <a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>) {</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</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="l00074"></a><span class="lineno">   74</span>   <span class="keywordtype">void</span> *InsertPos;</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>   <span class="keyword">typedef</span> llvm::FoldingSetNodeWrapper<llvm::APSInt> FoldNodeTy;</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span> </div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>   X.Profile(ID);</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>   FoldNodeTy* <a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a> = APSIntSet.FindNodeOrInsertPos(ID, InsertPos);</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span> </div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>   <span class="keywordflow">if</span> (!P) {</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>     P = (FoldNodeTy*) BPAlloc.Allocate<FoldNodeTy>();</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>     <span class="keyword">new</span> (<a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a>) FoldNodeTy(X);</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>     APSIntSet.InsertNode(P, InsertPos);</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>   }</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span> </div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>   <span class="keywordflow">return</span> *<a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a>;</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span> }</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span> </div>
+<div class="line"><a name="l00089"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#acce3e4b86a46f0efe9806368dbfb41ea">   89</a></span> <span class="keyword">const</span> llvm::APSInt& BasicValueFactory::getValue(<span class="keyword">const</span> llvm::APInt& <a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>,</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>                                                 <span class="keywordtype">bool</span> isUnsigned) {</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>   llvm::APSInt V(X, isUnsigned);</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>   <span class="keywordflow">return</span> getValue(V);</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span> }</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span> </div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span> <span class="keyword">const</span> llvm::APSInt& BasicValueFactory::getValue(uint64_t <a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>, <span class="keywordtype">unsigned</span> BitWidth,</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>                                            <span class="keywordtype">bool</span> isUnsigned) {</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>   llvm::APSInt V(BitWidth, isUnsigned);</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>   V = <a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>;</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>   <span class="keywordflow">return</span> getValue(V);</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span> }</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span> </div>
+<div class="line"><a name="l00102"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a2f11e4cccdfc3cf55437891f60d8f1d4">  102</a></span> <span class="keyword">const</span> llvm::APSInt& BasicValueFactory::getValue(uint64_t <a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>, <a class="code" href="classclang_1_1QualType.html">QualType</a> T) {</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span> </div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>   <span class="keywordflow">return</span> getValue(<a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a3d6b7b403c67825984056e2743462a08" title="Returns the type of the APSInt used to store values of the given QualType.">getAPSIntType</a>(T).getValue(X));</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> </div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1CompoundValData.html">CompoundValData</a>*</div>
+<div class="line"><a name="l00108"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a268985981f888bcc71fa5a7b656488af">  108</a></span> <a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a268985981f888bcc71fa5a7b656488af">BasicValueFactory::getCompoundValData</a>(<a class="code" href="classclang_1_1QualType.html">QualType</a> T,</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>                                       <a class="code" href="classllvm_1_1ImmutableList.html">llvm::ImmutableList<SVal></a> Vals) {</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>   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="l00112"></a><span class="lineno">  112</span>   <a class="code" href="classclang_1_1ento_1_1CompoundValData.html#a083272cbc78cc289edf78f427d7702a9">CompoundValData::Profile</a>(ID, T, Vals);</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>   <span class="keywordtype">void</span> *InsertPos;</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>   <a class="code" href="classclang_1_1ento_1_1CompoundValData.html">CompoundValData</a>* D = CompoundValDataSet.FindNodeOrInsertPos(ID, InsertPos);</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span> </div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>   <span class="keywordflow">if</span> (!D) {</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>     D = (<a class="code" href="classclang_1_1ento_1_1CompoundValData.html">CompoundValData</a>*) BPAlloc.Allocate<<a class="code" href="classclang_1_1ento_1_1CompoundValData.html">CompoundValData</a>>();</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>     <span class="keyword">new</span> (D) <a class="code" href="classclang_1_1ento_1_1CompoundValData.html">CompoundValData</a>(T, Vals);</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>     CompoundValDataSet.InsertNode(D, InsertPos);</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>   }</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span> </div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>   <span class="keywordflow">return</span> D;</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">const</span> <a class="code" href="classclang_1_1ento_1_1LazyCompoundValData.html">LazyCompoundValData</a>*</div>
+<div class="line"><a name="l00127"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#ac7a7a63f605be10ced5effe590dd33c9">  127</a></span> <a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#ac7a7a63f605be10ced5effe590dd33c9">BasicValueFactory::getLazyCompoundValData</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1StoreRef.html">StoreRef</a> &store,</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</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> *region) {</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</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="l00130"></a><span class="lineno">  130</span>   <a class="code" href="classclang_1_1ento_1_1LazyCompoundValData.html#a246206bc452cdc65536da478076bba97">LazyCompoundValData::Profile</a>(ID, store, region);</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>   <span class="keywordtype">void</span> *InsertPos;</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>   <a class="code" href="classclang_1_1ento_1_1LazyCompoundValData.html">LazyCompoundValData</a> *D =</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>     LazyCompoundValDataSet.FindNodeOrInsertPos(ID, InsertPos);</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="keywordflow">if</span> (!D) {</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>     D = (<a class="code" href="classclang_1_1ento_1_1LazyCompoundValData.html">LazyCompoundValData</a>*) BPAlloc.Allocate<<a class="code" href="classclang_1_1ento_1_1LazyCompoundValData.html">LazyCompoundValData</a>>();</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>     <span class="keyword">new</span> (D) <a class="code" href="classclang_1_1ento_1_1LazyCompoundValData.html">LazyCompoundValData</a>(store, region);</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>     LazyCompoundValDataSet.InsertNode(D, InsertPos);</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>   }</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span> </div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>   <span class="keywordflow">return</span> D;</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="keyword">const</span> llvm::APSInt*</div>
+<div class="line"><a name="l00146"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a7b7eedd59c63719c45e00ae475309fb9">  146</a></span> <a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a7b7eedd59c63719c45e00ae475309fb9">BasicValueFactory::evalAPSInt</a>(<a class="code" href="namespaceclang.html#a443b552ee80020cfeb2b86c99e7f85e1">BinaryOperator::Opcode</a> Op,</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>                              <span class="keyword">const</span> llvm::APSInt& V1, <span class="keyword">const</span> llvm::APSInt& V2) {</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span> </div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>   <span class="keywordflow">switch</span> (Op) {</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>     <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>       assert (<span class="keyword">false</span> && <span class="stringliteral">"Invalid Opcode."</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="keywordflow">case</span> <a class="code" href="namespaceclang.html#a443b552ee80020cfeb2b86c99e7f85e1a8e23022cab4ed3bcb24b7acd01f623e9">BO_Mul</a>:</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>       <span class="keywordflow">return</span> &getValue( V1 * V2 );</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span> </div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a443b552ee80020cfeb2b86c99e7f85e1a58e04dd371aa4ff24af1f1ebc04739a5">BO_Div</a>:</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>       <span class="keywordflow">return</span> &getValue( V1 / V2 );</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">case</span> <a class="code" href="namespaceclang.html#a443b552ee80020cfeb2b86c99e7f85e1a91a7868de509af06d04ef1c6e21383be">BO_Rem</a>:</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>       <span class="keywordflow">return</span> &getValue( V1 % V2 );</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span> </div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a443b552ee80020cfeb2b86c99e7f85e1abe63fd1a02a7d1191c3b2fd102b983bd">BO_Add</a>:</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>       <span class="keywordflow">return</span> &getValue( V1 + V2 );</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span> </div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a443b552ee80020cfeb2b86c99e7f85e1af84c54a9c8a061371180b3e8b25d4c3f">BO_Sub</a>:</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>       <span class="keywordflow">return</span> &getValue( V1 - V2 );</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>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a443b552ee80020cfeb2b86c99e7f85e1a2a7b3ad7ff838b9d313312f2dde50cb0">BO_Shl</a>: {</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span> </div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>       <span class="comment">// FIXME: This logic should probably go higher up, where we can</span></div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>       <span class="comment">// test these conditions symbolically.</span></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>       <span class="comment">// FIXME: Expand these checks to include all undefined behavior.</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span> </div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>       <span class="keywordflow">if</span> (V2.isSigned() && V2.isNegative())</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>         <span class="keywordflow">return</span> <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>       uint64_t Amt = V2.getZExtValue();</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>       <span class="keywordflow">if</span> (Amt > V1.getBitWidth())</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>         <span class="keywordflow">return</span> <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span> </div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>       <span class="keywordflow">return</span> &getValue( V1.operator<<( (<span class="keywordtype">unsigned</span>) Amt ));</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>     }</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span> </div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a443b552ee80020cfeb2b86c99e7f85e1a05544609a9c447c91873ed3fb1fec26c">BO_Shr</a>: {</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span> </div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>       <span class="comment">// FIXME: This logic should probably go higher up, where we can</span></div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>       <span class="comment">// test these conditions symbolically.</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">  191</span>       <span class="comment">// FIXME: Expand these checks to include all undefined behavior.</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="keywordflow">if</span> (V2.isSigned() && V2.isNegative())</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>         <span class="keywordflow">return</span> <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span> </div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>       uint64_t Amt = V2.getZExtValue();</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>       <span class="keywordflow">if</span> (Amt > V1.getBitWidth())</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>         <span class="keywordflow">return</span> <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span> </div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>       <span class="keywordflow">return</span> &getValue( V1.operator>>( (<span class="keywordtype">unsigned</span>) Amt ));</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>     }</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span> </div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a443b552ee80020cfeb2b86c99e7f85e1a34afd641c1839b1ebdf5b96779becc5e">BO_LT</a>:</div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>       <span class="keywordflow">return</span> &<a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a4251f9c025825e5cffd81f3a48a082c5">getTruthValue</a>( V1 < V2 );</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span> </div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a443b552ee80020cfeb2b86c99e7f85e1a9ff57a80bfff7f4a29cfc5ea9525ed6f">BO_GT</a>:</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span>       <span class="keywordflow">return</span> &<a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a4251f9c025825e5cffd81f3a48a082c5">getTruthValue</a>( V1 > V2 );</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span> </div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a443b552ee80020cfeb2b86c99e7f85e1ab1b013f11421020dffa959a6c1ed45af">BO_LE</a>:</div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>       <span class="keywordflow">return</span> &<a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a4251f9c025825e5cffd81f3a48a082c5">getTruthValue</a>( V1 <= V2 );</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">case</span> <a class="code" href="namespaceclang.html#a443b552ee80020cfeb2b86c99e7f85e1a49c5777674892e127aeeb0746b18a1e2">BO_GE</a>:</div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>       <span class="keywordflow">return</span> &<a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a4251f9c025825e5cffd81f3a48a082c5">getTruthValue</a>( V1 >= V2 );</div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span> </div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a443b552ee80020cfeb2b86c99e7f85e1a69f29b9100be3ced416f394df1b8387d">BO_EQ</a>:</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_1BasicValueFactory.html#a4251f9c025825e5cffd81f3a48a082c5">getTruthValue</a>( V1 == V2 );</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>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a443b552ee80020cfeb2b86c99e7f85e1ad1f67b78e6981e7d44e0a1794432d104">BO_NE</a>:</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>       <span class="keywordflow">return</span> &<a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a4251f9c025825e5cffd81f3a48a082c5">getTruthValue</a>( V1 != V2 );</div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span> </div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span>       <span class="comment">// Note: LAnd, LOr, Comma are handled specially by higher-level logic.</span></div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span> </div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a443b552ee80020cfeb2b86c99e7f85e1add0a26702b466b3820e0032922751589">BO_And</a>:</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>       <span class="keywordflow">return</span> &getValue( V1 & V2 );</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span> </div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a443b552ee80020cfeb2b86c99e7f85e1a0bbf9a36f955dba18422f3c8800443d1">BO_Or</a>:</div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span>       <span class="keywordflow">return</span> &getValue( V1 | V2 );</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span> </div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span>     <span class="keywordflow">case</span> <a class="code" href="namespaceclang.html#a443b552ee80020cfeb2b86c99e7f85e1a01db02868a5b622d647d2a3f7d7d0c5a">BO_Xor</a>:</div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span>       <span class="keywordflow">return</span> &getValue( V1 ^ V2 );</div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span>   }</div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span> }</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">  236</span> <span class="keyword">const</span> std::pair<SVal, uintptr_t>&</div>
+<div class="line"><a name="l00237"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a75cb0d32e21b29f2bfb9bf1dc1b26a49">  237</a></span> <a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a75cb0d32e21b29f2bfb9bf1dc1b26a49">BasicValueFactory::getPersistentSValWithData</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1SVal.html">SVal</a>& V, uintptr_t Data) {</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>   <span class="comment">// Lazily create the folding set.</span></div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span>   <span class="keywordflow">if</span> (!PersistentSVals) PersistentSVals = <span class="keyword">new</span> <a class="code" href="BasicValueFactory_8cpp.html#aa929a95402ce3310f1f23d6d1bd8b19d">PersistentSValsTy</a>();</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>   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="l00243"></a><span class="lineno">  243</span>   <span class="keywordtype">void</span> *InsertPos;</div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span>   V.<a class="code" href="classclang_1_1ento_1_1SVal.html#a46722804559943089f1ec031ecb59333">Profile</a>(ID);</div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span>   ID.AddPointer((<span class="keywordtype">void</span>*) Data);</div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span> </div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span>   <a class="code" href="BasicValueFactory_8cpp.html#aa929a95402ce3310f1f23d6d1bd8b19d">PersistentSValsTy</a>& <a class="code" href="namespaceclang_1_1LangAS.html#a241b6fc974438ba623ec877f2b294f0c">Map</a> = *((<a class="code" href="BasicValueFactory_8cpp.html#aa929a95402ce3310f1f23d6d1bd8b19d">PersistentSValsTy</a>*) PersistentSVals);</div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span> </div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span>   <span class="keyword">typedef</span> llvm::FoldingSetNodeWrapper<SValData> FoldNodeTy;</div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span>   FoldNodeTy* <a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a> = Map.FindNodeOrInsertPos(ID, InsertPos);</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>   <span class="keywordflow">if</span> (!P) {</div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span>     P = (FoldNodeTy*) BPAlloc.Allocate<FoldNodeTy>();</div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span>     <span class="keyword">new</span> (<a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a>) FoldNodeTy(std::make_pair(V, Data));</div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span>     Map.InsertNode(P, InsertPos);</div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span>   }</div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span> </div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span>   <span class="keywordflow">return</span> P->getValue();</div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span> }</div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span> </div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span> <span class="keyword">const</span> std::pair<SVal, SVal>&</div>
+<div class="line"><a name="l00262"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a3653e3b235abac36d6efd15612c03f30">  262</a></span> <a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a3653e3b235abac36d6efd15612c03f30">BasicValueFactory::getPersistentSValPair</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1SVal.html">SVal</a>& V1, <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1SVal.html">SVal</a>& V2) {</div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span> </div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span>   <span class="comment">// Lazily create the folding set.</span></div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span>   <span class="keywordflow">if</span> (!PersistentSValPairs) PersistentSValPairs = <span class="keyword">new</span> <a class="code" href="BasicValueFactory_8cpp.html#a4f47e0a8d9dd28ef7a80c7e0d743eeb7">PersistentSValPairsTy</a>();</div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span> </div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span>   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="l00268"></a><span class="lineno">  268</span>   <span class="keywordtype">void</span> *InsertPos;</div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span>   V1.<a class="code" href="classclang_1_1ento_1_1SVal.html#a46722804559943089f1ec031ecb59333">Profile</a>(ID);</div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span>   V2.<a class="code" href="classclang_1_1ento_1_1SVal.html#a46722804559943089f1ec031ecb59333">Profile</a>(ID);</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>   <a class="code" href="BasicValueFactory_8cpp.html#a4f47e0a8d9dd28ef7a80c7e0d743eeb7">PersistentSValPairsTy</a>& <a class="code" href="namespaceclang_1_1LangAS.html#a241b6fc974438ba623ec877f2b294f0c">Map</a> = *((<a class="code" href="BasicValueFactory_8cpp.html#a4f47e0a8d9dd28ef7a80c7e0d743eeb7">PersistentSValPairsTy</a>*) PersistentSValPairs);</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>   <span class="keyword">typedef</span> llvm::FoldingSetNodeWrapper<SValPair> FoldNodeTy;</div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span>   FoldNodeTy* <a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a> = Map.FindNodeOrInsertPos(ID, InsertPos);</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>   <span class="keywordflow">if</span> (!P) {</div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span>     P = (FoldNodeTy*) BPAlloc.Allocate<FoldNodeTy>();</div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span>     <span class="keyword">new</span> (<a class="code" href="TokenAnnotator_8cpp.html#a0bf8bdaf8596b1161b6ce63c4232a1fb">P</a>) FoldNodeTy(std::make_pair(V1, V2));</div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span>     Map.InsertNode(P, InsertPos);</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> </div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span>   <span class="keywordflow">return</span> P->getValue();</div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span> }</div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span> </div>
+<div class="line"><a name="l00286"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a50295ba8cc4e1f5b8fb155cb2612cce9">  286</a></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1SVal.html">SVal</a>* <a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a50295ba8cc4e1f5b8fb155cb2612cce9">BasicValueFactory::getPersistentSVal</a>(<a class="code" href="classclang_1_1ento_1_1SVal.html">SVal</a> <a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>) {</div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span>   <span class="keywordflow">return</span> &<a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a75cb0d32e21b29f2bfb9bf1dc1b26a49">getPersistentSValWithData</a>(X, 0).first;</div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span> }</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:20 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/BasicValueFactory_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/BasicValueFactory_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/BasicValueFactory_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/BasicValueFactory_8d_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,454 @@
+<!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: BasicValueFactory.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">BasicValueFactory.d</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="BasicValueFactory_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/BasicValueFactory.o \</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/Release+Asserts/BasicValueFactory.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>  BasicValueFactory.cpp \</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/ASTContext.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/ASTTypeTraits.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/ASTFwd.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/DeclNodes.inc \</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/StmtNodes.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/TypeNodes.def \</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/Decl.h \</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/APValue.h \</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/LLVM.h \</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>  /home/tstellar/llvm/include/llvm/Support/Casting.h \</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>  /home/tstellar/llvm/include/llvm/Support/type_traits.h \</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>  /home/tstellar/llvm/include/llvm/Support/DataTypes.h \</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>  /home/tstellar/llvm/include/llvm/ADT/None.h \</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>  /home/tstellar/llvm/include/llvm/ADT/APFloat.h \</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>  /home/tstellar/llvm/include/llvm/ADT/APInt.h \</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>  /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h \</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>  /home/tstellar/llvm/include/llvm/ADT/SmallVector.h \</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>  /home/tstellar/llvm/include/llvm/Support/AlignOf.h \</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>  /home/tstellar/llvm/include/llvm/Support/Compiler.h \</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>  /home/tstellar/llvm/include/llvm/Config/llvm-config.h \</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>  /home/tstellar/llvm/include/llvm/Support/MathExtras.h \</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>  /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h \</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>  /home/tstellar/llvm/include/llvm/ADT/APSInt.h \</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>  /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h \</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>  /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h \</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>  /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h \</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/DeclBase.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/AttrIterator.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/DeclarationName.h \</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/IdentifierTable.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/OperatorKinds.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.def \</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/TokenKinds.h \</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.def \</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>  /home/tstellar/llvm/include/llvm/ADT/SmallString.h \</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>  /home/tstellar/llvm/include/llvm/ADT/StringRef.h \</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>  /home/tstellar/llvm/include/llvm/ADT/StringMap.h \</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>  /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h \</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/PartialDiagnostic.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/Diagnostic.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/DiagnosticIDs.h \</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>  /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h \</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/DiagnosticCommonKinds.inc \</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/DiagnosticOptions.h \</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.def \</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/SourceLocation.h \</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMap.h \</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h \</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>  /home/tstellar/llvm/include/llvm/ADT/STLExtras.h \</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</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="l00054"></a><span class="lineno">   54</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/Specifiers.h \</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>  /home/tstellar/llvm/include/llvm/Support/PrettyStackTrace.h \</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/ExternalASTSource.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/CharUnits.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/Redeclarable.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/Type.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/NestedNameSpecifier.h \</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>  /home/tstellar/llvm/include/llvm/ADT/FoldingSet.h \</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/TemplateName.h \</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</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="l00064"></a><span class="lineno">   64</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="l00065"></a><span class="lineno">   65</span>  /home/tstellar/llvm/include/llvm/ADT/Optional.h \</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>  /home/tstellar/llvm/include/llvm/ADT/Twine.h \</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>  /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h \</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/BuiltinTypes.def \</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>  /home/tstellar/llvm/include/llvm/Support/raw_ostream.h \</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>  /home/tstellar/llvm/include/llvm/Support/FileSystem.h \</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>  /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h \</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>  /home/tstellar/llvm/include/llvm/Support/TimeValue.h \</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>  /home/tstellar/llvm/include/llvm/Support/system_error.h \</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/Stmt.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/DeclGroup.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/StmtIterator.h \</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/CapturedStmt.h \</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/TemplateBase.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/TypeLoc.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/TypeLocNodes.def \</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/CanonicalType.h \</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/CommentCommandTraits.h \</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/CommentOptions.h \</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/CommentCommandList.inc \</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/PrettyPrinter.h \</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/LangOptions.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/ObjCRuntime.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/VersionTuple.h \</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>  /home/tstellar/llvm/include/llvm/ADT/Triple.h \</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/Sanitizers.def \</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/LangOptions.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/OpenCLExtensions.def \</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/RawCommentList.h \</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/SourceManager.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/FileManager.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/FileSystemOptions.h \</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>  /home/tstellar/llvm/include/llvm/ADT/DenseSet.h \</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>  /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h \</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>  /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h \</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>  /home/tstellar/llvm/include/llvm-c/Core.h \</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/AddressSpaces.h \</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>  /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.h \</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>  /home/tstellar/llvm/include/llvm/ADT/TinyPtrVector.h \</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h \</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/APSIntType.h \</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h \</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState_Fwd.h \</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.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/Expr.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/ASTVector.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/DeclAccessPair.h \</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/OperationKinds.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/CharInfo.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/TypeTraits.h \</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/Builtins.def \</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Analysis/AnalysisContext.h \</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Analysis/CFG.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/Support/BumpVector.h \</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>  /home/tstellar/llvm/include/llvm/ADT/GraphTraits.h \</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/StoreRef.h \</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>  /home/tstellar/llvm/include/llvm/ADT/ImmutableList.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/<a class="code" href="namespaceclang_1_1ento.html#ae512ebf5e0e9f696142c92f5b771ef39">Store</a>.h \</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.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/ExprObjC.h \</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/DeclObjC.h \</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</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="l00127"></a><span class="lineno">  127</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span> </div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/ASTContext.h:</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span> </div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/ASTTypeTraits.h:</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span> </div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/ASTFwd.h:</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span> </div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/DeclNodes.inc:</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span> </div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/StmtNodes.inc:</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span> </div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/TypeNodes.def:</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span> </div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/Decl.h:</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span> </div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/APValue.h:</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span> </div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/LLVM.h:</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span> </div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span> /home/tstellar/llvm/include/llvm/Support/Casting.h:</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span> </div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span> /home/tstellar/llvm/include/llvm/Support/type_traits.h:</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span> </div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span> /home/tstellar/llvm/include/llvm/Support/DataTypes.h:</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span> </div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span> /home/tstellar/llvm/include/llvm/ADT/None.h:</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span> </div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span> /home/tstellar/llvm/include/llvm/ADT/APFloat.h:</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span> </div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span> /home/tstellar/llvm/include/llvm/ADT/APInt.h:</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span> </div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span> /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h:</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span> </div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span> /home/tstellar/llvm/include/llvm/ADT/SmallVector.h:</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span> </div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span> /home/tstellar/llvm/include/llvm/Support/AlignOf.h:</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span> </div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span> /home/tstellar/llvm/include/llvm/Support/Compiler.h:</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span> </div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span> /home/tstellar/llvm/include/llvm/Config/llvm-config.h:</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span> </div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span> /home/tstellar/llvm/include/llvm/Support/MathExtras.h:</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span> </div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span> /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h:</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span> </div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span> /home/tstellar/llvm/include/llvm/ADT/APSInt.h:</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span> </div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span> /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h:</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span> </div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span> /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h:</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span> </div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span> /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h:</div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span> </div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/DeclBase.h:</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span> </div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/AttrIterator.h:</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span> </div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/DeclarationName.h:</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span> </div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/IdentifierTable.h:</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span> </div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/OperatorKinds.h:</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span> </div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/OperatorKinds.def:</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span> </div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/TokenKinds.h:</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span> </div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/TokenKinds.def:</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span> </div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span> /home/tstellar/llvm/include/llvm/ADT/SmallString.h:</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span> </div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span> /home/tstellar/llvm/include/llvm/ADT/StringRef.h:</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span> </div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span> /home/tstellar/llvm/include/llvm/ADT/StringMap.h:</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span> </div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span> /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h:</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span> </div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/PartialDiagnostic.h:</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span> </div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/Diagnostic.h:</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span> </div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/DiagnosticIDs.h:</div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span> </div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span> /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h:</div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span> </div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/DiagnosticCommonKinds.inc:</div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span> </div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/DiagnosticOptions.h:</div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span> </div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/DiagnosticOptions.def:</div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span> </div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/SourceLocation.h:</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span> </div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span> /home/tstellar/llvm/include/llvm/ADT/DenseMap.h:</div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span> </div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span> /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h:</div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span> </div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span> /home/tstellar/llvm/include/llvm/ADT/STLExtras.h:</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span> </div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/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="l00228"></a><span class="lineno">  228</span> </div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/Specifiers.h:</div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span> </div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span> /home/tstellar/llvm/include/llvm/Support/PrettyStackTrace.h:</div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span> </div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/ExternalASTSource.h:</div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span> </div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/CharUnits.h:</div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span> </div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/Redeclarable.h:</div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span> </div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/Type.h:</div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span> </div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/NestedNameSpecifier.h:</div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span> </div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span> /home/tstellar/llvm/include/llvm/ADT/FoldingSet.h:</div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span> </div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/TemplateName.h:</div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span> </div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span> /home/tstellar/llvm/tools/clang/lib/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="l00248"></a><span class="lineno">  248</span> </div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/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="l00250"></a><span class="lineno">  250</span> </div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span> /home/tstellar/llvm/include/llvm/ADT/Optional.h:</div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span> </div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span> /home/tstellar/llvm/include/llvm/ADT/Twine.h:</div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span> </div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span> /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h:</div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span> </div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/BuiltinTypes.def:</div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span> </div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span> /home/tstellar/llvm/include/llvm/Support/raw_ostream.h:</div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span> </div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span> /home/tstellar/llvm/include/llvm/Support/FileSystem.h:</div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span> </div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span> /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h:</div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span> </div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span> /home/tstellar/llvm/include/llvm/Support/TimeValue.h:</div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span> </div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span> /home/tstellar/llvm/include/llvm/Support/system_error.h:</div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span> </div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/Stmt.h:</div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span> </div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/DeclGroup.h:</div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span> </div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/StmtIterator.h:</div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span> </div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/CapturedStmt.h:</div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span> </div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/TemplateBase.h:</div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span> </div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/TypeLoc.h:</div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span> </div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/TypeLocNodes.def:</div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span> </div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/CanonicalType.h:</div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span> </div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/CommentCommandTraits.h:</div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span> </div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/CommentOptions.h:</div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span> </div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/CommentCommandList.inc:</div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span> </div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/PrettyPrinter.h:</div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span> </div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/LangOptions.h:</div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span> </div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/ObjCRuntime.h:</div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span> </div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/VersionTuple.h:</div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span> </div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span> /home/tstellar/llvm/include/llvm/ADT/Triple.h:</div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span> </div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/Sanitizers.def:</div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span> </div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/LangOptions.def:</div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span> </div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/OpenCLExtensions.def:</div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span> </div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/RawCommentList.h:</div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span> </div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/SourceManager.h:</div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span> </div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/FileManager.h:</div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span> </div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/FileSystemOptions.h:</div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span> </div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span> /home/tstellar/llvm/include/llvm/ADT/DenseSet.h:</div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span> </div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span> /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h:</div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span> </div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span> /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h:</div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span> </div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span> /home/tstellar/llvm/include/llvm-c/Core.h:</div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span> </div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/AddressSpaces.h:</div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span> </div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span> /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.h:</div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span> </div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span> /home/tstellar/llvm/include/llvm/ADT/TinyPtrVector.h:</div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span> </div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:</div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span> </div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/APSIntType.h:</div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span> </div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h:</div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span> </div>
+<div class="line"><a name="l00335"></a><span class="lineno">  335</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState_Fwd.h:</div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span> </div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h:</div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span> </div>
+<div class="line"><a name="l00339"></a><span class="lineno">  339</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/Expr.h:</div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span> </div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/ASTVector.h:</div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span> </div>
+<div class="line"><a name="l00343"></a><span class="lineno">  343</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/DeclAccessPair.h:</div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span> </div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/OperationKinds.h:</div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span> </div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/CharInfo.h:</div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span> </div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/TypeTraits.h:</div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span> </div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Basic/Builtins.def:</div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span> </div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Analysis/AnalysisContext.h:</div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span> </div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Analysis/CFG.h:</div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span> </div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/Analysis/Support/BumpVector.h:</div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span> </div>
+<div class="line"><a name="l00359"></a><span class="lineno">  359</span> /home/tstellar/llvm/include/llvm/ADT/GraphTraits.h:</div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span> </div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/StoreRef.h:</div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span> </div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span> /home/tstellar/llvm/include/llvm/ADT/ImmutableList.h:</div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span> </div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/<a class="code" href="namespaceclang_1_1ento.html#ae512ebf5e0e9f696142c92f5b771ef39">Store</a>.h:</div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span> </div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h:</div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span> </div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/ExprObjC.h:</div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span> </div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/AST/DeclObjC.h:</div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span> </div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/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="l00374"></a><span class="lineno">  374</span> </div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Core/../../../include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h:</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:20 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/BasicValueFactory_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/BasicValueFactory_8h_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/BasicValueFactory_8h_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/BasicValueFactory_8h_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,279 @@
+<!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: BasicValueFactory.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">BasicValueFactory.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="BasicValueFactory_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">//=== BasicValueFactory.h - Basic values for Path Sens 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 BasicValueFactory, a class that manages the lifetime</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="comment">//  of APSInt objects and symbolic constraints used by ExprEngine</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="comment">//  and related classes.</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_BASICVALUEFACTORY_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_BASICVALUEFACTORY_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="APSIntType_8h.html">clang/StaticAnalyzer/Core/PathSensitive/APSIntType.h</a>"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</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="l00022"></a><span class="lineno">   22</span> <span class="preprocessor">#include "<a class="code" href="StoreRef_8h.html">clang/StaticAnalyzer/Core/PathSensitive/StoreRef.h</a>"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> </div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="keyword">namespace </span>clang {</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="keyword">namespace </span>ento {</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> </div>
+<div class="line"><a name="l00027"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1CompoundValData.html">   27</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1CompoundValData.html">CompoundValData</a> : <span class="keyword">public</span> llvm::FoldingSetNode {</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>   <a class="code" href="classclang_1_1QualType.html">QualType</a> T;</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>   <a class="code" href="classllvm_1_1ImmutableList.html">llvm::ImmutableList<SVal></a> L;</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span> </div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00032"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1CompoundValData.html#abb09175606543477fb33df37bd3ab209">   32</a></span>   <a class="code" href="classclang_1_1ento_1_1CompoundValData.html#abb09175606543477fb33df37bd3ab209">CompoundValData</a>(<a class="code" href="classclang_1_1QualType.html">QualType</a> t, <a class="code" href="classllvm_1_1ImmutableList.html">llvm::ImmutableList<SVal></a> l)</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>     : T(t), L(l) {}</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span> </div>
+<div class="line"><a name="l00035"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1CompoundValData.html#ac0e60488acb5e1a500d08020f35de25b">   35</a></span>   <span class="keyword">typedef</span> <a class="code" href="classllvm_1_1ImmutableList.html">llvm::ImmutableList<SVal>::iterator</a> <a class="code" href="classclang_1_1ento_1_1CompoundValData.html#ac0e60488acb5e1a500d08020f35de25b">iterator</a>;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1CompoundValData.html#a311e726a7a2bcea4c94b0ce3a6ed6ebd">   36</a></span>   <a class="code" href="classclang_1_1ento_1_1CompoundValData.html#ac0e60488acb5e1a500d08020f35de25b">iterator</a> <a class="code" href="classclang_1_1ento_1_1CompoundValData.html#a311e726a7a2bcea4c94b0ce3a6ed6ebd">begin</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> L.begin(); }</div>
+<div class="line"><a name="l00037"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1CompoundValData.html#abfc22d6027580a8823af7c6b6e9b1f46">   37</a></span>   <a class="code" href="classclang_1_1ento_1_1CompoundValData.html#ac0e60488acb5e1a500d08020f35de25b">iterator</a> <a class="code" href="classclang_1_1ento_1_1CompoundValData.html#abfc22d6027580a8823af7c6b6e9b1f46">end</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> L.end(); }</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">static</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1CompoundValData.html#a083272cbc78cc289edf78f427d7702a9">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>, <a class="code" href="classclang_1_1QualType.html">QualType</a> T,</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>                       <a class="code" href="classllvm_1_1ImmutableList.html">llvm::ImmutableList<SVal></a> L);</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span> </div>
+<div class="line"><a name="l00042"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1CompoundValData.html#a5e3056a0a73dc5f3edf29acc469749f3">   42</a></span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1CompoundValData.html#a5e3056a0a73dc5f3edf29acc469749f3">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>) { <a class="code" href="classclang_1_1ento_1_1CompoundValData.html#a5e3056a0a73dc5f3edf29acc469749f3">Profile</a>(ID, T, L); }</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span> };</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span> </div>
+<div class="line"><a name="l00045"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1LazyCompoundValData.html">   45</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1LazyCompoundValData.html">LazyCompoundValData</a> : <span class="keyword">public</span> llvm::FoldingSetNode {</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>   <a class="code" href="classclang_1_1ento_1_1StoreRef.html">StoreRef</a> store;</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</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> *region;</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00049"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1LazyCompoundValData.html#a3480ec0a71e411937f3a8f235f79af56">   49</a></span>   <a class="code" href="classclang_1_1ento_1_1LazyCompoundValData.html#a3480ec0a71e411937f3a8f235f79af56">LazyCompoundValData</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1StoreRef.html">StoreRef</a> &st, <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> *r)</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>     : store(st), region(r) {}</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span> </div>
+<div class="line"><a name="l00052"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1LazyCompoundValData.html#aebe98db341a65184e8c72c840f3c678a">   52</a></span>   <span class="keyword">const</span> <span class="keywordtype">void</span> *<a class="code" href="classclang_1_1ento_1_1LazyCompoundValData.html#aebe98db341a65184e8c72c840f3c678a">getStore</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> store.<a class="code" href="classclang_1_1ento_1_1StoreRef.html#a0fb683bfdcd103dbf7330c169e37360e">getStore</a>(); }</div>
+<div class="line"><a name="l00053"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1LazyCompoundValData.html#af76332749771f87746ec35545c619992">   53</a></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> *<a class="code" href="classclang_1_1ento_1_1LazyCompoundValData.html#af76332749771f87746ec35545c619992">getRegion</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> region; }</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">static</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1LazyCompoundValData.html#a246206bc452cdc65536da478076bba97">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>,</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>                       <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1StoreRef.html">StoreRef</a> &store,</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</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> *region);</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span> </div>
+<div class="line"><a name="l00059"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1LazyCompoundValData.html#ac2216e3f9d1cd19685f44f018b77e86c">   59</a></span>   <span class="keywordtype">void</span> <a class="code" href="classclang_1_1ento_1_1LazyCompoundValData.html#ac2216e3f9d1cd19685f44f018b77e86c">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>) { <a class="code" href="classclang_1_1ento_1_1LazyCompoundValData.html#ac2216e3f9d1cd19685f44f018b77e86c">Profile</a>(ID, store, region); }</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span> };</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span> </div>
+<div class="line"><a name="l00062"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html">   62</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html">BasicValueFactory</a> {</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>   <span class="keyword">typedef</span> llvm::FoldingSet<llvm::FoldingSetNodeWrapper<llvm::APSInt> ></div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>           APSIntSetTy;</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>   <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="l00067"></a><span class="lineno">   67</span>   llvm::BumpPtrAllocator& BPAlloc;</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span> </div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>   APSIntSetTy   APSIntSet;</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>   <span class="keywordtype">void</span> *        PersistentSVals;</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>   <span class="keywordtype">void</span> *        PersistentSValPairs;</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span> </div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>   <a class="code" href="classllvm_1_1ImmutableList.html">llvm::ImmutableList<SVal>::Factory</a> SValListFactory;</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>   llvm::FoldingSet<CompoundValData>  CompoundValDataSet;</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>   llvm::FoldingSet<LazyCompoundValData> LazyCompoundValDataSet;</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span> </div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>   <span class="comment">// This is private because external clients should use the factory</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>   <span class="comment">// method that takes a QualType.</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>   <span class="keyword">const</span> llvm::APSInt& getValue(uint64_t <a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>, <span class="keywordtype">unsigned</span> BitWidth, <span class="keywordtype">bool</span> isUnsigned);</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span> </div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00082"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a50641f4c06102321d68a1b6cde8511b4">   82</a></span>   <a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a50641f4c06102321d68a1b6cde8511b4">BasicValueFactory</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, llvm::BumpPtrAllocator& Alloc)</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>   : Ctx(ctx), BPAlloc(Alloc), PersistentSVals(0), PersistentSValPairs(0),</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>     SValListFactory(Alloc) {}</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span> </div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>   <a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#ab3de784512fe55508b372478bfc11425">~BasicValueFactory</a>();</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span> </div>
+<div class="line"><a name="l00088"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a04c9a7aee4b70cd6ce8e46892efc565a">   88</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_1BasicValueFactory.html#a04c9a7aee4b70cd6ce8e46892efc565a">getContext</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Ctx; }</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span> </div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>   <span class="keyword">const</span> llvm::APSInt& getValue(<span class="keyword">const</span> llvm::APSInt& X);</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>   <span class="keyword">const</span> llvm::APSInt& getValue(<span class="keyword">const</span> llvm::APInt& X, <span class="keywordtype">bool</span> isUnsigned);</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>   <span class="keyword">const</span> llvm::APSInt& getValue(uint64_t X, <a class="code" href="classclang_1_1QualType.html">QualType</a> T);</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span> <span class="comment"></span></div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span> <span class="comment">  /// Returns the type of the APSInt used to store values of the given QualType.</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a3d6b7b403c67825984056e2743462a08">   95</a></span> <span class="comment"></span>  <a class="code" href="classclang_1_1ento_1_1APSIntType.html" title="A record of the "type" of an APSInt, used for conversions.">APSIntType</a> <a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a3d6b7b403c67825984056e2743462a08" title="Returns the type of the APSInt used to store values of the given QualType.">getAPSIntType</a>(<a class="code" href="classclang_1_1QualType.html">QualType</a> T)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>     assert(T-><a class="code" href="classclang_1_1Type.html#afa340c23f27a4a28f20bdf52d69a0a4c" title="Determine whether this type is an integral or enumeration type.">isIntegralOrEnumerationType</a>() || <a class="code" href="classclang_1_1ento_1_1Loc.html#ade52f99777d7f54628cdac05e9992878">Loc::isLocType</a>(T));</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ento_1_1APSIntType.html" title="A record of the "type" of an APSInt, used for conversions.">APSIntType</a>(Ctx.<a class="code" href="classclang_1_1ASTContext.html#a3e16bd856974e4ac9710e0c507a60cee" title="Return the size of the specified (complete) type T, in bits.">getTypeSize</a>(T),</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>                       !T-><a class="code" href="classclang_1_1Type.html#ac1a93888d84731955cd5e95d6510aea6">isSignedIntegerOrEnumerationType</a>());</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> <span class="comment"></span></div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span> <span class="comment">  /// Convert - Create a new persistent APSInt with the same value as 'From'</span></div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span> <span class="comment">  ///  but with the bitwidth and signedness of 'To'.</span></div>
+<div class="line"><a name="l00103"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#ab6767ca32d3eed3fe1c8a928bb6c28b6">  103</a></span> <span class="comment"></span>  <span class="keyword">const</span> llvm::APSInt &<a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#ab6767ca32d3eed3fe1c8a928bb6c28b6">Convert</a>(<span class="keyword">const</span> llvm::APSInt& To,</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>                               <span class="keyword">const</span> llvm::APSInt& From) {</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>     <a class="code" href="classclang_1_1ento_1_1APSIntType.html" title="A record of the "type" of an APSInt, used for conversions.">APSIntType</a> TargetType(To);</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>     <span class="keywordflow">if</span> (TargetType == <a class="code" href="classclang_1_1ento_1_1APSIntType.html" title="A record of the "type" of an APSInt, used for conversions.">APSIntType</a>(From))</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>       <span class="keywordflow">return</span> From;</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span> </div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>     <span class="keywordflow">return</span> getValue(TargetType.<a class="code" href="classclang_1_1ento_1_1APSIntType.html#aac85f811f94ac11147a39e4752b94723">convert</a>(From));</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>   }</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>   </div>
+<div class="line"><a name="l00112"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#ad8240760d6aa6bfc81a94240231c7498">  112</a></span>   <span class="keyword">const</span> llvm::APSInt &<a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#ad8240760d6aa6bfc81a94240231c7498">Convert</a>(<a class="code" href="classclang_1_1QualType.html">QualType</a> T, <span class="keyword">const</span> llvm::APSInt &From) {</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>     <a class="code" href="classclang_1_1ento_1_1APSIntType.html" title="A record of the "type" of an APSInt, used for conversions.">APSIntType</a> TargetType = <a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a3d6b7b403c67825984056e2743462a08" title="Returns the type of the APSInt used to store values of the given QualType.">getAPSIntType</a>(T);</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>     <span class="keywordflow">if</span> (TargetType == <a class="code" href="classclang_1_1ento_1_1APSIntType.html" title="A record of the "type" of an APSInt, used for conversions.">APSIntType</a>(From))</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>       <span class="keywordflow">return</span> From;</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>     </div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>     <span class="keywordflow">return</span> getValue(TargetType.<a class="code" href="classclang_1_1ento_1_1APSIntType.html#aac85f811f94ac11147a39e4752b94723">convert</a>(From));</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> </div>
+<div class="line"><a name="l00120"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#abec82b78ade4fcc4b892841a15bb51cb">  120</a></span>   <span class="keyword">const</span> llvm::APSInt& <a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#abec82b78ade4fcc4b892841a15bb51cb">getIntValue</a>(uint64_t X, <span class="keywordtype">bool</span> isUnsigned) {</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>     <a class="code" href="classclang_1_1QualType.html">QualType</a> T = isUnsigned ? Ctx.<a class="code" href="classclang_1_1ASTContext.html#aad4fc6bf8d266a4dbc03cd9d3a86aab4">UnsignedIntTy</a> : Ctx.<a class="code" href="classclang_1_1ASTContext.html#a873a1148a8ffe184f0e5bd27bf90c0dc">IntTy</a>;</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>     <span class="keywordflow">return</span> getValue(X, T);</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>   }</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span> </div>
+<div class="line"><a name="l00125"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a84a117a0e78799b61c2141468aab54e5">  125</a></span>   <span class="keyword">inline</span> <span class="keyword">const</span> llvm::APSInt& <a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a84a117a0e78799b61c2141468aab54e5">getMaxValue</a>(<span class="keyword">const</span> llvm::APSInt &v) {</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>     <span class="keywordflow">return</span> getValue(<a class="code" href="classclang_1_1ento_1_1APSIntType.html" title="A record of the "type" of an APSInt, used for conversions.">APSIntType</a>(v).<a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a84a117a0e78799b61c2141468aab54e5">getMaxValue</a>());</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>   }</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span> </div>
+<div class="line"><a name="l00129"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#af725f0f7fc007bf89c6f28b4c8a5b095">  129</a></span>   <span class="keyword">inline</span> <span class="keyword">const</span> llvm::APSInt& <a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#af725f0f7fc007bf89c6f28b4c8a5b095">getMinValue</a>(<span class="keyword">const</span> llvm::APSInt &v) {</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>     <span class="keywordflow">return</span> getValue(<a class="code" href="classclang_1_1ento_1_1APSIntType.html" title="A record of the "type" of an APSInt, used for conversions.">APSIntType</a>(v).<a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#af725f0f7fc007bf89c6f28b4c8a5b095">getMinValue</a>());</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>   }</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span> </div>
+<div class="line"><a name="l00133"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#ae788c776759f817657e46d6a1845b6e9">  133</a></span>   <span class="keyword">inline</span> <span class="keyword">const</span> llvm::APSInt& <a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#ae788c776759f817657e46d6a1845b6e9">getMaxValue</a>(<a class="code" href="classclang_1_1QualType.html">QualType</a> T) {</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>     <span class="keywordflow">return</span> getValue(<a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a3d6b7b403c67825984056e2743462a08" title="Returns the type of the APSInt used to store values of the given QualType.">getAPSIntType</a>(T).<a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a84a117a0e78799b61c2141468aab54e5">getMaxValue</a>());</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>   }</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span> </div>
+<div class="line"><a name="l00137"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a60c9c1728d5c2d790a68551a38d86cc3">  137</a></span>   <span class="keyword">inline</span> <span class="keyword">const</span> llvm::APSInt& <a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a60c9c1728d5c2d790a68551a38d86cc3">getMinValue</a>(<a class="code" href="classclang_1_1QualType.html">QualType</a> T) {</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>     <span class="keywordflow">return</span> getValue(<a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a3d6b7b403c67825984056e2743462a08" title="Returns the type of the APSInt used to store values of the given QualType.">getAPSIntType</a>(T).<a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#af725f0f7fc007bf89c6f28b4c8a5b095">getMinValue</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">  140</span> </div>
+<div class="line"><a name="l00141"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a6587607c58205d3e96286eb857157c86">  141</a></span>   <span class="keyword">inline</span> <span class="keyword">const</span> llvm::APSInt& <a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a6587607c58205d3e96286eb857157c86">Add1</a>(<span class="keyword">const</span> llvm::APSInt& V) {</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>     llvm::APSInt X = V;</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>     ++<a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>;</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>     <span class="keywordflow">return</span> getValue(X);</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>   }</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span> </div>
+<div class="line"><a name="l00147"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a7a23c6126d3cb89d0c553bff1c566c14">  147</a></span>   <span class="keyword">inline</span> <span class="keyword">const</span> llvm::APSInt& <a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a7a23c6126d3cb89d0c553bff1c566c14">Sub1</a>(<span class="keyword">const</span> llvm::APSInt& V) {</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>     llvm::APSInt X = V;</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>     --<a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>;</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>     <span class="keywordflow">return</span> getValue(X);</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> </div>
+<div class="line"><a name="l00153"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#ac3c3433a43aafdc2e6e5f938e3a56071">  153</a></span>   <span class="keyword">inline</span> <span class="keyword">const</span> llvm::APSInt& <a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#ac3c3433a43aafdc2e6e5f938e3a56071">getZeroWithPtrWidth</a>(<span class="keywordtype">bool</span> isUnsigned = <span class="keyword">true</span>) {</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>     <span class="keywordflow">return</span> getValue(0, Ctx.<a class="code" href="classclang_1_1ASTContext.html#a3e16bd856974e4ac9710e0c507a60cee" title="Return the size of the specified (complete) type T, in bits.">getTypeSize</a>(Ctx.<a class="code" href="classclang_1_1ASTContext.html#a485732164c40553bb323c58f5e8bf7a7">VoidPtrTy</a>), isUnsigned);</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>   }</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span> </div>
+<div class="line"><a name="l00157"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#afb97c19beba4834e6ed9d21e0d9d7576">  157</a></span>   <span class="keyword">inline</span> <span class="keyword">const</span> llvm::APSInt &<a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#afb97c19beba4834e6ed9d21e0d9d7576">getIntWithPtrWidth</a>(uint64_t X, <span class="keywordtype">bool</span> isUnsigned) {</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>     <span class="keywordflow">return</span> getValue(X, Ctx.<a class="code" href="classclang_1_1ASTContext.html#a3e16bd856974e4ac9710e0c507a60cee" title="Return the size of the specified (complete) type T, in bits.">getTypeSize</a>(Ctx.<a class="code" href="classclang_1_1ASTContext.html#a485732164c40553bb323c58f5e8bf7a7">VoidPtrTy</a>), isUnsigned);</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> </div>
+<div class="line"><a name="l00161"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a4251f9c025825e5cffd81f3a48a082c5">  161</a></span>   <span class="keyword">inline</span> <span class="keyword">const</span> llvm::APSInt& <a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a4251f9c025825e5cffd81f3a48a082c5">getTruthValue</a>(<span class="keywordtype">bool</span> b, <a class="code" href="classclang_1_1QualType.html">QualType</a> T) {</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>     <span class="keywordflow">return</span> getValue(b ? 1 : 0, Ctx.<a class="code" href="classclang_1_1ASTContext.html#a3e16bd856974e4ac9710e0c507a60cee" title="Return the size of the specified (complete) type T, in bits.">getTypeSize</a>(T), <span class="keyword">false</span>);</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>   }</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span> </div>
+<div class="line"><a name="l00165"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a4f42eca74b67ac2c6e223e0f274ee117">  165</a></span>   <span class="keyword">inline</span> <span class="keyword">const</span> llvm::APSInt& <a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a4f42eca74b67ac2c6e223e0f274ee117">getTruthValue</a>(<span class="keywordtype">bool</span> b) {</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a4251f9c025825e5cffd81f3a48a082c5">getTruthValue</a>(b, Ctx.<a class="code" href="classclang_1_1ASTContext.html#a3a510ea78a1a95cc02a71792d1e7296b" title="The result type of logical operations, '<', '>', '!=', etc.">getLogicalOperationType</a>());</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>   }</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span> </div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1CompoundValData.html">CompoundValData</a> *<a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a268985981f888bcc71fa5a7b656488af">getCompoundValData</a>(<a class="code" href="classclang_1_1QualType.html">QualType</a> T,</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>                                             <a class="code" href="classllvm_1_1ImmutableList.html">llvm::ImmutableList<SVal></a> Vals);</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span> </div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1LazyCompoundValData.html">LazyCompoundValData</a> *<a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#ac7a7a63f605be10ced5effe590dd33c9">getLazyCompoundValData</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1StoreRef.html">StoreRef</a> &store,</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</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> *region);</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span> </div>
+<div class="line"><a name="l00175"></a><span class="lineno"><a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#aed14bbc0a5961a9b791dfccf02bddcef">  175</a></span>   <a class="code" href="classllvm_1_1ImmutableList.html">llvm::ImmutableList<SVal></a> <a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#aed14bbc0a5961a9b791dfccf02bddcef">getEmptySValList</a>() {</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>     <span class="keywordflow">return</span> SValListFactory.getEmptyList();</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"><a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a86616aa53e369c95ffa16ba57a987769">  179</a></span>   <a class="code" href="classllvm_1_1ImmutableList.html">llvm::ImmutableList<SVal></a> <a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a86616aa53e369c95ffa16ba57a987769">consVals</a>(<a class="code" href="classclang_1_1ento_1_1SVal.html">SVal</a> X, <a class="code" href="classllvm_1_1ImmutableList.html">llvm::ImmutableList<SVal></a> L) {</div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>     <span class="keywordflow">return</span> SValListFactory.add(X, L);</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> </div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>   <span class="keyword">const</span> llvm::APSInt* <a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a7b7eedd59c63719c45e00ae475309fb9">evalAPSInt</a>(<a class="code" href="namespaceclang.html#a443b552ee80020cfeb2b86c99e7f85e1">BinaryOperator::Opcode</a> Op,</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>                                      <span class="keyword">const</span> llvm::APSInt& V1,</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>                                      <span class="keyword">const</span> llvm::APSInt& V2);</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="keyword">const</span> std::pair<SVal, uintptr_t>&</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>   <a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a75cb0d32e21b29f2bfb9bf1dc1b26a49">getPersistentSValWithData</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1SVal.html">SVal</a>& V, uintptr_t Data);</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span> </div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>   <span class="keyword">const</span> std::pair<SVal, SVal>&</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>   <a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a3653e3b235abac36d6efd15612c03f30">getPersistentSValPair</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1SVal.html">SVal</a>& V1, <span class="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1SVal.html">SVal</a>& V2);</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="keyword">const</span> <a class="code" href="classclang_1_1ento_1_1SVal.html">SVal</a>* <a class="code" href="classclang_1_1ento_1_1BasicValueFactory.html#a50295ba8cc4e1f5b8fb155cb2612cce9">getPersistentSVal</a>(<a class="code" href="classclang_1_1ento_1_1SVal.html">SVal</a> X);</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span> };</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span> </div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span> } <span class="comment">// end GR namespace</span></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> } <span class="comment">// end clang namespace</span></div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span> </div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span> <span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:20 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/Basic_2Module_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Basic_2Module_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Basic_2Module_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Basic_2Module_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,522 @@
+<!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: Module.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_24bca364b0f2c7358ed9eed68d952c0d.html">Basic</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">Basic/Module.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="Basic_2Module_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">//===--- Module.cpp - Describe a module -----------------------------------===//</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">//                     The LLVM Compiler Infrastructure</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment">// This file is distributed under the University of Illinois Open Source</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">// License. See LICENSE.TXT for details.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span> <span class="comment">// This file defines the Module class, which describes a module in the source</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="comment">// code.</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> <span class="preprocessor">#include "<a class="code" href="Basic_2Module_8h.html" title="Defines the clang::Module class, which describes a module in the source code.">clang/Basic/Module.h</a>"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="preprocessor">#include "<a class="code" href="FileManager_8h.html" title="Defines the clang::FileManager interface and associated types.">clang/Basic/FileManager.h</a>"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="preprocessor">#include "<a class="code" href="LangOptions_8h.html" title="Defines the clang::LangOptions interface.">clang/Basic/LangOptions.h</a>"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="preprocessor">#include "<a class="code" href="include_2clang_2Basic_2TargetInfo_8h.html" title="Defines the clang::TargetInfo interface.">clang/Basic/TargetInfo.h</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="preprocessor">#include "llvm/ADT/ArrayRef.h"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="preprocessor">#include "llvm/ADT/SmallVector.h"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="preprocessor">#include "llvm/ADT/StringSwitch.h"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="preprocessor">#include "llvm/Support/ErrorHandling.h"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="preprocessor">#include "llvm/Support/raw_ostream.h"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> </div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="keyword">using namespace </span>clang;</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> </div>
+<div class="line"><a name="l00027"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#aa9ebdd8db28578a8241ac1a6baecf974">   27</a></span> <a class="code" href="classclang_1_1Module.html#a2b0177b05c0ceddf7c69e515639016c1" title="Construct a top-level module.">Module::Module</a>(StringRef Name, <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> DefinitionLoc, <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Parent, </div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>                <span class="keywordtype">bool</span> IsFramework, <span class="keywordtype">bool</span> IsExplicit)</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>   : Name(Name), DefinitionLoc(DefinitionLoc), Parent(Parent),</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>     Umbrella(), ASTFile(0), IsAvailable(<a class="code" href="stdbool_8h.html#a41f9c5fb8b08eb5dc3edce4dcb37fee7">true</a>), IsFromModuleFile(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>),</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>     IsFramework(IsFramework), IsExplicit(IsExplicit), IsSystem(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>),</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>     InferSubmodules(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>), InferExplicitSubmodules(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>), </div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>     InferExportWildcard(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>), ConfigMacrosExhaustive(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>),</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>     NameVisibility(Hidden)</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="keywordflow">if</span> (Parent) {</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>     <span class="keywordflow">if</span> (!Parent-><a class="code" href="classclang_1_1Module.html#a5be57132fedcd0fea5b93e5a6c311e98" title="Determine whether this module is available for use within the current translation unit...">isAvailable</a>())</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>       <a class="code" href="classclang_1_1Module.html#ae48172dff64f1638992540a3a7cc897b" title="Whether this module is available in the current translation unit.">IsAvailable</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>     <span class="keywordflow">if</span> (Parent-><a class="code" href="classclang_1_1Module.html#a505c7530ef3ac10e3f8c207e5722a158" title="Whether this is a "system" module (which assumes that all headers in it are system headers)...">IsSystem</a>)</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>       <a class="code" href="classclang_1_1Module.html#a505c7530ef3ac10e3f8c207e5722a158" title="Whether this is a "system" module (which assumes that all headers in it are system headers)...">IsSystem</a> = <span class="keyword">true</span>;</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>     Parent->SubModuleIndex[<a class="code" href="classclang_1_1Module.html#a51eba6562bd16dec5a8e7c2c5ed76890" title="The name of this module.">Name</a>] = Parent->SubModules.size();</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>     Parent->SubModules.push_back(<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>   }</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span> }</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span> </div>
+<div class="line"><a name="l00047"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#a7c9d9c096786d127590fdd8aa2b7d681">   47</a></span> <a class="code" href="classclang_1_1Module.html#a7c9d9c096786d127590fdd8aa2b7d681">Module::~Module</a>() {</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>   <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1Module.html#aade7ef252a186121e056cf35f6d56fb5">submodule_iterator</a> I = <a class="code" href="classclang_1_1Module.html#a9c95e62394e8873c8825a8c3993923d1">submodule_begin</a>(), IEnd = <a class="code" href="classclang_1_1Module.html#aefeb9dd237268b0c0f9ef0a2fb24dcf9">submodule_end</a>();</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>        I != IEnd; ++I) {</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>     <span class="keyword">delete</span> *I;</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>   }</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span> }</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span> <span class="comment"></span></div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span> <span class="comment">/// \brief Determine whether a translation unit built using the current</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span> <span class="comment">/// language options has the given feature.</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno"><a class="code" href="Basic_2Module_8cpp.html#a5480581ca8fb381a5e82f79e2f86815d">   56</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="Basic_2Module_8cpp.html#a5480581ca8fb381a5e82f79e2f86815d" title="Determine whether a translation unit built using the current language options has the given feature...">hasFeature</a>(StringRef Feature, <span class="keyword">const</span> <a class="code" href="classclang_1_1LangOptions.html" title="Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...">LangOptions</a> &LangOpts,</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>                        <span class="keyword">const</span> <a class="code" href="classclang_1_1TargetInfo.html" title="Exposes information about the current target.">TargetInfo</a> &Target) {</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>   <span class="keywordflow">return</span> llvm::StringSwitch<bool>(Feature)</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>            .Case(<span class="stringliteral">"altivec"</span>, LangOpts.AltiVec)</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>            .Case(<span class="stringliteral">"blocks"</span>, LangOpts.Blocks)</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>            .Case(<span class="stringliteral">"cplusplus"</span>, LangOpts.CPlusPlus)</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>            .Case(<span class="stringliteral">"cplusplus11"</span>, LangOpts.CPlusPlus11)</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>            .Case(<span class="stringliteral">"objc"</span>, LangOpts.ObjC1)</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>            .Case(<span class="stringliteral">"objc_arc"</span>, LangOpts.ObjCAutoRefCount)</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>            .Case(<span class="stringliteral">"opencl"</span>, LangOpts.OpenCL)</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>            .Case(<span class="stringliteral">"tls"</span>, Target.<a class="code" href="classclang_1_1TargetInfo.html#aa7d979d5f58c3f36a7272e09904dd2d9" title="Whether the target supports thread-local storage.">isTLSSupported</a>())</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>            .Default(Target.<a class="code" href="classclang_1_1TargetInfo.html#afc7bdc41021d963b43ede7dd29a59e68" title="Determine whether the given target has the given feature.">hasFeature</a>(Feature));</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span> }</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span> </div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span> <span class="keywordtype">bool</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#a163332beddaa8012c0aaab4a78fb0bc7">   71</a></span> <a class="code" href="classclang_1_1Module.html#a5be57132fedcd0fea5b93e5a6c311e98" title="Determine whether this module is available for use within the current translation unit...">Module::isAvailable</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1LangOptions.html" title="Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...">LangOptions</a> &LangOpts, <span class="keyword">const</span> <a class="code" href="classclang_1_1TargetInfo.html" title="Exposes information about the current target.">TargetInfo</a> &Target,</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>                     <a class="code" href="classclang_1_1Module.html#af5d00f77d1d24ec6cd92bdddea038fce" title="An individual requirement: a feature name and a flag indicating the required state of that feature...">Requirement</a> &Req)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Module.html#ae48172dff64f1638992540a3a7cc897b" title="Whether this module is available in the current translation unit.">IsAvailable</a>)</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>     <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span> </div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>   <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *<a class="code" href="TokenAnnotator_8cpp.html#af9dd7352b5e730aa8ddb81784035c434">Current</a> = <span class="keyword">this</span>; <a class="code" href="TokenAnnotator_8cpp.html#af9dd7352b5e730aa8ddb81784035c434">Current</a>; <a class="code" href="TokenAnnotator_8cpp.html#af9dd7352b5e730aa8ddb81784035c434">Current</a> = <a class="code" href="TokenAnnotator_8cpp.html#af9dd7352b5e730aa8ddb81784035c434">Current</a>->Parent) {</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = <a class="code" href="TokenAnnotator_8cpp.html#af9dd7352b5e730aa8ddb81784035c434">Current</a>->Requirements.size(); I != N; ++I) {</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>       <span class="keywordflow">if</span> (<a class="code" href="Basic_2Module_8cpp.html#a5480581ca8fb381a5e82f79e2f86815d" title="Determine whether a translation unit built using the current language options has the given feature...">hasFeature</a>(<a class="code" href="TokenAnnotator_8cpp.html#af9dd7352b5e730aa8ddb81784035c434">Current</a>->Requirements[I].first, LangOpts, Target) !=</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>               <a class="code" href="TokenAnnotator_8cpp.html#af9dd7352b5e730aa8ddb81784035c434">Current</a>->Requirements[I].second) {</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>         Req = <a class="code" href="TokenAnnotator_8cpp.html#af9dd7352b5e730aa8ddb81784035c434">Current</a>->Requirements[I];</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>         <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>       }</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>     }</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>   }</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span> </div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>   llvm_unreachable(<span class="stringliteral">"could not find a reason why module is unavailable"</span>);</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span> }</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span> </div>
+<div class="line"><a name="l00089"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#a5e82edd084f8a16ccd723b0768c62911">   89</a></span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1Module.html#a5e82edd084f8a16ccd723b0768c62911" title="Determine whether this module is a submodule of the given other module.">Module::isSubModuleOf</a>(<a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Other)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *This = <span class="keyword">this</span>;</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>   <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>     <span class="keywordflow">if</span> (This == Other)</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>       <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>     </div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>     This = This-><a class="code" href="classclang_1_1Module.html#a2bf2f0da38465698656382734688ebef" title="The parent of this module. This will be NULL for the top-level module.">Parent</a>;</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>   } <span class="keywordflow">while</span> (This);</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>   </div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>   <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span> }</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span> </div>
+<div class="line"><a name="l00101"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#a18664249dc553e502e439be75c3c0715">  101</a></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *<a class="code" href="classclang_1_1Module.html#ab9ac0815c7df4b9466e2a7212fd2d300" title="Retrieve the top-level module for this (sub)module, which may be this module.">Module::getTopLevelModule</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Result = <span class="keyword">this</span>;</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>   <span class="keywordflow">while</span> (Result-><a class="code" href="classclang_1_1Module.html#a2bf2f0da38465698656382734688ebef" title="The parent of this module. This will be NULL for the top-level module.">Parent</a>)</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>     Result = Result-><a class="code" href="classclang_1_1Module.html#a2bf2f0da38465698656382734688ebef" title="The parent of this module. This will be NULL for the top-level module.">Parent</a>;</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">return</span> Result;</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span> }</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span> </div>
+<div class="line"><a name="l00109"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#a3d720c72f2fe28832745046e83b8607a">  109</a></span> std::string <a class="code" href="classclang_1_1Module.html#a3d720c72f2fe28832745046e83b8607a" title="Retrieve the full name of this module, including the path from its top-level module.">Module::getFullModuleName</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<StringRef, 2></a> Names;</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="comment">// Build up the set of module names (from innermost to outermost).</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>   <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *M = <span class="keyword">this</span>; M; M = M-><a class="code" href="classclang_1_1Module.html#a2bf2f0da38465698656382734688ebef" title="The parent of this module. This will be NULL for the top-level module.">Parent</a>)</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>     Names.push_back(M->Name);</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>   </div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>   std::string Result;</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<StringRef>::reverse_iterator</a> I = Names.rbegin(),</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>                                                  IEnd = Names.rend();</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>        I != IEnd; ++I) {</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>     <span class="keywordflow">if</span> (!Result.empty())</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>       Result += <span class="charliteral">'.'</span>;</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>     </div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>     Result += *I;</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="keywordflow">return</span> Result;</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span> }</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span> </div>
+<div class="line"><a name="l00129"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#a2a142c05e037bb81a45fdf60c236cea7">  129</a></span> <span class="keyword">const</span> <a class="code" href="classclang_1_1DirectoryEntry.html" title="Cached information about one directory (either on disk or in the virtual file system).">DirectoryEntry</a> *<a class="code" href="classclang_1_1Module.html#a2a142c05e037bb81a45fdf60c236cea7" title="Retrieve the directory for which this module serves as the umbrella.">Module::getUmbrellaDir</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a> *Header = <a class="code" href="classclang_1_1Module.html#adc5b168a2266a0c3db0af7769dd0d4f5" title="Retrieve the header that serves as the umbrella header for this module.">getUmbrellaHeader</a>())</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>     <span class="keywordflow">return</span> Header->getDir();</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="keywordflow">return</span> <a class="code" href="classclang_1_1Module.html#acb7c8570da610974e567675303baa77b" title="The umbrella header or directory.">Umbrella</a>.dyn_cast<<span class="keyword">const</span> <a class="code" href="classclang_1_1DirectoryEntry.html" title="Cached information about one directory (either on disk or in the virtual file system).">DirectoryEntry</a> *>();</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span> }</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span> </div>
+<div class="line"><a name="l00136"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#a67ed11f173f3b4ff4e32a6bdcb7047e4">  136</a></span> <a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<const FileEntry *></a> <a class="code" href="classclang_1_1Module.html#a67ed11f173f3b4ff4e32a6bdcb7047e4" title="The top-level headers associated with this module.">Module::getTopHeaders</a>(<a class="code" href="classclang_1_1FileManager.html" title="Implements support for file system lookup, file system caching, and directory search management...">FileManager</a> &FileMgr) {</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>   <span class="keywordflow">if</span> (!TopHeaderNames.empty()) {</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>     <span class="keywordflow">for</span> (std::vector<std::string>::iterator</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>            I = TopHeaderNames.begin(), E = TopHeaderNames.end(); I != E; ++I) {</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>       <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a> *FE = FileMgr.<a class="code" href="classclang_1_1FileManager.html#ae250b54e2bc90b8075b96ea7e88eff77" title="Lookup, cache, and verify the specified file (real or virtual).">getFile</a>(*I))</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>         TopHeaders.insert(FE);</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>     }</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>     TopHeaderNames.clear();</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> </div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>   <span class="keywordflow">return</span> llvm::makeArrayRef(TopHeaders.begin(), TopHeaders.end());</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> </div>
+<div class="line"><a name="l00149"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#a007a11f18b75c2258a04ed53bbcda2af">  149</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1Module.html#a007a11f18b75c2258a04ed53bbcda2af" title="Add the given feature requirement to the list of features required by this module.">Module::addRequirement</a>(StringRef Feature, <span class="keywordtype">bool</span> RequiredState,</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>                             <span class="keyword">const</span> <a class="code" href="classclang_1_1LangOptions.html" title="Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...">LangOptions</a> &LangOpts,</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>                             <span class="keyword">const</span> <a class="code" href="classclang_1_1TargetInfo.html" title="Exposes information about the current target.">TargetInfo</a> &Target) {</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>   <a class="code" href="classclang_1_1Module.html#a6a7dd241fac5a94bf0188a235da237c1" title="The set of language features required to use this module.">Requirements</a>.push_back(<a class="code" href="classclang_1_1Module.html#af5d00f77d1d24ec6cd92bdddea038fce" title="An individual requirement: a feature name and a flag indicating the required state of that feature...">Requirement</a>(Feature, RequiredState));</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span> </div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>   <span class="comment">// If this feature is currently available, we're done.</span></div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>   <span class="keywordflow">if</span> (<a class="code" href="Basic_2Module_8cpp.html#a5480581ca8fb381a5e82f79e2f86815d" title="Determine whether a translation unit built using the current language options has the given feature...">hasFeature</a>(Feature, LangOpts, Target) == RequiredState)</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span> </div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>   <span class="keywordflow">if</span> (!<a class="code" href="classclang_1_1Module.html#ae48172dff64f1638992540a3a7cc897b" title="Whether this module is available in the current translation unit.">IsAvailable</a>)</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span> </div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<Module *, 2></a> <a class="code" href="UnwrappedLineParser_8cpp.html#a118f9e9887ee5c70966fe9b74b815f79">Stack</a>;</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>   Stack.push_back(<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>   <span class="keywordflow">while</span> (!Stack.empty()) {</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>     <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *<a class="code" href="TokenAnnotator_8cpp.html#af9dd7352b5e730aa8ddb81784035c434">Current</a> = Stack.back();</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>     Stack.pop_back();</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="keywordflow">if</span> (!Current-><a class="code" href="classclang_1_1Module.html#ae48172dff64f1638992540a3a7cc897b" title="Whether this module is available in the current translation unit.">IsAvailable</a>)</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>     Current-><a class="code" href="classclang_1_1Module.html#ae48172dff64f1638992540a3a7cc897b" title="Whether this module is available in the current translation unit.">IsAvailable</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>     <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1Module.html#aade7ef252a186121e056cf35f6d56fb5">submodule_iterator</a> Sub = Current-><a class="code" href="classclang_1_1Module.html#a9c95e62394e8873c8825a8c3993923d1">submodule_begin</a>(),</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>                          SubEnd = Current-><a class="code" href="classclang_1_1Module.html#aefeb9dd237268b0c0f9ef0a2fb24dcf9">submodule_end</a>();</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>          Sub != SubEnd; ++Sub) {</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>       <span class="keywordflow">if</span> ((*Sub)->IsAvailable)</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>         Stack.push_back(*Sub);</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>     }</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>   }</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span> }</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span> </div>
+<div class="line"><a name="l00180"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#a8ee2001b1277a38d236ab433aed277f2">  180</a></span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *<a class="code" href="classclang_1_1Module.html#a8ee2001b1277a38d236ab433aed277f2" title="Find the submodule with the given name.">Module::findSubmodule</a>(StringRef Name)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>   llvm::StringMap<unsigned>::const_iterator Pos = SubModuleIndex.find(Name);</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>   <span class="keywordflow">if</span> (Pos == SubModuleIndex.end())</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>     <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>   </div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>   <span class="keywordflow">return</span> SubModules[Pos->getValue()];</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span> }</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span> </div>
+<div class="line"><a name="l00188"></a><span class="lineno"><a class="code" href="Basic_2Module_8cpp.html#a3dea59aef912fc9acba3e748cf5886b7">  188</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="Basic_2Module_8cpp.html#a3dea59aef912fc9acba3e748cf5886b7">printModuleId</a>(raw_ostream &OS, <span class="keyword">const</span> <a class="code" href="namespaceclang.html#ada651c821b65538c5626af99b65ea13a" title="Describes the name of a module.">ModuleId</a> &Id) {</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = Id.size(); I != N; ++I) {</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>     <span class="keywordflow">if</span> (I)</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>       OS << <span class="stringliteral">"."</span>;</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>     OS << Id[I].first;</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> }</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span> </div>
+<div class="line"><a name="l00196"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#a4640424d8769f84a9489a096a1792bc7">  196</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1Module.html#a4640424d8769f84a9489a096a1792bc7" title="Appends this module's list of exported modules to Exported.">Module::getExportedModules</a>(<a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<Module *></a> &Exported)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span>   <span class="comment">// All non-explicit submodules are exported.</span></div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>   <span class="keywordflow">for</span> (std::vector<Module *>::const_iterator I = SubModules.begin(),</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>                                              E = SubModules.end();</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>        I != E; ++I) {</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>     <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Mod = *I;</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>     <span class="keywordflow">if</span> (!Mod-><a class="code" href="classclang_1_1Module.html#a01104f84f55ecbc9a4cd7b634a1f05ca" title="Whether this is an explicit submodule.">IsExplicit</a>)</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>       Exported.push_back(Mod);</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>   }</div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span> </div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>   <span class="comment">// Find re-exported modules by filtering the list of imported modules.</span></div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span>   <span class="keywordtype">bool</span> AnyWildcard = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span>   <span class="keywordtype">bool</span> UnrestrictedWildcard = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<Module *, 4></a> WildcardRestrictions;</div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = <a class="code" href="classclang_1_1Module.html#a05638ca4f7fe86eb9363440c20c01130" title="The set of export declarations.">Exports</a>.size(); I != N; ++I) {</div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>     <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Mod = <a class="code" href="classclang_1_1Module.html#a05638ca4f7fe86eb9363440c20c01130" title="The set of export declarations.">Exports</a>[I].getPointer();</div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span>     <span class="keywordflow">if</span> (!<a class="code" href="classclang_1_1Module.html#a05638ca4f7fe86eb9363440c20c01130" title="The set of export declarations.">Exports</a>[I].getInt()) {</div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span>       <span class="comment">// Export a named module directly; no wildcards involved.</span></div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>       Exported.push_back(Mod);</div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span> </div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span>       <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span>     }</div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span> </div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>     <span class="comment">// Wildcard export: export all of the imported modules that match</span></div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>     <span class="comment">// the given pattern.</span></div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span>     AnyWildcard = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span>     <span class="keywordflow">if</span> (UnrestrictedWildcard)</div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span>       <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span> </div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Restriction = <a class="code" href="classclang_1_1Module.html#a05638ca4f7fe86eb9363440c20c01130" title="The set of export declarations.">Exports</a>[I].getPointer())</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>       WildcardRestrictions.push_back(Restriction);</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>     <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span>       WildcardRestrictions.clear();</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span>       UnrestrictedWildcard = <span class="keyword">true</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>   }</div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span> </div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span>   <span class="comment">// If there were any wildcards, push any imported modules that were</span></div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>   <span class="comment">// re-exported by the wildcard restriction.</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span>   <span class="keywordflow">if</span> (!AnyWildcard)</div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span>     <span class="keywordflow">return</span>;</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>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = <a class="code" href="classclang_1_1Module.html#adf590ab26fa6d5c23acda05c8f93165d" title="The set of modules imported by this module, and on which this module depends.">Imports</a>.size(); I != N; ++I) {</div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span>     <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Mod = <a class="code" href="classclang_1_1Module.html#adf590ab26fa6d5c23acda05c8f93165d" title="The set of modules imported by this module, and on which this module depends.">Imports</a>[I];</div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span>     <span class="keywordtype">bool</span> Acceptable = UnrestrictedWildcard;</div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span>     <span class="keywordflow">if</span> (!Acceptable) {</div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span>       <span class="comment">// Check whether this module meets one of the restrictions.</span></div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span>       <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> R = 0, NR = WildcardRestrictions.size(); R != NR; ++R) {</div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span>         <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Restriction = WildcardRestrictions[R];</div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span>         <span class="keywordflow">if</span> (Mod == Restriction || Mod-><a class="code" href="classclang_1_1Module.html#a5e82edd084f8a16ccd723b0768c62911" title="Determine whether this module is a submodule of the given other module.">isSubModuleOf</a>(Restriction)) {</div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span>           Acceptable = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span>           <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span>         }</div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span>       }</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">  252</span>     <span class="keywordflow">if</span> (!Acceptable)</div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span>       <span class="keywordflow">continue</span>;</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>     Exported.push_back(Mod);</div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span>   }</div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span> }</div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span> </div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span> <span class="keywordtype">void</span> Module::buildVisibleModulesCache()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span>   assert(VisibleModulesCache.empty() && <span class="stringliteral">"cache does not need building"</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">  262</span>   <span class="comment">// This module is visible to itself.</span></div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span>   VisibleModulesCache.insert(<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span> </div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span>   <span class="comment">// Every imported module is visible.</span></div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span>   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<Module *, 16></a> <a class="code" href="UnwrappedLineParser_8cpp.html#a118f9e9887ee5c70966fe9b74b815f79">Stack</a>(<a class="code" href="classclang_1_1Module.html#adf590ab26fa6d5c23acda05c8f93165d" title="The set of modules imported by this module, and on which this module depends.">Imports</a>.begin(), <a class="code" href="classclang_1_1Module.html#adf590ab26fa6d5c23acda05c8f93165d" title="The set of modules imported by this module, and on which this module depends.">Imports</a>.end());</div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span>   <span class="keywordflow">while</span> (!<a class="code" href="UnwrappedLineParser_8cpp.html#a118f9e9887ee5c70966fe9b74b815f79">Stack</a>.empty()) {</div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span>     <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *CurrModule = <a class="code" href="UnwrappedLineParser_8cpp.html#a118f9e9887ee5c70966fe9b74b815f79">Stack</a>.pop_back_val();</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="comment">// Every module transitively exported by an imported module is visible.</span></div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span>     <span class="keywordflow">if</span> (VisibleModulesCache.insert(CurrModule).second)</div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span>       CurrModule-><a class="code" href="classclang_1_1Module.html#a4640424d8769f84a9489a096a1792bc7" title="Appends this module's list of exported modules to Exported.">getExportedModules</a>(<a class="code" href="UnwrappedLineParser_8cpp.html#a118f9e9887ee5c70966fe9b74b815f79">Stack</a>);</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> }</div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span> </div>
+<div class="line"><a name="l00276"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#a218ddc50d9601fb295a115546ce1e4d2">  276</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1Module.html#a218ddc50d9601fb295a115546ce1e4d2" title="Print the module map for this module to the given stream.">Module::print</a>(raw_ostream &OS, <span class="keywordtype">unsigned</span> <a class="code" href="PlistReporter_8cpp.html#a7676f960dee8fa858b7eb3c75f7770ed">Indent</a>)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span>   OS.indent(Indent);</div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Module.html#ad335b91a8d39f2a2ca9643f1c88aac8d" title="Whether this is a framework module.">IsFramework</a>)</div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span>     OS << <span class="stringliteral">"framework "</span>;</div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Module.html#a01104f84f55ecbc9a4cd7b634a1f05ca" title="Whether this is an explicit submodule.">IsExplicit</a>)</div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span>     OS << <span class="stringliteral">"explicit "</span>;</div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span>   OS << <span class="stringliteral">"module "</span> << <a class="code" href="classclang_1_1Module.html#a51eba6562bd16dec5a8e7c2c5ed76890" title="The name of this module.">Name</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>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Module.html#a505c7530ef3ac10e3f8c207e5722a158" title="Whether this is a "system" module (which assumes that all headers in it are system headers)...">IsSystem</a>) {</div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span>     OS.indent(Indent + 2);</div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span>     OS << <span class="stringliteral">" [system]"</span>;</div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span>   }</div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span> </div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span>   OS << <span class="stringliteral">" {\n"</span>;</div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span>   </div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span>   <span class="keywordflow">if</span> (!<a class="code" href="classclang_1_1Module.html#a6a7dd241fac5a94bf0188a235da237c1" title="The set of language features required to use this module.">Requirements</a>.empty()) {</div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span>     OS.indent(Indent + 2);</div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span>     OS << <span class="stringliteral">"requires "</span>;</div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span>     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = <a class="code" href="classclang_1_1Module.html#a6a7dd241fac5a94bf0188a235da237c1" title="The set of language features required to use this module.">Requirements</a>.size(); I != N; ++I) {</div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span>       <span class="keywordflow">if</span> (I)</div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span>         OS << <span class="stringliteral">", "</span>;</div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span>       <span class="keywordflow">if</span> (!<a class="code" href="classclang_1_1Module.html#a6a7dd241fac5a94bf0188a235da237c1" title="The set of language features required to use this module.">Requirements</a>[I].second)</div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span>         OS << <span class="stringliteral">"!"</span>;</div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span>       OS << <a class="code" href="classclang_1_1Module.html#a6a7dd241fac5a94bf0188a235da237c1" title="The set of language features required to use this module.">Requirements</a>[I].first;</div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span>     }</div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span>     OS << <span class="stringliteral">"\n"</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>   </div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a> *UmbrellaHeader = <a class="code" href="classclang_1_1Module.html#adc5b168a2266a0c3db0af7769dd0d4f5" title="Retrieve the header that serves as the umbrella header for this module.">getUmbrellaHeader</a>()) {</div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span>     OS.indent(Indent + 2);</div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span>     OS << <span class="stringliteral">"umbrella header \""</span>;</div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span>     OS.write_escaped(UmbrellaHeader->getName());</div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span>     OS << <span class="stringliteral">"\"\n"</span>;</div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span>   } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1DirectoryEntry.html" title="Cached information about one directory (either on disk or in the virtual file system).">DirectoryEntry</a> *UmbrellaDir = <a class="code" href="classclang_1_1Module.html#a2a142c05e037bb81a45fdf60c236cea7" title="Retrieve the directory for which this module serves as the umbrella.">getUmbrellaDir</a>()) {</div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span>     OS.indent(Indent + 2);</div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span>     OS << <span class="stringliteral">"umbrella \""</span>;</div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span>     OS.write_escaped(UmbrellaDir->getName());</div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span>     OS << <span class="stringliteral">"\"\n"</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> </div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span>   <span class="keywordflow">if</span> (!<a class="code" href="classclang_1_1Module.html#a162d6fa484ed34109093c8264dd116d3" title="The set of "configuration macros", which are macros that (intentionally) change how this module is bu...">ConfigMacros</a>.empty() || <a class="code" href="classclang_1_1Module.html#a97a926961c5f156791faf98633970246" title="Whether the set of configuration macros is exhaustive.">ConfigMacrosExhaustive</a>) {</div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span>     OS.indent(Indent + 2);</div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span>     OS << <span class="stringliteral">"config_macros "</span>;</div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Module.html#a97a926961c5f156791faf98633970246" title="Whether the set of configuration macros is exhaustive.">ConfigMacrosExhaustive</a>)</div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span>       OS << <span class="stringliteral">"[exhaustive]"</span>;</div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span>     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = <a class="code" href="classclang_1_1Module.html#a162d6fa484ed34109093c8264dd116d3" title="The set of "configuration macros", which are macros that (intentionally) change how this module is bu...">ConfigMacros</a>.size(); I != N; ++I) {</div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span>       <span class="keywordflow">if</span> (I)</div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span>         OS << <span class="stringliteral">", "</span>;</div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span>       OS << <a class="code" href="classclang_1_1Module.html#a162d6fa484ed34109093c8264dd116d3" title="The set of "configuration macros", which are macros that (intentionally) change how this module is bu...">ConfigMacros</a>[I];</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>     OS << <span class="stringliteral">"\n"</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">  328</span> </div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = <a class="code" href="classclang_1_1Module.html#abb4d0264cc1709091f4d2337ec17b832" title="The headers that are part of this module.">NormalHeaders</a>.size(); I != N; ++I) {</div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span>     OS.indent(Indent + 2);</div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span>     OS << <span class="stringliteral">"header \""</span>;</div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span>     OS.write_escaped(<a class="code" href="classclang_1_1Module.html#abb4d0264cc1709091f4d2337ec17b832" title="The headers that are part of this module.">NormalHeaders</a>[I]->getName());</div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span>     OS << <span class="stringliteral">"\"\n"</span>;</div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span>   }</div>
+<div class="line"><a name="l00335"></a><span class="lineno">  335</span> </div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = <a class="code" href="classclang_1_1Module.html#a0fb319704fd02cce3cb3d7bd88a21c51" title="The headers that are explicitly excluded from this module.">ExcludedHeaders</a>.size(); I != N; ++I) {</div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span>     OS.indent(Indent + 2);</div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span>     OS << <span class="stringliteral">"exclude header \""</span>;</div>
+<div class="line"><a name="l00339"></a><span class="lineno">  339</span>     OS.write_escaped(<a class="code" href="classclang_1_1Module.html#a0fb319704fd02cce3cb3d7bd88a21c51" title="The headers that are explicitly excluded from this module.">ExcludedHeaders</a>[I]->getName());</div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span>     OS << <span class="stringliteral">"\"\n"</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> </div>
+<div class="line"><a name="l00343"></a><span class="lineno">  343</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = <a class="code" href="classclang_1_1Module.html#a03cc716919c98f60df2b1e2ed346f8bb" title="The headers that are private to this module.">PrivateHeaders</a>.size(); I != N; ++I) {</div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span>     OS.indent(Indent + 2);</div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span>     OS << <span class="stringliteral">"private header \""</span>;</div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span>     OS.write_escaped(<a class="code" href="classclang_1_1Module.html#a03cc716919c98f60df2b1e2ed346f8bb" title="The headers that are private to this module.">PrivateHeaders</a>[I]->getName());</div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span>     OS << <span class="stringliteral">"\"\n"</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">  349</span>   </div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span>   <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1Module.html#aeb9fa402afc7a209242bc8db2d0d95b3">submodule_const_iterator</a> MI = <a class="code" href="classclang_1_1Module.html#a9c95e62394e8873c8825a8c3993923d1">submodule_begin</a>(), MIEnd = <a class="code" href="classclang_1_1Module.html#aefeb9dd237268b0c0f9ef0a2fb24dcf9">submodule_end</a>();</div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span>        MI != MIEnd; ++MI)</div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span>     (*MI)->print(OS, Indent + 2);</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>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = <a class="code" href="classclang_1_1Module.html#a05638ca4f7fe86eb9363440c20c01130" title="The set of export declarations.">Exports</a>.size(); I != N; ++I) {</div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span>     OS.indent(Indent + 2);</div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span>     OS << <span class="stringliteral">"export "</span>;</div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Restriction = <a class="code" href="classclang_1_1Module.html#a05638ca4f7fe86eb9363440c20c01130" title="The set of export declarations.">Exports</a>[I].getPointer()) {</div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span>       OS << Restriction->getFullModuleName();</div>
+<div class="line"><a name="l00359"></a><span class="lineno">  359</span>       <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Module.html#a05638ca4f7fe86eb9363440c20c01130" title="The set of export declarations.">Exports</a>[I].getInt())</div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span>         OS << <span class="stringliteral">".*"</span>;</div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span>       OS << <span class="stringliteral">"*"</span>;</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>     OS << <span class="stringliteral">"\n"</span>;</div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span>   }</div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span> </div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = <a class="code" href="classclang_1_1Module.html#a62b8063b204ad8902efdc67fa4da1956" title="The set of export declarations that have yet to be resolved.">UnresolvedExports</a>.size(); I != N; ++I) {</div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span>     OS.indent(Indent + 2);</div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span>     OS << <span class="stringliteral">"export "</span>;</div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span>     <a class="code" href="Basic_2Module_8cpp.html#a3dea59aef912fc9acba3e748cf5886b7">printModuleId</a>(OS, <a class="code" href="classclang_1_1Module.html#a62b8063b204ad8902efdc67fa4da1956" title="The set of export declarations that have yet to be resolved.">UnresolvedExports</a>[I].Id);</div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Module.html#a62b8063b204ad8902efdc67fa4da1956" title="The set of export declarations that have yet to be resolved.">UnresolvedExports</a>[I].Wildcard) {</div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span>       <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Module.html#a62b8063b204ad8902efdc67fa4da1956" title="The set of export declarations that have yet to be resolved.">UnresolvedExports</a>[I].Id.empty())</div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span>         OS << <span class="stringliteral">"*"</span>;</div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span>       <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span>         OS << <span class="stringliteral">".*"</span>;</div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span>     }</div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span>     OS << <span class="stringliteral">"\n"</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">  379</span> </div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = <a class="code" href="classclang_1_1Module.html#a95775566d8066cb0ede2cfd01a338c1e" title="The directly used modules.">DirectUses</a>.size(); I != N; ++I) {</div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span>     OS.indent(Indent + 2);</div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span>     OS << <span class="stringliteral">"use "</span>;</div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span>     OS << <a class="code" href="classclang_1_1Module.html#a95775566d8066cb0ede2cfd01a338c1e" title="The directly used modules.">DirectUses</a>[I]->getFullModuleName();</div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span>     OS << <span class="stringliteral">"\n"</span>;</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> </div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = <a class="code" href="classclang_1_1Module.html#a807bbdc20e2fb8ae2007a6a76244bc49" title="The set of use declarations that have yet to be resolved.">UnresolvedDirectUses</a>.size(); I != N; ++I) {</div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span>     OS.indent(Indent + 2);</div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span>     OS << <span class="stringliteral">"use "</span>;</div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span>     <a class="code" href="Basic_2Module_8cpp.html#a3dea59aef912fc9acba3e748cf5886b7">printModuleId</a>(OS, <a class="code" href="classclang_1_1Module.html#a807bbdc20e2fb8ae2007a6a76244bc49" title="The set of use declarations that have yet to be resolved.">UnresolvedDirectUses</a>[I]);</div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span>     OS << <span class="stringliteral">"\n"</span>;</div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span>   }</div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span> </div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = <a class="code" href="classclang_1_1Module.html#a59f744ae0f6907785614508d01a5cd59" title="The set of libraries or frameworks to link against when an entity from this module is used...">LinkLibraries</a>.size(); I != N; ++I) {</div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span>     OS.indent(Indent + 2);</div>
+<div class="line"><a name="l00396"></a><span class="lineno">  396</span>     OS << <span class="stringliteral">"link "</span>;</div>
+<div class="line"><a name="l00397"></a><span class="lineno">  397</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Module.html#a59f744ae0f6907785614508d01a5cd59" title="The set of libraries or frameworks to link against when an entity from this module is used...">LinkLibraries</a>[I].<a class="code" href="classclang_1_1Module.html#ad335b91a8d39f2a2ca9643f1c88aac8d" title="Whether this is a framework module.">IsFramework</a>)</div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span>       OS << <span class="stringliteral">"framework "</span>;</div>
+<div class="line"><a name="l00399"></a><span class="lineno">  399</span>     OS << <span class="stringliteral">"\""</span>;</div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span>     OS.write_escaped(<a class="code" href="classclang_1_1Module.html#a59f744ae0f6907785614508d01a5cd59" title="The set of libraries or frameworks to link against when an entity from this module is used...">LinkLibraries</a>[I].Library);</div>
+<div class="line"><a name="l00401"></a><span class="lineno">  401</span>     OS << <span class="stringliteral">"\""</span>;</div>
+<div class="line"><a name="l00402"></a><span class="lineno">  402</span>   }</div>
+<div class="line"><a name="l00403"></a><span class="lineno">  403</span> </div>
+<div class="line"><a name="l00404"></a><span class="lineno">  404</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = <a class="code" href="classclang_1_1Module.html#ab8f0b274f72bfad381e2ca20a7aecff6" title="The list of conflicts for which the module-id has not yet been resolved.">UnresolvedConflicts</a>.size(); I != N; ++I) {</div>
+<div class="line"><a name="l00405"></a><span class="lineno">  405</span>     OS.indent(Indent + 2);</div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span>     OS << <span class="stringliteral">"conflict "</span>;</div>
+<div class="line"><a name="l00407"></a><span class="lineno">  407</span>     <a class="code" href="Basic_2Module_8cpp.html#a3dea59aef912fc9acba3e748cf5886b7">printModuleId</a>(OS, <a class="code" href="classclang_1_1Module.html#ab8f0b274f72bfad381e2ca20a7aecff6" title="The list of conflicts for which the module-id has not yet been resolved.">UnresolvedConflicts</a>[I].Id);</div>
+<div class="line"><a name="l00408"></a><span class="lineno">  408</span>     OS << <span class="stringliteral">", \""</span>;</div>
+<div class="line"><a name="l00409"></a><span class="lineno">  409</span>     OS.write_escaped(<a class="code" href="classclang_1_1Module.html#ab8f0b274f72bfad381e2ca20a7aecff6" title="The list of conflicts for which the module-id has not yet been resolved.">UnresolvedConflicts</a>[I].Message);</div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span>     OS << <span class="stringliteral">"\"\n"</span>;</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>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = <a class="code" href="classclang_1_1Module.html#afe7d527c3baed85720bfd21f822e2783" title="The list of conflicts.">Conflicts</a>.size(); I != N; ++I) {</div>
+<div class="line"><a name="l00414"></a><span class="lineno">  414</span>     OS.indent(Indent + 2);</div>
+<div class="line"><a name="l00415"></a><span class="lineno">  415</span>     OS << <span class="stringliteral">"conflict "</span>;</div>
+<div class="line"><a name="l00416"></a><span class="lineno">  416</span>     OS << <a class="code" href="classclang_1_1Module.html#afe7d527c3baed85720bfd21f822e2783" title="The list of conflicts.">Conflicts</a>[I].Other->getFullModuleName();</div>
+<div class="line"><a name="l00417"></a><span class="lineno">  417</span>     OS << <span class="stringliteral">", \""</span>;</div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span>     OS.write_escaped(<a class="code" href="classclang_1_1Module.html#afe7d527c3baed85720bfd21f822e2783" title="The list of conflicts.">Conflicts</a>[I].Message);</div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span>     OS << <span class="stringliteral">"\"\n"</span>;</div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span>   }</div>
+<div class="line"><a name="l00421"></a><span class="lineno">  421</span> </div>
+<div class="line"><a name="l00422"></a><span class="lineno">  422</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Module.html#a07cb2506efca1aba4c0959b7a0f8443c" title="Whether we should infer submodules for this module based on the headers.">InferSubmodules</a>) {</div>
+<div class="line"><a name="l00423"></a><span class="lineno">  423</span>     OS.indent(Indent + 2);</div>
+<div class="line"><a name="l00424"></a><span class="lineno">  424</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Module.html#ae64ff7e3ba9cb2d5fa98f6b55c58d921" title="Whether, when inferring submodules, the inferred submodules should be explicit.">InferExplicitSubmodules</a>)</div>
+<div class="line"><a name="l00425"></a><span class="lineno">  425</span>       OS << <span class="stringliteral">"explicit "</span>;</div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span>     OS << <span class="stringliteral">"module * {\n"</span>;</div>
+<div class="line"><a name="l00427"></a><span class="lineno">  427</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Module.html#aab3a3e63b2c07e737f21296484abbcf9" title="Whether, when inferring submodules, the inferr submodules should export all modules they import (e...">InferExportWildcard</a>) {</div>
+<div class="line"><a name="l00428"></a><span class="lineno">  428</span>       OS.indent(Indent + 4);</div>
+<div class="line"><a name="l00429"></a><span class="lineno">  429</span>       OS << <span class="stringliteral">"export *\n"</span>;</div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span>     }</div>
+<div class="line"><a name="l00431"></a><span class="lineno">  431</span>     OS.indent(Indent + 2);</div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span>     OS << <span class="stringliteral">"}\n"</span>;</div>
+<div class="line"><a name="l00433"></a><span class="lineno">  433</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>   OS.indent(Indent);</div>
+<div class="line"><a name="l00436"></a><span class="lineno">  436</span>   OS << <span class="stringliteral">"}\n"</span>;</div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span> }</div>
+<div class="line"><a name="l00438"></a><span class="lineno">  438</span> </div>
+<div class="line"><a name="l00439"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#aafd615304cd504c1e2565de008fe2ea0">  439</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1Module.html#aafd615304cd504c1e2565de008fe2ea0" title="Dump the contents of this module to the given output stream.">Module::dump</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span>   <a class="code" href="classclang_1_1Module.html#a218ddc50d9601fb295a115546ce1e4d2" title="Print the module map for this module to the given stream.">print</a>(llvm::errs());</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> </div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</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/Basic_2Module_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Basic_2Module_8h_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Basic_2Module_8h_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Basic_2Module_8h_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,509 @@
+<!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: Module.h Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head><body>
+<p class="title">clang API Documentation</p>
+<!-- Generated by Doxygen 1.8.3.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main Page</span></a></li>
+      <li><a href="pages.html"><span>Related Pages</span></a></li>
+      <li><a href="modules.html"><span>Modules</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File List</span></a></li>
+      <li><a href="globals.html"><span>File Members</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void
 (0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark"> </span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_f65986501076cc710d4b9355ae3fe06d.html">clang</a></li><li class="navelem"><a class="el" href="dir_3e61bbac0c8515a3c083eb51d03eb390.html">include</a></li><li class="navelem"><a class="el" href="dir_ee4f288247dc2d9ccd0382aea6916312.html">clang</a></li><li class="navelem"><a class="el" href="dir_84b4cac0f3db7adb733be733ea7bc48e.html">Basic</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">Basic/Module.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="Basic_2Module_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">//===--- Module.h - Describe a module ---------------------------*- C++ -*-===//</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">//                     The LLVM Compiler Infrastructure</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment">// This file is distributed under the University of Illinois Open Source</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">// License. See LICENSE.TXT for details.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span> <span class="comment">//===----------------------------------------------------------------------===//</span><span class="comment"></span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span> <span class="comment">/// \file</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="comment">/// \brief Defines the clang::Module class, which describes a module in the</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="comment">/// source code.</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> <span class="comment"></span><span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> <span class="preprocessor">#ifndef LLVM_CLANG_BASIC_MODULE_H</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="preprocessor"></span><span class="preprocessor">#define LLVM_CLANG_BASIC_MODULE_H</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="preprocessor">#include "<a class="code" href="SourceLocation_8h.html" title="Defines the clang::SourceLocation class and associated facilities.">clang/Basic/SourceLocation.h</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="preprocessor">#include "llvm/ADT/DenseSet.h"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="preprocessor">#include "llvm/ADT/PointerIntPair.h"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="preprocessor">#include "llvm/ADT/PointerUnion.h"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="preprocessor">#include "llvm/ADT/SetVector.h"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="preprocessor">#include "llvm/ADT/SmallVector.h"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="preprocessor">#include "llvm/ADT/StringMap.h"</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="preprocessor">#include "llvm/ADT/StringRef.h"</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="preprocessor">#include <string></span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="preprocessor">#include <utility></span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="preprocessor">#include <vector></span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="keyword">namespace </span>llvm {</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>   <span class="keyword">class </span>raw_ostream;</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> </div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span> <span class="keyword">namespace </span>clang {</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">class </span>DirectoryEntry;</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span> <span class="keyword">class </span>FileEntry;</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span> <span class="keyword">class </span>FileManager;</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span> <span class="keyword">class </span>LangOptions;</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span> <span class="keyword">class </span>TargetInfo;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"><a class="code" href="namespaceclang.html#ada651c821b65538c5626af99b65ea13a">   41</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a>;</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>   <span class="comment"></span></div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span> <span class="comment">/// \brief Describes the name of a module.</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span> <span class="comment"></span><span class="keyword">typedef</span> <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<std::pair<std::string, SourceLocation></a>, 2> <a class="code" href="namespaceclang.html#ada651c821b65538c5626af99b65ea13a" title="Describes the name of a module.">ModuleId</a>;</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>   <span class="comment"></span></div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span> <span class="comment">/// \brief Describes a module or submodule.</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html">   47</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> {</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span> <span class="keyword">public</span>:<span class="comment"></span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span> <span class="comment">  /// \brief The name of this module.</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#a51eba6562bd16dec5a8e7c2c5ed76890">   50</a></span> <span class="comment"></span>  std::string <a class="code" href="classclang_1_1Module.html#a51eba6562bd16dec5a8e7c2c5ed76890" title="The name of this module.">Name</a>;</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">  /// \brief The location of the module definition.</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#a2710db72196e0e353a27cdc2b5f54fb9">   53</a></span> <span class="comment"></span>  <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> <a class="code" href="classclang_1_1Module.html#a2710db72196e0e353a27cdc2b5f54fb9" title="The location of the module definition.">DefinitionLoc</a>;</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>   <span class="comment"></span></div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span> <span class="comment">  /// \brief The parent of this module. This will be NULL for the top-level</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span> <span class="comment">  /// module.</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#a2bf2f0da38465698656382734688ebef">   57</a></span> <span class="comment"></span>  <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *<a class="code" href="classclang_1_1Module.html#a2bf2f0da38465698656382734688ebef" title="The parent of this module. This will be NULL for the top-level module.">Parent</a>;</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>   <span class="comment"></span></div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span> <span class="comment">  /// \brief The umbrella header or directory.</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#acb7c8570da610974e567675303baa77b">   60</a></span> <span class="comment"></span>  llvm::PointerUnion<const DirectoryEntry *, const FileEntry *> <a class="code" href="classclang_1_1Module.html#acb7c8570da610974e567675303baa77b" title="The umbrella header or directory.">Umbrella</a>;</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>   </div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span> <span class="keyword">private</span>:<span class="comment"></span></div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span> <span class="comment">  /// \brief The submodules of this module, indexed by name.</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span> <span class="comment"></span>  std::vector<Module *> SubModules;</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>   <span class="comment"></span></div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span> <span class="comment">  /// \brief A mapping from the submodule name to the index into the </span></div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span> <span class="comment">  /// \c SubModules vector at which that submodule resides.</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span> <span class="comment"></span>  llvm::StringMap<unsigned> SubModuleIndex;</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span> <span class="comment"></span></div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span> <span class="comment">  /// \brief The AST file if this is a top-level module which has a</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span> <span class="comment">  /// corresponding serialized AST file, or null otherwise.</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span> <span class="comment"></span>  <span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a> *ASTFile;</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span> <span class="comment"></span></div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span> <span class="comment">  /// \brief The top-level headers associated with this module.</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span> <span class="comment"></span>  llvm::SmallSetVector<const FileEntry *, 2> TopHeaders;</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span> <span class="comment"></span></div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span> <span class="comment">  /// \brief top-level header filenames that aren't resolved to FileEntries yet.</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span> <span class="comment"></span>  std::vector<std::string> TopHeaderNames;</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span> <span class="comment"></span></div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span> <span class="comment">  /// \brief Cache of modules visible to lookup in this module.</span></div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span> <span class="comment"></span>  <span class="keyword">mutable</span> <a class="code" href="classllvm_1_1DenseSet.html">llvm::DenseSet<const Module*></a> VisibleModulesCache;</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span> </div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span> <span class="keyword">public</span>:<span class="comment"></span></div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span> <span class="comment">  /// \brief The headers that are part of this module.</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#abb4d0264cc1709091f4d2337ec17b832">   85</a></span> <span class="comment"></span>  <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<const FileEntry *, 2></a> <a class="code" href="classclang_1_1Module.html#abb4d0264cc1709091f4d2337ec17b832" title="The headers that are part of this module.">NormalHeaders</a>;</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span> <span class="comment"></span></div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span> <span class="comment">  /// \brief The headers that are explicitly excluded from this module.</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#a0fb319704fd02cce3cb3d7bd88a21c51">   88</a></span> <span class="comment"></span>  <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<const FileEntry *, 2></a> <a class="code" href="classclang_1_1Module.html#a0fb319704fd02cce3cb3d7bd88a21c51" title="The headers that are explicitly excluded from this module.">ExcludedHeaders</a>;</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span> <span class="comment"></span></div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span> <span class="comment">  /// \brief The headers that are private to this module.</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#a03cc716919c98f60df2b1e2ed346f8bb">   91</a></span> <span class="comment"></span>  <a class="code" href="classllvm_1_1SmallVector.html">llvm::SmallVector<const FileEntry *, 2></a> <a class="code" href="classclang_1_1Module.html#a03cc716919c98f60df2b1e2ed346f8bb" title="The headers that are private to this module.">PrivateHeaders</a>;</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span> <span class="comment"></span></div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span> <span class="comment">  /// \brief An individual requirement: a feature name and a flag indicating</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span> <span class="comment">  /// the required state of that feature.</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#af5d00f77d1d24ec6cd92bdddea038fce">   95</a></span> <span class="comment"></span>  <span class="keyword">typedef</span> std::pair<std::string, bool> <a class="code" href="classclang_1_1Module.html#af5d00f77d1d24ec6cd92bdddea038fce" title="An individual requirement: a feature name and a flag indicating the required state of that feature...">Requirement</a>;</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span> <span class="comment"></span></div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span> <span class="comment">  /// \brief The set of language features required to use this module.</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span> <span class="comment">  /// If any of these requirements are not available, the \c IsAvailable bit</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span> <span class="comment">  /// will be false to indicate that this (sub)module is not available.</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#a6a7dd241fac5a94bf0188a235da237c1">  101</a></span> <span class="comment"></span>  <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<Requirement, 2></a> <a class="code" href="classclang_1_1Module.html#a6a7dd241fac5a94bf0188a235da237c1" title="The set of language features required to use this module.">Requirements</a>;</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span> <span class="comment"></span></div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span> <span class="comment">  /// \brief Whether this module is available in the current</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span> <span class="comment">  /// translation unit.</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#ae48172dff64f1638992540a3a7cc897b">  105</a></span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1Module.html#ae48172dff64f1638992540a3a7cc897b" title="Whether this module is available in the current translation unit.">IsAvailable</a> : 1;</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span> <span class="comment"></span></div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span> <span class="comment">  /// \brief Whether this module was loaded from a module file.</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#ab947fac64520fa50e1b64c6672724b80">  108</a></span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1Module.html#ab947fac64520fa50e1b64c6672724b80" title="Whether this module was loaded from a module file.">IsFromModuleFile</a> : 1;</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>   <span class="comment"></span></div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span> <span class="comment">  /// \brief Whether this is a framework module.</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#ad335b91a8d39f2a2ca9643f1c88aac8d">  111</a></span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1Module.html#ad335b91a8d39f2a2ca9643f1c88aac8d" title="Whether this is a framework module.">IsFramework</a> : 1;</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>   <span class="comment"></span></div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span> <span class="comment">  /// \brief Whether this is an explicit submodule.</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#a01104f84f55ecbc9a4cd7b634a1f05ca">  114</a></span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1Module.html#a01104f84f55ecbc9a4cd7b634a1f05ca" title="Whether this is an explicit submodule.">IsExplicit</a> : 1;</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>   <span class="comment"></span></div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span> <span class="comment">  /// \brief Whether this is a "system" module (which assumes that all</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span> <span class="comment">  /// headers in it are system headers).</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#a505c7530ef3ac10e3f8c207e5722a158">  118</a></span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1Module.html#a505c7530ef3ac10e3f8c207e5722a158" title="Whether this is a "system" module (which assumes that all headers in it are system headers)...">IsSystem</a> : 1;</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>   <span class="comment"></span></div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span> <span class="comment">  /// \brief Whether we should infer submodules for this module based on </span></div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span> <span class="comment">  /// the headers.</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span> <span class="comment">  /// Submodules can only be inferred for modules with an umbrella header.</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#a07cb2506efca1aba4c0959b7a0f8443c">  124</a></span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1Module.html#a07cb2506efca1aba4c0959b7a0f8443c" title="Whether we should infer submodules for this module based on the headers.">InferSubmodules</a> : 1;</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>   <span class="comment"></span></div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span> <span class="comment">  /// \brief Whether, when inferring submodules, the inferred submodules</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span> <span class="comment">  /// should be explicit.</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#ae64ff7e3ba9cb2d5fa98f6b55c58d921">  128</a></span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1Module.html#ae64ff7e3ba9cb2d5fa98f6b55c58d921" title="Whether, when inferring submodules, the inferred submodules should be explicit.">InferExplicitSubmodules</a> : 1;</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>   <span class="comment"></span></div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span> <span class="comment">  /// \brief Whether, when inferring submodules, the inferr submodules should</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span> <span class="comment">  /// export all modules they import (e.g., the equivalent of "export *").</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#aab3a3e63b2c07e737f21296484abbcf9">  132</a></span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1Module.html#aab3a3e63b2c07e737f21296484abbcf9" title="Whether, when inferring submodules, the inferr submodules should export all modules they import (e...">InferExportWildcard</a> : 1;</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span> <span class="comment"></span></div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span> <span class="comment">  /// \brief Whether the set of configuration macros is exhaustive.</span></div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span> <span class="comment">  /// When the set of configuration macros is exhaustive, meaning</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span> <span class="comment">  /// that no identifier not in this list should affect how the module is</span></div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span> <span class="comment">  /// built.</span></div>
+<div class="line"><a name="l00139"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#a97a926961c5f156791faf98633970246">  139</a></span> <span class="comment"></span>  <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1Module.html#a97a926961c5f156791faf98633970246" title="Whether the set of configuration macros is exhaustive.">ConfigMacrosExhaustive</a> : 1;</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span> <span class="comment"></span></div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span> <span class="comment">  /// \brief Describes the visibility of the various names within a</span></div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span> <span class="comment">  /// particular module.</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#a1ca9cf81299c2f40c68d04f44eea8a67">  143</a></span> <span class="comment"></span>  <span class="keyword">enum</span> <a class="code" href="classclang_1_1Module.html#a1ca9cf81299c2f40c68d04f44eea8a67" title="Describes the visibility of the various names within a particular module.">NameVisibilityKind</a> {<span class="comment"></span></div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span> <span class="comment">    /// \brief All of the names in this module are hidden.</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"><a class="code" href="classclang_1_1Module.html#a1ca9cf81299c2f40c68d04f44eea8a67a00b51c9e19c605252978a48e60ff9063">  146</a></span> <span class="comment"></span>    <a class="code" href="classclang_1_1Module.html#a1ca9cf81299c2f40c68d04f44eea8a67a00b51c9e19c605252978a48e60ff9063" title="All of the names in this module are hidden.">Hidden</a>,<span class="comment"></span></div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span> <span class="comment">    /// \brief Only the macro names in this module are visible.</span></div>
+<div class="line"><a name="l00148"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#a1ca9cf81299c2f40c68d04f44eea8a67add78e40d0215633fda3035b44bbc13bb">  148</a></span> <span class="comment"></span>    <a class="code" href="classclang_1_1Module.html#a1ca9cf81299c2f40c68d04f44eea8a67add78e40d0215633fda3035b44bbc13bb" title="Only the macro names in this module are visible.">MacrosVisible</a>,<span class="comment"></span></div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span> <span class="comment">    /// \brief All of the names in this module are visible.</span></div>
+<div class="line"><a name="l00150"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#a1ca9cf81299c2f40c68d04f44eea8a67ab2042481b5eab6785bdbe0a928c7062a">  150</a></span> <span class="comment"></span>    <a class="code" href="classclang_1_1Module.html#a1ca9cf81299c2f40c68d04f44eea8a67ab2042481b5eab6785bdbe0a928c7062a" title="All of the names in this module are visible.">AllVisible</a></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>   <span class="comment"></span></div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span> <span class="comment">  ///\ brief The visibility of names within this particular module.</span></div>
+<div class="line"><a name="l00154"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#a1b5d07b8781230152a1a09ca15a2e50e">  154</a></span> <span class="comment"></span>  <a class="code" href="classclang_1_1Module.html#a1ca9cf81299c2f40c68d04f44eea8a67" title="Describes the visibility of the various names within a particular module.">NameVisibilityKind</a> <a class="code" href="classclang_1_1Module.html#a1b5d07b8781230152a1a09ca15a2e50e" title="\ brief The visibility of names within this particular module.">NameVisibility</a>;</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span> <span class="comment"></span></div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span> <span class="comment">  /// \brief The location of the inferred submodule.</span></div>
+<div class="line"><a name="l00157"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#a16910d5312b19f955d1912fe6a34a20c">  157</a></span> <span class="comment"></span>  <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> <a class="code" href="classclang_1_1Module.html#a16910d5312b19f955d1912fe6a34a20c" title="The location of the inferred submodule.">InferredSubmoduleLoc</a>;</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span> <span class="comment"></span></div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span> <span class="comment">  /// \brief The set of modules imported by this module, and on which this</span></div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span> <span class="comment">  /// module depends.</span></div>
+<div class="line"><a name="l00161"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#adf590ab26fa6d5c23acda05c8f93165d">  161</a></span> <span class="comment"></span>  <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<Module *, 2></a> <a class="code" href="classclang_1_1Module.html#adf590ab26fa6d5c23acda05c8f93165d" title="The set of modules imported by this module, and on which this module depends.">Imports</a>;</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>   <span class="comment"></span></div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span> <span class="comment">  /// \brief Describes an exported module.</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span> <span class="comment">  /// The pointer is the module being re-exported, while the bit will be true</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span> <span class="comment">  /// to indicate that this is a wildcard export.</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#a3b638d27f1c3f0a666c473f6067b0d56">  167</a></span> <span class="comment"></span>  <span class="keyword">typedef</span> llvm::PointerIntPair<Module *, 1, bool> <a class="code" href="classclang_1_1Module.html#a3b638d27f1c3f0a666c473f6067b0d56" title="Describes an exported module.">ExportDecl</a>;</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>   <span class="comment"></span></div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span> <span class="comment">  /// \brief The set of export declarations.</span></div>
+<div class="line"><a name="l00170"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#a05638ca4f7fe86eb9363440c20c01130">  170</a></span> <span class="comment"></span>  <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<ExportDecl, 2></a> <a class="code" href="classclang_1_1Module.html#a05638ca4f7fe86eb9363440c20c01130" title="The set of export declarations.">Exports</a>;</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>   <span class="comment"></span></div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span> <span class="comment">  /// \brief Describes an exported module that has not yet been resolved</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span> <span class="comment">  /// (perhaps because the module it refers to has not yet been loaded).</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno"><a class="code" href="structclang_1_1Module_1_1UnresolvedExportDecl.html">  174</a></span> <span class="comment"></span>  <span class="keyword">struct </span><a class="code" href="structclang_1_1Module_1_1UnresolvedExportDecl.html" title="Describes an exported module that has not yet been resolved (perhaps because the module it refers to ...">UnresolvedExportDecl</a> {<span class="comment"></span></div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span> <span class="comment">    /// \brief The location of the 'export' keyword in the module map file.</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno"><a class="code" href="structclang_1_1Module_1_1UnresolvedExportDecl.html#ad921f5f28580a9272702a1b4eacb50cc">  176</a></span> <span class="comment"></span>    <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> <a class="code" href="structclang_1_1Module_1_1UnresolvedExportDecl.html#ad921f5f28580a9272702a1b4eacb50cc" title="The location of the 'export' keyword in the module map file.">ExportLoc</a>;</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>     <span class="comment"></span></div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span> <span class="comment">    /// \brief The name of the module.</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno"><a class="code" href="structclang_1_1Module_1_1UnresolvedExportDecl.html#acdcebf92eeac8b0448d3db4ebff40395">  179</a></span> <span class="comment"></span>    <a class="code" href="namespaceclang.html#ada651c821b65538c5626af99b65ea13a" title="Describes the name of a module.">ModuleId</a> <a class="code" href="structclang_1_1Module_1_1UnresolvedExportDecl.html#acdcebf92eeac8b0448d3db4ebff40395" title="The name of the module.">Id</a>;</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 Whether this export declaration ends in a wildcard, indicating</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span> <span class="comment">    /// that all of its submodules should be exported (rather than the named</span></div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span> <span class="comment">    /// module itself).</span></div>
+<div class="line"><a name="l00184"></a><span class="lineno"><a class="code" href="structclang_1_1Module_1_1UnresolvedExportDecl.html#aa519b34242ddc787d61235d883f4700c">  184</a></span> <span class="comment"></span>    <span class="keywordtype">bool</span> <a class="code" href="structclang_1_1Module_1_1UnresolvedExportDecl.html#aa519b34242ddc787d61235d883f4700c" title="Whether this export declaration ends in a wildcard, indicating that all of its submodules should be e...">Wildcard</a>;</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>   };</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>   <span class="comment"></span></div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span> <span class="comment">  /// \brief The set of export declarations that have yet to be resolved.</span></div>
+<div class="line"><a name="l00188"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#a62b8063b204ad8902efdc67fa4da1956">  188</a></span> <span class="comment"></span>  <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<UnresolvedExportDecl, 2></a> <a class="code" href="classclang_1_1Module.html#a62b8063b204ad8902efdc67fa4da1956" title="The set of export declarations that have yet to be resolved.">UnresolvedExports</a>;</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span> <span class="comment"></span></div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span> <span class="comment">  /// \brief The directly used modules.</span></div>
+<div class="line"><a name="l00191"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#a95775566d8066cb0ede2cfd01a338c1e">  191</a></span> <span class="comment"></span>  <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<Module *, 2></a> <a class="code" href="classclang_1_1Module.html#a95775566d8066cb0ede2cfd01a338c1e" title="The directly used modules.">DirectUses</a>;</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span> <span class="comment"></span></div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span> <span class="comment">  /// \brief The set of use declarations that have yet to be resolved.</span></div>
+<div class="line"><a name="l00194"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#a807bbdc20e2fb8ae2007a6a76244bc49">  194</a></span> <span class="comment"></span>  <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<ModuleId, 2></a> <a class="code" href="classclang_1_1Module.html#a807bbdc20e2fb8ae2007a6a76244bc49" title="The set of use declarations that have yet to be resolved.">UnresolvedDirectUses</a>;</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span> <span class="comment"></span></div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span> <span class="comment">  /// \brief A library or framework to link against when an entity from this</span></div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span> <span class="comment">  /// module is used.</span></div>
+<div class="line"><a name="l00198"></a><span class="lineno"><a class="code" href="structclang_1_1Module_1_1LinkLibrary.html">  198</a></span> <span class="comment"></span>  <span class="keyword">struct </span><a class="code" href="structclang_1_1Module_1_1LinkLibrary.html" title="A library or framework to link against when an entity from this module is used.">LinkLibrary</a> {</div>
+<div class="line"><a name="l00199"></a><span class="lineno"><a class="code" href="structclang_1_1Module_1_1LinkLibrary.html#a232d659552983795b5f1a72d3d482ce8">  199</a></span>     <a class="code" href="structclang_1_1Module_1_1LinkLibrary.html#a232d659552983795b5f1a72d3d482ce8">LinkLibrary</a>() : <a class="code" href="structclang_1_1Module_1_1LinkLibrary.html#a0be4ba50a48b1c88f1f21aa008632d82" title="Whether this is a framework rather than a library.">IsFramework</a>(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>) { }</div>
+<div class="line"><a name="l00200"></a><span class="lineno"><a class="code" href="structclang_1_1Module_1_1LinkLibrary.html#a4cb0ffe22ca5de878200fc0539590bf5">  200</a></span>     <a class="code" href="structclang_1_1Module_1_1LinkLibrary.html#a232d659552983795b5f1a72d3d482ce8">LinkLibrary</a>(<span class="keyword">const</span> std::string &<a class="code" href="structclang_1_1Module_1_1LinkLibrary.html#ae7059c608177322916a2bdd5f71f5b0b" title="The library to link against.">Library</a>, <span class="keywordtype">bool</span> <a class="code" href="structclang_1_1Module_1_1LinkLibrary.html#a0be4ba50a48b1c88f1f21aa008632d82" title="Whether this is a framework rather than a library.">IsFramework</a>)</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>       : Library(Library), IsFramework(IsFramework) { }</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>     <span class="comment"></span></div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span> <span class="comment">    /// \brief The library to link against.</span></div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span> <span class="comment">    ///</span></div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span> <span class="comment">    /// This will typically be a library or framework name, but can also</span></div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span> <span class="comment">    /// be an absolute path to the library or framework.</span></div>
+<div class="line"><a name="l00207"></a><span class="lineno"><a class="code" href="structclang_1_1Module_1_1LinkLibrary.html#ae7059c608177322916a2bdd5f71f5b0b">  207</a></span> <span class="comment"></span>    std::string <a class="code" href="structclang_1_1Module_1_1LinkLibrary.html#ae7059c608177322916a2bdd5f71f5b0b" title="The library to link against.">Library</a>;</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span> <span class="comment"></span></div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span> <span class="comment">    /// \brief Whether this is a framework rather than a library.</span></div>
+<div class="line"><a name="l00210"></a><span class="lineno"><a class="code" href="structclang_1_1Module_1_1LinkLibrary.html#a0be4ba50a48b1c88f1f21aa008632d82">  210</a></span> <span class="comment"></span>    <span class="keywordtype">bool</span> <a class="code" href="structclang_1_1Module_1_1LinkLibrary.html#a0be4ba50a48b1c88f1f21aa008632d82" title="Whether this is a framework rather than a library.">IsFramework</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> <span class="comment"></span></div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span> <span class="comment">  /// \brief The set of libraries or frameworks to link against when</span></div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span> <span class="comment">  /// an entity from this module is used.</span></div>
+<div class="line"><a name="l00215"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#a59f744ae0f6907785614508d01a5cd59">  215</a></span> <span class="comment"></span>  <a class="code" href="classllvm_1_1SmallVector.html">llvm::SmallVector<LinkLibrary, 2></a> <a class="code" href="classclang_1_1Module.html#a59f744ae0f6907785614508d01a5cd59" title="The set of libraries or frameworks to link against when an entity from this module is used...">LinkLibraries</a>;</div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span> <span class="comment"></span></div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span> <span class="comment">  /// \brief The set of "configuration macros", which are macros that</span></div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span> <span class="comment">  /// (intentionally) change how this module is built.</span></div>
+<div class="line"><a name="l00219"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#a162d6fa484ed34109093c8264dd116d3">  219</a></span> <span class="comment"></span>  std::vector<std::string> <a class="code" href="classclang_1_1Module.html#a162d6fa484ed34109093c8264dd116d3" title="The set of "configuration macros", which are macros that (intentionally) change how this module is bu...">ConfigMacros</a>;</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span> <span class="comment"></span></div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span> <span class="comment">  /// \brief An unresolved conflict with another module.</span></div>
+<div class="line"><a name="l00222"></a><span class="lineno"><a class="code" href="structclang_1_1Module_1_1UnresolvedConflict.html">  222</a></span> <span class="comment"></span>  <span class="keyword">struct </span><a class="code" href="structclang_1_1Module_1_1UnresolvedConflict.html" title="An unresolved conflict with another module.">UnresolvedConflict</a> {<span class="comment"></span></div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span> <span class="comment">    /// \brief The (unresolved) module id.</span></div>
+<div class="line"><a name="l00224"></a><span class="lineno"><a class="code" href="structclang_1_1Module_1_1UnresolvedConflict.html#a632f3ed5dfa8f5daf18509050e18859b">  224</a></span> <span class="comment"></span>    <a class="code" href="namespaceclang.html#ada651c821b65538c5626af99b65ea13a" title="Describes the name of a module.">ModuleId</a> <a class="code" href="structclang_1_1Module_1_1UnresolvedConflict.html#a632f3ed5dfa8f5daf18509050e18859b" title="The (unresolved) module id.">Id</a>;</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span> <span class="comment"></span></div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span> <span class="comment">    /// \brief The message provided to the user when there is a conflict.</span></div>
+<div class="line"><a name="l00227"></a><span class="lineno"><a class="code" href="structclang_1_1Module_1_1UnresolvedConflict.html#a363b8c33e8037a2ce8282d4ab29b7241">  227</a></span> <span class="comment"></span>    std::string <a class="code" href="structclang_1_1Module_1_1UnresolvedConflict.html#a363b8c33e8037a2ce8282d4ab29b7241" title="The message provided to the user when there is a conflict.">Message</a>;</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> <span class="comment"></span></div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span> <span class="comment">  /// \brief The list of conflicts for which the module-id has not yet been</span></div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span> <span class="comment">  /// resolved.</span></div>
+<div class="line"><a name="l00232"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#ab8f0b274f72bfad381e2ca20a7aecff6">  232</a></span> <span class="comment"></span>  std::vector<UnresolvedConflict> <a class="code" href="classclang_1_1Module.html#ab8f0b274f72bfad381e2ca20a7aecff6" title="The list of conflicts for which the module-id has not yet been resolved.">UnresolvedConflicts</a>;</div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span> <span class="comment"></span></div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span> <span class="comment">  /// \brief A conflict between two modules.</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno"><a class="code" href="structclang_1_1Module_1_1Conflict.html">  235</a></span> <span class="comment"></span>  <span class="keyword">struct </span><a class="code" href="structclang_1_1Module_1_1Conflict.html" title="A conflict between two modules.">Conflict</a> {<span class="comment"></span></div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span> <span class="comment">    /// \brief The module that this module conflicts with.</span></div>
+<div class="line"><a name="l00237"></a><span class="lineno"><a class="code" href="structclang_1_1Module_1_1Conflict.html#a166e4ba42a196c12037803ac020cf83b">  237</a></span> <span class="comment"></span>    <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *<a class="code" href="structclang_1_1Module_1_1Conflict.html#a166e4ba42a196c12037803ac020cf83b" title="The module that this module conflicts with.">Other</a>;</div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span> <span class="comment"></span></div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span> <span class="comment">    /// \brief The message provided to the user when there is a conflict.</span></div>
+<div class="line"><a name="l00240"></a><span class="lineno"><a class="code" href="structclang_1_1Module_1_1Conflict.html#a36f68dc996f06770984dfa803d00737c">  240</a></span> <span class="comment"></span>    std::string <a class="code" href="structclang_1_1Module_1_1Conflict.html#a36f68dc996f06770984dfa803d00737c" title="The message provided to the user when there is a conflict.">Message</a>;</div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span>   };</div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span> <span class="comment"></span></div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span> <span class="comment">  /// \brief The list of conflicts.</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#afe7d527c3baed85720bfd21f822e2783">  244</a></span> <span class="comment"></span>  std::vector<Conflict> <a class="code" href="classclang_1_1Module.html#afe7d527c3baed85720bfd21f822e2783" title="The list of conflicts.">Conflicts</a>;</div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span> <span class="comment"></span></div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span> <span class="comment">  /// \brief Construct a top-level module.</span></div>
+<div class="line"><a name="l00247"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#a2b0177b05c0ceddf7c69e515639016c1">  247</a></span> <span class="comment"></span>  <span class="keyword">explicit</span> <a class="code" href="classclang_1_1Module.html#a2b0177b05c0ceddf7c69e515639016c1" title="Construct a top-level module.">Module</a>(StringRef <a class="code" href="classclang_1_1Module.html#a51eba6562bd16dec5a8e7c2c5ed76890" title="The name of this module.">Name</a>, <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> <a class="code" href="classclang_1_1Module.html#a2710db72196e0e353a27cdc2b5f54fb9" title="The location of the module definition.">DefinitionLoc</a>,</div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span>                   <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1Module.html#ad335b91a8d39f2a2ca9643f1c88aac8d" title="Whether this is a framework module.">IsFramework</a>)</div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span>     : Name(Name), DefinitionLoc(DefinitionLoc), <a class="code" href="classclang_1_1Module.html#a2bf2f0da38465698656382734688ebef" title="The parent of this module. This will be NULL for the top-level module.">Parent</a>(0),<a class="code" href="classclang_1_1Module.html#acb7c8570da610974e567675303baa77b" title="The umbrella header or directory.">Umbrella</a>(),ASTFile(0),</div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span>       <a class="code" href="classclang_1_1Module.html#ae48172dff64f1638992540a3a7cc897b" title="Whether this module is available in the current translation unit.">IsAvailable</a>(<a class="code" href="stdbool_8h.html#a41f9c5fb8b08eb5dc3edce4dcb37fee7">true</a>), <a class="code" href="classclang_1_1Module.html#ab947fac64520fa50e1b64c6672724b80" title="Whether this module was loaded from a module file.">IsFromModuleFile</a>(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>), IsFramework(IsFramework), </div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span>       <a class="code" href="classclang_1_1Module.html#a01104f84f55ecbc9a4cd7b634a1f05ca" title="Whether this is an explicit submodule.">IsExplicit</a>(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>), <a class="code" href="classclang_1_1Module.html#a505c7530ef3ac10e3f8c207e5722a158" title="Whether this is a "system" module (which assumes that all headers in it are system headers)...">IsSystem</a>(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>),</div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span>       <a class="code" href="classclang_1_1Module.html#a07cb2506efca1aba4c0959b7a0f8443c" title="Whether we should infer submodules for this module based on the headers.">InferSubmodules</a>(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>), <a class="code" href="classclang_1_1Module.html#ae64ff7e3ba9cb2d5fa98f6b55c58d921" title="Whether, when inferring submodules, the inferred submodules should be explicit.">InferExplicitSubmodules</a>(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>),</div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span>       <a class="code" href="classclang_1_1Module.html#aab3a3e63b2c07e737f21296484abbcf9" title="Whether, when inferring submodules, the inferr submodules should export all modules they import (e...">InferExportWildcard</a>(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>), <a class="code" href="classclang_1_1Module.html#a97a926961c5f156791faf98633970246" title="Whether the set of configuration macros is exhaustive.">ConfigMacrosExhaustive</a>(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>),</div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span>       <a class="code" href="classclang_1_1Module.html#a1b5d07b8781230152a1a09ca15a2e50e" title="\ brief The visibility of names within this particular module.">NameVisibility</a>(<a class="code" href="classclang_1_1Module.html#a1ca9cf81299c2f40c68d04f44eea8a67a00b51c9e19c605252978a48e60ff9063" title="All of the names in this module are hidden.">Hidden</a>) { }</div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span>   <span class="comment"></span></div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span> <span class="comment">  /// \brief Construct a new module or submodule.</span></div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span> <span class="comment"></span>  <a class="code" href="classclang_1_1Module.html#a2b0177b05c0ceddf7c69e515639016c1" title="Construct a top-level module.">Module</a>(StringRef <a class="code" href="classclang_1_1Module.html#a51eba6562bd16dec5a8e7c2c5ed76890" title="The name of this module.">Name</a>, <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> <a class="code" href="classclang_1_1Module.html#a2710db72196e0e353a27cdc2b5f54fb9" title="The location of the module definition.">DefinitionLoc</a>, <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *<a class="code" href="classclang_1_1Module.html#a2bf2f0da38465698656382734688ebef" title="The parent of this module. This will be NULL for the top-level module.">Parent</a>, </div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span>          <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1Module.html#ad335b91a8d39f2a2ca9643f1c88aac8d" title="Whether this is a framework module.">IsFramework</a>, <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1Module.html#a01104f84f55ecbc9a4cd7b634a1f05ca" title="Whether this is an explicit submodule.">IsExplicit</a>);</div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span>   </div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span>   <a class="code" href="classclang_1_1Module.html#a7c9d9c096786d127590fdd8aa2b7d681">~Module</a>();</div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span>   <span class="comment"></span></div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span> <span class="comment">  /// \brief Determine whether this module is available for use within the</span></div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span> <span class="comment">  /// current translation unit.</span></div>
+<div class="line"><a name="l00264"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#a5be57132fedcd0fea5b93e5a6c311e98">  264</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1Module.html#a5be57132fedcd0fea5b93e5a6c311e98" title="Determine whether this module is available for use within the current translation unit...">isAvailable</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Module.html#ae48172dff64f1638992540a3a7cc897b" title="Whether this module is available in the current translation unit.">IsAvailable</a>; }</div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span> <span class="comment"></span></div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span> <span class="comment">  /// \brief Determine whether this module is available for use within the</span></div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span> <span class="comment">  /// current translation unit.</span></div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span> <span class="comment">  /// \param LangOpts The language options used for the current</span></div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span> <span class="comment">  /// translation unit.</span></div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span> <span class="comment">  /// \param Target The target options used for the current translation unit.</span></div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span> <span class="comment">  /// \param Req If this module is unavailable, this parameter</span></div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span> <span class="comment">  /// will be set to one of the requirements that is not met for use of</span></div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span> <span class="comment">  /// this module.</span></div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1Module.html#a5be57132fedcd0fea5b93e5a6c311e98" title="Determine whether this module is available for use within the current translation unit...">isAvailable</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1LangOptions.html" title="Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...">LangOptions</a> &LangOpts, </div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span>                    <span class="keyword">const</span> <a class="code" href="classclang_1_1TargetInfo.html" title="Exposes information about the current target.">TargetInfo</a> &Target,</div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span>                    <a class="code" href="classclang_1_1Module.html#af5d00f77d1d24ec6cd92bdddea038fce" title="An individual requirement: a feature name and a flag indicating the required state of that feature...">Requirement</a> &Req) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span> <span class="comment"></span></div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span> <span class="comment">  /// \brief Determine whether this module is a submodule.</span></div>
+<div class="line"><a name="l00282"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#a7080b4e8cb12adb19e6ed90d4c59c405">  282</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1Module.html#a7080b4e8cb12adb19e6ed90d4c59c405" title="Determine whether this module is a submodule.">isSubModule</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Module.html#a2bf2f0da38465698656382734688ebef" title="The parent of this module. This will be NULL for the top-level module.">Parent</a> != 0; }</div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span>   <span class="comment"></span></div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span> <span class="comment">  /// \brief Determine whether this module is a submodule of the given other</span></div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span> <span class="comment">  /// module.</span></div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1Module.html#a5e82edd084f8a16ccd723b0768c62911" title="Determine whether this module is a submodule of the given other module.">isSubModuleOf</a>(<a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Other) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span>   <span class="comment"></span></div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span> <span class="comment">  /// \brief Determine whether this module is a part of a framework,</span></div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span> <span class="comment">  /// either because it is a framework module or because it is a submodule</span></div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span> <span class="comment">  /// of a framework module.</span></div>
+<div class="line"><a name="l00291"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#acb0eb0ac4a5d242095c5f63488496cfe">  291</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1Module.html#acb0eb0ac4a5d242095c5f63488496cfe" title="Determine whether this module is a part of a framework, either because it is a framework module or be...">isPartOfFramework</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span>     <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *Mod = <span class="keyword">this</span>; Mod; Mod = Mod-><a class="code" href="classclang_1_1Module.html#a2bf2f0da38465698656382734688ebef" title="The parent of this module. This will be NULL for the top-level module.">Parent</a>) </div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span>       <span class="keywordflow">if</span> (Mod->IsFramework)</div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span>         <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span>     </div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span>   }</div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span> <span class="comment"></span></div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span> <span class="comment">  /// \brief Determine whether this module is a subframework of another</span></div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span> <span class="comment">  /// framework.</span></div>
+<div class="line"><a name="l00301"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#a869c5857f419f0372777d6921c989e46">  301</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1Module.html#a869c5857f419f0372777d6921c989e46" title="Determine whether this module is a subframework of another framework.">isSubFramework</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Module.html#ad335b91a8d39f2a2ca9643f1c88aac8d" title="Whether this is a framework module.">IsFramework</a> && <a class="code" href="classclang_1_1Module.html#a2bf2f0da38465698656382734688ebef" title="The parent of this module. This will be NULL for the top-level module.">Parent</a> && <a class="code" href="classclang_1_1Module.html#a2bf2f0da38465698656382734688ebef" title="The parent of this module. This will be NULL for the top-level module.">Parent</a>-><a class="code" href="classclang_1_1Module.html#acb0eb0ac4a5d242095c5f63488496cfe" title="Determine whether this module is a part of a framework, either because it is a framework module or be...">isPartOfFramework</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> <span class="comment"></span></div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span> <span class="comment">  /// \brief Retrieve the full name of this module, including the path from</span></div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span> <span class="comment">  /// its top-level module.</span></div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span> <span class="comment"></span>  std::string <a class="code" href="classclang_1_1Module.html#a3d720c72f2fe28832745046e83b8607a" title="Retrieve the full name of this module, including the path from its top-level module.">getFullModuleName</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span> <span class="comment"></span></div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span> <span class="comment">  /// \brief Retrieve the top-level module for this (sub)module, which may</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span> <span class="comment">  /// be this module.</span></div>
+<div class="line"><a name="l00311"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#ab9ac0815c7df4b9466e2a7212fd2d300">  311</a></span> <span class="comment"></span>  <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *<a class="code" href="classclang_1_1Module.html#ab9ac0815c7df4b9466e2a7212fd2d300" title="Retrieve the top-level module for this (sub)module, which may be this module.">getTopLevelModule</a>() {</div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span>     <span class="keywordflow">return</span> <span class="keyword">const_cast<</span><a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *<span class="keyword">></span>(</div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span>              <span class="keyword">const_cast<</span><span class="keyword">const </span><a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *<span class="keyword">></span>(<span class="keyword">this</span>)-><a class="code" href="classclang_1_1Module.html#ab9ac0815c7df4b9466e2a7212fd2d300" title="Retrieve the top-level module for this (sub)module, which may be this module.">getTopLevelModule</a>());</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 Retrieve the top-level module for this (sub)module, which may</span></div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span> <span class="comment">  /// be this module.</span></div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span> <span class="comment"></span>  <span class="keyword">const</span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *<a class="code" href="classclang_1_1Module.html#ab9ac0815c7df4b9466e2a7212fd2d300" title="Retrieve the top-level module for this (sub)module, which may be this module.">getTopLevelModule</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span>   <span class="comment"></span></div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span> <span class="comment">  /// \brief Retrieve the name of the top-level module.</span></div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00322"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#a9500036125ff28f527f653855d6077c8">  322</a></span> <span class="comment"></span>  StringRef <a class="code" href="classclang_1_1Module.html#a9500036125ff28f527f653855d6077c8" title="Retrieve the name of the top-level module.">getTopLevelModuleName</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Module.html#ab9ac0815c7df4b9466e2a7212fd2d300" title="Retrieve the top-level module for this (sub)module, which may be this module.">getTopLevelModule</a>()-><a class="code" href="classclang_1_1Module.html#a51eba6562bd16dec5a8e7c2c5ed76890" title="The name of this module.">Name</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="comment"></span></div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span> <span class="comment">  /// \brief The serialized AST file for this module, if one was created.</span></div>
+<div class="line"><a name="l00327"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#a10df0873f5129f15adb57677a910f697">  327</a></span> <span class="comment"></span>  <span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a> *<a class="code" href="classclang_1_1Module.html#a10df0873f5129f15adb57677a910f697" title="The serialized AST file for this module, if one was created.">getASTFile</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Module.html#ab9ac0815c7df4b9466e2a7212fd2d300" title="Retrieve the top-level module for this (sub)module, which may be this module.">getTopLevelModule</a>()->ASTFile;</div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span>   }</div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span> <span class="comment"></span></div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span> <span class="comment">  /// \brief Set the serialized AST file for the top-level module of this module.</span></div>
+<div class="line"><a name="l00332"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#a7185327e256ac41ea654e1f0ec246287">  332</a></span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1Module.html#a7185327e256ac41ea654e1f0ec246287" title="Set the serialized AST file for the top-level module of this module.">setASTFile</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a> *File) {</div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span>     assert((<a class="code" href="classclang_1_1Module.html#a10df0873f5129f15adb57677a910f697" title="The serialized AST file for this module, if one was created.">getASTFile</a>() == 0 || <a class="code" href="classclang_1_1Module.html#a10df0873f5129f15adb57677a910f697" title="The serialized AST file for this module, if one was created.">getASTFile</a>() == File) && <span class="stringliteral">"file path changed"</span>);</div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span>     <a class="code" href="classclang_1_1Module.html#ab9ac0815c7df4b9466e2a7212fd2d300" title="Retrieve the top-level module for this (sub)module, which may be this module.">getTopLevelModule</a>()->ASTFile = File;</div>
+<div class="line"><a name="l00335"></a><span class="lineno">  335</span>   }</div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span> <span class="comment"></span></div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span> <span class="comment">  /// \brief Retrieve the directory for which this module serves as the</span></div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span> <span class="comment">  /// umbrella.</span></div>
+<div class="line"><a name="l00339"></a><span class="lineno">  339</span> <span class="comment"></span>  <span class="keyword">const</span> <a class="code" href="classclang_1_1DirectoryEntry.html" title="Cached information about one directory (either on disk or in the virtual file system).">DirectoryEntry</a> *<a class="code" href="classclang_1_1Module.html#a2a142c05e037bb81a45fdf60c236cea7" title="Retrieve the directory for which this module serves as the umbrella.">getUmbrellaDir</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span> <span class="comment"></span></div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span> <span class="comment">  /// \brief Retrieve the header that serves as the umbrella header for this</span></div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span> <span class="comment">  /// module.</span></div>
+<div class="line"><a name="l00343"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#adc5b168a2266a0c3db0af7769dd0d4f5">  343</a></span> <span class="comment"></span>  <span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a> *<a class="code" href="classclang_1_1Module.html#adc5b168a2266a0c3db0af7769dd0d4f5" title="Retrieve the header that serves as the umbrella header for this module.">getUmbrellaHeader</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Module.html#acb7c8570da610974e567675303baa77b" title="The umbrella header or directory.">Umbrella</a>.dyn_cast<<span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a> *>();</div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span>   }</div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span> <span class="comment"></span></div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span> <span class="comment">  /// \brief Determine whether this module has an umbrella directory that is</span></div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span> <span class="comment">  /// not based on an umbrella header.</span></div>
+<div class="line"><a name="l00349"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#a5d5a3bef3811c442f39ecd596ca9e7df">  349</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1Module.html#a5d5a3bef3811c442f39ecd596ca9e7df" title="Determine whether this module has an umbrella directory that is not based on an umbrella header...">hasUmbrellaDir</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span>     <span class="keywordflow">return</span> <a class="code" href="classclang_1_1Module.html#acb7c8570da610974e567675303baa77b" title="The umbrella header or directory.">Umbrella</a> && <a class="code" href="classclang_1_1Module.html#acb7c8570da610974e567675303baa77b" title="The umbrella header or directory.">Umbrella</a>.is<<span class="keyword">const</span> <a class="code" href="classclang_1_1DirectoryEntry.html" title="Cached information about one directory (either on disk or in the virtual file system).">DirectoryEntry</a> *>();</div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span>   }</div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span> <span class="comment"></span></div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span> <span class="comment">  /// \brief Add a top-level header associated with this module.</span></div>
+<div class="line"><a name="l00354"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#a6ad1e8c7329d41f481dd3b6e193ed4ed">  354</a></span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1Module.html#a6ad1e8c7329d41f481dd3b6e193ed4ed" title="Add a top-level header associated with this module.">addTopHeader</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1FileEntry.html" title="Cached information about one file (either on disk or in the virtual file system).">FileEntry</a> *File) {</div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span>     assert(File);</div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span>     TopHeaders.insert(File);</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> <span class="comment"></span></div>
+<div class="line"><a name="l00359"></a><span class="lineno">  359</span> <span class="comment">  /// \brief Add a top-level header filename associated with this module.</span></div>
+<div class="line"><a name="l00360"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#a3965b16abb889cdcd7aac334ed0b473b">  360</a></span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1Module.html#a3965b16abb889cdcd7aac334ed0b473b" title="Add a top-level header filename associated with this module.">addTopHeaderFilename</a>(StringRef Filename) {</div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span>     TopHeaderNames.push_back(Filename);</div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span>   }</div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span> <span class="comment"></span></div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span> <span class="comment">  /// \brief The top-level headers associated with this module.</span></div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span> <span class="comment"></span>  <a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<const FileEntry *></a> <a class="code" href="classclang_1_1Module.html#a67ed11f173f3b4ff4e32a6bdcb7047e4" title="The top-level headers associated with this module.">getTopHeaders</a>(<a class="code" href="classclang_1_1FileManager.html" title="Implements support for file system lookup, file system caching, and directory search management...">FileManager</a> &FileMgr);</div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span> <span class="comment"></span></div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span> <span class="comment">  /// \brief Add the given feature requirement to the list of features</span></div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span> <span class="comment">  /// required by this module.</span></div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span> <span class="comment">  /// \param Feature The feature that is required by this module (and</span></div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span> <span class="comment">  /// its submodules).</span></div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span> <span class="comment">  /// \param RequiredState The required state of this feature: \c true</span></div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span> <span class="comment">  /// if it must be present, \c false if it must be absent.</span></div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span> <span class="comment">  /// \param LangOpts The set of language options that will be used to</span></div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span> <span class="comment">  /// evaluate the availability of this feature.</span></div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span> <span class="comment">  /// \param Target The target options that will be used to evaluate the</span></div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span> <span class="comment">  /// availability of this feature.</span></div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1Module.html#a007a11f18b75c2258a04ed53bbcda2af" title="Add the given feature requirement to the list of features required by this module.">addRequirement</a>(StringRef Feature, <span class="keywordtype">bool</span> RequiredState,</div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span>                       <span class="keyword">const</span> <a class="code" href="classclang_1_1LangOptions.html" title="Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...">LangOptions</a> &LangOpts,</div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span>                       <span class="keyword">const</span> <a class="code" href="classclang_1_1TargetInfo.html" title="Exposes information about the current target.">TargetInfo</a> &Target);</div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span> <span class="comment"></span></div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span> <span class="comment">  /// \brief Find the submodule with the given name.</span></div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span> <span class="comment">  /// \returns The submodule if found, or NULL otherwise.</span></div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span> <span class="comment"></span>  <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *<a class="code" href="classclang_1_1Module.html#a8ee2001b1277a38d236ab433aed277f2" title="Find the submodule with the given name.">findSubmodule</a>(StringRef <a class="code" href="classclang_1_1Module.html#a51eba6562bd16dec5a8e7c2c5ed76890" title="The name of this module.">Name</a>) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span> <span class="comment"></span></div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span> <span class="comment">  /// \brief Determine whether the specified module would be visible to</span></div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span> <span class="comment">  /// a lookup at the end of this module.</span></div>
+<div class="line"><a name="l00392"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#af8fadbe8ccb8e30f51eb58ec70da7aee">  392</a></span> <span class="comment"></span>  <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1Module.html#af8fadbe8ccb8e30f51eb58ec70da7aee" title="Determine whether the specified module would be visible to a lookup at the end of this module...">isModuleVisible</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Module.html" title="Describes a module or submodule.">Module</a> *M)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span>     <span class="keywordflow">if</span> (VisibleModulesCache.empty())</div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span>       buildVisibleModulesCache();</div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span>     <span class="keywordflow">return</span> VisibleModulesCache.count(M);</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"><a class="code" href="classclang_1_1Module.html#aade7ef252a186121e056cf35f6d56fb5">  398</a></span>   <span class="keyword">typedef</span> std::vector<Module *>::iterator <a class="code" href="classclang_1_1Module.html#aade7ef252a186121e056cf35f6d56fb5">submodule_iterator</a>;</div>
+<div class="line"><a name="l00399"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#aeb9fa402afc7a209242bc8db2d0d95b3">  399</a></span>   <span class="keyword">typedef</span> std::vector<Module *>::const_iterator <a class="code" href="classclang_1_1Module.html#aeb9fa402afc7a209242bc8db2d0d95b3">submodule_const_iterator</a>;</div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span>   </div>
+<div class="line"><a name="l00401"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#a9c95e62394e8873c8825a8c3993923d1">  401</a></span>   <a class="code" href="classclang_1_1Module.html#aade7ef252a186121e056cf35f6d56fb5">submodule_iterator</a> <a class="code" href="classclang_1_1Module.html#a9c95e62394e8873c8825a8c3993923d1">submodule_begin</a>() { <span class="keywordflow">return</span> SubModules.begin(); }</div>
+<div class="line"><a name="l00402"></a><span class="lineno"><a class="code" href="classclang_1_1Module.html#aee3f1470da556aa14b73e