[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/IvarInvalidationChecker_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/IvarInvalidationChecker_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/IvarInvalidationChecker_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/IvarInvalidationChecker_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,839 @@
+<!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: IvarInvalidationChecker.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">IvarInvalidationChecker.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="IvarInvalidationChecker_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">//=- IvarInvalidationChecker.cpp - -*- C++ -------------------------------*-==//</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">//                     The LLVM Compiler Infrastructure</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment">// This file is distributed under the University of Illinois Open Source</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">// License. See LICENSE.TXT for details.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span> <span class="comment">//  This checker implements annotation driven invalidation checking. If a class</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="comment">//  contains a method annotated with 'objc_instance_variable_invalidator',</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="comment">//  - (void) foo</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> <span class="comment">//           __attribute__((annotate("objc_instance_variable_invalidator")));</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> <span class="comment">//  all the "ivalidatable" instance variables of this class should be</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> <span class="comment">//  invalidated. We call an instance variable ivalidatable if it is an object of</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="comment">//  a class which contains an invalidation method. There could be multiple</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="comment">//  methods annotated with such annotations per class, either one can be used</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="comment">//  to invalidate the ivar. An ivar or property are considered to be</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="comment">//  invalidated if they are being assigned 'nil' or an invalidation method has</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="comment">//  been called on them. An invalidation method should either invalidate all</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="comment">//  the ivars or call another invalidation method (on self).</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="comment">//  Partial invalidor annotation allows to addess cases when ivars are </span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="comment">//  invalidated by other methods, which might or might not be called from </span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment">//  the invalidation method. The checker checks that each invalidation</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="comment">//  method and all the partial methods cumulatively invalidate all ivars.</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="comment">//    __attribute__((annotate("objc_instance_variable_invalidator_partial")));</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="comment">//===----------------------------------------------------------------------===//</span></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="preprocessor">#include "<a class="code" href="ClangSACheckers_8h.html">ClangSACheckers.h</a>"</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span> <span class="preprocessor">#include "<a class="code" href="Attr_8h.html">clang/AST/Attr.h</a>"</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span> <span class="preprocessor">#include "<a class="code" href="DeclObjC_8h.html">clang/AST/DeclObjC.h</a>"</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span> <span class="preprocessor">#include "<a class="code" href="StmtVisitor_8h.html">clang/AST/StmtVisitor.h</a>"</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span> <span class="preprocessor">#include "<a class="code" href="BugReporter_8h.html">clang/StaticAnalyzer/Core/BugReporter/BugReporter.h</a>"</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</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="l00037"></a><span class="lineno">   37</span> <span class="preprocessor">#include "<a class="code" href="AnalysisManager_8h.html">clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h</a>"</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span> <span class="preprocessor">#include "llvm/ADT/DenseMap.h"</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span> <span class="preprocessor">#include "llvm/ADT/SetVector.h"</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span> <span class="preprocessor">#include "llvm/ADT/SmallString.h"</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> <span class="keyword">using namespace </span>clang;</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span> <span class="keyword">using namespace </span>ento;</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> <span class="keyword">namespace </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">   47</span> <span class="keyword">struct </span>ChecksFilter {<span class="comment"></span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span> <span class="comment">  /// Check for missing invalidation method declarations.</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span> <span class="comment"></span>  <a class="code" href="structclang_1_1ento_1_1DefaultBool.html" title="A helper class which wraps a boolean value set to false by default.">DefaultBool</a> check_MissingInvalidationMethod;<span class="comment"></span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span> <span class="comment">  /// Check that all ivars are invalidated.</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span> <span class="comment"></span>  <a class="code" href="structclang_1_1ento_1_1DefaultBool.html" title="A helper class which wraps a boolean value set to false by default.">DefaultBool</a> check_InstanceVariableInvalidation;</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span> };</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span> </div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span> <span class="keyword">class </span>IvarInvalidationCheckerImpl {</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span> </div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>   <span class="keyword">typedef</span> llvm::SmallSetVector<const ObjCMethodDecl*, 2> MethodSet;</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>   <span class="keyword">typedef</span> llvm::DenseMap<<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a>*,</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>                          <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a>*> MethToIvarMapTy;</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>   <span class="keyword">typedef</span> llvm::DenseMap<<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCPropertyDecl.html" title="Represents one property declaration in an Objective-C interface.">ObjCPropertyDecl</a>*,</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>                          <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a>*> PropToIvarMapTy;</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>   <span class="keyword">typedef</span> llvm::DenseMap<<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a>*,</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>                          <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCPropertyDecl.html" title="Represents one property declaration in an Objective-C interface.">ObjCPropertyDecl</a>*> IvarToPropMapTy;</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span> </div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span> </div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>   <span class="keyword">struct </span>InvalidationInfo {<span class="comment"></span></div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span> <span class="comment">    /// Has the ivar been invalidated?</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span> <span class="comment"></span>    <span class="keywordtype">bool</span> IsInvalidated;</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span> <span class="comment"></span></div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span> <span class="comment">    /// The methods which can be used to invalidate the ivar.</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span> <span class="comment"></span>    MethodSet InvalidationMethods;</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span> </div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>     InvalidationInfo() : IsInvalidated(<a class="code" href="stdbool_8h.html#a65e9886d74aaee76545e83dd09011727">false</a>) {}</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>     <span class="keywordtype">void</span> addInvalidationMethod(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *MD) {</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>       InvalidationMethods.insert(MD);</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>     }</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span> </div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>     <span class="keywordtype">bool</span> needsInvalidation()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>       <span class="keywordflow">return</span> !InvalidationMethods.empty();</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>     }</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span> </div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>     <span class="keywordtype">bool</span> hasMethod(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *MD) {</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>       <span class="keywordflow">if</span> (IsInvalidated)</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>         <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>       <span class="keywordflow">for</span> (MethodSet::iterator I = InvalidationMethods.begin(),</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>           E = InvalidationMethods.end(); I != E; ++I) {</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>         <span class="keywordflow">if</span> (*I == MD) {</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>           IsInvalidated = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>           <span class="keywordflow">return</span> <span class="keyword">true</span>;</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>       }</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>       <span class="keywordflow">return</span> <span class="keyword">false</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>   };</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">typedef</span> llvm::DenseMap<const ObjCIvarDecl*, InvalidationInfo> IvarSet;</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">  /// Statement visitor, which walks the method body and flags the ivars</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span> <span class="comment">  /// referenced in it (either directly or via property).</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span> <span class="comment"></span>  <span class="keyword">class </span>MethodCrawler : <span class="keyword">public</span> <a class="code" href="classclang_1_1ConstStmtVisitor.html">ConstStmtVisitor</a><MethodCrawler> {<span class="comment"></span></div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span> <span class="comment">    /// The set of Ivars which need to be invalidated.</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span> <span class="comment"></span>    IvarSet &IVars;</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">    /// Flag is set as the result of a message send to another</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span> <span class="comment">    /// invalidation method.</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span> <span class="comment"></span>    <span class="keywordtype">bool</span> &CalledAnotherInvalidationMethod;</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">    /// Property setter to ivar mapping.</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span> <span class="comment"></span>    <span class="keyword">const</span> MethToIvarMapTy &PropertySetterToIvarMap;</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">    /// Property getter to ivar mapping.</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span> <span class="comment"></span>    <span class="keyword">const</span> MethToIvarMapTy &PropertyGetterToIvarMap;</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">    /// Property to ivar mapping.</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span> <span class="comment"></span>    <span class="keyword">const</span> PropToIvarMapTy &PropertyToIvarMap;</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">    /// The invalidation method being currently processed.</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span> <span class="comment"></span>    <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *InvalidationMethod;</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>     <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="l00120"></a><span class="lineno">  120</span> <span class="comment"></span></div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span> <span class="comment">    /// Peel off parens, casts, OpaqueValueExpr, and PseudoObjectExpr.</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span> <span class="comment"></span>    <span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *peel(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *E) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span> <span class="comment"></span></div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span> <span class="comment">    /// Does this expression represent zero: '0'?</span></div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span> <span class="comment"></span>    <span class="keywordtype">bool</span> isZero(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *E) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span> <span class="comment"></span></div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span> <span class="comment">    /// Mark the given ivar as invalidated.</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span> <span class="comment"></span>    <span class="keywordtype">void</span> markInvalidated(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *Iv);</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">    /// Checks if IvarRef refers to the tracked IVar, if yes, marks it as</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span> <span class="comment">    /// invalidated.</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span> <span class="comment"></span>    <span class="keywordtype">void</span> checkObjCIvarRefExpr(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarRefExpr.html" title="ObjCIvarRefExpr - A reference to an ObjC instance variable.">ObjCIvarRefExpr</a> *IvarRef);</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">    /// Checks if ObjCPropertyRefExpr refers to the tracked IVar, if yes, marks</span></div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span> <span class="comment">    /// it as invalidated.</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span> <span class="comment"></span>    <span class="keywordtype">void</span> checkObjCPropertyRefExpr(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCPropertyRefExpr.html">ObjCPropertyRefExpr</a> *PA);</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span> <span class="comment"></span></div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span> <span class="comment">    /// Checks if ObjCMessageExpr refers to (is a getter for) the tracked IVar,</span></div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span> <span class="comment">    /// if yes, marks it as invalidated.</span></div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span> <span class="comment"></span>    <span class="keywordtype">void</span> checkObjCMessageExpr(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMessageExpr.html" title="An expression that sends a message to the given Objective-C object or class.">ObjCMessageExpr</a> *ME);</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span> <span class="comment"></span></div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span> <span class="comment">    /// Checks if the Expr refers to an ivar, if yes, marks it as invalidated.</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span> <span class="comment"></span>    <span class="keywordtype">void</span> check(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *E);</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">public</span>:</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>     MethodCrawler(IvarSet &InIVars,</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>                   <span class="keywordtype">bool</span> &InCalledAnotherInvalidationMethod,</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>                   <span class="keyword">const</span> MethToIvarMapTy &InPropertySetterToIvarMap,</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>                   <span class="keyword">const</span> MethToIvarMapTy &InPropertyGetterToIvarMap,</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>                   <span class="keyword">const</span> PropToIvarMapTy &InPropertyToIvarMap,</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</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> &InCtx)</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>     : IVars(InIVars),</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>       CalledAnotherInvalidationMethod(InCalledAnotherInvalidationMethod),</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>       PropertySetterToIvarMap(InPropertySetterToIvarMap),</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>       PropertyGetterToIvarMap(InPropertyGetterToIvarMap),</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>       PropertyToIvarMap(InPropertyToIvarMap),</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>       InvalidationMethod(0),</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>       Ctx(InCtx) {}</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>     <span class="keywordtype">void</span> VisitStmt(<span class="keyword">const</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>) { VisitChildren(S); }</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span> </div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>     <span class="keywordtype">void</span> VisitBinaryOperator(<span class="keyword">const</span> <a class="code" href="classclang_1_1BinaryOperator.html" title="A builtin binary operation expression such as "x + y" or "x <= y".">BinaryOperator</a> *BO);</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>     <span class="keywordtype">void</span> VisitObjCMessageExpr(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMessageExpr.html" title="An expression that sends a message to the given Objective-C object or class.">ObjCMessageExpr</a> *ME);</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span> </div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>     <span class="keywordtype">void</span> VisitChildren(<span class="keyword">const</span> <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>) {</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>       <span class="keywordflow">for</span> (<a class="code" href="structclang_1_1ConstStmtRange.html">Stmt::const_child_range</a> I = S-><a class="code" href="classclang_1_1Stmt.html#a489148e5d234a5a7f00d8b02981bcee5">children</a>(); I; ++I) {</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>         <span class="keywordflow">if</span> (*I)</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>           this->Visit(*I);</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>         <span class="keywordflow">if</span> (CalledAnotherInvalidationMethod)</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>           <span class="keywordflow">return</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>     }</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="comment"></span></div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span> <span class="comment">  /// Check if the any of the methods inside the interface are annotated with</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span> <span class="comment">  /// the invalidation annotation, update the IvarInfo accordingly.</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span> <span class="comment">  /// \param LookForPartial is set when we are searching for partial</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span> <span class="comment">  ///        invalidators.</span></div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span> <span class="comment"></span>  <span class="keyword">static</span> <span class="keywordtype">void</span> containsInvalidationMethod(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCContainerDecl.html">ObjCContainerDecl</a> *D,</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>                                          InvalidationInfo &Out,</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>                                          <span class="keywordtype">bool</span> LookForPartial);</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span> <span class="comment"></span></div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span> <span class="comment">  /// Check if ivar should be tracked and add to TrackedIvars if positive.</span></div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span> <span class="comment">  /// Returns true if ivar should be tracked.</span></div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span> <span class="comment"></span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> trackIvar(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *Iv, IvarSet &TrackedIvars,</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>                         <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> **FirstIvarDecl);</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span> <span class="comment"></span></div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span> <span class="comment">  /// Given the property declaration, and the list of tracked ivars, finds</span></div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span> <span class="comment">  /// the ivar backing the property when possible. Returns '0' when no such</span></div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span> <span class="comment">  /// ivar could be found.</span></div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span> <span class="comment"></span>  <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *findPropertyBackingIvar(</div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span>       <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCPropertyDecl.html" title="Represents one property declaration in an Objective-C interface.">ObjCPropertyDecl</a> *Prop,</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>       <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *InterfaceD,</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>       IvarSet &TrackedIvars,</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>       <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> **FirstIvarDecl);</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span> <span class="comment"></span></div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span> <span class="comment">  /// Print ivar name or the property if the given ivar backs a property.</span></div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span> <span class="comment"></span>  <span class="keyword">static</span> <span class="keywordtype">void</span> printIvar(llvm::raw_svector_ostream &os,</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>                         <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *IvarDecl,</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>                         <span class="keyword">const</span> IvarToPropMapTy &IvarToPopertyMap);</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span> </div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>   <span class="keywordtype">void</span> reportNoInvalidationMethod(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *FirstIvarDecl,</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>                                   <span class="keyword">const</span> IvarToPropMapTy &IvarToPopertyMap,</div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>                                   <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *InterfaceD,</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>                                   <span class="keywordtype">bool</span> MissingDeclaration) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span>   <span class="keywordtype">void</span> reportIvarNeedsInvalidation(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *IvarD,</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span>                                    <span class="keyword">const</span> IvarToPropMapTy &IvarToPopertyMap,</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>                                    <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *MethodD) <span class="keyword">const</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>   <a class="code" href="classclang_1_1ento_1_1AnalysisManager.html">AnalysisManager</a>& Mgr;</div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span>   <a class="code" href="classclang_1_1ento_1_1BugReporter.html">BugReporter</a> &BR;<span class="comment"></span></div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span> <span class="comment">  /// Filter on the checks performed.</span></div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span> <span class="comment"></span>  <span class="keyword">const</span> ChecksFilter &Filter;</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="keyword">public</span>:</div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span>   IvarInvalidationCheckerImpl(<a class="code" href="classclang_1_1ento_1_1AnalysisManager.html">AnalysisManager</a>& InMgr,</div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>                               <a class="code" href="classclang_1_1ento_1_1BugReporter.html">BugReporter</a> &InBR,</div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>                               <span class="keyword">const</span> ChecksFilter &InFilter) :</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>     Mgr (InMgr), BR(InBR), Filter(InFilter) {}</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="keywordtype">void</span> visit(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCImplementationDecl.html">ObjCImplementationDecl</a> *D) <span class="keyword">const</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> </div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> isInvalidationMethod(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *M, <span class="keywordtype">bool</span> LookForPartial) {</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>   <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1specific__attr__iterator.html">specific_attr_iterator<AnnotateAttr></a></div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>        AI = M-><a class="code" href="classclang_1_1Decl.html#aa548416c9a4242838889f75b0d21125c">specific_attr_begin</a><<a class="code" href="classclang_1_1AnnotateAttr.html">AnnotateAttr</a>>(),</div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span>        AE = M-><a class="code" href="classclang_1_1Decl.html#ad66b270a4431d18789cae89a3b35f517">specific_attr_end</a><<a class="code" href="classclang_1_1AnnotateAttr.html">AnnotateAttr</a>>(); AI != AE; ++AI) {</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1AnnotateAttr.html">AnnotateAttr</a> *Ann = *AI;</div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span>     <span class="keywordflow">if</span> (!LookForPartial &&</div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span>         Ann-><a class="code" href="classclang_1_1AnnotateAttr.html#ae0382ce0f5a51cab57d5ab909bb4682a">getAnnotation</a>() == <span class="stringliteral">"objc_instance_variable_invalidator"</span>)</div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span>       <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span>     <span class="keywordflow">if</span> (LookForPartial &&</div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>         Ann-><a class="code" href="classclang_1_1AnnotateAttr.html#ae0382ce0f5a51cab57d5ab909bb4682a">getAnnotation</a>() == <span class="stringliteral">"objc_instance_variable_invalidator_partial"</span>)</div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span>       <span class="keywordflow">return</span> <span class="keyword">true</span>;</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">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span> }</div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span> </div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span> <span class="keywordtype">void</span> IvarInvalidationCheckerImpl::containsInvalidationMethod(</div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCContainerDecl.html">ObjCContainerDecl</a> *D, InvalidationInfo &OutInfo, <span class="keywordtype">bool</span> Partial) {</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> (!D)</div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span> </div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span>   assert(!isa<ObjCImplementationDecl>(D));</div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span>   <span class="comment">// TODO: Cache the results.</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>   <span class="comment">// Check all methods.</span></div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span>   <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1DeclContext_1_1specific__decl__iterator.html">ObjCContainerDecl::method_iterator</a></div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span>       I = D-><a class="code" href="classclang_1_1ObjCContainerDecl.html#ab26e24ef187cf8d5923e3150e3484750">meth_begin</a>(),</div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span>       E = D-><a class="code" href="classclang_1_1ObjCContainerDecl.html#a1520984ad5d5c7314539cdf0c642c131">meth_end</a>(); I != E; ++I) {</div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span>       <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *MDI = *I;</div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span>       <span class="keywordflow">if</span> (isInvalidationMethod(MDI, Partial))</div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span>         OutInfo.addInvalidationMethod(</div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span>                                cast<ObjCMethodDecl>(MDI-><a class="code" href="classclang_1_1ObjCMethodDecl.html#ad21c901f9043e9d0630950a4b8e8b737" title="Retrieves the "canonical" declaration of the given declaration.">getCanonicalDecl</a>()));</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="comment">// If interface, check all parent protocols and super.</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</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> *InterfD = dyn_cast<ObjCInterfaceDecl>(D)) {</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">// Visit all protocols.</span></div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span>     <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1ObjCInterfaceDecl.html#a0a01af30c26a569976214a2e4159abe0">ObjCInterfaceDecl::protocol_iterator</a></div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span>         I = InterfD->protocol_begin(),</div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span>         E = InterfD->protocol_end(); I != E; ++I) {</div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span>       containsInvalidationMethod((*I)->getDefinition(), OutInfo, Partial);</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> </div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span>     <span class="comment">// Visit all categories in case the invalidation method is declared in</span></div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span>     <span class="comment">// a category.</span></div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span>     <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1ObjCInterfaceDecl_1_1filtered__category__iterator.html" title="Iterator that walks over the list of categories, filtering out those that do not meet specific criter...">ObjCInterfaceDecl::visible_extensions_iterator</a></div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span>            Ext = InterfD->visible_extensions_begin(),</div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span>            ExtEnd = InterfD->visible_extensions_end();</div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span>          Ext != ExtEnd; ++Ext) {</div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span>       containsInvalidationMethod(*Ext, OutInfo, Partial);</div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span>     }</div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span> </div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span>     containsInvalidationMethod(InterfD->getSuperClass(), OutInfo, Partial);</div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span>     <span class="keywordflow">return</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 protocol, check all parent protocols.</span></div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCProtocolDecl.html" title="Represents an Objective-C protocol declaration.">ObjCProtocolDecl</a> *ProtD = dyn_cast<ObjCProtocolDecl>(D)) {</div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span>     <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1ObjCInterfaceDecl.html#a0a01af30c26a569976214a2e4159abe0">ObjCInterfaceDecl::protocol_iterator</a></div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span>         I = ProtD->protocol_begin(),</div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span>         E = ProtD->protocol_end(); I != E; ++I) {</div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span>       containsInvalidationMethod((*I)->getDefinition(), OutInfo, Partial);</div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span>     }</div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span>     <span class="keywordflow">return</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> </div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span>   <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span> }</div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span> </div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span> <span class="keywordtype">bool</span> IvarInvalidationCheckerImpl::trackIvar(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *Iv,</div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span>                                         IvarSet &TrackedIvars,</div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span>                                         <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> **FirstIvarDecl) {</div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span>   <a class="code" href="classclang_1_1QualType.html">QualType</a> IvQTy = Iv-><a class="code" href="classclang_1_1ValueDecl.html#aefa6d3327144aee23d2935f41d993484">getType</a>();</div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCObjectPointerType.html">ObjCObjectPointerType</a> *IvTy = IvQTy-><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="l00300"></a><span class="lineno">  300</span>   <span class="keywordflow">if</span> (!IvTy)</div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *IvInterf = IvTy-><a class="code" href="classclang_1_1ObjCObjectPointerType.html#a74a117fdc7c1e38b75939935f1a243ff">getInterfaceDecl</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>   InvalidationInfo Info;</div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span>   containsInvalidationMethod(IvInterf, Info, <span class="comment">/*LookForPartial*/</span> <span class="keyword">false</span>);</div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span>   <span class="keywordflow">if</span> (Info.needsInvalidation()) {</div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *I = cast<ObjCIvarDecl>(Iv-><a class="code" href="classclang_1_1FieldDecl.html#a357a7fa6c5fbf9f48db774a1d2102455" title="Retrieves the canonical declaration of this field.">getCanonicalDecl</a>());</div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span>     TrackedIvars[I] = Info;</div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span>     <span class="keywordflow">if</span> (!*FirstIvarDecl)</div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span>       *FirstIvarDecl = I;</div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span>     <span class="keywordflow">return</span> <span class="keyword">true</span>;</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>   <span class="keywordflow">return</span> <span class="keyword">false</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="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *IvarInvalidationCheckerImpl::findPropertyBackingIvar(</div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span>                         <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCPropertyDecl.html" title="Represents one property declaration in an Objective-C interface.">ObjCPropertyDecl</a> *Prop,</div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span>                         <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *InterfaceD,</div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span>                         IvarSet &TrackedIvars,</div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span>                         <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> **FirstIvarDecl) {</div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *IvarD = 0;</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">// Lookup for the synthesized case.</span></div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span>   IvarD = Prop-><a class="code" href="classclang_1_1ObjCPropertyDecl.html#a7b5b23569f23b01449ad96df3974bdde">getPropertyIvarDecl</a>();</div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span>   <span class="comment">// We only track the ivars/properties that are defined in the current </span></div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span>   <span class="comment">// class (not the parent).</span></div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span>   <span class="keywordflow">if</span> (IvarD && IvarD-><a class="code" href="classclang_1_1ObjCIvarDecl.html#aa16c217c4e8952345ce46401db00e142" title="Return the class interface that this ivar is logically contained in; this is either the interface whe...">getContainingInterface</a>() == InterfaceD) {</div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span>     <span class="keywordflow">if</span> (TrackedIvars.count(IvarD)) {</div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span>       <span class="keywordflow">return</span> IvarD;</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>     <span class="comment">// If the ivar is synthesized we still want to track it.</span></div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span>     <span class="keywordflow">if</span> (trackIvar(IvarD, TrackedIvars, FirstIvarDecl))</div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span>       <span class="keywordflow">return</span> IvarD;</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="comment">// Lookup IVars named "_PropName"or "PropName" among the tracked Ivars.</span></div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span>   StringRef PropName = Prop-><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="l00338"></a><span class="lineno">  338</span>   <span class="keywordflow">for</span> (IvarSet::const_iterator I = TrackedIvars.begin(),</div>
+<div class="line"><a name="l00339"></a><span class="lineno">  339</span>                                E = TrackedIvars.end(); I != E; ++I) {</div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *Iv = I->first;</div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span>     StringRef IvarName = Iv-><a class="code" href="classclang_1_1NamedDecl.html#aaf790590f634520a99e0b45699fc45c3">getName</a>();</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">if</span> (IvarName == PropName)</div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span>       <span class="keywordflow">return</span> Iv;</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>     <a class="code" href="classllvm_1_1SmallString.html">SmallString<128></a> PropNameWithUnderscore;</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>       llvm::raw_svector_ostream os(PropNameWithUnderscore);</div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span>       os << <span class="charliteral">'_'</span> << PropName;</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>     <span class="keywordflow">if</span> (IvarName == PropNameWithUnderscore.str())</div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span>       <span class="keywordflow">return</span> Iv;</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> </div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span>   <span class="comment">// Note, this is a possible source of false positives. We could look at the</span></div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span>   <span class="comment">// getter implementation to find the ivar when its name is not derived from</span></div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span>   <span class="comment">// the property name.</span></div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span>   <span class="keywordflow">return</span> 0;</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> </div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span> <span class="keywordtype">void</span> IvarInvalidationCheckerImpl::printIvar(llvm::raw_svector_ostream &os,</div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span>                                       <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *IvarDecl,</div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span>                                       <span class="keyword">const</span> IvarToPropMapTy &IvarToPopertyMap) {</div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span>   <span class="keywordflow">if</span> (IvarDecl-><a class="code" href="classclang_1_1ObjCIvarDecl.html#ae3b2d77862c967f71d4b03081b3ddb8b">getSynthesize</a>()) {</div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCPropertyDecl.html" title="Represents one property declaration in an Objective-C interface.">ObjCPropertyDecl</a> *PD = IvarToPopertyMap.lookup(IvarDecl);</div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span>     assert(PD &&<span class="stringliteral">"Do we synthesize ivars for something other than properties?"</span>);</div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span>     os << <span class="stringliteral">"Property "</span><< PD-><a class="code" href="classclang_1_1NamedDecl.html#aaf790590f634520a99e0b45699fc45c3">getName</a>() << <span class="stringliteral">" "</span>;</div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span>     os << <span class="stringliteral">"Instance variable "</span><< IvarDecl-><a class="code" href="classclang_1_1NamedDecl.html#aaf790590f634520a99e0b45699fc45c3">getName</a>() << <span class="stringliteral">" "</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> }</div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span> </div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span> <span class="comment">// Check that the invalidatable interfaces with ivars/properties implement the</span></div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span> <span class="comment">// invalidation methods.</span></div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span> <span class="keywordtype">void</span> IvarInvalidationCheckerImpl::</div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span> visit(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCImplementationDecl.html">ObjCImplementationDecl</a> *ImplD)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span>   <span class="comment">// Collect all ivars that need cleanup.</span></div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span>   IvarSet Ivars;</div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span>   <span class="comment">// Record the first Ivar needing invalidation; used in reporting when only</span></div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span>   <span class="comment">// one ivar is sufficient. Cannot grab the first on the Ivars set to ensure</span></div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span>   <span class="comment">// deterministic output.</span></div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *FirstIvarDecl = 0;</div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *InterfaceD = ImplD-><a class="code" href="classclang_1_1ObjCImplDecl.html#ae3c6fb728fe5a7aee81ca394470493c4">getClassInterface</a>();</div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span> </div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span>   <span class="comment">// Collect ivars declared in this class, its extensions and its implementation</span></div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span>   <a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *IDecl = <span class="keyword">const_cast<</span><a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *<span class="keyword">></span>(InterfaceD);</div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span>   <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *Iv = IDecl-><a class="code" href="classclang_1_1ObjCInterfaceDecl.html#a33ad0524e4d449655e216893b85910e2">all_declared_ivar_begin</a>(); Iv;</div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span>        Iv= Iv-><a class="code" href="classclang_1_1ObjCIvarDecl.html#ad4e167798de561f182d039520eb90b29">getNextIvar</a>())</div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span>     trackIvar(Iv, Ivars, &FirstIvarDecl);</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>   <span class="comment">// Construct Property/Property Accessor to Ivar maps to assist checking if an</span></div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span>   <span class="comment">// ivar which is backing a property has been reset.</span></div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span>   MethToIvarMapTy PropSetterToIvarMap;</div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span>   MethToIvarMapTy PropGetterToIvarMap;</div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span>   PropToIvarMapTy PropertyToIvarMap;</div>
+<div class="line"><a name="l00396"></a><span class="lineno">  396</span>   IvarToPropMapTy IvarToPopertyMap;</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>   <a class="code" href="classclang_1_1ObjCContainerDecl.html#a206382581f08b288ac70f3590b0a9907">ObjCInterfaceDecl::PropertyMap</a> PropMap;</div>
+<div class="line"><a name="l00399"></a><span class="lineno">  399</span>   <a class="code" href="classclang_1_1ObjCContainerDecl.html#a7215f518a4a01ea4570cf52f9dc3c493">ObjCInterfaceDecl::PropertyDeclOrder</a> PropOrder;</div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span>   InterfaceD-><a class="code" href="classclang_1_1ObjCInterfaceDecl.html#aed8f09f0ab8ad27a9ef65aa65970ff2c">collectPropertiesToImplement</a>(PropMap, PropOrder);</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>   <span class="keywordflow">for</span> (ObjCInterfaceDecl::PropertyMap::iterator</div>
+<div class="line"><a name="l00403"></a><span class="lineno">  403</span>       I = PropMap.begin(), E = PropMap.end(); I != E; ++I) {</div>
+<div class="line"><a name="l00404"></a><span class="lineno">  404</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCPropertyDecl.html" title="Represents one property declaration in an Objective-C interface.">ObjCPropertyDecl</a> *PD = I->second;</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>     <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *<a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a> = findPropertyBackingIvar(PD, InterfaceD, Ivars,</div>
+<div class="line"><a name="l00407"></a><span class="lineno">  407</span>                                                      &FirstIvarDecl);</div>
+<div class="line"><a name="l00408"></a><span class="lineno">  408</span>     <span class="keywordflow">if</span> (!ID)</div>
+<div class="line"><a name="l00409"></a><span class="lineno">  409</span>       <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span> </div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span>     <span class="comment">// Store the mappings.</span></div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span>     PD = cast<ObjCPropertyDecl>(PD-><a class="code" href="classclang_1_1Decl.html#a8dc8c86b18af77eba9afe42e4f429fdc" title="Retrieves the "canonical" declaration of the given declaration.">getCanonicalDecl</a>());</div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</span>     PropertyToIvarMap[PD] = <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="l00414"></a><span class="lineno">  414</span>     IvarToPopertyMap[<a class="code" href="namespaceclang_1_1LangAS.html#a78ee38b55acb7cc806cb61e6d2a9f960" title="Defines the set of possible language-specific address spaces.">ID</a>] = PD;</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>     <span class="comment">// Find the setter and the getter.</span></div>
+<div class="line"><a name="l00417"></a><span class="lineno">  417</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *SetterD = PD-><a class="code" href="classclang_1_1ObjCPropertyDecl.html#a0deedcad9deaf37c5964646a16a6ef36">getSetterMethodDecl</a>();</div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span>     <span class="keywordflow">if</span> (SetterD) {</div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span>       SetterD = cast<ObjCMethodDecl>(SetterD-><a class="code" href="classclang_1_1ObjCMethodDecl.html#ad21c901f9043e9d0630950a4b8e8b737" title="Retrieves the "canonical" declaration of the given declaration.">getCanonicalDecl</a>());</div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span>       PropSetterToIvarMap[SetterD] = <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="l00421"></a><span class="lineno">  421</span>     }</div>
+<div class="line"><a name="l00422"></a><span class="lineno">  422</span> </div>
+<div class="line"><a name="l00423"></a><span class="lineno">  423</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *GetterD = PD-><a class="code" href="classclang_1_1ObjCPropertyDecl.html#ac7f00c5e70f112c0c7863f93c1872545">getGetterMethodDecl</a>();</div>
+<div class="line"><a name="l00424"></a><span class="lineno">  424</span>     <span class="keywordflow">if</span> (GetterD) {</div>
+<div class="line"><a name="l00425"></a><span class="lineno">  425</span>       GetterD = cast<ObjCMethodDecl>(GetterD-><a class="code" href="classclang_1_1ObjCMethodDecl.html#ad21c901f9043e9d0630950a4b8e8b737" title="Retrieves the "canonical" declaration of the given declaration.">getCanonicalDecl</a>());</div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span>       PropGetterToIvarMap[GetterD] = <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="l00427"></a><span class="lineno">  427</span>     }</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> </div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span>   <span class="comment">// If no ivars need invalidation, there is nothing to check here.</span></div>
+<div class="line"><a name="l00431"></a><span class="lineno">  431</span>   <span class="keywordflow">if</span> (Ivars.empty())</div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span>     <span class="keywordflow">return</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>   <span class="comment">// Find all partial invalidation methods.</span></div>
+<div class="line"><a name="l00435"></a><span class="lineno">  435</span>   InvalidationInfo PartialInfo;</div>
+<div class="line"><a name="l00436"></a><span class="lineno">  436</span>   containsInvalidationMethod(InterfaceD, PartialInfo, <span class="comment">/*LookForPartial*/</span> <span class="keyword">true</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>   <span class="comment">// Remove ivars invalidated by the partial invalidation methods. They do not</span></div>
+<div class="line"><a name="l00439"></a><span class="lineno">  439</span>   <span class="comment">// need to be invalidated in the regular invalidation methods.</span></div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span>   <span class="keywordtype">bool</span> AtImplementationContainsAtLeastOnePartialInvalidationMethod = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00441"></a><span class="lineno">  441</span>   <span class="keywordflow">for</span> (MethodSet::iterator</div>
+<div class="line"><a name="l00442"></a><span class="lineno">  442</span>       I = PartialInfo.InvalidationMethods.begin(),</div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</span>       E = PartialInfo.InvalidationMethods.end(); I != E; ++I) {</div>
+<div class="line"><a name="l00444"></a><span class="lineno">  444</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *InterfD = *I;</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">// Get the corresponding method in the @implementation.</span></div>
+<div class="line"><a name="l00447"></a><span class="lineno">  447</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *D = ImplD-><a class="code" href="classclang_1_1ObjCContainerDecl.html#a9500518b05038505ea040c30339494d0">getMethod</a>(InterfD-><a class="code" href="classclang_1_1ObjCMethodDecl.html#aa91ae093f29f2781c87f725e42fddf98">getSelector</a>(),</div>
+<div class="line"><a name="l00448"></a><span class="lineno">  448</span>                                                InterfD-><a class="code" href="classclang_1_1ObjCMethodDecl.html#a437ea0ebec5ba72fcf0084dd01654d4c">isInstanceMethod</a>());</div>
+<div class="line"><a name="l00449"></a><span class="lineno">  449</span>     <span class="keywordflow">if</span> (D && D-><a class="code" href="classclang_1_1ObjCMethodDecl.html#a8347acc5be0eaf28cb66ea89b2d4610c" title="Determine whether this method has a body.">hasBody</a>()) {</div>
+<div class="line"><a name="l00450"></a><span class="lineno">  450</span>       AtImplementationContainsAtLeastOnePartialInvalidationMethod = <span class="keyword">true</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>       <span class="keywordtype">bool</span> CalledAnotherInvalidationMethod = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00453"></a><span class="lineno">  453</span>       <span class="comment">// The MethodCrowler is going to remove the invalidated ivars.</span></div>
+<div class="line"><a name="l00454"></a><span class="lineno">  454</span>       MethodCrawler(Ivars,</div>
+<div class="line"><a name="l00455"></a><span class="lineno">  455</span>                     CalledAnotherInvalidationMethod,</div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span>                     PropSetterToIvarMap,</div>
+<div class="line"><a name="l00457"></a><span class="lineno">  457</span>                     PropGetterToIvarMap,</div>
+<div class="line"><a name="l00458"></a><span class="lineno">  458</span>                     PropertyToIvarMap,</div>
+<div class="line"><a name="l00459"></a><span class="lineno">  459</span>                     BR.getContext()).VisitStmt(D-><a class="code" href="classclang_1_1ObjCMethodDecl.html#a22e377ee7c8d39f7087197ac6d69d4ae" title="Retrieve the body of this method, if it has one.">getBody</a>());</div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span>       <span class="comment">// If another invalidation method was called, trust that full invalidation</span></div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span>       <span class="comment">// has occurred.</span></div>
+<div class="line"><a name="l00462"></a><span class="lineno">  462</span>       <span class="keywordflow">if</span> (CalledAnotherInvalidationMethod)</div>
+<div class="line"><a name="l00463"></a><span class="lineno">  463</span>         Ivars.clear();</div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</span>     }</div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span>   }</div>
+<div class="line"><a name="l00466"></a><span class="lineno">  466</span> </div>
+<div class="line"><a name="l00467"></a><span class="lineno">  467</span>   <span class="comment">// If all ivars have been invalidated by partial invalidators, there is</span></div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span>   <span class="comment">// nothing to check here.</span></div>
+<div class="line"><a name="l00469"></a><span class="lineno">  469</span>   <span class="keywordflow">if</span> (Ivars.empty())</div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span>     <span class="keywordflow">return</span>;</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>   <span class="comment">// Find all invalidation methods in this @interface declaration and parents.</span></div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span>   InvalidationInfo Info;</div>
+<div class="line"><a name="l00474"></a><span class="lineno">  474</span>   containsInvalidationMethod(InterfaceD, Info, <span class="comment">/*LookForPartial*/</span> <span class="keyword">false</span>);</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>   <span class="comment">// Report an error in case none of the invalidation methods are declared.</span></div>
+<div class="line"><a name="l00477"></a><span class="lineno">  477</span>   <span class="keywordflow">if</span> (!Info.needsInvalidation() && !PartialInfo.needsInvalidation()) {</div>
+<div class="line"><a name="l00478"></a><span class="lineno">  478</span>     <span class="keywordflow">if</span> (Filter.check_MissingInvalidationMethod)</div>
+<div class="line"><a name="l00479"></a><span class="lineno">  479</span>       reportNoInvalidationMethod(FirstIvarDecl, IvarToPopertyMap, InterfaceD,</div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span>                                  <span class="comment">/*MissingDeclaration*/</span> <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span>     <span class="comment">// If there are no invalidation methods, there is no ivar validation work</span></div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span>     <span class="comment">// to be done.</span></div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span>     <span class="keywordflow">return</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> </div>
+<div class="line"><a name="l00486"></a><span class="lineno">  486</span>   <span class="comment">// Only check if Ivars are invalidated when InstanceVariableInvalidation</span></div>
+<div class="line"><a name="l00487"></a><span class="lineno">  487</span>   <span class="comment">// has been requested.</span></div>
+<div class="line"><a name="l00488"></a><span class="lineno">  488</span>   <span class="keywordflow">if</span> (!Filter.check_InstanceVariableInvalidation)</div>
+<div class="line"><a name="l00489"></a><span class="lineno">  489</span>     <span class="keywordflow">return</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">// Check that all ivars are invalidated by the invalidation methods.</span></div>
+<div class="line"><a name="l00492"></a><span class="lineno">  492</span>   <span class="keywordtype">bool</span> AtImplementationContainsAtLeastOneInvalidationMethod = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span>   <span class="keywordflow">for</span> (MethodSet::iterator I = Info.InvalidationMethods.begin(),</div>
+<div class="line"><a name="l00494"></a><span class="lineno">  494</span>                            E = Info.InvalidationMethods.end(); I != E; ++I) {</div>
+<div class="line"><a name="l00495"></a><span class="lineno">  495</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *InterfD = *I;</div>
+<div class="line"><a name="l00496"></a><span class="lineno">  496</span> </div>
+<div class="line"><a name="l00497"></a><span class="lineno">  497</span>     <span class="comment">// Get the corresponding method in the @implementation.</span></div>
+<div class="line"><a name="l00498"></a><span class="lineno">  498</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *D = ImplD-><a class="code" href="classclang_1_1ObjCContainerDecl.html#a9500518b05038505ea040c30339494d0">getMethod</a>(InterfD-><a class="code" href="classclang_1_1ObjCMethodDecl.html#aa91ae093f29f2781c87f725e42fddf98">getSelector</a>(),</div>
+<div class="line"><a name="l00499"></a><span class="lineno">  499</span>                                                InterfD-><a class="code" href="classclang_1_1ObjCMethodDecl.html#a437ea0ebec5ba72fcf0084dd01654d4c">isInstanceMethod</a>());</div>
+<div class="line"><a name="l00500"></a><span class="lineno">  500</span>     <span class="keywordflow">if</span> (D && D-><a class="code" href="classclang_1_1ObjCMethodDecl.html#a8347acc5be0eaf28cb66ea89b2d4610c" title="Determine whether this method has a body.">hasBody</a>()) {</div>
+<div class="line"><a name="l00501"></a><span class="lineno">  501</span>       AtImplementationContainsAtLeastOneInvalidationMethod = <span class="keyword">true</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">// Get a copy of ivars needing invalidation.</span></div>
+<div class="line"><a name="l00504"></a><span class="lineno">  504</span>       IvarSet IvarsI = Ivars;</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">bool</span> CalledAnotherInvalidationMethod = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00507"></a><span class="lineno">  507</span>       MethodCrawler(IvarsI,</div>
+<div class="line"><a name="l00508"></a><span class="lineno">  508</span>                     CalledAnotherInvalidationMethod,</div>
+<div class="line"><a name="l00509"></a><span class="lineno">  509</span>                     PropSetterToIvarMap,</div>
+<div class="line"><a name="l00510"></a><span class="lineno">  510</span>                     PropGetterToIvarMap,</div>
+<div class="line"><a name="l00511"></a><span class="lineno">  511</span>                     PropertyToIvarMap,</div>
+<div class="line"><a name="l00512"></a><span class="lineno">  512</span>                     BR.getContext()).VisitStmt(D-><a class="code" href="classclang_1_1ObjCMethodDecl.html#a22e377ee7c8d39f7087197ac6d69d4ae" title="Retrieve the body of this method, if it has one.">getBody</a>());</div>
+<div class="line"><a name="l00513"></a><span class="lineno">  513</span>       <span class="comment">// If another invalidation method was called, trust that full invalidation</span></div>
+<div class="line"><a name="l00514"></a><span class="lineno">  514</span>       <span class="comment">// has occurred.</span></div>
+<div class="line"><a name="l00515"></a><span class="lineno">  515</span>       <span class="keywordflow">if</span> (CalledAnotherInvalidationMethod)</div>
+<div class="line"><a name="l00516"></a><span class="lineno">  516</span>         <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00517"></a><span class="lineno">  517</span> </div>
+<div class="line"><a name="l00518"></a><span class="lineno">  518</span>       <span class="comment">// Warn on the ivars that were not invalidated by the method.</span></div>
+<div class="line"><a name="l00519"></a><span class="lineno">  519</span>       <span class="keywordflow">for</span> (IvarSet::const_iterator</div>
+<div class="line"><a name="l00520"></a><span class="lineno">  520</span>           I = IvarsI.begin(), E = IvarsI.end(); I != E; ++I)</div>
+<div class="line"><a name="l00521"></a><span class="lineno">  521</span>         reportIvarNeedsInvalidation(I->first, IvarToPopertyMap, D);</div>
+<div class="line"><a name="l00522"></a><span class="lineno">  522</span>     }</div>
+<div class="line"><a name="l00523"></a><span class="lineno">  523</span>   }</div>
+<div class="line"><a name="l00524"></a><span class="lineno">  524</span> </div>
+<div class="line"><a name="l00525"></a><span class="lineno">  525</span>   <span class="comment">// Report an error in case none of the invalidation methods are implemented.</span></div>
+<div class="line"><a name="l00526"></a><span class="lineno">  526</span>   <span class="keywordflow">if</span> (!AtImplementationContainsAtLeastOneInvalidationMethod) {</div>
+<div class="line"><a name="l00527"></a><span class="lineno">  527</span>     <span class="keywordflow">if</span> (AtImplementationContainsAtLeastOnePartialInvalidationMethod) {</div>
+<div class="line"><a name="l00528"></a><span class="lineno">  528</span>       <span class="comment">// Warn on the ivars that were not invalidated by the prrtial</span></div>
+<div class="line"><a name="l00529"></a><span class="lineno">  529</span>       <span class="comment">// invalidation methods.</span></div>
+<div class="line"><a name="l00530"></a><span class="lineno">  530</span>       <span class="keywordflow">for</span> (IvarSet::const_iterator</div>
+<div class="line"><a name="l00531"></a><span class="lineno">  531</span>            I = Ivars.begin(), E = Ivars.end(); I != E; ++I)</div>
+<div class="line"><a name="l00532"></a><span class="lineno">  532</span>         reportIvarNeedsInvalidation(I->first, IvarToPopertyMap, 0);</div>
+<div class="line"><a name="l00533"></a><span class="lineno">  533</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00534"></a><span class="lineno">  534</span>       <span class="comment">// Otherwise, no invalidation methods were implemented.</span></div>
+<div class="line"><a name="l00535"></a><span class="lineno">  535</span>       reportNoInvalidationMethod(FirstIvarDecl, IvarToPopertyMap, InterfaceD,</div>
+<div class="line"><a name="l00536"></a><span class="lineno">  536</span>                                  <span class="comment">/*MissingDeclaration*/</span> <span class="keyword">false</span>);</div>
+<div class="line"><a name="l00537"></a><span class="lineno">  537</span>     }</div>
+<div class="line"><a name="l00538"></a><span class="lineno">  538</span>   }</div>
+<div class="line"><a name="l00539"></a><span class="lineno">  539</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="keywordtype">void</span> IvarInvalidationCheckerImpl::</div>
+<div class="line"><a name="l00542"></a><span class="lineno">  542</span> reportNoInvalidationMethod(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *FirstIvarDecl,</div>
+<div class="line"><a name="l00543"></a><span class="lineno">  543</span>                            <span class="keyword">const</span> IvarToPropMapTy &IvarToPopertyMap,</div>
+<div class="line"><a name="l00544"></a><span class="lineno">  544</span>                            <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCInterfaceDecl.html" title="Represents an ObjC class declaration.">ObjCInterfaceDecl</a> *InterfaceD,</div>
+<div class="line"><a name="l00545"></a><span class="lineno">  545</span>                            <span class="keywordtype">bool</span> MissingDeclaration)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00546"></a><span class="lineno">  546</span>   <a class="code" href="classllvm_1_1SmallString.html">SmallString<128></a> sbuf;</div>
+<div class="line"><a name="l00547"></a><span class="lineno">  547</span>   llvm::raw_svector_ostream os(sbuf);</div>
+<div class="line"><a name="l00548"></a><span class="lineno">  548</span>   assert(FirstIvarDecl);</div>
+<div class="line"><a name="l00549"></a><span class="lineno">  549</span>   printIvar(os, FirstIvarDecl, IvarToPopertyMap);</div>
+<div class="line"><a name="l00550"></a><span class="lineno">  550</span>   os << <span class="stringliteral">"needs to be invalidated; "</span>;</div>
+<div class="line"><a name="l00551"></a><span class="lineno">  551</span>   <span class="keywordflow">if</span> (MissingDeclaration)</div>
+<div class="line"><a name="l00552"></a><span class="lineno">  552</span>     os << <span class="stringliteral">"no invalidation method is declared for "</span>;</div>
+<div class="line"><a name="l00553"></a><span class="lineno">  553</span>   <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00554"></a><span class="lineno">  554</span>     os << <span class="stringliteral">"no invalidation method is defined in the @implementation for "</span>;</div>
+<div class="line"><a name="l00555"></a><span class="lineno">  555</span>   os << InterfaceD-><a class="code" href="classclang_1_1NamedDecl.html#aaf790590f634520a99e0b45699fc45c3">getName</a>();</div>
+<div class="line"><a name="l00556"></a><span class="lineno">  556</span> </div>
+<div class="line"><a name="l00557"></a><span class="lineno">  557</span>   <a class="code" href="classclang_1_1ento_1_1PathDiagnosticLocation.html">PathDiagnosticLocation</a> IvarDecLocation =</div>
+<div class="line"><a name="l00558"></a><span class="lineno">  558</span>     <a class="code" href="classclang_1_1ento_1_1PathDiagnosticLocation.html#aa4cb63cfb236b8703eb589ab405b461c" title="Create a location for the beginning of the declaration.">PathDiagnosticLocation::createBegin</a>(FirstIvarDecl, BR.getSourceManager());</div>
+<div class="line"><a name="l00559"></a><span class="lineno">  559</span> </div>
+<div class="line"><a name="l00560"></a><span class="lineno">  560</span>   BR.EmitBasicReport(FirstIvarDecl, <span class="stringliteral">"Incomplete invalidation"</span>,</div>
+<div class="line"><a name="l00561"></a><span class="lineno">  561</span>                      <a class="code" href="namespaceclang_1_1ento_1_1categories.html#a581ad8dfd250561e543f31d64a6e8b6b">categories::CoreFoundationObjectiveC</a>, os.str(),</div>
+<div class="line"><a name="l00562"></a><span class="lineno">  562</span>                      IvarDecLocation);</div>
+<div class="line"><a name="l00563"></a><span class="lineno">  563</span> }</div>
+<div class="line"><a name="l00564"></a><span class="lineno">  564</span> </div>
+<div class="line"><a name="l00565"></a><span class="lineno">  565</span> <span class="keywordtype">void</span> IvarInvalidationCheckerImpl::</div>
+<div class="line"><a name="l00566"></a><span class="lineno">  566</span> reportIvarNeedsInvalidation(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *IvarD,</div>
+<div class="line"><a name="l00567"></a><span class="lineno">  567</span>                             <span class="keyword">const</span> IvarToPropMapTy &IvarToPopertyMap,</div>
+<div class="line"><a name="l00568"></a><span class="lineno">  568</span>                             <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *MethodD)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00569"></a><span class="lineno">  569</span>   <a class="code" href="classllvm_1_1SmallString.html">SmallString<128></a> sbuf;</div>
+<div class="line"><a name="l00570"></a><span class="lineno">  570</span>   llvm::raw_svector_ostream os(sbuf);</div>
+<div class="line"><a name="l00571"></a><span class="lineno">  571</span>   printIvar(os, IvarD, IvarToPopertyMap);</div>
+<div class="line"><a name="l00572"></a><span class="lineno">  572</span>   os << <span class="stringliteral">"needs to be invalidated or set to nil"</span>;</div>
+<div class="line"><a name="l00573"></a><span class="lineno">  573</span>   <span class="keywordflow">if</span> (MethodD) {</div>
+<div class="line"><a name="l00574"></a><span class="lineno">  574</span>     <a class="code" href="classclang_1_1ento_1_1PathDiagnosticLocation.html">PathDiagnosticLocation</a> MethodDecLocation =</div>
+<div class="line"><a name="l00575"></a><span class="lineno">  575</span>                            <a class="code" href="classclang_1_1ento_1_1PathDiagnosticLocation.html#aa3fceb1f12360976c5684e1f4e30de94">PathDiagnosticLocation::createEnd</a>(MethodD-><a class="code" href="classclang_1_1ObjCMethodDecl.html#a22e377ee7c8d39f7087197ac6d69d4ae" title="Retrieve the body of this method, if it has one.">getBody</a>(),</div>
+<div class="line"><a name="l00576"></a><span class="lineno">  576</span>                            BR.getSourceManager(),</div>
+<div class="line"><a name="l00577"></a><span class="lineno">  577</span>                            Mgr.getAnalysisDeclContext(MethodD));</div>
+<div class="line"><a name="l00578"></a><span class="lineno">  578</span>     BR.EmitBasicReport(MethodD, <span class="stringliteral">"Incomplete invalidation"</span>,</div>
+<div class="line"><a name="l00579"></a><span class="lineno">  579</span>                        <a class="code" href="namespaceclang_1_1ento_1_1categories.html#a581ad8dfd250561e543f31d64a6e8b6b">categories::CoreFoundationObjectiveC</a>, os.str(),</div>
+<div class="line"><a name="l00580"></a><span class="lineno">  580</span>                        MethodDecLocation);</div>
+<div class="line"><a name="l00581"></a><span class="lineno">  581</span>   } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00582"></a><span class="lineno">  582</span>     BR.EmitBasicReport(IvarD, <span class="stringliteral">"Incomplete invalidation"</span>,</div>
+<div class="line"><a name="l00583"></a><span class="lineno">  583</span>                        <a class="code" href="namespaceclang_1_1ento_1_1categories.html#a581ad8dfd250561e543f31d64a6e8b6b">categories::CoreFoundationObjectiveC</a>, os.str(),</div>
+<div class="line"><a name="l00584"></a><span class="lineno">  584</span>                        <a class="code" href="classclang_1_1ento_1_1PathDiagnosticLocation.html#aa4cb63cfb236b8703eb589ab405b461c" title="Create a location for the beginning of the declaration.">PathDiagnosticLocation::createBegin</a>(IvarD,</div>
+<div class="line"><a name="l00585"></a><span class="lineno">  585</span>                                                         BR.getSourceManager()));</div>
+<div class="line"><a name="l00586"></a><span class="lineno">  586</span>                        </div>
+<div class="line"><a name="l00587"></a><span class="lineno">  587</span>   }</div>
+<div class="line"><a name="l00588"></a><span class="lineno">  588</span> }</div>
+<div class="line"><a name="l00589"></a><span class="lineno">  589</span> </div>
+<div class="line"><a name="l00590"></a><span class="lineno">  590</span> <span class="keywordtype">void</span> IvarInvalidationCheckerImpl::MethodCrawler::markInvalidated(</div>
+<div class="line"><a name="l00591"></a><span class="lineno">  591</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarDecl.html">ObjCIvarDecl</a> *Iv) {</div>
+<div class="line"><a name="l00592"></a><span class="lineno">  592</span>   IvarSet::iterator I = IVars.find(Iv);</div>
+<div class="line"><a name="l00593"></a><span class="lineno">  593</span>   <span class="keywordflow">if</span> (I != IVars.end()) {</div>
+<div class="line"><a name="l00594"></a><span class="lineno">  594</span>     <span class="comment">// If InvalidationMethod is present, we are processing the message send and</span></div>
+<div class="line"><a name="l00595"></a><span class="lineno">  595</span>     <span class="comment">// should ensure we are invalidating with the appropriate method,</span></div>
+<div class="line"><a name="l00596"></a><span class="lineno">  596</span>     <span class="comment">// otherwise, we are processing setting to 'nil'.</span></div>
+<div class="line"><a name="l00597"></a><span class="lineno">  597</span>     <span class="keywordflow">if</span> (!InvalidationMethod ||</div>
+<div class="line"><a name="l00598"></a><span class="lineno">  598</span>         (InvalidationMethod && I->second.hasMethod(InvalidationMethod)))</div>
+<div class="line"><a name="l00599"></a><span class="lineno">  599</span>       IVars.erase(I);</div>
+<div class="line"><a name="l00600"></a><span class="lineno">  600</span>   }</div>
+<div class="line"><a name="l00601"></a><span class="lineno">  601</span> }</div>
+<div class="line"><a name="l00602"></a><span class="lineno">  602</span> </div>
+<div class="line"><a name="l00603"></a><span class="lineno">  603</span> <span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *IvarInvalidationCheckerImpl::MethodCrawler::peel(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *E)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00604"></a><span class="lineno">  604</span>   E = E-><a class="code" href="classclang_1_1Expr.html#a397a707d10e0d3ac4a150325eafa4368">IgnoreParenCasts</a>();</div>
+<div class="line"><a name="l00605"></a><span class="lineno">  605</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1PseudoObjectExpr.html">PseudoObjectExpr</a> *POE = dyn_cast<PseudoObjectExpr>(E))</div>
+<div class="line"><a name="l00606"></a><span class="lineno">  606</span>     E = POE->getSyntacticForm()-><a class="code" href="classclang_1_1Expr.html#a397a707d10e0d3ac4a150325eafa4368">IgnoreParenCasts</a>();</div>
+<div class="line"><a name="l00607"></a><span class="lineno">  607</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1OpaqueValueExpr.html">OpaqueValueExpr</a> *OVE = dyn_cast<OpaqueValueExpr>(E))</div>
+<div class="line"><a name="l00608"></a><span class="lineno">  608</span>     E = OVE->getSourceExpr()-><a class="code" href="classclang_1_1Expr.html#a397a707d10e0d3ac4a150325eafa4368">IgnoreParenCasts</a>();</div>
+<div class="line"><a name="l00609"></a><span class="lineno">  609</span>   <span class="keywordflow">return</span> E;</div>
+<div class="line"><a name="l00610"></a><span class="lineno">  610</span> }</div>
+<div class="line"><a name="l00611"></a><span class="lineno">  611</span> </div>
+<div class="line"><a name="l00612"></a><span class="lineno">  612</span> <span class="keywordtype">void</span> IvarInvalidationCheckerImpl::MethodCrawler::checkObjCIvarRefExpr(</div>
+<div class="line"><a name="l00613"></a><span class="lineno">  613</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarRefExpr.html" title="ObjCIvarRefExpr - A reference to an ObjC instance variable.">ObjCIvarRefExpr</a> *IvarRef) {</div>
+<div class="line"><a name="l00614"></a><span class="lineno">  614</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1Decl.html">Decl</a> *D = IvarRef-><a class="code" href="classclang_1_1ObjCIvarRefExpr.html#abaa63a7fb7b5fc4bf2d40c6ad41eca2c">getDecl</a>())</div>
+<div class="line"><a name="l00615"></a><span class="lineno">  615</span>     markInvalidated(cast<ObjCIvarDecl>(D-><a class="code" href="classclang_1_1ObjCMethodDecl.html#ad21c901f9043e9d0630950a4b8e8b737" title="Retrieves the "canonical" declaration of the given declaration.">getCanonicalDecl</a>()));</div>
+<div class="line"><a name="l00616"></a><span class="lineno">  616</span> }</div>
+<div class="line"><a name="l00617"></a><span class="lineno">  617</span> </div>
+<div class="line"><a name="l00618"></a><span class="lineno">  618</span> <span class="keywordtype">void</span> IvarInvalidationCheckerImpl::MethodCrawler::checkObjCMessageExpr(</div>
+<div class="line"><a name="l00619"></a><span class="lineno">  619</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMessageExpr.html" title="An expression that sends a message to the given Objective-C object or class.">ObjCMessageExpr</a> *ME) {</div>
+<div class="line"><a name="l00620"></a><span class="lineno">  620</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *MD = ME-><a class="code" href="classclang_1_1ObjCMessageExpr.html#a18c98ce48ed8a78cb0290d74feab687a">getMethodDecl</a>();</div>
+<div class="line"><a name="l00621"></a><span class="lineno">  621</span>   <span class="keywordflow">if</span> (MD) {</div>
+<div class="line"><a name="l00622"></a><span class="lineno">  622</span>     MD = cast<ObjCMethodDecl>(MD-><a class="code" href="classclang_1_1ObjCMethodDecl.html#ad21c901f9043e9d0630950a4b8e8b737" title="Retrieves the "canonical" declaration of the given declaration.">getCanonicalDecl</a>());</div>
+<div class="line"><a name="l00623"></a><span class="lineno">  623</span>     MethToIvarMapTy::const_iterator IvI = PropertyGetterToIvarMap.find(MD);</div>
+<div class="line"><a name="l00624"></a><span class="lineno">  624</span>     <span class="keywordflow">if</span> (IvI != PropertyGetterToIvarMap.end())</div>
+<div class="line"><a name="l00625"></a><span class="lineno">  625</span>       markInvalidated(IvI->second);</div>
+<div class="line"><a name="l00626"></a><span class="lineno">  626</span>   }</div>
+<div class="line"><a name="l00627"></a><span class="lineno">  627</span> }</div>
+<div class="line"><a name="l00628"></a><span class="lineno">  628</span> </div>
+<div class="line"><a name="l00629"></a><span class="lineno">  629</span> <span class="keywordtype">void</span> IvarInvalidationCheckerImpl::MethodCrawler::checkObjCPropertyRefExpr(</div>
+<div class="line"><a name="l00630"></a><span class="lineno">  630</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCPropertyRefExpr.html">ObjCPropertyRefExpr</a> *PA) {</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>   <span class="keywordflow">if</span> (PA-><a class="code" href="classclang_1_1ObjCPropertyRefExpr.html#ad9d1774ec3dcd7ea04cc1c22403f2030">isExplicitProperty</a>()) {</div>
+<div class="line"><a name="l00633"></a><span class="lineno">  633</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCPropertyDecl.html" title="Represents one property declaration in an Objective-C interface.">ObjCPropertyDecl</a> *PD = PA-><a class="code" href="classclang_1_1ObjCPropertyRefExpr.html#aa439852d61ae49d46ce7c7c2b8cd1ebd">getExplicitProperty</a>();</div>
+<div class="line"><a name="l00634"></a><span class="lineno">  634</span>     <span class="keywordflow">if</span> (PD) {</div>
+<div class="line"><a name="l00635"></a><span class="lineno">  635</span>       PD = cast<ObjCPropertyDecl>(PD-><a class="code" href="classclang_1_1Decl.html#a8dc8c86b18af77eba9afe42e4f429fdc" title="Retrieves the "canonical" declaration of the given declaration.">getCanonicalDecl</a>());</div>
+<div class="line"><a name="l00636"></a><span class="lineno">  636</span>       PropToIvarMapTy::const_iterator IvI = PropertyToIvarMap.find(PD);</div>
+<div class="line"><a name="l00637"></a><span class="lineno">  637</span>       <span class="keywordflow">if</span> (IvI != PropertyToIvarMap.end())</div>
+<div class="line"><a name="l00638"></a><span class="lineno">  638</span>         markInvalidated(IvI->second);</div>
+<div class="line"><a name="l00639"></a><span class="lineno">  639</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00640"></a><span class="lineno">  640</span>     }</div>
+<div class="line"><a name="l00641"></a><span class="lineno">  641</span>   }</div>
+<div class="line"><a name="l00642"></a><span class="lineno">  642</span> </div>
+<div class="line"><a name="l00643"></a><span class="lineno">  643</span>   <span class="keywordflow">if</span> (PA-><a class="code" href="classclang_1_1ObjCPropertyRefExpr.html#a217b0242b0580b7d0b58e9c2a7a3aefc">isImplicitProperty</a>()) {</div>
+<div class="line"><a name="l00644"></a><span class="lineno">  644</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *MD = PA-><a class="code" href="classclang_1_1ObjCPropertyRefExpr.html#a6534ac5e930d1b023ae355d96d5c0e33">getImplicitPropertySetter</a>();</div>
+<div class="line"><a name="l00645"></a><span class="lineno">  645</span>     <span class="keywordflow">if</span> (MD) {</div>
+<div class="line"><a name="l00646"></a><span class="lineno">  646</span>       MD = cast<ObjCMethodDecl>(MD-><a class="code" href="classclang_1_1ObjCMethodDecl.html#ad21c901f9043e9d0630950a4b8e8b737" title="Retrieves the "canonical" declaration of the given declaration.">getCanonicalDecl</a>());</div>
+<div class="line"><a name="l00647"></a><span class="lineno">  647</span>       MethToIvarMapTy::const_iterator IvI =PropertyGetterToIvarMap.find(MD);</div>
+<div class="line"><a name="l00648"></a><span class="lineno">  648</span>       <span class="keywordflow">if</span> (IvI != PropertyGetterToIvarMap.end())</div>
+<div class="line"><a name="l00649"></a><span class="lineno">  649</span>         markInvalidated(IvI->second);</div>
+<div class="line"><a name="l00650"></a><span class="lineno">  650</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00651"></a><span class="lineno">  651</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> </div>
+<div class="line"><a name="l00655"></a><span class="lineno">  655</span> <span class="keywordtype">bool</span> IvarInvalidationCheckerImpl::MethodCrawler::isZero(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *E)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00656"></a><span class="lineno">  656</span>   E = peel(E);</div>
+<div class="line"><a name="l00657"></a><span class="lineno">  657</span> </div>
+<div class="line"><a name="l00658"></a><span class="lineno">  658</span>   <span class="keywordflow">return</span> (E-><a class="code" href="classclang_1_1Expr.html#ab56d6fd074c831a3e63b45f4f226b35a">isNullPointerConstant</a>(Ctx, <a class="code" href="classclang_1_1Expr.html#a8542d93f28013fb0866693834b04ff67a859ff929282c6409dedca4d3e3c5ab8c" title="Specifies that a value-dependent expression should be considered to never be a null pointer constant...">Expr::NPC_ValueDependentIsNotNull</a>)</div>
+<div class="line"><a name="l00659"></a><span class="lineno">  659</span>            != <a class="code" href="classclang_1_1Expr.html#a9c3e85e64ae4b9ef321ecd21dc38a4f5aec64d16ea295463d7320d531eed287b2" title="Expression is not a Null pointer constant.">Expr::NPCK_NotNull</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> </div>
+<div class="line"><a name="l00662"></a><span class="lineno">  662</span> <span class="keywordtype">void</span> IvarInvalidationCheckerImpl::MethodCrawler::check(<span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *E) {</div>
+<div class="line"><a name="l00663"></a><span class="lineno">  663</span>   E = peel(E);</div>
+<div class="line"><a name="l00664"></a><span class="lineno">  664</span> </div>
+<div class="line"><a name="l00665"></a><span class="lineno">  665</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCIvarRefExpr.html" title="ObjCIvarRefExpr - A reference to an ObjC instance variable.">ObjCIvarRefExpr</a> *IvarRef = dyn_cast<ObjCIvarRefExpr>(E)) {</div>
+<div class="line"><a name="l00666"></a><span class="lineno">  666</span>     checkObjCIvarRefExpr(IvarRef);</div>
+<div class="line"><a name="l00667"></a><span class="lineno">  667</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00668"></a><span class="lineno">  668</span>   }</div>
+<div class="line"><a name="l00669"></a><span class="lineno">  669</span> </div>
+<div class="line"><a name="l00670"></a><span class="lineno">  670</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCPropertyRefExpr.html">ObjCPropertyRefExpr</a> *PropRef = dyn_cast<ObjCPropertyRefExpr>(E)) {</div>
+<div class="line"><a name="l00671"></a><span class="lineno">  671</span>     checkObjCPropertyRefExpr(PropRef);</div>
+<div class="line"><a name="l00672"></a><span class="lineno">  672</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00673"></a><span class="lineno">  673</span>   }</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">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMessageExpr.html" title="An expression that sends a message to the given Objective-C object or class.">ObjCMessageExpr</a> *MsgExpr = dyn_cast<ObjCMessageExpr>(E)) {</div>
+<div class="line"><a name="l00676"></a><span class="lineno">  676</span>     checkObjCMessageExpr(MsgExpr);</div>
+<div class="line"><a name="l00677"></a><span class="lineno">  677</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00678"></a><span class="lineno">  678</span>   }</div>
+<div class="line"><a name="l00679"></a><span class="lineno">  679</span> }</div>
+<div class="line"><a name="l00680"></a><span class="lineno">  680</span> </div>
+<div class="line"><a name="l00681"></a><span class="lineno">  681</span> <span class="keywordtype">void</span> IvarInvalidationCheckerImpl::MethodCrawler::VisitBinaryOperator(</div>
+<div class="line"><a name="l00682"></a><span class="lineno">  682</span>     <span class="keyword">const</span> <a class="code" href="classclang_1_1BinaryOperator.html" title="A builtin binary operation expression such as "x + y" or "x <= y".">BinaryOperator</a> *BO) {</div>
+<div class="line"><a name="l00683"></a><span class="lineno">  683</span>   VisitStmt(BO);</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="comment">// Do we assign/compare against zero? If yes, check the variable we are</span></div>
+<div class="line"><a name="l00686"></a><span class="lineno">  686</span>   <span class="comment">// assigning to.</span></div>
+<div class="line"><a name="l00687"></a><span class="lineno">  687</span>   <a class="code" href="namespaceclang.html#a443b552ee80020cfeb2b86c99e7f85e1">BinaryOperatorKind</a> Opcode = BO-><a class="code" href="classclang_1_1BinaryOperator.html#a497174c5cc2816aa3a3f29e12dd93165">getOpcode</a>();</div>
+<div class="line"><a name="l00688"></a><span class="lineno">  688</span>   <span class="keywordflow">if</span> (Opcode != <a class="code" href="namespaceclang.html#a443b552ee80020cfeb2b86c99e7f85e1af0f6693357ca6bc7488c1d4de4cbe303">BO_Assign</a> &&</div>
+<div class="line"><a name="l00689"></a><span class="lineno">  689</span>       Opcode != <a class="code" href="namespaceclang.html#a443b552ee80020cfeb2b86c99e7f85e1a69f29b9100be3ced416f394df1b8387d">BO_EQ</a> &&</div>
+<div class="line"><a name="l00690"></a><span class="lineno">  690</span>       Opcode != <a class="code" href="namespaceclang.html#a443b552ee80020cfeb2b86c99e7f85e1ad1f67b78e6981e7d44e0a1794432d104">BO_NE</a>)</div>
+<div class="line"><a name="l00691"></a><span class="lineno">  691</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00692"></a><span class="lineno">  692</span> </div>
+<div class="line"><a name="l00693"></a><span class="lineno">  693</span>   <span class="keywordflow">if</span> (isZero(BO-><a class="code" href="classclang_1_1BinaryOperator.html#a1ab10aae0ffa01be5d1a979e6da285e6">getRHS</a>())) {</div>
+<div class="line"><a name="l00694"></a><span class="lineno">  694</span>       check(BO-><a class="code" href="classclang_1_1BinaryOperator.html#ad8b108ac1a7795b9f388d8dece6b8924">getLHS</a>());</div>
+<div class="line"><a name="l00695"></a><span class="lineno">  695</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00696"></a><span class="lineno">  696</span>   }</div>
+<div class="line"><a name="l00697"></a><span class="lineno">  697</span> </div>
+<div class="line"><a name="l00698"></a><span class="lineno">  698</span>   <span class="keywordflow">if</span> (Opcode != <a class="code" href="namespaceclang.html#a443b552ee80020cfeb2b86c99e7f85e1af0f6693357ca6bc7488c1d4de4cbe303">BO_Assign</a> && isZero(BO-><a class="code" href="classclang_1_1BinaryOperator.html#ad8b108ac1a7795b9f388d8dece6b8924">getLHS</a>())) {</div>
+<div class="line"><a name="l00699"></a><span class="lineno">  699</span>     check(BO-><a class="code" href="classclang_1_1BinaryOperator.html#a1ab10aae0ffa01be5d1a979e6da285e6">getRHS</a>());</div>
+<div class="line"><a name="l00700"></a><span class="lineno">  700</span>     <span class="keywordflow">return</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> </div>
+<div class="line"><a name="l00704"></a><span class="lineno">  704</span> <span class="keywordtype">void</span> IvarInvalidationCheckerImpl::MethodCrawler::VisitObjCMessageExpr(</div>
+<div class="line"><a name="l00705"></a><span class="lineno">  705</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMessageExpr.html" title="An expression that sends a message to the given Objective-C object or class.">ObjCMessageExpr</a> *ME) {</div>
+<div class="line"><a name="l00706"></a><span class="lineno">  706</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCMethodDecl.html">ObjCMethodDecl</a> *MD = ME-><a class="code" href="classclang_1_1ObjCMessageExpr.html#a18c98ce48ed8a78cb0290d74feab687a">getMethodDecl</a>();</div>
+<div class="line"><a name="l00707"></a><span class="lineno">  707</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *Receiver = ME-><a class="code" href="classclang_1_1ObjCMessageExpr.html#a52ac8728aad0bc716d5c87887f332cf9" title="Returns the object expression (receiver) for an instance message, or null for a message that is not a...">getInstanceReceiver</a>();</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>   <span class="comment">// Stop if we are calling '[self invalidate]'.</span></div>
+<div class="line"><a name="l00710"></a><span class="lineno">  710</span>   <span class="keywordflow">if</span> (Receiver && isInvalidationMethod(MD, <span class="comment">/*LookForPartial*/</span> <span class="keyword">false</span>))</div>
+<div class="line"><a name="l00711"></a><span class="lineno">  711</span>     <span class="keywordflow">if</span> (Receiver-><a class="code" href="classclang_1_1Expr.html#a212f92f9b838997038e977cc694953ef" title="Check if this expression is the ObjC 'self' implicit parameter.">isObjCSelfExpr</a>()) {</div>
+<div class="line"><a name="l00712"></a><span class="lineno">  712</span>       CalledAnotherInvalidationMethod = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00713"></a><span class="lineno">  713</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00714"></a><span class="lineno">  714</span>     }</div>
+<div class="line"><a name="l00715"></a><span class="lineno">  715</span> </div>
+<div class="line"><a name="l00716"></a><span class="lineno">  716</span>   <span class="comment">// Check if we call a setter and set the property to 'nil'.</span></div>
+<div class="line"><a name="l00717"></a><span class="lineno">  717</span>   <span class="keywordflow">if</span> (MD && (ME-><a class="code" href="classclang_1_1ObjCMessageExpr.html#ae106ad7bbe758c9cd3b8f638a667f699" title="Return the number of actual arguments in this message, not counting the receiver.">getNumArgs</a>() == 1) && isZero(ME-><a class="code" href="classclang_1_1ObjCMessageExpr.html#ac8e7d18b71e06a146c924102e41bcffd" title="getArg - Return the specified argument.">getArg</a>(0))) {</div>
+<div class="line"><a name="l00718"></a><span class="lineno">  718</span>     MD = cast<ObjCMethodDecl>(MD-><a class="code" href="classclang_1_1ObjCMethodDecl.html#ad21c901f9043e9d0630950a4b8e8b737" title="Retrieves the "canonical" declaration of the given declaration.">getCanonicalDecl</a>());</div>
+<div class="line"><a name="l00719"></a><span class="lineno">  719</span>     MethToIvarMapTy::const_iterator IvI = PropertySetterToIvarMap.find(MD);</div>
+<div class="line"><a name="l00720"></a><span class="lineno">  720</span>     <span class="keywordflow">if</span> (IvI != PropertySetterToIvarMap.end()) {</div>
+<div class="line"><a name="l00721"></a><span class="lineno">  721</span>       markInvalidated(IvI->second);</div>
+<div class="line"><a name="l00722"></a><span class="lineno">  722</span>       <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00723"></a><span class="lineno">  723</span>     }</div>
+<div class="line"><a name="l00724"></a><span class="lineno">  724</span>   }</div>
+<div class="line"><a name="l00725"></a><span class="lineno">  725</span> </div>
+<div class="line"><a name="l00726"></a><span class="lineno">  726</span>   <span class="comment">// Check if we call the 'invalidation' routine on the ivar.</span></div>
+<div class="line"><a name="l00727"></a><span class="lineno">  727</span>   <span class="keywordflow">if</span> (Receiver) {</div>
+<div class="line"><a name="l00728"></a><span class="lineno">  728</span>     InvalidationMethod = MD;</div>
+<div class="line"><a name="l00729"></a><span class="lineno">  729</span>     check(Receiver-><a class="code" href="classclang_1_1Expr.html#a397a707d10e0d3ac4a150325eafa4368">IgnoreParenCasts</a>());</div>
+<div class="line"><a name="l00730"></a><span class="lineno">  730</span>     InvalidationMethod = 0;</div>
+<div class="line"><a name="l00731"></a><span class="lineno">  731</span>   }</div>
+<div class="line"><a name="l00732"></a><span class="lineno">  732</span> </div>
+<div class="line"><a name="l00733"></a><span class="lineno">  733</span>   VisitStmt(ME);</div>
+<div class="line"><a name="l00734"></a><span class="lineno">  734</span> }</div>
+<div class="line"><a name="l00735"></a><span class="lineno">  735</span> }</div>
+<div class="line"><a name="l00736"></a><span class="lineno">  736</span> </div>
+<div class="line"><a name="l00737"></a><span class="lineno">  737</span> <span class="comment">// Register the checkers.</span></div>
+<div class="line"><a name="l00738"></a><span class="lineno">  738</span> <span class="keyword">namespace </span>{</div>
+<div class="line"><a name="l00739"></a><span class="lineno">  739</span> </div>
+<div class="line"><a name="l00740"></a><span class="lineno">  740</span> <span class="keyword">class </span>IvarInvalidationChecker :</div>
+<div class="line"><a name="l00741"></a><span class="lineno">  741</span>   <span class="keyword">public</span> <a class="code" href="classclang_1_1ento_1_1Checker.html">Checker</a><check::ASTDecl<ObjCImplementationDecl> > {</div>
+<div class="line"><a name="l00742"></a><span class="lineno">  742</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00743"></a><span class="lineno">  743</span>   ChecksFilter Filter;</div>
+<div class="line"><a name="l00744"></a><span class="lineno">  744</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00745"></a><span class="lineno">  745</span>   <span class="keywordtype">void</span> checkASTDecl(<span class="keyword">const</span> <a class="code" href="classclang_1_1ObjCImplementationDecl.html">ObjCImplementationDecl</a> *D, <a class="code" href="classclang_1_1ento_1_1AnalysisManager.html">AnalysisManager</a>& Mgr,</div>
+<div class="line"><a name="l00746"></a><span class="lineno">  746</span>                     <a class="code" href="classclang_1_1ento_1_1BugReporter.html">BugReporter</a> &BR)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00747"></a><span class="lineno">  747</span>     IvarInvalidationCheckerImpl Walker(Mgr, BR, Filter);</div>
+<div class="line"><a name="l00748"></a><span class="lineno">  748</span>     Walker.visit(D);</div>
+<div class="line"><a name="l00749"></a><span class="lineno">  749</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> }</div>
+<div class="line"><a name="l00752"></a><span class="lineno">  752</span> </div>
+<div class="line"><a name="l00753"></a><span class="lineno"><a class="code" href="IvarInvalidationChecker_8cpp.html#a16bafa3ab22e525da6f943cc02c2bef1">  753</a></span> <span class="preprocessor">#define REGISTER_CHECKER(name) \</span></div>
+<div class="line"><a name="l00754"></a><span class="lineno">  754</span> <span class="preprocessor">void ento::register##name(CheckerManager &mgr) {\</span></div>
+<div class="line"><a name="l00755"></a><span class="lineno">  755</span> <span class="preprocessor">  mgr.registerChecker<IvarInvalidationChecker>()->Filter.check_##name = true;\</span></div>
+<div class="line"><a name="l00756"></a><span class="lineno">  756</span> <span class="preprocessor">}</span></div>
+<div class="line"><a name="l00757"></a><span class="lineno">  757</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00758"></a><span class="lineno">  758</span> <a class="code" href="IvarInvalidationChecker_8cpp.html#a16bafa3ab22e525da6f943cc02c2bef1">REGISTER_CHECKER</a>(InstanceVariableInvalidation)</div>
+<div class="line"><a name="l00759"></a><span class="lineno">  759</span> <a class="code" href="IvarInvalidationChecker_8cpp.html#a16bafa3ab22e525da6f943cc02c2bef1">REGISTER_CHECKER</a>(MissingInvalidationMethod)</div>
+<div class="line"><a name="l00760"></a><span class="lineno">  760</span> </div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:41 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/IvarInvalidationChecker_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/IvarInvalidationChecker_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/IvarInvalidationChecker_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/IvarInvalidationChecker_8d_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,573 @@
+<!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: IvarInvalidationChecker.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">IvarInvalidationChecker.d</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="IvarInvalidationChecker_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/IvarInvalidationChecker.o \</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/Release+Asserts/IvarInvalidationChecker.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>  IvarInvalidationChecker.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/Attr.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/AttrIterator.h \</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/LLVM.h \</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>  /home/tstellar/llvm/include/llvm/Support/Casting.h \</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>  /home/tstellar/llvm/include/llvm/Support/type_traits.h \</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>  /home/tstellar/llvm/include/llvm/Support/DataTypes.h \</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>  /home/tstellar/llvm/include/llvm/ADT/None.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/Decl.h \</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/APValue.h \</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>  /home/tstellar/llvm/include/llvm/ADT/APFloat.h \</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>  /home/tstellar/llvm/include/llvm/ADT/APInt.h \</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>  /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h \</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>  /home/tstellar/llvm/include/llvm/ADT/SmallVector.h \</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>  /home/tstellar/llvm/include/llvm/Support/AlignOf.h \</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>  /home/tstellar/llvm/include/llvm/Support/Compiler.h \</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>  /home/tstellar/llvm/include/llvm/Config/llvm-config.h \</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>  /home/tstellar/llvm/include/llvm/Support/MathExtras.h \</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>  /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h \</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>  /home/tstellar/llvm/include/llvm/ADT/APSInt.h \</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>  /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h \</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>  /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h \</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>  /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h \</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/DeclBase.h \</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/DeclarationName.h \</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/IdentifierTable.h \</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/OperatorKinds.h \</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/OperatorKinds.def \</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/TokenKinds.h \</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/TokenKinds.def \</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>  /home/tstellar/llvm/include/llvm/ADT/SmallString.h \</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>  /home/tstellar/llvm/include/llvm/ADT/StringRef.h \</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>  /home/tstellar/llvm/include/llvm/ADT/StringMap.h \</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>  /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h \</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/PartialDiagnostic.h \</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/Diagnostic.h \</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/DiagnosticIDs.h \</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>  /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h \</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/DiagnosticCommonKinds.inc \</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/DiagnosticOptions.h \</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/DiagnosticOptions.def \</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/SourceLocation.h \</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMap.h \</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h \</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>  /home/tstellar/llvm/include/llvm/ADT/STLExtras.h \</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/<a class="code" href="namespaceclang.html#a78aadfeaf316ded55fdd2d1a9c8815b6" title="Describes the different kinds of linkage (C++ [basic.link], C99 6.2.2) that an entity may have...">Linkage</a>.h \</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/Specifiers.h \</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>  /home/tstellar/llvm/include/llvm/Support/PrettyStackTrace.h \</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/DeclNodes.inc \</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ExternalASTSource.h \</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/CharUnits.h \</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/Redeclarable.h \</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/Type.h \</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/NestedNameSpecifier.h \</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>  /home/tstellar/llvm/include/llvm/ADT/FoldingSet.h \</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/TemplateName.h \</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/<a class="code" href="namespaceclang.html#af8a91eed04532d5da41ef08e7c9c081e" title="The various types of exception specifications that exist in C++11.">ExceptionSpecificationType</a>.h \</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/<a class="code" href="namespaceclang.html#afbab15cd4aa598c4e6d9192f7ac4f102" title="Describes the different kinds of visibility that a declaration may have.">Visibility</a>.h \</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>  /home/tstellar/llvm/include/llvm/ADT/Optional.h \</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>  /home/tstellar/llvm/include/llvm/ADT/Twine.h \</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>  /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h \</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/TypeNodes.def \</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/BuiltinTypes.def \</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>  /home/tstellar/llvm/include/llvm/Support/raw_ostream.h \</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>  /home/tstellar/llvm/include/llvm/Support/FileSystem.h \</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>  /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h \</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>  /home/tstellar/llvm/include/llvm/Support/TimeValue.h \</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>  /home/tstellar/llvm/include/llvm/Support/system_error.h \</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/AttrKinds.h \</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/AttrList.inc \</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/VersionTuple.h \</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>  /home/tstellar/llvm/include/llvm/ADT/StringSwitch.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/Attrs.inc \</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/DeclObjC.h \</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/<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="l00079"></a><span class="lineno">   79</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/StmtVisitor.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/ExprCXX.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/Expr.h \</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ASTVector.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/DeclAccessPair.h \</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/OperationKinds.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/Stmt.h \</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/DeclGroup.h \</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/StmtIterator.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/CapturedStmt.h \</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/StmtNodes.inc \</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/TemplateBase.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/CharInfo.h \</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/TypeTraits.h \</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/Builtins.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/UnresolvedSet.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/ExpressionTraits.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/Lambda.h \</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ExprObjC.h \</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/StmtCXX.h \</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/StmtObjC.h \</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/StmtOpenMP.h \</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/OpenMPKinds.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/OpenMPKinds.def \</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h \</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/AnalyzerOptions.h \</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</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="l00106"></a><span class="lineno">  106</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitor.h \</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h \</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState_Fwd.h \</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h \</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Analysis/AnalysisContext.h \</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Analysis/CFG.h \</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Analysis/Support/BumpVector.h \</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>  /home/tstellar/llvm/include/llvm/ADT/GraphTraits.h \</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/StoreRef.h \</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>  /home/tstellar/llvm/include/llvm/ADT/DenseSet.h \</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>  /home/tstellar/llvm/include/llvm/ADT/ImmutableList.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/PathDiagnostic.h \</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Analysis/ProgramPoint.h \</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h \</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ConstraintManager.h \</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>  /home/tstellar/llvm/include/llvm/Support/SaveAndRestore.h \</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</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="l00123"></a><span class="lineno">  123</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/Environment.h \</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>  /home/tstellar/llvm/include/llvm/ADT/ImmutableMap.h \</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>  /home/tstellar/llvm/include/llvm/ADT/ImmutableSet.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/SValBuilder.h \</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ASTContext.h \</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ASTTypeTraits.h \</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ASTFwd.h \</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/TypeLoc.h \</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/TypeLocNodes.def \</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/CanonicalType.h \</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/CommentCommandTraits.h \</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/CommentOptions.h \</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/CommentCommandList.inc \</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/PrettyPrinter.h \</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/LangOptions.h \</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/ObjCRuntime.h \</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>  /home/tstellar/llvm/include/llvm/ADT/Triple.h \</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/Sanitizers.def \</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/LangOptions.def \</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/OpenCLExtensions.def \</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/RawCommentList.h \</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/SourceManager.h \</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/FileManager.h \</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/FileSystemOptions.h \</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>  /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h \</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>  /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h \</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>  /home/tstellar/llvm/include/llvm-c/Core.h \</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/AddressSpaces.h \</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>  /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.h \</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>  /home/tstellar/llvm/include/llvm/ADT/TinyPtrVector.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/BasicValueFactory.h \</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/APSIntType.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/PathSensitive/MemRegion.h \</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>  /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/<a class="code" href="namespaceclang_1_1ento.html#ae512ebf5e0e9f696142c92f5b771ef39">Store</a>.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/PathSensitive/TaintTag.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/Checker.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/CheckerManager.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/AnalysisManager.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/<a class="code" href="namespaceclang_1_1ento.html#a6fdc30c38dd63e730328d865d956562e">PathDiagnosticConsumers</a>.h \</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>  /home/tstellar/llvm/include/llvm/ADT/SetVector.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> ClangSACheckers.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/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/BugReporter/CommonBugCategories.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> Checkers.inc:</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/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/Attr.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/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/AttrIterator.h:</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span> </div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/LLVM.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/Support/Casting.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/include/llvm/Support/type_traits.h:</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span> </div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span> /home/tstellar/llvm/include/llvm/Support/DataTypes.h:</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span> </div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span> /home/tstellar/llvm/include/llvm/ADT/None.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/Checkers/../../../include/clang/AST/Decl.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/Checkers/../../../include/clang/AST/APValue.h:</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span> </div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span> /home/tstellar/llvm/include/llvm/ADT/APFloat.h:</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span> </div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span> /home/tstellar/llvm/include/llvm/ADT/APInt.h:</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span> </div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span> /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h:</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span> </div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span> /home/tstellar/llvm/include/llvm/ADT/SmallVector.h:</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span> </div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span> /home/tstellar/llvm/include/llvm/Support/AlignOf.h:</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span> </div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span> /home/tstellar/llvm/include/llvm/Support/Compiler.h:</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span> </div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span> /home/tstellar/llvm/include/llvm/Config/llvm-config.h:</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span> </div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span> /home/tstellar/llvm/include/llvm/Support/MathExtras.h:</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span> </div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span> /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h:</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span> </div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span> /home/tstellar/llvm/include/llvm/ADT/APSInt.h:</div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span> </div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span> /home/tstellar/llvm/include/llvm/ADT/PointerIntPair.h:</div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span> </div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span> /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h:</div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span> </div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span> /home/tstellar/llvm/include/llvm/ADT/PointerUnion.h:</div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span> </div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/DeclBase.h:</div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span> </div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/DeclarationName.h:</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span> </div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/IdentifierTable.h:</div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span> </div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/OperatorKinds.h:</div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span> </div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/OperatorKinds.def:</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span> </div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/TokenKinds.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/Checkers/../../../include/clang/Basic/TokenKinds.def:</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/ADT/SmallString.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/include/llvm/ADT/StringRef.h:</div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span> </div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span> /home/tstellar/llvm/include/llvm/ADT/StringMap.h:</div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span> </div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span> /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.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/Checkers/../../../include/clang/Basic/PartialDiagnostic.h:</div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span> </div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/Diagnostic.h:</div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span> </div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/DiagnosticIDs.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/include/llvm/ADT/IntrusiveRefCntPtr.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/Checkers/../../../include/clang/Basic/DiagnosticCommonKinds.inc:</div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span> </div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/DiagnosticOptions.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/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/DiagnosticOptions.def:</div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span> </div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/SourceLocation.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/ADT/DenseMap.h:</div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span> </div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span> /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h:</div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span> </div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span> /home/tstellar/llvm/include/llvm/ADT/STLExtras.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/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="l00262"></a><span class="lineno">  262</span> </div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/Specifiers.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/PrettyStackTrace.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/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/DeclNodes.inc:</div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span> </div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ExternalASTSource.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/Checkers/../../../include/clang/AST/CharUnits.h:</div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span> </div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/Redeclarable.h:</div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span> </div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/Type.h:</div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span> </div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/NestedNameSpecifier.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/include/llvm/ADT/FoldingSet.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/Checkers/../../../include/clang/AST/TemplateName.h:</div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span> </div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/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="l00284"></a><span class="lineno">  284</span> </div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/<a class="code" href="namespaceclang.html#afbab15cd4aa598c4e6d9192f7ac4f102" title="Describes the different kinds of visibility that a declaration may have.">Visibility</a>.h:</div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span> </div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span> /home/tstellar/llvm/include/llvm/ADT/Optional.h:</div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span> </div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span> /home/tstellar/llvm/include/llvm/ADT/Twine.h:</div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span> </div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span> /home/tstellar/llvm/include/llvm/Support/ErrorHandling.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/Checkers/../../../include/clang/AST/TypeNodes.def:</div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span> </div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/BuiltinTypes.def:</div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span> </div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span> /home/tstellar/llvm/include/llvm/Support/raw_ostream.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/Support/FileSystem.h:</div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span> </div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span> /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h:</div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span> </div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span> /home/tstellar/llvm/include/llvm/Support/TimeValue.h:</div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span> </div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span> /home/tstellar/llvm/include/llvm/Support/system_error.h:</div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span> </div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/AttrKinds.h:</div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span> </div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/AttrList.inc:</div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span> </div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/VersionTuple.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/include/llvm/ADT/StringSwitch.h:</div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span> </div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/Attrs.inc:</div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span> </div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/DeclObjC.h:</div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span> </div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/<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="l00320"></a><span class="lineno">  320</span> </div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/StmtVisitor.h:</div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span> </div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ExprCXX.h:</div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span> </div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/Expr.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/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ASTVector.h:</div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span> </div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/DeclAccessPair.h:</div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span> </div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/OperationKinds.h:</div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span> </div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/Stmt.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/Checkers/../../../include/clang/AST/DeclGroup.h:</div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span> </div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/StmtIterator.h:</div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span> </div>
+<div class="line"><a name="l00339"></a><span class="lineno">  339</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/CapturedStmt.h:</div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span> </div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/StmtNodes.inc:</div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span> </div>
+<div class="line"><a name="l00343"></a><span class="lineno">  343</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/TemplateBase.h:</div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span> </div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/CharInfo.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/Checkers/../../../include/clang/Basic/TypeTraits.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/Checkers/../../../include/clang/Basic/Builtins.def:</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/Checkers/../../../include/clang/AST/UnresolvedSet.h:</div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span> </div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/ExpressionTraits.h:</div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span> </div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/Lambda.h:</div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span> </div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ExprObjC.h:</div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span> </div>
+<div class="line"><a name="l00359"></a><span class="lineno">  359</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/StmtCXX.h:</div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span> </div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/StmtObjC.h:</div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span> </div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/StmtOpenMP.h:</div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span> </div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/OpenMPKinds.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/Checkers/../../../include/clang/Basic/OpenMPKinds.def:</div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span> </div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h:</div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span> </div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/AnalyzerOptions.h:</div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span> </div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/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="l00374"></a><span class="lineno">  374</span> </div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitor.h:</div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span> </div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h:</div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span> </div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState_Fwd.h:</div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span> </div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h:</div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span> </div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Analysis/AnalysisContext.h:</div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span> </div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Analysis/CFG.h:</div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span> </div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Analysis/Support/BumpVector.h:</div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span> </div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span> /home/tstellar/llvm/include/llvm/ADT/GraphTraits.h:</div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span> </div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/StoreRef.h:</div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span> </div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span> /home/tstellar/llvm/include/llvm/ADT/DenseSet.h:</div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span> </div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span> /home/tstellar/llvm/include/llvm/ADT/ImmutableList.h:</div>
+<div class="line"><a name="l00396"></a><span class="lineno">  396</span> </div>
+<div class="line"><a name="l00397"></a><span class="lineno">  397</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h:</div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span> </div>
+<div class="line"><a name="l00399"></a><span class="lineno">  399</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Analysis/ProgramPoint.h:</div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span> </div>
+<div class="line"><a name="l00401"></a><span class="lineno">  401</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h:</div>
+<div class="line"><a name="l00402"></a><span class="lineno">  402</span> </div>
+<div class="line"><a name="l00403"></a><span class="lineno">  403</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/ConstraintManager.h:</div>
+<div class="line"><a name="l00404"></a><span class="lineno">  404</span> </div>
+<div class="line"><a name="l00405"></a><span class="lineno">  405</span> /home/tstellar/llvm/include/llvm/Support/SaveAndRestore.h:</div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span> </div>
+<div class="line"><a name="l00407"></a><span class="lineno">  407</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/<a class="code" href="ProgramState_8cpp.html#a561991ec13c8d67b74fb26984174e5a5">DynamicTypeInfo</a>.h:</div>
+<div class="line"><a name="l00408"></a><span class="lineno">  408</span> </div>
+<div class="line"><a name="l00409"></a><span class="lineno">  409</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/Environment.h:</div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span> </div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span> /home/tstellar/llvm/include/llvm/ADT/ImmutableMap.h:</div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span> </div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</span> /home/tstellar/llvm/include/llvm/ADT/ImmutableSet.h:</div>
+<div class="line"><a name="l00414"></a><span class="lineno">  414</span> </div>
+<div class="line"><a name="l00415"></a><span class="lineno">  415</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h:</div>
+<div class="line"><a name="l00416"></a><span class="lineno">  416</span> </div>
+<div class="line"><a name="l00417"></a><span class="lineno">  417</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ASTContext.h:</div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span> </div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ASTTypeTraits.h:</div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span> </div>
+<div class="line"><a name="l00421"></a><span class="lineno">  421</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/ASTFwd.h:</div>
+<div class="line"><a name="l00422"></a><span class="lineno">  422</span> </div>
+<div class="line"><a name="l00423"></a><span class="lineno">  423</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/TypeLoc.h:</div>
+<div class="line"><a name="l00424"></a><span class="lineno">  424</span> </div>
+<div class="line"><a name="l00425"></a><span class="lineno">  425</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/TypeLocNodes.def:</div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span> </div>
+<div class="line"><a name="l00427"></a><span class="lineno">  427</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/CanonicalType.h:</div>
+<div class="line"><a name="l00428"></a><span class="lineno">  428</span> </div>
+<div class="line"><a name="l00429"></a><span class="lineno">  429</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/CommentCommandTraits.h:</div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span> </div>
+<div class="line"><a name="l00431"></a><span class="lineno">  431</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/CommentOptions.h:</div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span> </div>
+<div class="line"><a name="l00433"></a><span class="lineno">  433</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/CommentCommandList.inc:</div>
+<div class="line"><a name="l00434"></a><span class="lineno">  434</span> </div>
+<div class="line"><a name="l00435"></a><span class="lineno">  435</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/PrettyPrinter.h:</div>
+<div class="line"><a name="l00436"></a><span class="lineno">  436</span> </div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/LangOptions.h:</div>
+<div class="line"><a name="l00438"></a><span class="lineno">  438</span> </div>
+<div class="line"><a name="l00439"></a><span class="lineno">  439</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/ObjCRuntime.h:</div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span> </div>
+<div class="line"><a name="l00441"></a><span class="lineno">  441</span> /home/tstellar/llvm/include/llvm/ADT/Triple.h:</div>
+<div class="line"><a name="l00442"></a><span class="lineno">  442</span> </div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/Sanitizers.def:</div>
+<div class="line"><a name="l00444"></a><span class="lineno">  444</span> </div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/LangOptions.def:</div>
+<div class="line"><a name="l00446"></a><span class="lineno">  446</span> </div>
+<div class="line"><a name="l00447"></a><span class="lineno">  447</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/OpenCLExtensions.def:</div>
+<div class="line"><a name="l00448"></a><span class="lineno">  448</span> </div>
+<div class="line"><a name="l00449"></a><span class="lineno">  449</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/AST/RawCommentList.h:</div>
+<div class="line"><a name="l00450"></a><span class="lineno">  450</span> </div>
+<div class="line"><a name="l00451"></a><span class="lineno">  451</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/SourceManager.h:</div>
+<div class="line"><a name="l00452"></a><span class="lineno">  452</span> </div>
+<div class="line"><a name="l00453"></a><span class="lineno">  453</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/FileManager.h:</div>
+<div class="line"><a name="l00454"></a><span class="lineno">  454</span> </div>
+<div class="line"><a name="l00455"></a><span class="lineno">  455</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/FileSystemOptions.h:</div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span> </div>
+<div class="line"><a name="l00457"></a><span class="lineno">  457</span> /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h:</div>
+<div class="line"><a name="l00458"></a><span class="lineno">  458</span> </div>
+<div class="line"><a name="l00459"></a><span class="lineno">  459</span> /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h:</div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span> </div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span> /home/tstellar/llvm/include/llvm-c/Core.h:</div>
+<div class="line"><a name="l00462"></a><span class="lineno">  462</span> </div>
+<div class="line"><a name="l00463"></a><span class="lineno">  463</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/Basic/AddressSpaces.h:</div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</span> </div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span> /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.h:</div>
+<div class="line"><a name="l00466"></a><span class="lineno">  466</span> </div>
+<div class="line"><a name="l00467"></a><span class="lineno">  467</span> /home/tstellar/llvm/include/llvm/ADT/TinyPtrVector.h:</div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span> </div>
+<div class="line"><a name="l00469"></a><span class="lineno">  469</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:</div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span> </div>
+<div class="line"><a name="l00471"></a><span class="lineno">  471</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/APSIntType.h:</div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span> </div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h:</div>
+<div class="line"><a name="l00474"></a><span class="lineno">  474</span> </div>
+<div class="line"><a name="l00475"></a><span class="lineno">  475</span> /home/tstellar/llvm/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="l00476"></a><span class="lineno">  476</span> </div>
+<div class="line"><a name="l00477"></a><span class="lineno">  477</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/TaintTag.h:</div>
+<div class="line"><a name="l00478"></a><span class="lineno">  478</span> </div>
+<div class="line"><a name="l00479"></a><span class="lineno">  479</span> /home/tstellar/llvm/include/llvm/ADT/SmallSet.h:</div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span> </div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span> /home/tstellar/llvm/include/llvm/ADT/ilist.h:</div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span> </div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span> /home/tstellar/llvm/include/llvm/ADT/ilist_node.h:</div>
+<div class="line"><a name="l00484"></a><span class="lineno">  484</span> </div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/Checker.h:</div>
+<div class="line"><a name="l00486"></a><span class="lineno">  486</span> </div>
+<div class="line"><a name="l00487"></a><span class="lineno">  487</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/CheckerManager.h:</div>
+<div class="line"><a name="l00488"></a><span class="lineno">  488</span> </div>
+<div class="line"><a name="l00489"></a><span class="lineno">  489</span> /home/tstellar/llvm/tools/clang/lib/StaticAnalyzer/Checkers/../../../include/clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h:</div>
+<div class="line"><a name="l00490"></a><span class="lineno">  490</span> </div>
+<div class="line"><a name="l00491"></a><span class="lineno">  491</span> /home/tstellar/llvm/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="l00492"></a><span class="lineno">  492</span> </div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span> /home/tstellar/llvm/include/llvm/ADT/SetVector.h:</div>
+<div class="line"><a name="l00494"></a><span class="lineno">  494</span> </div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:41 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/JSONCompilationDatabase_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/JSONCompilationDatabase_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/JSONCompilationDatabase_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/JSONCompilationDatabase_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,402 @@
+<!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: JSONCompilationDatabase.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_14ab871e308b37f9042717085145c002.html">Tooling</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">JSONCompilationDatabase.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="JSONCompilationDatabase_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">//===--- JSONCompilationDatabase.cpp - ------------------------------------===//</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">//                     The LLVM Compiler Infrastructure</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment">// This file is distributed under the University of Illinois Open Source</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">// License. See LICENSE.TXT for details.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span> <span class="comment">//  This file contains the implementation of the JSONCompilationDatabase.</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> </div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> <span class="preprocessor">#include "<a class="code" href="JSONCompilationDatabase_8h.html">clang/Tooling/JSONCompilationDatabase.h</a>"</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> <span class="preprocessor">#include "<a class="code" href="CompilationDatabase_8h.html">clang/Tooling/CompilationDatabase.h</a>"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="preprocessor">#include "<a class="code" href="CompilationDatabasePluginRegistry_8h.html">clang/Tooling/CompilationDatabasePluginRegistry.h</a>"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="preprocessor">#include "<a class="code" href="Tooling_8h.html">clang/Tooling/Tooling.h</a>"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="preprocessor">#include "llvm/ADT/SmallString.h"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="preprocessor">#include "llvm/Support/Path.h"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="preprocessor">#include "llvm/Support/system_error.h"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="keyword">namespace </span>clang {</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="keyword">namespace </span>tooling {</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">namespace </span>{</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="comment"></span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="comment">/// \brief A parser for escaped strings of command line arguments.</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="comment">/// Assumes \-escaping for quoted arguments (see the documentation of</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="comment">/// unescapeCommandLine(...)).</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span> <span class="comment"></span><span class="keyword">class </span>CommandLineArgumentParser {</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>   CommandLineArgumentParser(StringRef <a class="code" href="JSONCompilationDatabase_8cpp.html#aff1eaf11bcfc05c142268512eeb4e134">CommandLine</a>)</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>       : <a class="code" href="JSONCompilationDatabase_8cpp.html#aece53df006a4f11f7ebaac621f5d3bdb">Input</a>(CommandLine), <a class="code" href="UnwrappedLineParser_8cpp.html#a6fc9a79cf6fd7e927d2a20bd664f1619">Position</a>(<a class="code" href="JSONCompilationDatabase_8cpp.html#aece53df006a4f11f7ebaac621f5d3bdb">Input</a>.begin()-1) {}</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>   std::vector<std::string> parse() {</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>     <span class="keywordtype">bool</span> HasMoreInput = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>     <span class="keywordflow">while</span> (HasMoreInput && nextNonWhitespace()) {</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>       std::string Argument;</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>       HasMoreInput = parseStringInto(Argument);</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>       <a class="code" href="JSONCompilationDatabase_8cpp.html#aff1eaf11bcfc05c142268512eeb4e134">CommandLine</a>.push_back(Argument);</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>     }</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>     <span class="keywordflow">return</span> <a class="code" href="JSONCompilationDatabase_8cpp.html#aff1eaf11bcfc05c142268512eeb4e134">CommandLine</a>;</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>  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>   <span class="comment">// All private methods return true if there is more input available.</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span> </div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>   <span class="keywordtype">bool</span> parseStringInto(std::string &String) {</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>     <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>       <span class="keywordflow">if</span> (*<a class="code" href="UnwrappedLineParser_8cpp.html#a6fc9a79cf6fd7e927d2a20bd664f1619">Position</a> == <span class="charliteral">'"'</span>) {</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>         <span class="keywordflow">if</span> (!parseDoubleQuotedStringInto(String)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>       } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (*<a class="code" href="UnwrappedLineParser_8cpp.html#a6fc9a79cf6fd7e927d2a20bd664f1619">Position</a> == <span class="charliteral">'\''</span>) {</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>         <span class="keywordflow">if</span> (!parseSingleQuotedStringInto(String)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>       } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>         <span class="keywordflow">if</span> (!parseFreeStringInto(String)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>       }</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>     } <span class="keywordflow">while</span> (*<a class="code" href="UnwrappedLineParser_8cpp.html#a6fc9a79cf6fd7e927d2a20bd664f1619">Position</a> != <span class="charliteral">' '</span>);</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>     <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>   }</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span> </div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>   <span class="keywordtype">bool</span> parseDoubleQuotedStringInto(std::string &String) {</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>     <span class="keywordflow">if</span> (!next()) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>     <span class="keywordflow">while</span> (*<a class="code" href="UnwrappedLineParser_8cpp.html#a6fc9a79cf6fd7e927d2a20bd664f1619">Position</a> != <span class="charliteral">'"'</span>) {</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>       <span class="keywordflow">if</span> (!skipEscapeCharacter()) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>       String.push_back(*<a class="code" href="UnwrappedLineParser_8cpp.html#a6fc9a79cf6fd7e927d2a20bd664f1619">Position</a>);</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>       <span class="keywordflow">if</span> (!next()) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>     }</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>     <span class="keywordflow">return</span> next();</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>   }</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span> </div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>   <span class="keywordtype">bool</span> parseSingleQuotedStringInto(std::string &String) {</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>     <span class="keywordflow">if</span> (!next()) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>     <span class="keywordflow">while</span> (*<a class="code" href="UnwrappedLineParser_8cpp.html#a6fc9a79cf6fd7e927d2a20bd664f1619">Position</a> != <span class="charliteral">'\''</span>) {</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>       String.push_back(*<a class="code" href="UnwrappedLineParser_8cpp.html#a6fc9a79cf6fd7e927d2a20bd664f1619">Position</a>);</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>       <span class="keywordflow">if</span> (!next()) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>     }</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>     <span class="keywordflow">return</span> next();</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>   }</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span> </div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>   <span class="keywordtype">bool</span> parseFreeStringInto(std::string &String) {</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>     <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>       <span class="keywordflow">if</span> (!skipEscapeCharacter()) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>       String.push_back(*<a class="code" href="UnwrappedLineParser_8cpp.html#a6fc9a79cf6fd7e927d2a20bd664f1619">Position</a>);</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>       <span class="keywordflow">if</span> (!next()) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>     } <span class="keywordflow">while</span> (*<a class="code" href="UnwrappedLineParser_8cpp.html#a6fc9a79cf6fd7e927d2a20bd664f1619">Position</a> != <span class="charliteral">' '</span> && *<a class="code" href="UnwrappedLineParser_8cpp.html#a6fc9a79cf6fd7e927d2a20bd664f1619">Position</a> != <span class="charliteral">'"'</span> && *<a class="code" href="UnwrappedLineParser_8cpp.html#a6fc9a79cf6fd7e927d2a20bd664f1619">Position</a> != <span class="charliteral">'\''</span>);</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>     <span class="keywordflow">return</span> <span class="keyword">true</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> </div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>   <span class="keywordtype">bool</span> skipEscapeCharacter() {</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>     <span class="keywordflow">if</span> (*<a class="code" href="UnwrappedLineParser_8cpp.html#a6fc9a79cf6fd7e927d2a20bd664f1619">Position</a> == <span class="charliteral">'\\'</span>) {</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>       <span class="keywordflow">return</span> next();</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>     }</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>     <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>   }</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span> </div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>   <span class="keywordtype">bool</span> nextNonWhitespace() {</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>     <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>       <span class="keywordflow">if</span> (!next()) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>     } <span class="keywordflow">while</span> (*<a class="code" href="UnwrappedLineParser_8cpp.html#a6fc9a79cf6fd7e927d2a20bd664f1619">Position</a> == <span class="charliteral">' '</span>);</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>     <span class="keywordflow">return</span> <span class="keyword">true</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> </div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>   <span class="keywordtype">bool</span> next() {</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>     ++<a class="code" href="UnwrappedLineParser_8cpp.html#a6fc9a79cf6fd7e927d2a20bd664f1619">Position</a>;</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>     <span class="keywordflow">return</span> <a class="code" href="UnwrappedLineParser_8cpp.html#a6fc9a79cf6fd7e927d2a20bd664f1619">Position</a> != <a class="code" href="JSONCompilationDatabase_8cpp.html#aece53df006a4f11f7ebaac621f5d3bdb">Input</a>.end();</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="JSONCompilationDatabase_8cpp.html#aece53df006a4f11f7ebaac621f5d3bdb">  109</a></span>   <span class="keyword">const</span> StringRef <a class="code" href="JSONCompilationDatabase_8cpp.html#aece53df006a4f11f7ebaac621f5d3bdb">Input</a>;</div>
+<div class="line"><a name="l00110"></a><span class="lineno"><a class="code" href="JSONCompilationDatabase_8cpp.html#a756a188fae2e17ba10afa286dea93c93">  110</a></span>   StringRef::iterator <a class="code" href="UnwrappedLineParser_8cpp.html#a6fc9a79cf6fd7e927d2a20bd664f1619">Position</a>;</div>
+<div class="line"><a name="l00111"></a><span class="lineno"><a class="code" href="JSONCompilationDatabase_8cpp.html#aff1eaf11bcfc05c142268512eeb4e134">  111</a></span>   std::vector<std::string> <a class="code" href="JSONCompilationDatabase_8cpp.html#aff1eaf11bcfc05c142268512eeb4e134">CommandLine</a>;</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</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> std::vector<std::string> unescapeCommandLine(</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>     StringRef EscapedCommandLine) {</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>   CommandLineArgumentParser parser(EscapedCommandLine);</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>   <span class="keywordflow">return</span> parser.parse();</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">  120</span> <span class="keyword">class </span>JSONCompilationDatabasePlugin : <span class="keyword">public</span> CompilationDatabasePlugin {</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>   <span class="keyword">virtual</span> CompilationDatabase *loadFromDirectory(</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>       StringRef Directory, std::string &ErrorMessage) {</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>     SmallString<1024> JSONDatabasePath(Directory);</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>     llvm::sys::path::append(JSONDatabasePath, <span class="stringliteral">"compile_commands.json"</span>);</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>     OwningPtr<CompilationDatabase> Database(</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>         <a class="code" href="classclang_1_1tooling_1_1JSONCompilationDatabase.html#ad25166d09f81e890b0a1221355b650cc" title="Loads a JSON compilation database from the specified file.">JSONCompilationDatabase::loadFromFile</a>(JSONDatabasePath, ErrorMessage));</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>     <span class="keywordflow">if</span> (!Database)</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>       <span class="keywordflow">return</span> <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>     <span class="keywordflow">return</span> Database.take();</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> };</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span> </div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span> } <span class="comment">// end namespace</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> <span class="comment">// Register the JSONCompilationDatabasePlugin with the</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span> <span class="comment">// CompilationDatabasePluginRegistry using this statically initialized variable.</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span> <span class="keyword">static</span> CompilationDatabasePluginRegistry::Add<JSONCompilationDatabasePlugin></div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span> <a class="code" href="namespaceclang_1_1tooling.html#ad61cfdb049c401f2669516dc65c93f91">X</a>(<span class="stringliteral">"json-compilation-database"</span>, <span class="stringliteral">"Reads JSON formatted compilation databases"</span>);</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span> </div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span> <span class="comment">// This anchor is used to force the linker to link in the generated object file</span></div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span> <span class="comment">// and thus register the JSONCompilationDatabasePlugin.</span></div>
+<div class="line"><a name="l00142"></a><span class="lineno"><a class="code" href="namespaceclang_1_1tooling.html#a06e86121c34cc5335de6aacec0de6c2b">  142</a></span> <span class="keyword">volatile</span> <span class="keywordtype">int</span> <a class="code" href="namespaceclang_1_1tooling.html#a06e86121c34cc5335de6aacec0de6c2b">JSONAnchorSource</a> = 0;</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> <a class="code" href="classclang_1_1tooling_1_1JSONCompilationDatabase.html" title="A JSON based compilation database.">JSONCompilationDatabase</a> *</div>
+<div class="line"><a name="l00145"></a><span class="lineno"><a class="code" href="classclang_1_1tooling_1_1JSONCompilationDatabase.html#ad25166d09f81e890b0a1221355b650cc">  145</a></span> <a class="code" href="classclang_1_1tooling_1_1JSONCompilationDatabase.html#ad25166d09f81e890b0a1221355b650cc" title="Loads a JSON compilation database from the specified file.">JSONCompilationDatabase::loadFromFile</a>(StringRef FilePath,</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>                                       std::string &ErrorMessage) {</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>   <a class="code" href="classllvm_1_1OwningPtr.html">OwningPtr<llvm::MemoryBuffer></a> DatabaseBuffer;</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>   llvm::error_code Result =</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>     llvm::MemoryBuffer::getFile(FilePath, DatabaseBuffer);</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>   <span class="keywordflow">if</span> (Result != 0) {</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>     ErrorMessage = <span class="stringliteral">"Error while opening JSON database: "</span> + Result.message();</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>     <span class="keywordflow">return</span> <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</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>   <a class="code" href="classllvm_1_1OwningPtr.html">OwningPtr<JSONCompilationDatabase></a> Database(</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>     <span class="keyword">new</span> <a class="code" href="classclang_1_1tooling_1_1JSONCompilationDatabase.html" title="A JSON based compilation database.">JSONCompilationDatabase</a>(DatabaseBuffer.take()));</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>   <span class="keywordflow">if</span> (!Database->parse(ErrorMessage))</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>     <span class="keywordflow">return</span> <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>   <span class="keywordflow">return</span> Database.take();</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">  161</span> <a class="code" href="classclang_1_1tooling_1_1JSONCompilationDatabase.html" title="A JSON based compilation database.">JSONCompilationDatabase</a> *</div>
+<div class="line"><a name="l00162"></a><span class="lineno"><a class="code" href="classclang_1_1tooling_1_1JSONCompilationDatabase.html#a0b85310860d1b42bde312820c6e9e0c6">  162</a></span> <a class="code" href="classclang_1_1tooling_1_1JSONCompilationDatabase.html#a0b85310860d1b42bde312820c6e9e0c6" title="Loads a JSON compilation database from a data buffer.">JSONCompilationDatabase::loadFromBuffer</a>(StringRef DatabaseString,</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>                                         std::string &ErrorMessage) {</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>   <a class="code" href="classllvm_1_1OwningPtr.html">OwningPtr<llvm::MemoryBuffer></a> DatabaseBuffer(</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>       llvm::MemoryBuffer::getMemBuffer(DatabaseString));</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>   <a class="code" href="classllvm_1_1OwningPtr.html">OwningPtr<JSONCompilationDatabase></a> Database(</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>       <span class="keyword">new</span> <a class="code" href="classclang_1_1tooling_1_1JSONCompilationDatabase.html" title="A JSON based compilation database.">JSONCompilationDatabase</a>(DatabaseBuffer.take()));</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>   <span class="keywordflow">if</span> (!Database->parse(ErrorMessage))</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>     <span class="keywordflow">return</span> <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>   <span class="keywordflow">return</span> Database.take();</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> </div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span> std::vector<CompileCommand></div>
+<div class="line"><a name="l00174"></a><span class="lineno"><a class="code" href="classclang_1_1tooling_1_1JSONCompilationDatabase.html#a6a9bf972a0ccad748eb3440918f11fdc">  174</a></span> <a class="code" href="classclang_1_1tooling_1_1JSONCompilationDatabase.html#a6a9bf972a0ccad748eb3440918f11fdc" title="Returns all compile comamnds in which the specified file was compiled.">JSONCompilationDatabase::getCompileCommands</a>(StringRef FilePath)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>   <a class="code" href="classllvm_1_1SmallString.html">SmallString<128></a> NativeFilePath;</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>   llvm::sys::path::native(FilePath, NativeFilePath);</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>   std::vector<StringRef> PossibleMatches;</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>   std::string Error;</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>   llvm::raw_string_ostream ES(Error);</div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>   StringRef Match = MatchTrie.<a class="code" href="classclang_1_1tooling_1_1FileMatchTrie.html#a89cdcbd393e30a0f52128b2983a186fc" title="Finds the corresponding file in this trie.">findEquivalent</a>(NativeFilePath.str(), ES);</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>   <span class="keywordflow">if</span> (Match.empty())</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>     <span class="keywordflow">return</span> std::vector<CompileCommand>();</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>   llvm::StringMap< std::vector<CompileCommandRef> >::const_iterator</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>     CommandsRefI = IndexByFile.find(Match);</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>   <span class="keywordflow">if</span> (CommandsRefI == IndexByFile.end())</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>     <span class="keywordflow">return</span> std::vector<CompileCommand>();</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>   std::vector<CompileCommand> Commands;</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>   getCommands(CommandsRefI->getValue(), Commands);</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>   <span class="keywordflow">return</span> Commands;</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> </div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span> std::vector<std::string></div>
+<div class="line"><a name="l00193"></a><span class="lineno"><a class="code" href="classclang_1_1tooling_1_1JSONCompilationDatabase.html#a7f028f906d9e8a10da8faf5b2c9fb73d">  193</a></span> <a class="code" href="classclang_1_1tooling_1_1JSONCompilationDatabase.html#a7f028f906d9e8a10da8faf5b2c9fb73d" title="Returns the list of all files available in the compilation database.">JSONCompilationDatabase::getAllFiles</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>   std::vector<std::string> Result;</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>   llvm::StringMap< std::vector<CompileCommandRef> >::const_iterator</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span>     CommandsRefI = IndexByFile.begin();</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>   <span class="keyword">const</span> llvm::StringMap< std::vector<CompileCommandRef> >::const_iterator</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>     CommandsRefEnd = IndexByFile.end();</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>   <span class="keywordflow">for</span> (; CommandsRefI != CommandsRefEnd; ++CommandsRefI) {</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>     Result.push_back(CommandsRefI->first().str());</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">return</span> Result;</div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span> }</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span> </div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span> std::vector<CompileCommand></div>
+<div class="line"><a name="l00208"></a><span class="lineno"><a class="code" href="classclang_1_1tooling_1_1JSONCompilationDatabase.html#a129798afd1d983fccfd470b327d87962">  208</a></span> <a class="code" href="classclang_1_1tooling_1_1JSONCompilationDatabase.html#a129798afd1d983fccfd470b327d87962" title="Returns all compile commands for all the files in the compilation database.">JSONCompilationDatabase::getAllCompileCommands</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>   std::vector<CompileCommand> Commands;</div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>   <span class="keywordflow">for</span> (llvm::StringMap< std::vector<CompileCommandRef> >::const_iterator</div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>         CommandsRefI = IndexByFile.begin(), CommandsRefEnd = IndexByFile.end();</div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span>       CommandsRefI != CommandsRefEnd; ++CommandsRefI) {</div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span>     getCommands(CommandsRefI->getValue(), Commands);</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>   <span class="keywordflow">return</span> Commands;</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> </div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span> <span class="keywordtype">void</span> JSONCompilationDatabase::getCommands(</div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>                                   <a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<CompileCommandRef></a> CommandsRef,</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>                                   std::vector<CompileCommand> &Commands)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span>   <span class="keywordflow">for</span> (<span class="keywordtype">int</span> I = 0, E = CommandsRef.size(); I != E; ++I) {</div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span>     <a class="code" href="classllvm_1_1SmallString.html">SmallString<8></a> DirectoryStorage;</div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span>     <a class="code" href="classllvm_1_1SmallString.html">SmallString<1024></a> CommandStorage;</div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>     Commands.push_back(<a class="code" href="structclang_1_1tooling_1_1CompileCommand.html" title="Specifies the working directory and command of a compilation.">CompileCommand</a>(</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>       <span class="comment">// FIXME: Escape correctly:</span></div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>       CommandsRef[I].first->getValue(DirectoryStorage),</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>       unescapeCommandLine(CommandsRef[I].second->getValue(CommandStorage))));</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> }</div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span> </div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span> <span class="keywordtype">bool</span> JSONCompilationDatabase::parse(std::string &ErrorMessage) {</div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span>   llvm::yaml::document_iterator I = YAMLStream.begin();</div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span>   <span class="keywordflow">if</span> (I == YAMLStream.end()) {</div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>     ErrorMessage = <span class="stringliteral">"Error while parsing YAML."</span>;</div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</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>   <a class="code" href="ASTMatchFinder_8cpp.html#a1dfddff6f4d91f415ffe4b9a6da5f489">llvm::yaml::Node</a> *Root = I->getRoot();</div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span>   <span class="keywordflow">if</span> (Root == <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>) {</div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span>     ErrorMessage = <span class="stringliteral">"Error while parsing YAML."</span>;</div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span>   }</div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span>   llvm::yaml::SequenceNode *Array = dyn_cast<llvm::yaml::SequenceNode>(Root);</div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span>   <span class="keywordflow">if</span> (Array == <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>) {</div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span>     ErrorMessage = <span class="stringliteral">"Expected array."</span>;</div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</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>   <span class="keywordflow">for</span> (llvm::yaml::SequenceNode::iterator AI = Array->begin(),</div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span>                                           AE = Array->end();</div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span>        AI != AE; ++AI) {</div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span>     llvm::yaml::MappingNode *Object = dyn_cast<llvm::yaml::MappingNode>(&*AI);</div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span>     <span class="keywordflow">if</span> (Object == <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>) {</div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span>       ErrorMessage = <span class="stringliteral">"Expected object."</span>;</div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span>       <span class="keywordflow">return</span> <span class="keyword">false</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>     llvm::yaml::ScalarNode *Directory = <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span>     llvm::yaml::ScalarNode *Command = <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span>     llvm::yaml::ScalarNode *File = <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span>     <span class="keywordflow">for</span> (llvm::yaml::MappingNode::iterator KVI = Object->begin(),</div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span>                                            KVE = Object->end();</div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span>          KVI != KVE; ++KVI) {</div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span>       <a class="code" href="ASTMatchFinder_8cpp.html#a1dfddff6f4d91f415ffe4b9a6da5f489">llvm::yaml::Node</a> *<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a> = (*KVI).getValue();</div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span>       <span class="keywordflow">if</span> (Value == <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>) {</div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span>         ErrorMessage = <span class="stringliteral">"Expected value."</span>;</div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span>         <span class="keywordflow">return</span> <span class="keyword">false</span>;</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>       llvm::yaml::ScalarNode *ValueString =</div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span>           dyn_cast<llvm::yaml::ScalarNode>(<a class="code" href="UninitializedValues_8cpp.html#a896c037a32087c5c20d97e64a1786880">Value</a>);</div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span>       <span class="keywordflow">if</span> (ValueString == <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>) {</div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span>         ErrorMessage = <span class="stringliteral">"Expected string as value."</span>;</div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span>         <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span>       }</div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span>       llvm::yaml::ScalarNode *KeyString =</div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span>           dyn_cast<llvm::yaml::ScalarNode>((*KVI).getKey());</div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span>       <span class="keywordflow">if</span> (KeyString == <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>) {</div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span>         ErrorMessage = <span class="stringliteral">"Expected strings as key."</span>;</div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span>         <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span>       }</div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span>       SmallString<8> KeyStorage;</div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span>       <span class="keywordflow">if</span> (KeyString->getValue(KeyStorage) == <span class="stringliteral">"directory"</span>) {</div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span>         Directory = ValueString;</div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span>       } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (KeyString->getValue(KeyStorage) == <span class="stringliteral">"command"</span>) {</div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span>         Command = ValueString;</div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span>       } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (KeyString->getValue(KeyStorage) == <span class="stringliteral">"file"</span>) {</div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span>         File = ValueString;</div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span>       } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span>         ErrorMessage = (<span class="stringliteral">"Unknown key: \""</span> +</div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span>                         KeyString->getRawValue() + <span class="stringliteral">"\""</span>).str();</div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span>         <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span>       }</div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span>     }</div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span>     <span class="keywordflow">if</span> (!File) {</div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span>       ErrorMessage = <span class="stringliteral">"Missing key: \"file\"."</span>;</div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span>       <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span>     }</div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span>     <span class="keywordflow">if</span> (!Command) {</div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span>       ErrorMessage = <span class="stringliteral">"Missing key: \"command\"."</span>;</div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span>       <span class="keywordflow">return</span> <span class="keyword">false</span>;</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>     <span class="keywordflow">if</span> (!Directory) {</div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span>       ErrorMessage = <span class="stringliteral">"Missing key: \"directory\"."</span>;</div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span>       <span class="keywordflow">return</span> <span class="keyword">false</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>     SmallString<8> FileStorage;</div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span>     StringRef FileName = File->getValue(FileStorage);</div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span>     SmallString<128> NativeFilePath;</div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span>     <span class="keywordflow">if</span> (llvm::sys::path::is_relative(FileName)) {</div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span>       SmallString<8> DirectoryStorage;</div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span>       SmallString<128> AbsolutePath(</div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span>           Directory->getValue(DirectoryStorage));</div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span>       llvm::sys::path::append(AbsolutePath, FileName);</div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span>       llvm::sys::path::native(AbsolutePath.str(), NativeFilePath);</div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span>       llvm::sys::path::native(FileName, NativeFilePath);</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>     IndexByFile[NativeFilePath].push_back(</div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span>         CompileCommandRef(Directory, Command));</div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span>     MatchTrie.<a class="code" href="classclang_1_1tooling_1_1FileMatchTrie.html#af71387b84fbf9705935028838a67883b" title="Insert a new absolute path. Relative paths are ignored.">insert</a>(NativeFilePath.str());</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="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span> }</div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span> </div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span> } <span class="comment">// end namespace tooling</span></div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span> } <span class="comment">// end namespace clang</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:41 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/JSONCompilationDatabase_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/JSONCompilationDatabase_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/JSONCompilationDatabase_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/JSONCompilationDatabase_8d_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,280 @@
+<!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: JSONCompilationDatabase.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_14ab871e308b37f9042717085145c002.html">Tooling</a></li><li class="navelem"><a class="el" href="dir_88d92a3518b6d6dcb8dd1cee7c911282.html">Release+Asserts</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">JSONCompilationDatabase.d</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="JSONCompilationDatabase_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/Tooling/Release+Asserts/JSONCompilationDatabase.o \</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/Release+Asserts/JSONCompilationDatabase.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>  JSONCompilationDatabase.cpp \</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Tooling/JSONCompilationDatabase.h \</div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/LLVM.h \</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>  /home/tstellar/llvm/include/llvm/Support/Casting.h \</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>  /home/tstellar/llvm/include/llvm/Support/type_traits.h \</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>  /home/tstellar/llvm/include/llvm/Support/DataTypes.h \</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>  /home/tstellar/llvm/include/llvm/ADT/None.h \</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Tooling/CompilationDatabase.h \</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>  /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h \</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>  /home/tstellar/llvm/include/llvm/ADT/SmallVector.h \</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>  /home/tstellar/llvm/include/llvm/Support/AlignOf.h \</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>  /home/tstellar/llvm/include/llvm/Support/Compiler.h \</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>  /home/tstellar/llvm/include/llvm/Config/llvm-config.h \</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>  /home/tstellar/llvm/include/llvm/Support/MathExtras.h \</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>  /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h \</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>  /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h \</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>  /home/tstellar/llvm/include/llvm/ADT/StringRef.h \</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>  /home/tstellar/llvm/include/llvm/ADT/Twine.h \</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>  /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h \</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Tooling/FileMatchTrie.h \</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>  /home/tstellar/llvm/include/llvm/ADT/StringMap.h \</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>  /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h \</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>  /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h \</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>  /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h \</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>  /home/tstellar/llvm/include/llvm-c/Core.h \</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>  /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a8b28f9f83ac8256fbde7e45b0f874f27">SourceMgr</a>.h \</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>  /home/tstellar/llvm/include/llvm/Support/SMLoc.h \</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>  /home/tstellar/llvm/include/llvm/Support/YAMLParser.h \</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>  /home/tstellar/llvm/include/llvm/ADT/SmallString.h \</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Tooling/<a class="code" href="namespaceclang_1_1tooling.html#a86cedd09c87896789cb6e3bf67d327ce">CompilationDatabasePluginRegistry</a>.h \</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>  /home/tstellar/llvm/include/llvm/Support/Registry.h \</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Tooling/Tooling.h \</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/Diagnostic.h \</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/DiagnosticIDs.h \</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>  /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h \</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/DiagnosticCommonKinds.inc \</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/DiagnosticOptions.h \</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/DiagnosticOptions.def \</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/SourceLocation.h \</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>  /home/tstellar/llvm/include/llvm/Support/PointerLikeTypeTraits.h \</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMap.h \</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>  /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.h \</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/FileManager.h \</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/FileSystemOptions.h \</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>  /home/tstellar/llvm/include/llvm/Support/FileSystem.h \</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>  /home/tstellar/llvm/include/llvm/Support/TimeValue.h \</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>  /home/tstellar/llvm/include/llvm/Support/system_error.h \</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Driver/Util.h \</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Frontend/FrontendAction.h \</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/LangOptions.h \</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/CommentOptions.h \</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/ObjCRuntime.h \</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/VersionTuple.h \</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>  /home/tstellar/llvm/include/llvm/ADT/Optional.h \</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>  /home/tstellar/llvm/include/llvm/ADT/Triple.h \</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../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="l00059"></a><span class="lineno">   59</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../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="l00060"></a><span class="lineno">   60</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/Sanitizers.def \</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/LangOptions.def \</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/OpenCLExtensions.def \</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Frontend/FrontendOptions.h \</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Frontend/CommandLineSourceLoc.h \</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>  /home/tstellar/llvm/include/llvm/Support/<a class="code" href="JSONCompilationDatabase_8cpp.html#aff1eaf11bcfc05c142268512eeb4e134">CommandLine</a>.h \</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>  /home/tstellar/llvm/include/llvm/Support/raw_ostream.h \</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Sema/<a class="code" href="classCodeCompleteOptions.html" title="Options controlling the behavior of code completion.">CodeCompleteOptions</a>.h \</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>  /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Tooling/ArgumentsAdjusters.h \</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>  /home/tstellar/llvm/include/llvm/Support/Path.h</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> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Tooling/JSONCompilationDatabase.h:</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> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/LLVM.h:</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span> </div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span> /home/tstellar/llvm/include/llvm/Support/Casting.h:</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> /home/tstellar/llvm/include/llvm/Support/type_traits.h:</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> /home/tstellar/llvm/include/llvm/Support/DataTypes.h:</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> /home/tstellar/llvm/include/llvm/ADT/None.h:</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> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Tooling/CompilationDatabase.h:</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> /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h:</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span> </div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span> /home/tstellar/llvm/include/llvm/ADT/SmallVector.h:</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> /home/tstellar/llvm/include/llvm/Support/AlignOf.h:</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span> </div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span> /home/tstellar/llvm/include/llvm/Support/Compiler.h:</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> /home/tstellar/llvm/include/llvm/Config/llvm-config.h:</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> /home/tstellar/llvm/include/llvm/Support/MathExtras.h:</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span> </div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span> /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h:</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> /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h:</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> /home/tstellar/llvm/include/llvm/ADT/StringRef.h:</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> /home/tstellar/llvm/include/llvm/ADT/Twine.h:</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span> </div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span> /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h:</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> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Tooling/FileMatchTrie.h:</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> /home/tstellar/llvm/include/llvm/ADT/StringMap.h:</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> /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h:</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span> </div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span> /home/tstellar/llvm/include/llvm/Support/MemoryBuffer.h:</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> /home/tstellar/llvm/include/llvm/Support/CBindingWrapping.h:</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> /home/tstellar/llvm/include/llvm-c/Core.h:</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> /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a8b28f9f83ac8256fbde7e45b0f874f27">SourceMgr</a>.h:</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> /home/tstellar/llvm/include/llvm/Support/SMLoc.h:</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> /home/tstellar/llvm/include/llvm/Support/YAMLParser.h:</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> /home/tstellar/llvm/include/llvm/ADT/SmallString.h:</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span> </div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Tooling/<a class="code" href="namespaceclang_1_1tooling.html#a86cedd09c87896789cb6e3bf67d327ce">CompilationDatabasePluginRegistry</a>.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/include/llvm/Support/Registry.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/Tooling/../../include/clang/Tooling/Tooling.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/Tooling/../../include/clang/Basic/Diagnostic.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/Tooling/../../include/clang/Basic/DiagnosticIDs.h:</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/include/llvm/ADT/IntrusiveRefCntPtr.h:</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/Tooling/../../include/clang/Basic/DiagnosticCommonKinds.inc:</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/Tooling/../../include/clang/Basic/DiagnosticOptions.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/Tooling/../../include/clang/Basic/DiagnosticOptions.def:</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/Tooling/../../include/clang/Basic/SourceLocation.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/PointerLikeTypeTraits.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/ADT/DenseMap.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/ADT/DenseMapInfo.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/tools/clang/lib/Tooling/../../include/clang/Basic/FileManager.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/tools/clang/lib/Tooling/../../include/clang/Basic/FileSystemOptions.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/Support/FileSystem.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/Support/TimeValue.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/Support/system_error.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/tools/clang/lib/Tooling/../../include/clang/Driver/Util.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/tools/clang/lib/Tooling/../../include/clang/Frontend/FrontendAction.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/tools/clang/lib/Tooling/../../include/clang/Basic/LangOptions.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/tools/clang/lib/Tooling/../../include/clang/Basic/CommentOptions.h:</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span> </div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Basic/ObjCRuntime.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/tools/clang/lib/Tooling/../../include/clang/Basic/VersionTuple.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/Optional.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/ADT/Triple.h:</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span> </div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../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="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/Tooling/../../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="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/Tooling/../../include/clang/Basic/Sanitizers.def:</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/Tooling/../../include/clang/Basic/LangOptions.def:</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/Tooling/../../include/clang/Basic/OpenCLExtensions.def:</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/Tooling/../../include/clang/Frontend/FrontendOptions.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/Tooling/../../include/clang/Frontend/CommandLineSourceLoc.h:</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span> </div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span> /home/tstellar/llvm/include/llvm/Support/<a class="code" href="JSONCompilationDatabase_8cpp.html#aff1eaf11bcfc05c142268512eeb4e134">CommandLine</a>.h:</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span> </div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span> /home/tstellar/llvm/include/llvm/Support/raw_ostream.h:</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span> </div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Sema/<a class="code" href="classCodeCompleteOptions.html" title="Options controlling the behavior of code completion.">CodeCompleteOptions</a>.h:</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span> </div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span> /home/tstellar/llvm/tools/clang/lib/Tooling/../../include/clang/Tooling/ArgumentsAdjusters.h:</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span> </div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span> /home/tstellar/llvm/include/llvm/Support/Path.h:</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:41 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/JSONCompilationDatabase_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/JSONCompilationDatabase_8h_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/JSONCompilationDatabase_8h_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/JSONCompilationDatabase_8h_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,194 @@
+<!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: JSONCompilationDatabase.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_595f3151679c28f47cf4097124b3607a.html">Tooling</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">JSONCompilationDatabase.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="JSONCompilationDatabase_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">//===--- JSONCompilationDatabase.h - ----------------------------*- 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">//  The JSONCompilationDatabase finds compilation databases supplied as a file</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="comment">//  'compile_commands.json'.</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> <span class="preprocessor">#ifndef LLVM_CLANG_TOOLING_JSON_COMPILATION_DATABASE_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_TOOLING_JSON_COMPILATION_DATABASE_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="LLVM_8h.html" title="Forward declares and imports various common LLVM datatypes that clang wants to use unqualified...">clang/Basic/LLVM.h</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="preprocessor">#include "<a class="code" href="CompilationDatabase_8h.html">clang/Tooling/CompilationDatabase.h</a>"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="preprocessor">#include "<a class="code" href="FileMatchTrie_8h.html">clang/Tooling/FileMatchTrie.h</a>"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="preprocessor">#include "llvm/ADT/OwningPtr.h"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="preprocessor">#include "llvm/ADT/StringMap.h"</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="preprocessor">#include "llvm/ADT/StringRef.h"</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="preprocessor">#include "llvm/Support/MemoryBuffer.h"</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="preprocessor">#include "llvm/Support/SourceMgr.h"</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="preprocessor">#include "llvm/Support/YAMLParser.h"</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="preprocessor">#include <string></span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <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>clang {</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span> <span class="keyword">namespace </span>tooling {</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span> <span class="comment"></span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span> <span class="comment">/// \brief A JSON based compilation database.</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span> <span class="comment">/// JSON compilation database files must contain a list of JSON objects which</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span> <span class="comment">/// provide the command lines in the attributes 'directory', 'command' and</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span> <span class="comment">/// 'file':</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span> <span class="comment">/// [</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span> <span class="comment">///   { "directory": "<working directory of the compile>",</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span> <span class="comment">///     "command": "<compile command line>",</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span> <span class="comment">///     "file": "<path to source file>"</span></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">///   ...</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span> <span class="comment">/// ]</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span> <span class="comment">/// Each object entry defines one compile action. The specified file is</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span> <span class="comment">/// considered to be the main source file for the translation unit.</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span> <span class="comment">/// JSON compilation databases can for example be generated in CMake projects</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span> <span class="comment">/// by setting the flag -DCMAKE_EXPORT_COMPILE_COMMANDS.</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"><a class="code" href="classclang_1_1tooling_1_1JSONCompilationDatabase.html">   50</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1tooling_1_1JSONCompilationDatabase.html" title="A JSON based compilation database.">JSONCompilationDatabase</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1tooling_1_1CompilationDatabase.html" title="Interface for compilation databases.">CompilationDatabase</a> {</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span> <span class="keyword">public</span>:<span class="comment"></span></div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span> <span class="comment">  /// \brief Loads a JSON compilation database from the specified file.</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">  /// Returns NULL and sets ErrorMessage if the database could not be</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span> <span class="comment">  /// loaded from the given file.</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span> <span class="comment"></span>  <span class="keyword">static</span> <a class="code" href="classclang_1_1tooling_1_1JSONCompilationDatabase.html" title="A JSON based compilation database.">JSONCompilationDatabase</a> *<a class="code" href="classclang_1_1tooling_1_1JSONCompilationDatabase.html#ad25166d09f81e890b0a1221355b650cc" title="Loads a JSON compilation database from the specified file.">loadFromFile</a>(StringRef FilePath,</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>                                                std::string &ErrorMessage);</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 Loads a JSON compilation database from a data buffer.</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span> <span class="comment">  /// Returns NULL and sets ErrorMessage if the database could not be loaded.</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span> <span class="comment"></span>  <span class="keyword">static</span> <a class="code" href="classclang_1_1tooling_1_1JSONCompilationDatabase.html" title="A JSON based compilation database.">JSONCompilationDatabase</a> *<a class="code" href="classclang_1_1tooling_1_1JSONCompilationDatabase.html#a0b85310860d1b42bde312820c6e9e0c6" title="Loads a JSON compilation database from a data buffer.">loadFromBuffer</a>(StringRef DatabaseString,</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>                                                  std::string &ErrorMessage);</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span> <span class="comment"></span></div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span> <span class="comment">  /// \brief Returns all compile comamnds in which the specified file was</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span> <span class="comment">  /// compiled.</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span> <span class="comment">  /// FIXME: Currently FilePath must be an absolute path inside the</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span> <span class="comment">  /// source directory which does not have symlinks resolved.</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span> <span class="comment"></span>  <span class="keyword">virtual</span> std::vector<CompileCommand> <a class="code" href="classclang_1_1tooling_1_1JSONCompilationDatabase.html#a6a9bf972a0ccad748eb3440918f11fdc" title="Returns all compile comamnds in which the specified file was compiled.">getCompileCommands</a>(</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>     StringRef FilePath) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span> <span class="comment"></span></div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span> <span class="comment">  /// \brief Returns the list of all files available in the compilation database.</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span> <span class="comment">  /// These are the 'file' entries of the JSON objects.</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span> <span class="comment"></span>  <span class="keyword">virtual</span> std::vector<std::string> <a class="code" href="classclang_1_1tooling_1_1JSONCompilationDatabase.html#a7f028f906d9e8a10da8faf5b2c9fb73d" title="Returns the list of all files available in the compilation database.">getAllFiles</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span> <span class="comment"></span></div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span> <span class="comment">  /// \brief Returns all compile commands for all the files in the compilation</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span> <span class="comment">  /// database.</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span> <span class="comment"></span>  <span class="keyword">virtual</span> std::vector<CompileCommand> <a class="code" href="classclang_1_1tooling_1_1JSONCompilationDatabase.html#a129798afd1d983fccfd470b327d87962" title="Returns all compile commands for all the files in the compilation database.">getAllCompileCommands</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span> </div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span> <span class="keyword">private</span>:<span class="comment"></span></div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span> <span class="comment">  /// \brief Constructs a JSON compilation database on a memory buffer.</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span> <span class="comment"></span>  <a class="code" href="classclang_1_1tooling_1_1JSONCompilationDatabase.html" title="A JSON based compilation database.">JSONCompilationDatabase</a>(llvm::MemoryBuffer *Database)</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>     : Database(Database), YAMLStream(Database->getBuffer(), SM) {}</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 Parses the database file and creates the index.</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span> <span class="comment">  /// Returns whether parsing succeeded. Sets ErrorMessage if parsing</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span> <span class="comment">  /// failed.</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span> <span class="comment"></span>  <span class="keywordtype">bool</span> parse(std::string &ErrorMessage);</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="comment">// Tuple (directory, commandline) where 'commandline' pointing to the</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>   <span class="comment">// corresponding nodes in the YAML stream.</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>   <span class="keyword">typedef</span> std::pair<llvm::yaml::ScalarNode*,</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>                     llvm::yaml::ScalarNode*> CompileCommandRef;</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span> <span class="comment"></span></div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span> <span class="comment">  /// \brief Converts the given array of CompileCommandRefs to CompileCommands.</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span> <span class="comment"></span>  <span class="keywordtype">void</span> getCommands(<a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<CompileCommandRef></a> CommandsRef,</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>                    std::vector<CompileCommand> &Commands) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span> </div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>   <span class="comment">// Maps file paths to the compile command lines for that file.</span></div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>   llvm::StringMap< std::vector<CompileCommandRef> > IndexByFile;</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span> </div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>   <a class="code" href="classclang_1_1tooling_1_1FileMatchTrie.html" title="A trie to efficiently match against the entries of the compilation database in order of matching suff...">FileMatchTrie</a> MatchTrie;</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>   <a class="code" href="classllvm_1_1OwningPtr.html">OwningPtr<llvm::MemoryBuffer></a> Database;</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>   <a class="code" href="Format_8cpp.html#a8b28f9f83ac8256fbde7e45b0f874f27">llvm::SourceMgr</a> SM;</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>   llvm::yaml::Stream YAMLStream;</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span> };</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span> </div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span> } <span class="comment">// end namespace tooling</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span> } <span class="comment">// end namespace clang</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span> </div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span> <span class="preprocessor">#endif // LLVM_CLANG_TOOLING_JSON_COMPILATION_DATABASE_H</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:41 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/Job_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Job_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Job_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Job_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,260 @@
+<!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: Job.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_79a4e43f5883e96ea4f45c2e67339e2c.html">Driver</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">Job.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="Job_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">//===--- Job.cpp - Command to Execute -------------------------------------===//</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">//                     The LLVM Compiler Infrastructure</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment">// This file is distributed under the University of Illinois Open Source</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">// License. See LICENSE.TXT for details.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span> </div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span> <span class="preprocessor">#include "<a class="code" href="Job_8h.html">clang/Driver/Job.h</a>"</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="preprocessor">#include "llvm/ADT/STLExtras.h"</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="preprocessor">#include "llvm/ADT/StringRef.h"</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> <span class="preprocessor">#include "llvm/ADT/StringSwitch.h"</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> <span class="preprocessor">#include "llvm/Support/Program.h"</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> <span class="preprocessor">#include "llvm/Support/raw_ostream.h"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="preprocessor">#include <cassert></span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="keyword">using namespace </span>clang::driver;</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="keyword">using</span> llvm::raw_ostream;</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="keyword">using</span> llvm::StringRef;</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> </div>
+<div class="line"><a name="l00021"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Job.html#a234622c2e1fdae9d01450502ab53ed26">   21</a></span> <a class="code" href="classclang_1_1driver_1_1Job.html#a234622c2e1fdae9d01450502ab53ed26">Job::~Job</a>() {}</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Command.html#a3d6cd861d158216cb4eca2fe88f5a3d3">   23</a></span> <a class="code" href="classclang_1_1driver_1_1Command.html#a3d6cd861d158216cb4eca2fe88f5a3d3">Command::Command</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> &_Source, <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Tool.html" title="Tool - Information on a specific compilation tool.">Tool</a> &_Creator,</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>                  <span class="keyword">const</span> <span class="keywordtype">char</span> *_Executable,</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>                  <span class="keyword">const</span> ArgStringList &_Arguments)</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>     : <a class="code" href="classclang_1_1driver_1_1Job.html">Job</a>(CommandClass), Source(_Source), Creator(_Creator),</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>       Executable(_Executable), Arguments(_Arguments) {}</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="Job_8cpp.html#a28956410cbf0e55627eca945a68f083c">   29</a></span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="Job_8cpp.html#a28956410cbf0e55627eca945a68f083c">skipArgs</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *Flag) {</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>   <span class="comment">// These flags are all of the form -Flag <Arg> and are treated as two</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>   <span class="comment">// arguments.  Therefore, we need to skip the flag and the next argument.</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>   <span class="keywordtype">bool</span> Res = llvm::StringSwitch<bool>(Flag)</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>     .Cases(<span class="stringliteral">"-I"</span>, <span class="stringliteral">"-MF"</span>, <span class="stringliteral">"-MT"</span>, <span class="stringliteral">"-MQ"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>     .Cases(<span class="stringliteral">"-o"</span>, <span class="stringliteral">"-coverage-file"</span>, <span class="stringliteral">"-dependency-file"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>     .Cases(<span class="stringliteral">"-fdebug-compilation-dir"</span>, <span class="stringliteral">"-idirafter"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>     .Cases(<span class="stringliteral">"-include"</span>, <span class="stringliteral">"-include-pch"</span>, <span class="stringliteral">"-internal-isystem"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>     .Cases(<span class="stringliteral">"-internal-externc-isystem"</span>, <span class="stringliteral">"-iprefix"</span>, <span class="stringliteral">"-iwithprefix"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>     .Cases(<span class="stringliteral">"-iwithprefixbefore"</span>, <span class="stringliteral">"-isysroot"</span>, <span class="stringliteral">"-isystem"</span>, <span class="stringliteral">"-iquote"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>     .Cases(<span class="stringliteral">"-resource-dir"</span>, <span class="stringliteral">"-serialize-diagnostic-file"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>     .Case(<span class="stringliteral">"-dwarf-debug-flags"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>     .Default(<span class="keyword">false</span>);</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span> </div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>   <span class="comment">// Match found.</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>   <span class="keywordflow">if</span> (Res)</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>     <span class="keywordflow">return</span> 2;</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span> </div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>   <span class="comment">// The remaining flags are treated as a single argument.</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span> </div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>   <span class="comment">// These flags are all of the form -Flag and have no second argument.</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>   Res = llvm::StringSwitch<bool>(Flag)</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>     .Cases(<span class="stringliteral">"-M"</span>, <span class="stringliteral">"-MM"</span>, <span class="stringliteral">"-MG"</span>, <span class="stringliteral">"-MP"</span>, <span class="stringliteral">"-MD"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>     .Case(<span class="stringliteral">"-MMD"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>     .Default(<span class="keyword">false</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="comment">// Match found.</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>   <span class="keywordflow">if</span> (Res)</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>     <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span> </div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>   <span class="comment">// These flags are treated as a single argument (e.g., -F<Dir>).</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>   StringRef FlagRef(Flag);</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>   <span class="keywordflow">if</span> (FlagRef.startswith(<span class="stringliteral">"-F"</span>) || FlagRef.startswith(<span class="stringliteral">"-I"</span>))</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>     <span class="keywordflow">return</span> 1;</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span> </div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>   <span class="keywordflow">return</span> 0;</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="Job_8cpp.html#a89ec02042d083fe5fff6a91676863e92">   67</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="Job_8cpp.html#a89ec02042d083fe5fff6a91676863e92">quoteNextArg</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *flag) {</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>   <span class="keywordflow">return</span> llvm::StringSwitch<bool>(flag)</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>     .Case(<span class="stringliteral">"-D"</span>, <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>     .Default(<span class="keyword">false</span>);</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span> }</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span> </div>
+<div class="line"><a name="l00073"></a><span class="lineno"><a class="code" href="Job_8cpp.html#ab7edd7093fdc31e8d609591c6ea8f4f7">   73</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="Job_8cpp.html#ab7edd7093fdc31e8d609591c6ea8f4f7">PrintArg</a>(raw_ostream &OS, <span class="keyword">const</span> <span class="keywordtype">char</span> *Arg, <span class="keywordtype">bool</span> Quote) {</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>   <span class="keyword">const</span> <span class="keywordtype">bool</span> Escape = std::strpbrk(Arg, <span class="stringliteral">"\"\\$"</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">if</span> (!Quote && !Escape) {</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>     OS << Arg;</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>   }</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span> </div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>   <span class="comment">// Quote and escape. This isn't really complete, but good enough.</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>   OS << <span class="charliteral">'"'</span>;</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>   <span class="keywordflow">while</span> (<span class="keyword">const</span> <span class="keywordtype">char</span> c = *Arg++) {</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>     <span class="keywordflow">if</span> (c == <span class="charliteral">'"'</span> || c == <span class="charliteral">'\\'</span> || c == <span class="charliteral">'$'</span>)</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>       OS << <span class="charliteral">'\\'</span>;</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>     OS << c;</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>   OS << <span class="charliteral">'"'</span>;</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> </div>
+<div class="line"><a name="l00091"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Command.html#a756e3765edc05da289e6e28e3de6cc76">   91</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1driver_1_1Command.html#a756e3765edc05da289e6e28e3de6cc76">Command::Print</a>(raw_ostream &OS, <span class="keyword">const</span> <span class="keywordtype">char</span> *Terminator, <span class="keywordtype">bool</span> Quote,</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>                     <span class="keywordtype">bool</span> CrashReport)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>   OS << <span class="stringliteral">" \""</span> << Executable << <span class="charliteral">'"'</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="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0, e = Arguments.size(); i < e; ++i) {</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>     <span class="keyword">const</span> <span class="keywordtype">char</span> *<span class="keyword">const</span> Arg = Arguments[i];</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">if</span> (CrashReport) {</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>       <span class="keywordflow">if</span> (<span class="keywordtype">int</span> Skip = <a class="code" href="Job_8cpp.html#a28956410cbf0e55627eca945a68f083c">skipArgs</a>(Arg)) {</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>         i += Skip - 1;</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>         <span class="keywordflow">continue</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>     }</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span> </div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>     OS << <span class="charliteral">' '</span>;</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>     <a class="code" href="Job_8cpp.html#ab7edd7093fdc31e8d609591c6ea8f4f7">PrintArg</a>(OS, Arg, Quote);</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="keywordflow">if</span> (CrashReport && <a class="code" href="Job_8cpp.html#a89ec02042d083fe5fff6a91676863e92">quoteNextArg</a>(Arg) && i + 1 < e) {</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>       OS << <span class="charliteral">' '</span>;</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>       <a class="code" href="Job_8cpp.html#ab7edd7093fdc31e8d609591c6ea8f4f7">PrintArg</a>(OS, Arguments[++i], <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>     }</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>   }</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>   OS << Terminator;</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span> }</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span> </div>
+<div class="line"><a name="l00116"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Command.html#a5b2b432e1c33d92674adeeb4330c2150">  116</a></span> <span class="keywordtype">int</span> <a class="code" href="classclang_1_1driver_1_1Command.html#a5b2b432e1c33d92674adeeb4330c2150">Command::Execute</a>(<span class="keyword">const</span> StringRef **Redirects, std::string *ErrMsg,</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>                      <span class="keywordtype">bool</span> *ExecutionFailed)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<const char*, 128></a> Argv;</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>   Argv.push_back(Executable);</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>   <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0, e = Arguments.size(); i != e; ++i)</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>     Argv.push_back(Arguments[i]);</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>   Argv.push_back(0);</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>   <span class="keywordflow">return</span> llvm::sys::ExecuteAndWait(Executable, Argv.data(), <span class="comment">/*env*/</span> 0,</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>                                    Redirects, <span class="comment">/*secondsToWait*/</span> 0,</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>                                    <span class="comment">/*memoryLimit*/</span> 0, ErrMsg, ExecutionFailed);</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_1driver_1_1FallbackCommand.html#ad61590c5f0c8564a9576cb65fd912d3c">  129</a></span> <a class="code" href="classclang_1_1driver_1_1FallbackCommand.html#ad61590c5f0c8564a9576cb65fd912d3c">FallbackCommand::FallbackCommand</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> &Source_, <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Tool.html" title="Tool - Information on a specific compilation tool.">Tool</a> &Creator_,</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>                                  <span class="keyword">const</span> <span class="keywordtype">char</span> *Executable_,</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>                                  <span class="keyword">const</span> ArgStringList &Arguments_,</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>                                  <a class="code" href="classclang_1_1driver_1_1Command.html">Command</a> *Fallback_)</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>     : <a class="code" href="classclang_1_1driver_1_1Command.html">Command</a>(Source_, Creator_, Executable_, Arguments_), Fallback(Fallback_) {</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_1driver_1_1FallbackCommand.html#a60d38c638aa7ea506caf31c8aa9406b5">  136</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1driver_1_1FallbackCommand.html#a60d38c638aa7ea506caf31c8aa9406b5">FallbackCommand::Print</a>(raw_ostream &OS, <span class="keyword">const</span> <span class="keywordtype">char</span> *Terminator,</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>                             <span class="keywordtype">bool</span> Quote, <span class="keywordtype">bool</span> CrashReport)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>   <a class="code" href="classclang_1_1driver_1_1Command.html#a756e3765edc05da289e6e28e3de6cc76">Command::Print</a>(OS, <span class="stringliteral">""</span>, Quote, CrashReport);</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>   OS << <span class="stringliteral">" ||"</span>;</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>   Fallback->Print(OS, Terminator, Quote, CrashReport);</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span> }</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span> </div>
+<div class="line"><a name="l00143"></a><span class="lineno"><a class="code" href="Job_8cpp.html#a055ad60de9b572a5e6619a3823abbe90">  143</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="Job_8cpp.html#a055ad60de9b572a5e6619a3823abbe90">ShouldFallback</a>(<span class="keywordtype">int</span> ExitCode) {</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>   <span class="comment">// FIXME: We really just want to fall back for internal errors, such</span></div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>   <span class="comment">// as when some symbol cannot be mangled, when we should be able to</span></div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>   <span class="comment">// parse something but can't, etc.</span></div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>   <span class="keywordflow">return</span> ExitCode != 0;</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span> }</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span> </div>
+<div class="line"><a name="l00150"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1FallbackCommand.html#a82d52bb28739d91e7a3e0551b5c306b5">  150</a></span> <span class="keywordtype">int</span> <a class="code" href="classclang_1_1driver_1_1FallbackCommand.html#a82d52bb28739d91e7a3e0551b5c306b5">FallbackCommand::Execute</a>(<span class="keyword">const</span> StringRef **Redirects, std::string *ErrMsg,</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>                              <span class="keywordtype">bool</span> *ExecutionFailed)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>   <span class="keywordtype">int</span> PrimaryStatus = <a class="code" href="classclang_1_1driver_1_1Command.html#a5b2b432e1c33d92674adeeb4330c2150">Command::Execute</a>(Redirects, ErrMsg, ExecutionFailed);</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>   <span class="keywordflow">if</span> (!<a class="code" href="Job_8cpp.html#a055ad60de9b572a5e6619a3823abbe90">ShouldFallback</a>(PrimaryStatus))</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>     <span class="keywordflow">return</span> PrimaryStatus;</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span> </div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>   <span class="comment">// Clear ExecutionFailed and ErrMsg before falling back.</span></div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>   <span class="keywordflow">if</span> (ErrMsg)</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>     ErrMsg->clear();</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>   <span class="keywordflow">if</span> (ExecutionFailed)</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>     *ExecutionFailed = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span> </div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>   <span class="keywordtype">int</span> SecondaryStatus = Fallback->Execute(Redirects, ErrMsg, ExecutionFailed);</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>   <span class="keywordflow">return</span> SecondaryStatus;</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> </div>
+<div class="line"><a name="l00166"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1JobList.html#ac4f70441c87542b99bb423518bbc1e4c">  166</a></span> <a class="code" href="classclang_1_1driver_1_1JobList.html#ac4f70441c87542b99bb423518bbc1e4c">JobList::JobList</a>() : <a class="code" href="classclang_1_1driver_1_1Job.html">Job</a>(JobListClass) {}</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span> </div>
+<div class="line"><a name="l00168"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1JobList.html#ad4af828413487264d98dc280a2e8d659">  168</a></span> <a class="code" href="classclang_1_1driver_1_1JobList.html#ad4af828413487264d98dc280a2e8d659">JobList::~JobList</a>() {</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>   <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1driver_1_1JobList.html#ae3cb07bf94ee55baf2b8aed40462c62b">iterator</a> it = <a class="code" href="classclang_1_1driver_1_1JobList.html#aeeda6d07404d2522b551cdbc5d4fa98c">begin</a>(), ie = <a class="code" href="classclang_1_1driver_1_1JobList.html#aa57291941ad8fa332bb20995b76cd70e">end</a>(); it != ie; ++it)</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>     <span class="keyword">delete</span> *it;</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> </div>
+<div class="line"><a name="l00173"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1JobList.html#a984eb6e2c0fe1bf26ab1044df15e54e6">  173</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1driver_1_1JobList.html#a984eb6e2c0fe1bf26ab1044df15e54e6">JobList::Print</a>(raw_ostream &OS, <span class="keyword">const</span> <span class="keywordtype">char</span> *Terminator, <span class="keywordtype">bool</span> Quote,</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>                     <span class="keywordtype">bool</span> CrashReport)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>   <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1driver_1_1JobList.html#a90d7489ef37681b67257498f301b6abe">const_iterator</a> it = <a class="code" href="classclang_1_1driver_1_1JobList.html#aeeda6d07404d2522b551cdbc5d4fa98c">begin</a>(), ie = <a class="code" href="classclang_1_1driver_1_1JobList.html#aa57291941ad8fa332bb20995b76cd70e">end</a>(); it != ie; ++it)</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>     (*it)->Print(OS, Terminator, Quote, CrashReport);</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_1driver_1_1JobList.html#a5ac0da9146d5e81b00a8a9dafd341a5c">  179</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1driver_1_1JobList.html#a5ac0da9146d5e81b00a8a9dafd341a5c" title="Clear the job list.">JobList::clear</a>() {</div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>   DeleteContainerPointers(Jobs);</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span> }</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:41 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/Job_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Job_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Job_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Job_8d_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,181 @@
+<!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: Job.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_79a4e43f5883e96ea4f45c2e67339e2c.html">Driver</a></li><li class="navelem"><a class="el" href="dir_7586acc61ec3e12e4bc52d53567f5268.html">Release+Asserts</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">Job.d</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="Job_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/Driver/Release+Asserts/Job.o \</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>  /home/tstellar/llvm/tools/clang/lib/Driver/Release+Asserts/Job.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>  Job.cpp \</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Job.h \</div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>  /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Basic/LLVM.h \</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>  /home/tstellar/llvm/include/llvm/Support/Casting.h \</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>  /home/tstellar/llvm/include/llvm/Support/type_traits.h \</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>  /home/tstellar/llvm/include/llvm/Support/DataTypes.h \</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>  /home/tstellar/llvm/include/llvm/ADT/None.h \</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>  /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h \</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>  /home/tstellar/llvm/include/llvm/Support/Compiler.h \</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>  /home/tstellar/llvm/include/llvm/Config/llvm-config.h \</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>  /home/tstellar/llvm/include/llvm/ADT/SmallVector.h \</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>  /home/tstellar/llvm/include/llvm/Support/AlignOf.h \</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>  /home/tstellar/llvm/include/llvm/Support/MathExtras.h \</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>  /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h \</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>  /home/tstellar/llvm/include/llvm/Option/Option.h \</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>  /home/tstellar/llvm/include/llvm/ADT/StringRef.h \</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>  /home/tstellar/llvm/include/llvm/Option/OptTable.h \</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>  /home/tstellar/llvm/include/llvm/ADT/StringSet.h \</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>  /home/tstellar/llvm/include/llvm/ADT/StringMap.h \</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>  /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h \</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>  /home/tstellar/llvm/include/llvm/Option/OptSpecifier.h \</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>  /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h \</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>  /home/tstellar/llvm/include/llvm/ADT/STLExtras.h \</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>  /home/tstellar/llvm/include/llvm/ADT/StringSwitch.h \</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>  /home/tstellar/llvm/include/llvm/Support/Program.h \</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>  /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h \</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>  /home/tstellar/llvm/include/llvm/Support/Path.h \</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>  /home/tstellar/llvm/include/llvm/ADT/SmallString.h \</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>  /home/tstellar/llvm/include/llvm/ADT/Twine.h \</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>  /home/tstellar/llvm/include/llvm/Support/system_error.h \</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>  /home/tstellar/llvm/include/llvm/Support/raw_ostream.h \</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>  /home/tstellar/llvm/include/llvm/Support/FileSystem.h \</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>  /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h \</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>  /home/tstellar/llvm/include/llvm/Support/TimeValue.h</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span> </div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span> /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Driver/Job.h:</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span> </div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span> /home/tstellar/llvm/tools/clang/lib/Driver/../../include/clang/Basic/LLVM.h:</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> /home/tstellar/llvm/include/llvm/Support/Casting.h:</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> /home/tstellar/llvm/include/llvm/Support/type_traits.h:</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> /home/tstellar/llvm/include/llvm/Support/DataTypes.h:</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span> </div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span> /home/tstellar/llvm/include/llvm/ADT/None.h:</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span> </div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span> /home/tstellar/llvm/include/llvm/ADT/OwningPtr.h:</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> /home/tstellar/llvm/include/llvm/Support/Compiler.h:</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> /home/tstellar/llvm/include/llvm/Config/llvm-config.h:</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span> </div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span> /home/tstellar/llvm/include/llvm/ADT/SmallVector.h:</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> /home/tstellar/llvm/include/llvm/Support/AlignOf.h:</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span> </div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span> /home/tstellar/llvm/include/llvm/Support/MathExtras.h:</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> /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.h:</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span> </div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span> /home/tstellar/llvm/include/llvm/Option/Option.h:</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> /home/tstellar/llvm/include/llvm/ADT/StringRef.h:</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> /home/tstellar/llvm/include/llvm/Option/OptTable.h:</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> /home/tstellar/llvm/include/llvm/ADT/StringSet.h:</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span> </div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span> /home/tstellar/llvm/include/llvm/ADT/StringMap.h:</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span> </div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span> /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.h:</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span> </div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span> /home/tstellar/llvm/include/llvm/Option/OptSpecifier.h:</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span> </div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span> /home/tstellar/llvm/include/llvm/Support/ErrorHandling.h:</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span> </div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span> /home/tstellar/llvm/include/llvm/ADT/STLExtras.h:</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span> </div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span> /home/tstellar/llvm/include/llvm/ADT/StringSwitch.h:</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span> </div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span> /home/tstellar/llvm/include/llvm/Support/Program.h:</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span> </div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span> /home/tstellar/llvm/include/llvm/ADT/ArrayRef.h:</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span> </div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span> /home/tstellar/llvm/include/llvm/Support/Path.h:</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span> </div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span> /home/tstellar/llvm/include/llvm/ADT/SmallString.h:</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span> </div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span> /home/tstellar/llvm/include/llvm/ADT/Twine.h:</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span> </div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span> /home/tstellar/llvm/include/llvm/Support/system_error.h:</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span> </div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span> /home/tstellar/llvm/include/llvm/Support/raw_ostream.h:</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span> </div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span> /home/tstellar/llvm/include/llvm/Support/FileSystem.h:</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span> </div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span> /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h:</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span> </div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span> /home/tstellar/llvm/include/llvm/Support/TimeValue.h:</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:41 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/Job_8h_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Job_8h_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Job_8h_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/Job_8h_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,240 @@
+<!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: Job.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_21b2f75600cfba94559a3417605488ac.html">Driver</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">Job.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="Job_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">//===--- Job.h - Commands to Execute ----------------------------*- C++ -*-===//</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span> <span class="comment">//                     The LLVM Compiler Infrastructure</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span> <span class="comment">// This file is distributed under the University of Illinois Open Source</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span> <span class="comment">// License. See LICENSE.TXT for details.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span> </div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span> <span class="preprocessor">#ifndef CLANG_DRIVER_JOB_H_</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="preprocessor"></span><span class="preprocessor">#define CLANG_DRIVER_JOB_H_</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="preprocessor"></span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> <span class="preprocessor">#include "<a class="code" href="LLVM_8h.html" title="Forward declares and imports various common LLVM datatypes that clang wants to use unqualified...">clang/Basic/LLVM.h</a>"</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> <span class="preprocessor">#include "llvm/ADT/OwningPtr.h"</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> <span class="preprocessor">#include "llvm/ADT/SmallVector.h"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="preprocessor">#include "llvm/Option/Option.h"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> </div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="keyword">namespace </span>llvm {</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>   <span class="keyword">class </span>raw_ostream;</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> }</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> </div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="keyword">namespace </span>clang {</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="keyword">namespace </span>driver {</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="keyword">class </span><a class="code" href="Tooling_8cpp.html#a611b216472a9171383c588b3c166b0a1">Action</a>;</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="keyword">class </span>Command;</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="keyword">class </span>Tool;</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> </div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">// Re-export this as clang::driver::ArgStringList.</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="keyword">using</span> llvm::opt::ArgStringList;</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span> </div>
+<div class="line"><a name="l00031"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Job.html">   31</a></span> <span class="keyword">class </span><a class="code" href="classclang_1_1driver_1_1Job.html">Job</a> {</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00033"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Job.html#a0b587535d9a877381fa2bd021717325c">   33</a></span>   <span class="keyword">enum</span> <a class="code" href="classclang_1_1driver_1_1Job.html#a0b587535d9a877381fa2bd021717325c">JobClass</a> {</div>
+<div class="line"><a name="l00034"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Job.html#a0b587535d9a877381fa2bd021717325ca490e8d93611abf651a5884616085adaf">   34</a></span>     <a class="code" href="classclang_1_1driver_1_1Job.html#a0b587535d9a877381fa2bd021717325ca490e8d93611abf651a5884616085adaf">CommandClass</a>,</div>
+<div class="line"><a name="l00035"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Job.html#a0b587535d9a877381fa2bd021717325ca6dabf4d558d7d146a2e4c19fbddf57d0">   35</a></span>     <a class="code" href="classclang_1_1driver_1_1Job.html#a0b587535d9a877381fa2bd021717325ca6dabf4d558d7d146a2e4c19fbddf57d0">FallbackCommandClass</a>,</div>
+<div class="line"><a name="l00036"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Job.html#a0b587535d9a877381fa2bd021717325caa4383c3300967ebceafeaf5955da68c1">   36</a></span>     <a class="code" href="classclang_1_1driver_1_1Job.html#a0b587535d9a877381fa2bd021717325caa4383c3300967ebceafeaf5955da68c1">JobListClass</a></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>   };</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span> </div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>   <a class="code" href="classclang_1_1driver_1_1Job.html#a0b587535d9a877381fa2bd021717325c">JobClass</a> <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a>;</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> <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00043"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Job.html#a00da4c27068ce2adb752824c9171e514">   43</a></span>   <a class="code" href="classclang_1_1driver_1_1Job.html#a00da4c27068ce2adb752824c9171e514">Job</a>(<a class="code" href="classclang_1_1driver_1_1Job.html#a0b587535d9a877381fa2bd021717325c">JobClass</a> _Kind) : <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a>(_Kind) {}</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>   <span class="keyword">virtual</span> <a class="code" href="classclang_1_1driver_1_1Job.html#a234622c2e1fdae9d01450502ab53ed26">~Job</a>();</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span> </div>
+<div class="line"><a name="l00047"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Job.html#ab307a1dc07dce3e93b325289b645e543">   47</a></span>   <a class="code" href="classclang_1_1driver_1_1Job.html#a0b587535d9a877381fa2bd021717325c">JobClass</a> <a class="code" href="classclang_1_1driver_1_1Job.html#ab307a1dc07dce3e93b325289b645e543">getKind</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="ChrootChecker_8cpp.html#aa10c9e8951b8ccf714a59ec321bdac5b">Kind</a>; }</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> <span class="comment">  /// Print - Print this Job in -### format.</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span> <span class="comment">  ///</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span> <span class="comment">  /// \param OS - The stream to print on.</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span> <span class="comment">  /// \param Terminator - A string to print at the end of the line.</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span> <span class="comment">  /// \param Quote - Should separate arguments be quoted.</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span> <span class="comment">  /// \param CrashReport - Whether to print for inclusion in a crash report.</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span> <span class="comment"></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1driver_1_1Job.html#ad3b5d39e1c13c9628f797fe2ccfc0a7a">Print</a>(llvm::raw_ostream &OS, <span class="keyword">const</span> <span class="keywordtype">char</span> *Terminator,</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>                      <span class="keywordtype">bool</span> Quote, <span class="keywordtype">bool</span> CrashReport = <span class="keyword">false</span>) <span class="keyword">const</span> = 0;</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="comment"></span></div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span> <span class="comment">/// Command - An executable path/name and argument vector to</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span> <span class="comment">/// execute.</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Command.html">   61</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1driver_1_1Command.html">Command</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1driver_1_1Job.html">Job</a> {<span class="comment"></span></div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span> <span class="comment">  /// Source - The action which caused the creation of this job.</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span> <span class="comment"></span>  <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> &Source;</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span> <span class="comment"></span></div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span> <span class="comment">  /// Tool - The tool which caused the creation of this job.</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span> <span class="comment"></span>  <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Tool.html" title="Tool - Information on a specific compilation tool.">Tool</a> &Creator;</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span> <span class="comment"></span></div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span> <span class="comment">  /// The executable to run.</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span> <span class="comment"></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *Executable;</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span> <span class="comment"></span></div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span> <span class="comment">  /// The list of program arguments (not including the implicit first</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span> <span class="comment">  /// argument, which will be the executable).</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span> <span class="comment"></span>  llvm::opt::ArgStringList Arguments;</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span> </div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>   <a class="code" href="classclang_1_1driver_1_1Command.html#a3d6cd861d158216cb4eca2fe88f5a3d3">Command</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> &_Source, <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Tool.html" title="Tool - Information on a specific compilation tool.">Tool</a> &_Creator, <span class="keyword">const</span> <span class="keywordtype">char</span> *_Executable,</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>           <span class="keyword">const</span> llvm::opt::ArgStringList &_Arguments);</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>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1driver_1_1Command.html#a756e3765edc05da289e6e28e3de6cc76">Print</a>(llvm::raw_ostream &OS, <span class="keyword">const</span> <span class="keywordtype">char</span> *Terminator,</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>                      <span class="keywordtype">bool</span> Quote, <span class="keywordtype">bool</span> CrashReport = <span class="keyword">false</span>) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span> </div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>   <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classclang_1_1driver_1_1Command.html#a5b2b432e1c33d92674adeeb4330c2150">Execute</a>(<span class="keyword">const</span> StringRef **Redirects, std::string *ErrMsg,</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>                       <span class="keywordtype">bool</span> *ExecutionFailed) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span> <span class="comment"></span></div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span> <span class="comment">  /// getSource - Return the Action which caused the creation of this job.</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Command.html#a7a55e2e356c871b97582852d93e1bfb1">   86</a></span> <span class="comment"></span>  <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> &<a class="code" href="classclang_1_1driver_1_1Command.html#a7a55e2e356c871b97582852d93e1bfb1" title="getSource - Return the Action which caused the creation of this job.">getSource</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Source; }</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span> <span class="comment"></span></div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span> <span class="comment">  /// getCreator - Return the Tool which caused the creation of this job.</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Command.html#a170fb38a9b2009c1c212020f1393b4e6">   89</a></span> <span class="comment"></span>  <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Tool.html" title="Tool - Information on a specific compilation tool.">Tool</a> &<a class="code" href="classclang_1_1driver_1_1Command.html#a170fb38a9b2009c1c212020f1393b4e6" title="getCreator - Return the Tool which caused the creation of this job.">getCreator</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Creator; }</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span> </div>
+<div class="line"><a name="l00091"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Command.html#a20347014816c55322fab68dd465a9361">   91</a></span>   <span class="keyword">const</span> llvm::opt::ArgStringList &<a class="code" href="classclang_1_1driver_1_1Command.html#a20347014816c55322fab68dd465a9361">getArguments</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Arguments; }</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span> </div>
+<div class="line"><a name="l00093"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1Command.html#a173b0ff8393b1868644050621c54e88d">   93</a></span>   <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1driver_1_1Command.html#a173b0ff8393b1868644050621c54e88d">classof</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Job.html">Job</a> *J) {</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>     <span class="keywordflow">return</span> J-><a class="code" href="classclang_1_1driver_1_1Job.html#ab307a1dc07dce3e93b325289b645e543">getKind</a>() == <a class="code" href="classclang_1_1driver_1_1Job.html#a0b587535d9a877381fa2bd021717325ca490e8d93611abf651a5884616085adaf">CommandClass</a> ||</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>            J-><a class="code" href="classclang_1_1driver_1_1Job.html#ab307a1dc07dce3e93b325289b645e543">getKind</a>() == <a class="code" href="classclang_1_1driver_1_1Job.html#a0b587535d9a877381fa2bd021717325ca6dabf4d558d7d146a2e4c19fbddf57d0">FallbackCommandClass</a>;</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>   }</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span> };</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span> <span class="comment"></span></div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span> <span class="comment">/// Like Command, but with a fallback which is executed in case</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span> <span class="comment">/// the primary command crashes.</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1FallbackCommand.html">  101</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1driver_1_1FallbackCommand.html">FallbackCommand</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1driver_1_1Command.html">Command</a> {</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>   <a class="code" href="classclang_1_1driver_1_1FallbackCommand.html#ad61590c5f0c8564a9576cb65fd912d3c">FallbackCommand</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Action.html">Action</a> &Source_, <span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Tool.html" title="Tool - Information on a specific compilation tool.">Tool</a> &Creator_,</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>                   <span class="keyword">const</span> <span class="keywordtype">char</span> *Executable_, <span class="keyword">const</span> ArgStringList &Arguments_,</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>                   <a class="code" href="classclang_1_1driver_1_1Command.html">Command</a> *Fallback_);</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">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1driver_1_1FallbackCommand.html#a60d38c638aa7ea506caf31c8aa9406b5">Print</a>(llvm::raw_ostream &OS, <span class="keyword">const</span> <span class="keywordtype">char</span> *Terminator,</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>                      <span class="keywordtype">bool</span> Quote, <span class="keywordtype">bool</span> CrashReport = <span class="keyword">false</span>) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span> </div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>   <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classclang_1_1driver_1_1FallbackCommand.html#a82d52bb28739d91e7a3e0551b5c306b5">Execute</a>(<span class="keyword">const</span> StringRef **Redirects, std::string *ErrMsg,</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>                       <span class="keywordtype">bool</span> *ExecutionFailed) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span> </div>
+<div class="line"><a name="l00113"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1FallbackCommand.html#ac5962a82733d3b0624bb94d440c7e730">  113</a></span>   <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1driver_1_1FallbackCommand.html#ac5962a82733d3b0624bb94d440c7e730">classof</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Job.html">Job</a> *J) {</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>     <span class="keywordflow">return</span> J-><a class="code" href="classclang_1_1driver_1_1Job.html#ab307a1dc07dce3e93b325289b645e543">getKind</a>() == <a class="code" href="classclang_1_1driver_1_1Job.html#a0b587535d9a877381fa2bd021717325ca6dabf4d558d7d146a2e4c19fbddf57d0">FallbackCommandClass</a>;</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> </div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>   <a class="code" href="classllvm_1_1OwningPtr.html">OwningPtr<Command></a> Fallback;</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span> };</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span> <span class="comment"></span></div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span> <span class="comment">/// JobList - A sequence of jobs to perform.</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1JobList.html">  122</a></span> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classclang_1_1driver_1_1JobList.html" title="JobList - A sequence of jobs to perform.">JobList</a> : <span class="keyword">public</span> <a class="code" href="classclang_1_1driver_1_1Job.html">Job</a> {</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00124"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1JobList.html#ab0e2f0b0c8d40a04ab80ae072ff8d8d1">  124</a></span>   <span class="keyword">typedef</span> <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<Job*, 4></a> <a class="code" href="classclang_1_1driver_1_1JobList.html#ab0e2f0b0c8d40a04ab80ae072ff8d8d1">list_type</a>;</div>
+<div class="line"><a name="l00125"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1JobList.html#a841da83483264e5b82a60a6c3bf9ad56">  125</a></span>   <span class="keyword">typedef</span> list_type::size_type <a class="code" href="classclang_1_1driver_1_1JobList.html#a841da83483264e5b82a60a6c3bf9ad56">size_type</a>;</div>
+<div class="line"><a name="l00126"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1JobList.html#ae3cb07bf94ee55baf2b8aed40462c62b">  126</a></span>   <span class="keyword">typedef</span> list_type::iterator <a class="code" href="classclang_1_1driver_1_1JobList.html#ae3cb07bf94ee55baf2b8aed40462c62b">iterator</a>;</div>
+<div class="line"><a name="l00127"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1JobList.html#a90d7489ef37681b67257498f301b6abe">  127</a></span>   <span class="keyword">typedef</span> list_type::const_iterator <a class="code" href="classclang_1_1driver_1_1JobList.html#a90d7489ef37681b67257498f301b6abe">const_iterator</a>;</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span> </div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>   <a class="code" href="classllvm_1_1SmallVector.html">list_type</a> Jobs;</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> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>   <a class="code" href="classclang_1_1driver_1_1JobList.html#ac4f70441c87542b99bb423518bbc1e4c">JobList</a>();</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>   <span class="keyword">virtual</span> <a class="code" href="classclang_1_1driver_1_1JobList.html#ad4af828413487264d98dc280a2e8d659">~JobList</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>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1driver_1_1JobList.html#a984eb6e2c0fe1bf26ab1044df15e54e6">Print</a>(llvm::raw_ostream &OS, <span class="keyword">const</span> <span class="keywordtype">char</span> *Terminator,</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>                      <span class="keywordtype">bool</span> Quote, <span class="keywordtype">bool</span> CrashReport = <span class="keyword">false</span>) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span> <span class="comment"></span></div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span> <span class="comment">  /// Add a job to the list (taking ownership).</span></div>
+<div class="line"><a name="l00140"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1JobList.html#a411e343ab8ef25273b7be7792213a746">  140</a></span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1driver_1_1JobList.html#a411e343ab8ef25273b7be7792213a746" title="Add a job to the list (taking ownership).">addJob</a>(<a class="code" href="classclang_1_1driver_1_1Job.html">Job</a> *J) { Jobs.push_back(J); }</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span> <span class="comment"></span></div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span> <span class="comment">  /// Clear the job list.</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span> <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classclang_1_1driver_1_1JobList.html#a5ac0da9146d5e81b00a8a9dafd341a5c" title="Clear the job list.">clear</a>();</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span> </div>
+<div class="line"><a name="l00145"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1JobList.html#a13d61322cf229cc8ce52421db89a0f4e">  145</a></span>   <span class="keyword">const</span> <a class="code" href="classllvm_1_1SmallVector.html">list_type</a> &<a class="code" href="classclang_1_1driver_1_1JobList.html#a13d61322cf229cc8ce52421db89a0f4e">getJobs</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Jobs; }</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_1driver_1_1JobList.html#aebe97411fc052b807180c7585a2bceb0">  147</a></span>   <a class="code" href="classclang_1_1driver_1_1JobList.html#a841da83483264e5b82a60a6c3bf9ad56">size_type</a> <a class="code" href="classclang_1_1driver_1_1JobList.html#aebe97411fc052b807180c7585a2bceb0">size</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Jobs.size(); }</div>
+<div class="line"><a name="l00148"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1JobList.html#aeeda6d07404d2522b551cdbc5d4fa98c">  148</a></span>   <a class="code" href="classclang_1_1driver_1_1JobList.html#ae3cb07bf94ee55baf2b8aed40462c62b">iterator</a> <a class="code" href="classclang_1_1driver_1_1JobList.html#aeeda6d07404d2522b551cdbc5d4fa98c">begin</a>() { <span class="keywordflow">return</span> Jobs.begin(); }</div>
+<div class="line"><a name="l00149"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1JobList.html#a34b4a950b7925053fe28b8348d0db140">  149</a></span>   <a class="code" href="classclang_1_1driver_1_1JobList.html#a90d7489ef37681b67257498f301b6abe">const_iterator</a> <a class="code" href="classclang_1_1driver_1_1JobList.html#a34b4a950b7925053fe28b8348d0db140">begin</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Jobs.begin(); }</div>
+<div class="line"><a name="l00150"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1JobList.html#aa57291941ad8fa332bb20995b76cd70e">  150</a></span>   <a class="code" href="classclang_1_1driver_1_1JobList.html#ae3cb07bf94ee55baf2b8aed40462c62b">iterator</a> <a class="code" href="classclang_1_1driver_1_1JobList.html#aa57291941ad8fa332bb20995b76cd70e">end</a>() { <span class="keywordflow">return</span> Jobs.end(); }</div>
+<div class="line"><a name="l00151"></a><span class="lineno"><a class="code" href="classclang_1_1driver_1_1JobList.html#a25654b5f7c633144105c6d500e313a51">  151</a></span>   <a class="code" href="classclang_1_1driver_1_1JobList.html#a90d7489ef37681b67257498f301b6abe">const_iterator</a> <a class="code" href="classclang_1_1driver_1_1JobList.html#a25654b5f7c633144105c6d500e313a51">end</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> Jobs.end(); }</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_1driver_1_1JobList.html#aa1079229ff81c99274fff520ec4effcd">  153</a></span>   <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classclang_1_1driver_1_1JobList.html#aa1079229ff81c99274fff520ec4effcd">classof</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1driver_1_1Job.html">Job</a> *J) {</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>     <span class="keywordflow">return</span> J-><a class="code" href="classclang_1_1driver_1_1Job.html#ab307a1dc07dce3e93b325289b645e543">getKind</a>() == <a class="code" href="classclang_1_1driver_1_1Job.html#a0b587535d9a877381fa2bd021717325caa4383c3300967ebceafeaf5955da68c1">JobListClass</a>;</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>   }</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span> };</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="comment">// end namespace driver</span></div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span> } <span class="comment">// end namespace clang</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> <span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:41 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/JumpDiagnostics_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/JumpDiagnostics_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/JumpDiagnostics_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/JumpDiagnostics_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,874 @@
+<!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: JumpDiagnostics.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_0c3cadfa2fbef89a3b8f57073e8a31f9.html">Sema</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">JumpDiagnostics.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="JumpDiagnostics_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">//===--- JumpDiagnostics.cpp - Protected scope jump 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 implements the JumpScopeChecker class, which is used to diagnose</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="comment">// jumps that enter a protected scope in an invalid way.</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="SemaInternal_8h.html">clang/Sema/SemaInternal.h</a>"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="preprocessor">#include "<a class="code" href="DeclCXX_8h.html" title="Defines the C++ Decl subclasses, other than those for templates (found in DeclTemplate.h) and friends (in DeclFriend.h).">clang/AST/DeclCXX.h</a>"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="preprocessor">#include "<a class="code" href="Expr_8h.html">clang/AST/Expr.h</a>"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="preprocessor">#include "<a class="code" href="ExprCXX_8h.html" title="Defines the clang::Expr interface and subclasses for C++ expressions.">clang/AST/ExprCXX.h</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="preprocessor">#include "<a class="code" href="StmtCXX_8h.html">clang/AST/StmtCXX.h</a>"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</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="l00021"></a><span class="lineno">   21</span> <span class="preprocessor">#include "llvm/ADT/BitVector.h"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> <span class="keyword">using namespace </span>clang;</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>{</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> <span class="comment"></span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="comment">/// JumpScopeChecker - This object is used by Sema to diagnose invalid jumps</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="comment">/// into VLA and other protected scopes.  For example, this rejects:</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">///    goto L;</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> <span class="comment">///    int a[n];</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span> <span class="comment">///  L:</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span> <span class="comment"></span><span class="keyword">class </span>JumpScopeChecker {</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>   <a class="code" href="classclang_1_1Sema.html" title="Sema - This implements semantic analysis and AST building for C.">Sema</a> &<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>;</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span> <span class="comment"></span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span> <span class="comment">  /// GotoScope - This is a record that we use to keep track of all of the</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span> <span class="comment">  /// scopes that are introduced by VLAs and other things that scope jumps like</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span> <span class="comment">  /// gotos.  This scope tree has nothing to do with the source scope tree,</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span> <span class="comment">  /// because you can have multiple VLA scopes per compound statement, and most</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span> <span class="comment">  /// compound statements don't introduce any scopes.</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span> <span class="comment"></span>  <span class="keyword">struct </span>GotoScope {<span class="comment"></span></div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span> <span class="comment">    /// ParentScope - The index in ScopeMap of the parent scope.  This is 0 for</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span> <span class="comment">    /// the parent scope is the function body.</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span> <span class="comment"></span>    <span class="keywordtype">unsigned</span> ParentScope;</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span> <span class="comment"></span></div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span> <span class="comment">    /// InDiag - The note to emit if there is a jump into this scope.</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span> <span class="comment"></span>    <span class="keywordtype">unsigned</span> InDiag;</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span> <span class="comment"></span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span> <span class="comment">    /// OutDiag - The note to emit if there is an indirect jump out</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span> <span class="comment">    /// of this scope.  Direct jumps always clean up their current scope</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span> <span class="comment">    /// in an orderly way.</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span> <span class="comment"></span>    <span class="keywordtype">unsigned</span> OutDiag;</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span> <span class="comment"></span></div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span> <span class="comment">    /// Loc - Location to emit the diagnostic.</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</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> Loc;</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span> </div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>     GotoScope(<span class="keywordtype">unsigned</span> parentScope, <span class="keywordtype">unsigned</span> InDiag, <span class="keywordtype">unsigned</span> OutDiag,</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>               <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> L)</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>       : ParentScope(parentScope), InDiag(InDiag), OutDiag(OutDiag), Loc(L) {}</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>   };</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span> </div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<GotoScope, 48></a> Scopes;</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>   llvm::DenseMap<Stmt*, unsigned> LabelAndGotoScopes;</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<Stmt*, 16></a> Jumps;</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span> </div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<IndirectGotoStmt*, 4></a> IndirectJumps;</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<LabelDecl*, 4></a> IndirectJumpTargets;</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>   JumpScopeChecker(<a class="code" href="classclang_1_1Stmt.html">Stmt</a> *Body, <a class="code" href="classclang_1_1Sema.html" title="Sema - This implements semantic analysis and AST building for C.">Sema</a> &<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>);</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>   <span class="keywordtype">void</span> BuildScopeInformation(<a class="code" href="classclang_1_1Decl.html">Decl</a> *D, <span class="keywordtype">unsigned</span> &ParentScope);</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>   <span class="keywordtype">void</span> BuildScopeInformation(<a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *D, <span class="keyword">const</span> <a class="code" href="classclang_1_1BlockDecl.html">BlockDecl</a> *BDecl, </div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>                              <span class="keywordtype">unsigned</span> &ParentScope);</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>   <span class="keywordtype">void</span> BuildScopeInformation(<a class="code" href="classclang_1_1Stmt.html">Stmt</a> *<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>, <span class="keywordtype">unsigned</span> &origParentScope);</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>   </div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>   <span class="keywordtype">void</span> VerifyJumps();</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>   <span class="keywordtype">void</span> VerifyIndirectJumps();</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>   <span class="keywordtype">void</span> NoteJumpIntoScopes(<a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<unsigned></a> ToScopes);</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>   <span class="keywordtype">void</span> DiagnoseIndirectJump(<a class="code" href="classclang_1_1IndirectGotoStmt.html">IndirectGotoStmt</a> *IG, <span class="keywordtype">unsigned</span> IGScope,</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>                             <a class="code" href="classclang_1_1LabelDecl.html">LabelDecl</a> *Target, <span class="keywordtype">unsigned</span> TargetScope);</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>   <span class="keywordtype">void</span> CheckJump(<a class="code" href="classclang_1_1Stmt.html">Stmt</a> *From, <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *To, <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> DiagLoc,</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>                  <span class="keywordtype">unsigned</span> JumpDiag, <span class="keywordtype">unsigned</span> JumpDiagWarning,</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>                  <span class="keywordtype">unsigned</span> JumpDiagCXX98Compat);</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>   <span class="keywordtype">unsigned</span> GetDeepestCommonScope(<span class="keywordtype">unsigned</span> A, <span class="keywordtype">unsigned</span> B);</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="comment">// end anonymous namespace</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">   89</span> JumpScopeChecker::JumpScopeChecker(<a class="code" href="classclang_1_1Stmt.html">Stmt</a> *Body, <a class="code" href="classclang_1_1Sema.html" title="Sema - This implements semantic analysis and AST building for C.">Sema</a> &s) : <a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>(s) {</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>   <span class="comment">// Add a scope entry for function scope.</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>   Scopes.push_back(GotoScope(~0U, ~0U, ~0U, <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a>()));</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span> </div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>   <span class="comment">// Build information for the top level compound statement, so that we have a</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>   <span class="comment">// defined scope record for every "goto" and label.</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>   <span class="keywordtype">unsigned</span> BodyParentScope = 0;</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>   BuildScopeInformation(Body, BodyParentScope);</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="comment">// Check that all jumps we saw are kosher.</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>   VerifyJumps();</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>   VerifyIndirectJumps();</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span> }</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span> <span class="comment"></span></div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span> <span class="comment">/// GetDeepestCommonScope - Finds the innermost scope enclosing the</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span> <span class="comment">/// two scopes.</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span> <span class="comment"></span><span class="keywordtype">unsigned</span> JumpScopeChecker::GetDeepestCommonScope(<span class="keywordtype">unsigned</span> A, <span class="keywordtype">unsigned</span> B) {</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>   <span class="keywordflow">while</span> (A != B) {</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>     <span class="comment">// Inner scopes are created after outer scopes and therefore have</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>     <span class="comment">// higher indices.</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>     <span class="keywordflow">if</span> (A < B) {</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>       assert(Scopes[B].ParentScope < B);</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>       B = Scopes[B].ParentScope;</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>     } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>       assert(Scopes[A].ParentScope < A);</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>       A = Scopes[A].ParentScope;</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>   }</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>   <span class="keywordflow">return</span> A;</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="JumpDiagnostics_8cpp.html#a0d299b6bb5c08ed972b19c94f6b14d9f">  120</a></span> <span class="keyword">typedef</span> std::pair<unsigned,unsigned> <a class="code" href="JumpDiagnostics_8cpp.html#a0d299b6bb5c08ed972b19c94f6b14d9f">ScopePair</a>;</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span> <span class="comment"></span></div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span> <span class="comment">/// GetDiagForGotoScopeDecl - If this decl induces a new goto scope, return a</span></div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span> <span class="comment">/// diagnostic that should be emitted if control goes over it. If not, return 0.</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno"><a class="code" href="JumpDiagnostics_8cpp.html#a682735f4f0b56c9fad8849fb05d91c75">  124</a></span> <span class="comment"></span><span class="keyword">static</span> <a class="code" href="JumpDiagnostics_8cpp.html#a0d299b6bb5c08ed972b19c94f6b14d9f">ScopePair</a> <a class="code" href="JumpDiagnostics_8cpp.html#a682735f4f0b56c9fad8849fb05d91c75">GetDiagForGotoScopeDecl</a>(<a class="code" href="classclang_1_1ASTContext.html" title="Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...">ASTContext</a> &<a class="code" href="ASTMatchFinder_8cpp.html#a779280869b9fac47a9bc391e7709171f">Context</a>, <span class="keyword">const</span> <a class="code" href="classclang_1_1Decl.html">Decl</a> *D) {</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *VD = dyn_cast<VarDecl>(D)) {</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>     <span class="keywordtype">unsigned</span> InDiag = 0;</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>     <span class="keywordflow">if</span> (VD->getType()->isVariablyModifiedType())</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>       InDiag = diag::note_protected_by_vla;</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span> </div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>     <span class="keywordflow">if</span> (VD->hasAttr<<a class="code" href="classclang_1_1BlocksAttr.html">BlocksAttr</a>>())</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>       <span class="keywordflow">return</span> <a class="code" href="JumpDiagnostics_8cpp.html#a0d299b6bb5c08ed972b19c94f6b14d9f">ScopePair</a>(diag::note_protected_by___block,</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>                        diag::note_exits___block);</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span> </div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>     <span class="keywordflow">if</span> (VD->hasAttr<<a class="code" href="classclang_1_1CleanupAttr.html">CleanupAttr</a>>())</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>       <span class="keywordflow">return</span> <a class="code" href="JumpDiagnostics_8cpp.html#a0d299b6bb5c08ed972b19c94f6b14d9f">ScopePair</a>(diag::note_protected_by_cleanup,</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>                        diag::note_exits_cleanup);</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span> </div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>     <span class="keywordflow">if</span> (Context.<a class="code" href="classclang_1_1ASTContext.html#a3faa7b5a5e8d1637c53dea680acca0ff">getLangOpts</a>().ObjCAutoRefCount && VD->hasLocalStorage()) {</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>       <span class="keywordflow">switch</span> (VD->getType().getObjCLifetime()) {</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>       <span class="keywordflow">case</span> <a class="code" href="classclang_1_1Qualifiers.html#a1280e3f4075ff54f856987cf002ba300a29b319bca942e44bf183ca2749b072b3" title="There is no lifetime qualification on this type.">Qualifiers::OCL_None</a>:</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>       <span class="keywordflow">case</span> <a class="code" href="classclang_1_1Qualifiers.html#a1280e3f4075ff54f856987cf002ba300a1868aff47acf923ca643cb6950363615">Qualifiers::OCL_ExplicitNone</a>:</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>       <span class="keywordflow">case</span> <a class="code" href="classclang_1_1Qualifiers.html#a1280e3f4075ff54f856987cf002ba300afd7d211973aef2cc5945b96a963f0e4f" title="Assigning into this object requires a lifetime extension.">Qualifiers::OCL_Autoreleasing</a>:</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>         <span class="keywordflow">break</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="keywordflow">case</span> <a class="code" href="classclang_1_1Qualifiers.html#a1280e3f4075ff54f856987cf002ba300a056719970802d94ba3740489f709a96e">Qualifiers::OCL_Strong</a>:</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>       <span class="keywordflow">case</span> <a class="code" href="classclang_1_1Qualifiers.html#a1280e3f4075ff54f856987cf002ba300ad62a7a19d7027c37d407d2ca7638a89c" title="Reading or writing from this object requires a barrier call.">Qualifiers::OCL_Weak</a>:</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>         <span class="keywordflow">return</span> <a class="code" href="JumpDiagnostics_8cpp.html#a0d299b6bb5c08ed972b19c94f6b14d9f">ScopePair</a>(diag::note_protected_by_objc_ownership,</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>                          diag::note_exits_objc_ownership);</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>     }</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> (Context.<a class="code" href="classclang_1_1ASTContext.html#a3faa7b5a5e8d1637c53dea680acca0ff">getLangOpts</a>().CPlusPlus && VD->hasLocalStorage()) {</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>       <span class="comment">// C++11 [stmt.dcl]p3:</span></div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>       <span class="comment">//   A program that jumps from a point where a variable with automatic</span></div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>       <span class="comment">//   storage duration is not in scope to a point where it is in scope</span></div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>       <span class="comment">//   is ill-formed unless the variable has scalar type, class type with</span></div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>       <span class="comment">//   a trivial default constructor and a trivial destructor, a </span></div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>       <span class="comment">//   cv-qualified version of one of these types, or an array of one of</span></div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>       <span class="comment">//   the preceding types and is declared without an initializer.</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>       <span class="comment">// C++03 [stmt.dcl.p3:</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>       <span class="comment">//   A program that jumps from a point where a local variable</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>       <span class="comment">//   with automatic storage duration is not in scope to a point</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>       <span class="comment">//   where it is in scope is ill-formed unless the variable has</span></div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>       <span class="comment">//   POD type and is declared without an initializer.</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span> </div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>       <span class="keyword">const</span> <a class="code" href="classclang_1_1Expr.html">Expr</a> *Init = VD->getInit();</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>       <span class="keywordflow">if</span> (!Init)</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>         <span class="keywordflow">return</span> <a class="code" href="JumpDiagnostics_8cpp.html#a0d299b6bb5c08ed972b19c94f6b14d9f">ScopePair</a>(InDiag, 0);</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>       <span class="keyword">const</span> <a class="code" href="classclang_1_1ExprWithCleanups.html">ExprWithCleanups</a> *EWC = dyn_cast<<a class="code" href="classclang_1_1ExprWithCleanups.html">ExprWithCleanups</a>>(Init);</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>       <span class="keywordflow">if</span> (EWC)</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>         Init = EWC-><a class="code" href="classclang_1_1ExprWithCleanups.html#aea629f8b6da8f66df2207e7efe9a07a0">getSubExpr</a>();</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="keyword">const</span> <a class="code" href="classclang_1_1MaterializeTemporaryExpr.html" title="Represents a prvalue temporary that is written into memory so that a reference can bind to it...">MaterializeTemporaryExpr</a> *M = <a class="code" href="stddef_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>       Init = Init-><a class="code" href="classclang_1_1Expr.html#a3b61739df96b7ad58a1dcafc16ea8c63">findMaterializedTemporary</a>(M);</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>       <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<const Expr *, 2></a> CommaLHSs;</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>       <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<SubobjectAdjustment, 2></a> Adjustments;</div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>       Init = Init-><a class="code" href="classclang_1_1Expr.html#ab68ef9ee6af809f73ba54a9db42e8a72">skipRValueSubobjectAdjustments</a>(CommaLHSs, Adjustments);</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>       <a class="code" href="classclang_1_1QualType.html">QualType</a> QT = Init-><a class="code" href="classclang_1_1Expr.html#a3dd8850a4ad8a5b5f595dd9e9446187b">getType</a>();</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>       <span class="keywordflow">if</span> (QT.<a class="code" href="classclang_1_1QualType.html#a8f87f58000490ad01cd09add1f27d7ac" title="isNull - Return true if this QualType doesn't point to a type yet.">isNull</a>())</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>         <span class="keywordflow">return</span> <a class="code" href="JumpDiagnostics_8cpp.html#a0d299b6bb5c08ed972b19c94f6b14d9f">ScopePair</a>(diag::note_protected_by_variable_init, 0);</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="keyword">const</span> <a class="code" href="classclang_1_1Type.html">Type</a> *T = QT.<a class="code" href="classclang_1_1QualType.html#a669d7ba0645cd05d53508e3c1895075a">getTypePtr</a>();</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>       <span class="keywordflow">if</span> (T-><a class="code" href="classclang_1_1Type.html#a53b83bd119ae77bc77e92dc69a8c8094">isArrayType</a>())</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>         T = T-><a class="code" href="classclang_1_1Type.html#aaf341a9ef2797f73d9cb091c6712242c">getBaseElementTypeUnsafe</a>();</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span> </div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>       <span class="keyword">const</span> <a class="code" href="classclang_1_1CXXRecordDecl.html" title="Represents a C++ struct/union/class.">CXXRecordDecl</a> *Record = T-><a class="code" href="classclang_1_1Type.html#a7dc6c3dbc192ad98871c3cc484376b9a" title="Retrieves the CXXRecordDecl that this type refers to, either because the type is a RecordType or beca...">getAsCXXRecordDecl</a>();</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>       <span class="keywordflow">if</span> (!Record)</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>         <span class="keywordflow">return</span> <a class="code" href="JumpDiagnostics_8cpp.html#a0d299b6bb5c08ed972b19c94f6b14d9f">ScopePair</a>(diag::note_protected_by_variable_init, 0);</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>       <span class="comment">// If we need to call a non trivial destructor for this variable,</span></div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>       <span class="comment">// record an out diagnostic.</span></div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>       <span class="keywordtype">unsigned</span> OutDiag = 0;</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span>       <span class="keywordflow">if</span> (!Init-><a class="code" href="classclang_1_1Expr.html#ae5788e69a4c1d2d1b1e5ddaa4d525e22">isGLValue</a>() && !Record-><a class="code" href="classclang_1_1CXXRecordDecl.html#a5ba24967342c02411fb14790a24b8a8a" title="Determine whether this class has a trivial destructor (C++ [class.dtor]p3)">hasTrivialDestructor</a>())</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>         OutDiag = diag::note_exits_dtor;</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="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1CXXConstructExpr.html" title="Represents a call to a C++ constructor.">CXXConstructExpr</a> *cce = dyn_cast<CXXConstructExpr>(Init)) {</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>         <span class="keyword">const</span> <a class="code" href="classclang_1_1CXXConstructorDecl.html" title="Represents a C++ constructor within a class.">CXXConstructorDecl</a> *ctor = cce->getConstructor();</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>         <span class="comment">// For a variable declared without an initializer, we will have</span></div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>         <span class="comment">// call-style initialization and the initializer will be the</span></div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>         <span class="comment">// CXXConstructExpr with no intervening nodes.</span></div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>         <span class="keywordflow">if</span> (ctor-><a class="code" href="classclang_1_1FunctionDecl.html#a38f30631618adf76156cc295cd88040a">isTrivial</a>() && ctor-><a class="code" href="classclang_1_1CXXConstructorDecl.html#a261717abb407256031a905adf83711c7">isDefaultConstructor</a>() &&</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>             VD->getInit() == Init && VD->getInitStyle() == <a class="code" href="classclang_1_1VarDecl.html#a4e23202e164f8d6d14a833023c3711efaabe1bb053184a34ae148757d76c68650" title="Call-style initialization (C++98)">VarDecl::CallInit</a>) {</div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span>           <span class="keywordflow">if</span> (OutDiag)</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span>             InDiag = diag::note_protected_by_variable_nontriv_destructor;</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>           <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!Record-><a class="code" href="classclang_1_1CXXRecordDecl.html#ab017dfe8ba1d1ecb0f781dc2d2d51635" title="Whether this class is a POD-type (C++ [class]p4)">isPOD</a>())</div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>             InDiag = diag::note_protected_by_variable_non_pod;</div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>           <span class="keywordflow">return</span> <a class="code" href="JumpDiagnostics_8cpp.html#a0d299b6bb5c08ed972b19c94f6b14d9f">ScopePair</a>(InDiag, OutDiag);</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>       }</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>       <span class="keywordflow">return</span> <a class="code" href="JumpDiagnostics_8cpp.html#a0d299b6bb5c08ed972b19c94f6b14d9f">ScopePair</a>(diag::note_protected_by_variable_init, OutDiag);</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> </div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>     <span class="keywordflow">return</span> <a class="code" href="JumpDiagnostics_8cpp.html#a0d299b6bb5c08ed972b19c94f6b14d9f">ScopePair</a>(InDiag, 0);</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> </div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1TypedefDecl.html">TypedefDecl</a> *TD = dyn_cast<TypedefDecl>(D)) {</div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span>     <span class="keywordflow">if</span> (TD->getUnderlyingType()->isVariablyModifiedType())</div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span>       <span class="keywordflow">return</span> <a class="code" href="JumpDiagnostics_8cpp.html#a0d299b6bb5c08ed972b19c94f6b14d9f">ScopePair</a>(diag::note_protected_by_vla_typedef, 0);</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> </div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1TypeAliasDecl.html">TypeAliasDecl</a> *TD = dyn_cast<TypeAliasDecl>(D)) {</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>     <span class="keywordflow">if</span> (TD->getUnderlyingType()->isVariablyModifiedType())</div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span>       <span class="keywordflow">return</span> <a class="code" href="JumpDiagnostics_8cpp.html#a0d299b6bb5c08ed972b19c94f6b14d9f">ScopePair</a>(diag::note_protected_by_vla_type_alias, 0);</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span>   }</div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span> </div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span>   <span class="keywordflow">return</span> <a class="code" href="JumpDiagnostics_8cpp.html#a0d299b6bb5c08ed972b19c94f6b14d9f">ScopePair</a>(0U, 0U);</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"></span></div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span> <span class="comment">/// \brief Build scope information for a declaration that is part of a DeclStmt.</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span> <span class="comment"></span><span class="keywordtype">void</span> JumpScopeChecker::BuildScopeInformation(<a class="code" href="classclang_1_1Decl.html">Decl</a> *D, <span class="keywordtype">unsigned</span> &ParentScope) {</div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span>   <span class="comment">// If this decl causes a new scope, push and switch to it.</span></div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span>   std::pair<unsigned,unsigned> Diags = <a class="code" href="JumpDiagnostics_8cpp.html#a682735f4f0b56c9fad8849fb05d91c75">GetDiagForGotoScopeDecl</a>(<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>.<a class="code" href="classclang_1_1Sema.html#a3ccddacb1f4f71b084296175cc9e5b0e">Context</a>, D);</div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span>   <span class="keywordflow">if</span> (Diags.first || Diags.second) {</div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span>     Scopes.push_back(GotoScope(ParentScope, Diags.first, Diags.second,</div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span>                                D-><a class="code" href="classclang_1_1Decl.html#a2348196ac4e0b1d5ebb1859c31b99eac">getLocation</a>()));</div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span>     ParentScope = Scopes.size()-1;</div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span>   }</div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span>   </div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span>   <span class="comment">// If the decl has an initializer, walk it with the potentially new</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span>   <span class="comment">// scope we just installed.</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span>   <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *VD = dyn_cast<VarDecl>(D))</div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Expr.html">Expr</a> *Init = VD->getInit())</div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span>       BuildScopeInformation(Init, ParentScope);</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> <span class="comment"></span></div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span> <span class="comment">/// \brief Build scope information for a captured block literal variables.</span></div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span> <span class="comment"></span><span class="keywordtype">void</span> JumpScopeChecker::BuildScopeInformation(<a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *D, </div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span>                                              <span class="keyword">const</span> <a class="code" href="classclang_1_1BlockDecl.html">BlockDecl</a> *BDecl, </div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span>                                              <span class="keywordtype">unsigned</span> &ParentScope) {</div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span>   <span class="comment">// exclude captured __block variables; there's no destructor</span></div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span>   <span class="comment">// associated with the block literal for them.</span></div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span>   <span class="keywordflow">if</span> (D-><a class="code" href="classclang_1_1Decl.html#ac60cc8b34313e03a5c40277c5c5ad61b">hasAttr</a><<a class="code" href="classclang_1_1BlocksAttr.html">BlocksAttr</a>>())</div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span>   <a class="code" href="classclang_1_1QualType.html">QualType</a> T = D-><a class="code" href="classclang_1_1ValueDecl.html#aefa6d3327144aee23d2935f41d993484">getType</a>();</div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span>   <a class="code" href="classclang_1_1QualType.html#a240cb64a6507feeb4b4e84fa4666edfc">QualType::DestructionKind</a> destructKind = T.<a class="code" href="classclang_1_1QualType.html#a4af063b416855444719ed33495b48537">isDestructedType</a>();</div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span>   <span class="keywordflow">if</span> (destructKind != <a class="code" href="classclang_1_1QualType.html#a240cb64a6507feeb4b4e84fa4666edfca60f4838ac0cd80cff599fc5d88f7c272">QualType::DK_none</a>) {</div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span>     std::pair<unsigned,unsigned> Diags;</div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span>     <span class="keywordflow">switch</span> (destructKind) {</div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span>       <span class="keywordflow">case</span> <a class="code" href="classclang_1_1QualType.html#a240cb64a6507feeb4b4e84fa4666edfca00b3c96ef35f8edc7a6fef32e3b89285">QualType::DK_cxx_destructor</a>:</div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span>         Diags = <a class="code" href="JumpDiagnostics_8cpp.html#a0d299b6bb5c08ed972b19c94f6b14d9f">ScopePair</a>(diag::note_enters_block_captures_cxx_obj,</div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span>                           diag::note_exits_block_captures_cxx_obj);</div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span>       <span class="keywordflow">case</span> <a class="code" href="classclang_1_1QualType.html#a240cb64a6507feeb4b4e84fa4666edfcad585d701cc19b3a22c6d3609a81379ad">QualType::DK_objc_strong_lifetime</a>:</div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span>         Diags = <a class="code" href="JumpDiagnostics_8cpp.html#a0d299b6bb5c08ed972b19c94f6b14d9f">ScopePair</a>(diag::note_enters_block_captures_strong,</div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span>                           diag::note_exits_block_captures_strong);</div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span>       <span class="keywordflow">case</span> <a class="code" href="classclang_1_1QualType.html#a240cb64a6507feeb4b4e84fa4666edfcaa70d10e9eca0ce9bedb369a4e4128654">QualType::DK_objc_weak_lifetime</a>:</div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span>         Diags = <a class="code" href="JumpDiagnostics_8cpp.html#a0d299b6bb5c08ed972b19c94f6b14d9f">ScopePair</a>(diag::note_enters_block_captures_weak,</div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span>                           diag::note_exits_block_captures_weak);</div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span>         <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span>       <span class="keywordflow">case</span> <a class="code" href="classclang_1_1QualType.html#a240cb64a6507feeb4b4e84fa4666edfca60f4838ac0cd80cff599fc5d88f7c272">QualType::DK_none</a>:</div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span>         llvm_unreachable(<span class="stringliteral">"non-lifetime captured variable"</span>);</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>     <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc = D-><a class="code" href="classclang_1_1Decl.html#a2348196ac4e0b1d5ebb1859c31b99eac">getLocation</a>();</div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span>     <span class="keywordflow">if</span> (Loc.<a class="code" href="classclang_1_1SourceLocation.html#a1936fc09837ff8a195fa63e29f05796f">isInvalid</a>())</div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span>       Loc = BDecl-><a class="code" href="classclang_1_1Decl.html#a2348196ac4e0b1d5ebb1859c31b99eac">getLocation</a>();</div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span>     Scopes.push_back(GotoScope(ParentScope, </div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span>                                Diags.first, Diags.second, Loc));</div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span>     ParentScope = Scopes.size()-1;</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> <span class="comment"></span></div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span> <span class="comment">/// BuildScopeInformation - The statements from CI to CE are known to form a</span></div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span> <span class="comment">/// coherent VLA scope with a specified parent node.  Walk through the</span></div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span> <span class="comment">/// statements, adding any labels or gotos to LabelAndGotoScopes and recursively</span></div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span> <span class="comment">/// walking the AST as needed.</span></div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span> <span class="comment"></span><span class="keywordtype">void</span> JumpScopeChecker::BuildScopeInformation(<a class="code" href="classclang_1_1Stmt.html">Stmt</a> *<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>, <span class="keywordtype">unsigned</span> &origParentScope) {</div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span>   <span class="comment">// If this is a statement, rather than an expression, scopes within it don't</span></div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span>   <span class="comment">// propagate out into the enclosing scope.  Otherwise we have to worry</span></div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span>   <span class="comment">// about block literals, which have the lifetime of their enclosing statement.</span></div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span>   <span class="keywordtype">unsigned</span> independentParentScope = origParentScope;</div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span>   <span class="keywordtype">unsigned</span> &ParentScope = ((isa<Expr>(<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>) && !isa<StmtExpr>(S)) </div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span>                             ? origParentScope : independentParentScope);</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>   <span class="keywordtype">bool</span> SkipFirstSubStmt = <span class="keyword">false</span>;</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>   <span class="comment">// If we found a label, remember that it is in ParentScope scope.</span></div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span>   <span class="keywordflow">switch</span> (S-><a class="code" href="classclang_1_1Stmt.html#ac881a5954ff27d475c1bbab6f5d80150">getStmtClass</a>()) {</div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span>   <span class="keywordflow">case</span> Stmt::AddrLabelExprClass:</div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span>     IndirectJumpTargets.push_back(cast<AddrLabelExpr>(S)->getLabel());</div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span>     <span class="keywordflow">break</span>;</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>   <span class="keywordflow">case</span> Stmt::IndirectGotoStmtClass:</div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span>     <span class="comment">// "goto *&&lbl;" is a special case which we treat as equivalent</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span>     <span class="comment">// to a normal goto.  In addition, we don't calculate scope in the</span></div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span>     <span class="comment">// operand (to avoid recording the address-of-label use), which</span></div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span>     <span class="comment">// works only because of the restricted set of expressions which</span></div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span>     <span class="comment">// we detect as constant targets.</span></div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span>     <span class="keywordflow">if</span> (cast<IndirectGotoStmt>(S)->getConstantTarget()) {</div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span>       LabelAndGotoScopes[<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>] = ParentScope;</div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span>       Jumps.push_back(S);</div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span>       <span class="keywordflow">return</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> </div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span>     LabelAndGotoScopes[<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>] = ParentScope;</div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span>     IndirectJumps.push_back(cast<IndirectGotoStmt>(S));</div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span>     <span class="keywordflow">break</span>;</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>   <span class="keywordflow">case</span> Stmt::SwitchStmtClass:</div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span>     <span class="comment">// Evaluate the condition variable before entering the scope of the switch</span></div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span>     <span class="comment">// statement.</span></div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *Var = cast<SwitchStmt>(S)->getConditionVariable()) {</div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span>       BuildScopeInformation(Var, ParentScope);</div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span>       SkipFirstSubStmt = <span class="keyword">true</span>;</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>     <span class="comment">// Fall through</span></div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span>       </div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span>   <span class="keywordflow">case</span> Stmt::GotoStmtClass:</div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span>     <span class="comment">// Remember both what scope a goto is in as well as the fact that we have</span></div>
+<div class="line"><a name="l00335"></a><span class="lineno">  335</span>     <span class="comment">// it.  This makes the second scan not have to walk the AST again.</span></div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span>     LabelAndGotoScopes[<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>] = ParentScope;</div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span>     Jumps.push_back(S);</div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span>     <span class="keywordflow">break</span>;</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>   <span class="keywordflow">case</span> Stmt::CXXTryStmtClass: {</div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span>     <a class="code" href="classclang_1_1CXXTryStmt.html">CXXTryStmt</a> *TS = cast<CXXTryStmt>(<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>);</div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span>     <span class="keywordtype">unsigned</span> newParentScope;</div>
+<div class="line"><a name="l00343"></a><span class="lineno">  343</span>     Scopes.push_back(GotoScope(ParentScope,</div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span>                                diag::note_protected_by_cxx_try,</div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span>                                diag::note_exits_cxx_try,</div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span>                                TS-><a class="code" href="classclang_1_1Stmt.html#a6844392ee6148b5fe821f211b95e5d1b">getSourceRange</a>().<a class="code" href="classclang_1_1SourceRange.html#a890dff14560eb9aceb08be18dfe74208">getBegin</a>()));</div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Stmt.html">Stmt</a> *TryBlock = TS-><a class="code" href="classclang_1_1CXXTryStmt.html#a0b14fc308d0e5f78e4f2bd425fc308da">getTryBlock</a>())</div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span>       BuildScopeInformation(TryBlock, (newParentScope = Scopes.size()-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>     <span class="comment">// Jump from the catch into the try is not allowed either.</span></div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span>     <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, E = TS-><a class="code" href="classclang_1_1CXXTryStmt.html#a35a6bca1856fe488e2cd2ed9d432303d">getNumHandlers</a>(); I != E; ++I) {</div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span>       <a class="code" href="classclang_1_1CXXCatchStmt.html">CXXCatchStmt</a> *CS = TS-><a class="code" href="classclang_1_1CXXTryStmt.html#a381a32f527ba09c4be51f49abd3aae8f">getHandler</a>(I);</div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span>       Scopes.push_back(GotoScope(ParentScope,</div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span>                                  diag::note_protected_by_cxx_catch,</div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span>                                  diag::note_exits_cxx_catch,</div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span>                                  CS-><a class="code" href="classclang_1_1Stmt.html#a6844392ee6148b5fe821f211b95e5d1b">getSourceRange</a>().<a class="code" href="classclang_1_1SourceRange.html#a890dff14560eb9aceb08be18dfe74208">getBegin</a>()));</div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span>       BuildScopeInformation(CS-><a class="code" href="classclang_1_1CXXCatchStmt.html#a0083b6599e9a539ccb3b9ea7e9e42452">getHandlerBlock</a>(), </div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span>                             (newParentScope = Scopes.size()-1));</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>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span>   }</div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span> </div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span>   <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span>     <span class="keywordflow">break</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> (<a class="code" href="structclang_1_1StmtRange.html">Stmt::child_range</a> CI = S-><a class="code" href="classclang_1_1Stmt.html#a489148e5d234a5a7f00d8b02981bcee5">children</a>(); CI; ++CI) {</div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span>     <span class="keywordflow">if</span> (SkipFirstSubStmt) {</div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span>       SkipFirstSubStmt = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span>       <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span>     }</div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span>     </div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span>     <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *SubStmt = *CI;</div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span>     <span class="keywordflow">if</span> (SubStmt == 0) <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span> </div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span>     <span class="comment">// Cases, labels, and defaults aren't "scope parents".  It's also</span></div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span>     <span class="comment">// important to handle these iteratively instead of recursively in</span></div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span>     <span class="comment">// order to avoid blowing out the stack.</span></div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span>     <span class="keywordflow">while</span> (<span class="keyword">true</span>) {</div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span>       <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *Next;</div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span>       <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1CaseStmt.html">CaseStmt</a> *CS = dyn_cast<CaseStmt>(SubStmt))</div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span>         Next = CS->getSubStmt();</div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span>       <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1DefaultStmt.html">DefaultStmt</a> *DS = dyn_cast<DefaultStmt>(SubStmt))</div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span>         Next = DS->getSubStmt();</div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span>       <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1LabelStmt.html">LabelStmt</a> *LS = dyn_cast<LabelStmt>(SubStmt))</div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span>         Next = LS->getSubStmt();</div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span>       <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span>         <span class="keywordflow">break</span>;</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>       LabelAndGotoScopes[SubStmt] = ParentScope;</div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span>       SubStmt = Next;</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="comment">// If this is a declstmt with a VLA definition, it defines a scope from here</span></div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span>     <span class="comment">// to the end of the containing context.</span></div>
+<div class="line"><a name="l00396"></a><span class="lineno">  396</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1DeclStmt.html">DeclStmt</a> *DS = dyn_cast<DeclStmt>(SubStmt)) {</div>
+<div class="line"><a name="l00397"></a><span class="lineno">  397</span>       <span class="comment">// The decl statement creates a scope if any of the decls in it are VLAs</span></div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span>       <span class="comment">// or have the cleanup attribute.</span></div>
+<div class="line"><a name="l00399"></a><span class="lineno">  399</span>       <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1Decl.html">DeclStmt::decl_iterator</a> I = DS->decl_begin(), E = DS->decl_end();</div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span>            I != E; ++I)</div>
+<div class="line"><a name="l00401"></a><span class="lineno">  401</span>         BuildScopeInformation(*I, ParentScope);</div>
+<div class="line"><a name="l00402"></a><span class="lineno">  402</span>       <span class="keywordflow">continue</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="comment">// Disallow jumps into any part of an @try statement by pushing a scope and</span></div>
+<div class="line"><a name="l00405"></a><span class="lineno">  405</span>     <span class="comment">// walking all sub-stmts in that scope.</span></div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1ObjCAtTryStmt.html" title="Represents Objective-C's @try ... @catch ... @finally statement.">ObjCAtTryStmt</a> *AT = dyn_cast<ObjCAtTryStmt>(SubStmt)) {</div>
+<div class="line"><a name="l00407"></a><span class="lineno">  407</span>       <span class="keywordtype">unsigned</span> newParentScope;</div>
+<div class="line"><a name="l00408"></a><span class="lineno">  408</span>       <span class="comment">// Recursively walk the AST for the @try part.</span></div>
+<div class="line"><a name="l00409"></a><span class="lineno">  409</span>       Scopes.push_back(GotoScope(ParentScope,</div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span>                                  diag::note_protected_by_objc_try,</div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span>                                  diag::note_exits_objc_try,</div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span>                                  AT->getAtTryLoc()));</div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</span>       <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Stmt.html">Stmt</a> *TryPart = AT->getTryBody())</div>
+<div class="line"><a name="l00414"></a><span class="lineno">  414</span>         BuildScopeInformation(TryPart, (newParentScope = Scopes.size()-1));</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>       <span class="comment">// Jump from the catch to the finally or try is not valid.</span></div>
+<div class="line"><a name="l00417"></a><span class="lineno">  417</span>       <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, N = AT->getNumCatchStmts(); I != N; ++I) {</div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span>         <a class="code" href="classclang_1_1ObjCAtCatchStmt.html" title="Represents Objective-C's @catch statement.">ObjCAtCatchStmt</a> *AC = AT->getCatchStmt(I);</div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span>         Scopes.push_back(GotoScope(ParentScope,</div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span>                                    diag::note_protected_by_objc_catch,</div>
+<div class="line"><a name="l00421"></a><span class="lineno">  421</span>                                    diag::note_exits_objc_catch,</div>
+<div class="line"><a name="l00422"></a><span class="lineno">  422</span>                                    AC-><a class="code" href="classclang_1_1ObjCAtCatchStmt.html#adb8c54c102aa43208846df2c4209cf87">getAtCatchLoc</a>()));</div>
+<div class="line"><a name="l00423"></a><span class="lineno">  423</span>         <span class="comment">// @catches are nested and it isn't</span></div>
+<div class="line"><a name="l00424"></a><span class="lineno">  424</span>         BuildScopeInformation(AC-><a class="code" href="classclang_1_1ObjCAtCatchStmt.html#aadda4ca401a39fa5f63fd4723ac0a54a">getCatchBody</a>(), </div>
+<div class="line"><a name="l00425"></a><span class="lineno">  425</span>                               (newParentScope = Scopes.size()-1));</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> </div>
+<div class="line"><a name="l00428"></a><span class="lineno">  428</span>       <span class="comment">// Jump from the finally to the try or catch is not valid.</span></div>
+<div class="line"><a name="l00429"></a><span class="lineno">  429</span>       <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1ObjCAtFinallyStmt.html" title="Represents Objective-C's @finally statement.">ObjCAtFinallyStmt</a> *AF = AT->getFinallyStmt()) {</div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span>         Scopes.push_back(GotoScope(ParentScope,</div>
+<div class="line"><a name="l00431"></a><span class="lineno">  431</span>                                    diag::note_protected_by_objc_finally,</div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span>                                    diag::note_exits_objc_finally,</div>
+<div class="line"><a name="l00433"></a><span class="lineno">  433</span>                                    AF->getAtFinallyLoc()));</div>
+<div class="line"><a name="l00434"></a><span class="lineno">  434</span>         BuildScopeInformation(AF, (newParentScope = Scopes.size()-1));</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> </div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span>       <span class="keywordflow">continue</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">  439</span>     </div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span>     <span class="keywordtype">unsigned</span> newParentScope;</div>
+<div class="line"><a name="l00441"></a><span class="lineno">  441</span>     <span class="comment">// Disallow jumps into the protected statement of an @synchronized, but</span></div>
+<div class="line"><a name="l00442"></a><span class="lineno">  442</span>     <span class="comment">// allow jumps into the object expression it protects.</span></div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1ObjCAtSynchronizedStmt.html" title="Represents Objective-C's @synchronized statement.">ObjCAtSynchronizedStmt</a> *AS = dyn_cast<ObjCAtSynchronizedStmt>(SubStmt)){</div>
+<div class="line"><a name="l00444"></a><span class="lineno">  444</span>       <span class="comment">// Recursively walk the AST for the @synchronized object expr, it is</span></div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span>       <span class="comment">// evaluated in the normal scope.</span></div>
+<div class="line"><a name="l00446"></a><span class="lineno">  446</span>       BuildScopeInformation(AS->getSynchExpr(), ParentScope);</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>       <span class="comment">// Recursively walk the AST for the @synchronized part, protected by a new</span></div>
+<div class="line"><a name="l00449"></a><span class="lineno">  449</span>       <span class="comment">// scope.</span></div>
+<div class="line"><a name="l00450"></a><span class="lineno">  450</span>       Scopes.push_back(GotoScope(ParentScope,</div>
+<div class="line"><a name="l00451"></a><span class="lineno">  451</span>                                  diag::note_protected_by_objc_synchronized,</div>
+<div class="line"><a name="l00452"></a><span class="lineno">  452</span>                                  diag::note_exits_objc_synchronized,</div>
+<div class="line"><a name="l00453"></a><span class="lineno">  453</span>                                  AS->getAtSynchronizedLoc()));</div>
+<div class="line"><a name="l00454"></a><span class="lineno">  454</span>       BuildScopeInformation(AS->getSynchBody(), </div>
+<div class="line"><a name="l00455"></a><span class="lineno">  455</span>                             (newParentScope = Scopes.size()-1));</div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span>       <span class="keywordflow">continue</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> </div>
+<div class="line"><a name="l00459"></a><span class="lineno">  459</span>     <span class="comment">// Disallow jumps into the protected statement of an @autoreleasepool.</span></div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1ObjCAutoreleasePoolStmt.html" title="Represents Objective-C's @autoreleasepool Statement.">ObjCAutoreleasePoolStmt</a> *AS = dyn_cast<ObjCAutoreleasePoolStmt>(SubStmt)){</div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span>       <span class="comment">// Recursively walk the AST for the @autoreleasepool part, protected by a new</span></div>
+<div class="line"><a name="l00462"></a><span class="lineno">  462</span>       <span class="comment">// scope.</span></div>
+<div class="line"><a name="l00463"></a><span class="lineno">  463</span>       Scopes.push_back(GotoScope(ParentScope,</div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</span>                                  diag::note_protected_by_objc_autoreleasepool,</div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span>                                  diag::note_exits_objc_autoreleasepool,</div>
+<div class="line"><a name="l00466"></a><span class="lineno">  466</span>                                  AS->getAtLoc()));</div>
+<div class="line"><a name="l00467"></a><span class="lineno">  467</span>       BuildScopeInformation(AS->getSubStmt(), (newParentScope = Scopes.size()-1));</div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span>       <span class="keywordflow">continue</span>;</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> </div>
+<div class="line"><a name="l00471"></a><span class="lineno">  471</span>     <span class="comment">// Disallow jumps past full-expressions that use blocks with</span></div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span>     <span class="comment">// non-trivial cleanups of their captures.  This is theoretically</span></div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span>     <span class="comment">// implementable but a lot of work which we haven't felt up to doing.</span></div>
+<div class="line"><a name="l00474"></a><span class="lineno">  474</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1ExprWithCleanups.html">ExprWithCleanups</a> *EWC = dyn_cast<ExprWithCleanups>(SubStmt)) {</div>
+<div class="line"><a name="l00475"></a><span class="lineno">  475</span>       <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = EWC->getNumObjects(); i != e; ++i) {</div>
+<div class="line"><a name="l00476"></a><span class="lineno">  476</span>         <span class="keyword">const</span> <a class="code" href="classclang_1_1BlockDecl.html">BlockDecl</a> *BDecl = EWC->getObject(i);</div>
+<div class="line"><a name="l00477"></a><span class="lineno">  477</span>         <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1BlockDecl_1_1Capture.html">BlockDecl::capture_const_iterator</a> ci = BDecl-><a class="code" href="classclang_1_1BlockDecl.html#ab22e740e64eb0eb9b79f8cd043b07606">capture_begin</a>(),</div>
+<div class="line"><a name="l00478"></a><span class="lineno">  478</span>              ce = BDecl-><a class="code" href="classclang_1_1BlockDecl.html#a00f598199079e2be3d254168e6a24644">capture_end</a>(); ci != ce; ++ci) {</div>
+<div class="line"><a name="l00479"></a><span class="lineno">  479</span>           <a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *variable = ci->getVariable();</div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span>           BuildScopeInformation(variable, BDecl, ParentScope);</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>       }</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>     </div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span>     <span class="comment">// Recursively walk the AST.</span></div>
+<div class="line"><a name="l00486"></a><span class="lineno">  486</span>     BuildScopeInformation(SubStmt, ParentScope);</div>
+<div class="line"><a name="l00487"></a><span class="lineno">  487</span>   }</div>
+<div class="line"><a name="l00488"></a><span class="lineno">  488</span> }</div>
+<div class="line"><a name="l00489"></a><span class="lineno">  489</span> <span class="comment"></span></div>
+<div class="line"><a name="l00490"></a><span class="lineno">  490</span> <span class="comment">/// VerifyJumps - Verify each element of the Jumps array to see if they are</span></div>
+<div class="line"><a name="l00491"></a><span class="lineno">  491</span> <span class="comment">/// valid, emitting diagnostics if not.</span></div>
+<div class="line"><a name="l00492"></a><span class="lineno">  492</span> <span class="comment"></span><span class="keywordtype">void</span> JumpScopeChecker::VerifyJumps() {</div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span>   <span class="keywordflow">while</span> (!Jumps.empty()) {</div>
+<div class="line"><a name="l00494"></a><span class="lineno">  494</span>     <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *Jump = Jumps.pop_back_val();</div>
+<div class="line"><a name="l00495"></a><span class="lineno">  495</span> </div>
+<div class="line"><a name="l00496"></a><span class="lineno">  496</span>     <span class="comment">// With a goto,</span></div>
+<div class="line"><a name="l00497"></a><span class="lineno">  497</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1GotoStmt.html">GotoStmt</a> *GS = dyn_cast<GotoStmt>(Jump)) {</div>
+<div class="line"><a name="l00498"></a><span class="lineno">  498</span>       CheckJump(GS, GS->getLabel()->getStmt(), GS->getGotoLoc(),</div>
+<div class="line"><a name="l00499"></a><span class="lineno">  499</span>                 diag::err_goto_into_protected_scope,</div>
+<div class="line"><a name="l00500"></a><span class="lineno">  500</span>                 diag::warn_goto_into_protected_scope,</div>
+<div class="line"><a name="l00501"></a><span class="lineno">  501</span>                 diag::warn_cxx98_compat_goto_into_protected_scope);</div>
+<div class="line"><a name="l00502"></a><span class="lineno">  502</span>       <span class="keywordflow">continue</span>;</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> </div>
+<div class="line"><a name="l00505"></a><span class="lineno">  505</span>     <span class="comment">// We only get indirect gotos here when they have a constant target.</span></div>
+<div class="line"><a name="l00506"></a><span class="lineno">  506</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1IndirectGotoStmt.html">IndirectGotoStmt</a> *IGS = dyn_cast<IndirectGotoStmt>(Jump)) {</div>
+<div class="line"><a name="l00507"></a><span class="lineno">  507</span>       <a class="code" href="classclang_1_1LabelDecl.html">LabelDecl</a> *Target = IGS->getConstantTarget();</div>
+<div class="line"><a name="l00508"></a><span class="lineno">  508</span>       CheckJump(IGS, Target-><a class="code" href="classclang_1_1LabelDecl.html#a13c54288572cc3bb5db92c857099fd27">getStmt</a>(), IGS->getGotoLoc(),</div>
+<div class="line"><a name="l00509"></a><span class="lineno">  509</span>                 diag::err_goto_into_protected_scope,</div>
+<div class="line"><a name="l00510"></a><span class="lineno">  510</span>                 diag::warn_goto_into_protected_scope,</div>
+<div class="line"><a name="l00511"></a><span class="lineno">  511</span>                 diag::warn_cxx98_compat_goto_into_protected_scope);</div>
+<div class="line"><a name="l00512"></a><span class="lineno">  512</span>       <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00513"></a><span class="lineno">  513</span>     }</div>
+<div class="line"><a name="l00514"></a><span class="lineno">  514</span> </div>
+<div class="line"><a name="l00515"></a><span class="lineno">  515</span>     <a class="code" href="classclang_1_1SwitchStmt.html">SwitchStmt</a> *SS = cast<SwitchStmt>(Jump);</div>
+<div class="line"><a name="l00516"></a><span class="lineno">  516</span>     <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1SwitchCase.html">SwitchCase</a> *SC = SS-><a class="code" href="classclang_1_1SwitchStmt.html#ace9b2bce71bc2eb328253001c230f011">getSwitchCaseList</a>(); SC;</div>
+<div class="line"><a name="l00517"></a><span class="lineno">  517</span>          SC = SC-><a class="code" href="classclang_1_1SwitchCase.html#ac260de1f5de7d9e5c5cba896d7f2813f">getNextSwitchCase</a>()) {</div>
+<div class="line"><a name="l00518"></a><span class="lineno">  518</span>       assert(LabelAndGotoScopes.count(SC) && <span class="stringliteral">"Case not visited?"</span>);</div>
+<div class="line"><a name="l00519"></a><span class="lineno">  519</span>       <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> Loc;</div>
+<div class="line"><a name="l00520"></a><span class="lineno">  520</span>       <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1CaseStmt.html">CaseStmt</a> *CS = dyn_cast<CaseStmt>(SC))</div>
+<div class="line"><a name="l00521"></a><span class="lineno">  521</span>         Loc = CS-><a class="code" href="classclang_1_1CXXCatchStmt.html#aef68f2f5bb259cbd19997c0dfaeb0c7c">getLocStart</a>();</div>
+<div class="line"><a name="l00522"></a><span class="lineno">  522</span>       <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1DefaultStmt.html">DefaultStmt</a> *DS = dyn_cast<DefaultStmt>(SC))</div>
+<div class="line"><a name="l00523"></a><span class="lineno">  523</span>         Loc = DS->getLocStart();</div>
+<div class="line"><a name="l00524"></a><span class="lineno">  524</span>       <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00525"></a><span class="lineno">  525</span>         Loc = SC->getLocStart();</div>
+<div class="line"><a name="l00526"></a><span class="lineno">  526</span>       CheckJump(SS, SC, Loc, diag::err_switch_into_protected_scope, 0,</div>
+<div class="line"><a name="l00527"></a><span class="lineno">  527</span>                 diag::warn_cxx98_compat_switch_into_protected_scope);</div>
+<div class="line"><a name="l00528"></a><span class="lineno">  528</span>     }</div>
+<div class="line"><a name="l00529"></a><span class="lineno">  529</span>   }</div>
+<div class="line"><a name="l00530"></a><span class="lineno">  530</span> }</div>
+<div class="line"><a name="l00531"></a><span class="lineno">  531</span> <span class="comment"></span></div>
+<div class="line"><a name="l00532"></a><span class="lineno">  532</span> <span class="comment">/// VerifyIndirectJumps - Verify whether any possible indirect jump</span></div>
+<div class="line"><a name="l00533"></a><span class="lineno">  533</span> <span class="comment">/// might cross a protection boundary.  Unlike direct jumps, indirect</span></div>
+<div class="line"><a name="l00534"></a><span class="lineno">  534</span> <span class="comment">/// jumps count cleanups as protection boundaries:  since there's no</span></div>
+<div class="line"><a name="l00535"></a><span class="lineno">  535</span> <span class="comment">/// way to know where the jump is going, we can't implicitly run the</span></div>
+<div class="line"><a name="l00536"></a><span class="lineno">  536</span> <span class="comment">/// right cleanups the way we can with direct jumps.</span></div>
+<div class="line"><a name="l00537"></a><span class="lineno">  537</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00538"></a><span class="lineno">  538</span> <span class="comment">/// Thus, an indirect jump is "trivial" if it bypasses no</span></div>
+<div class="line"><a name="l00539"></a><span class="lineno">  539</span> <span class="comment">/// initializations and no teardowns.  More formally, an indirect jump</span></div>
+<div class="line"><a name="l00540"></a><span class="lineno">  540</span> <span class="comment">/// from A to B is trivial if the path out from A to DCA(A,B) is</span></div>
+<div class="line"><a name="l00541"></a><span class="lineno">  541</span> <span class="comment">/// trivial and the path in from DCA(A,B) to B is trivial, where</span></div>
+<div class="line"><a name="l00542"></a><span class="lineno">  542</span> <span class="comment">/// DCA(A,B) is the deepest common ancestor of A and B.</span></div>
+<div class="line"><a name="l00543"></a><span class="lineno">  543</span> <span class="comment">/// Jump-triviality is transitive but asymmetric.</span></div>
+<div class="line"><a name="l00544"></a><span class="lineno">  544</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00545"></a><span class="lineno">  545</span> <span class="comment">/// A path in is trivial if none of the entered scopes have an InDiag.</span></div>
+<div class="line"><a name="l00546"></a><span class="lineno">  546</span> <span class="comment">/// A path out is trivial is none of the exited scopes have an OutDiag.</span></div>
+<div class="line"><a name="l00547"></a><span class="lineno">  547</span> <span class="comment">///</span></div>
+<div class="line"><a name="l00548"></a><span class="lineno">  548</span> <span class="comment">/// Under these definitions, this function checks that the indirect</span></div>
+<div class="line"><a name="l00549"></a><span class="lineno">  549</span> <span class="comment">/// jump between A and B is trivial for every indirect goto statement A</span></div>
+<div class="line"><a name="l00550"></a><span class="lineno">  550</span> <span class="comment">/// and every label B whose address was taken in the function.</span></div>
+<div class="line"><a name="l00551"></a><span class="lineno">  551</span> <span class="comment"></span><span class="keywordtype">void</span> JumpScopeChecker::VerifyIndirectJumps() {</div>
+<div class="line"><a name="l00552"></a><span class="lineno">  552</span>   <span class="keywordflow">if</span> (IndirectJumps.empty()) <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00553"></a><span class="lineno">  553</span> </div>
+<div class="line"><a name="l00554"></a><span class="lineno">  554</span>   <span class="comment">// If there aren't any address-of-label expressions in this function,</span></div>
+<div class="line"><a name="l00555"></a><span class="lineno">  555</span>   <span class="comment">// complain about the first indirect goto.</span></div>
+<div class="line"><a name="l00556"></a><span class="lineno">  556</span>   <span class="keywordflow">if</span> (IndirectJumpTargets.empty()) {</div>
+<div class="line"><a name="l00557"></a><span class="lineno">  557</span>     S.Diag(IndirectJumps[0]->getGotoLoc(),</div>
+<div class="line"><a name="l00558"></a><span class="lineno">  558</span>            diag::err_indirect_goto_without_addrlabel);</div>
+<div class="line"><a name="l00559"></a><span class="lineno">  559</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00560"></a><span class="lineno">  560</span>   }</div>
+<div class="line"><a name="l00561"></a><span class="lineno">  561</span> </div>
+<div class="line"><a name="l00562"></a><span class="lineno">  562</span>   <span class="comment">// Collect a single representative of every scope containing an</span></div>
+<div class="line"><a name="l00563"></a><span class="lineno">  563</span>   <span class="comment">// indirect goto.  For most code bases, this substantially cuts</span></div>
+<div class="line"><a name="l00564"></a><span class="lineno">  564</span>   <span class="comment">// down on the number of jump sites we'll have to consider later.</span></div>
+<div class="line"><a name="l00565"></a><span class="lineno">  565</span>   <span class="keyword">typedef</span> std::pair<unsigned, IndirectGotoStmt*> JumpScope;</div>
+<div class="line"><a name="l00566"></a><span class="lineno">  566</span>   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<JumpScope, 32></a> JumpScopes;</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>     llvm::DenseMap<unsigned, IndirectGotoStmt*> JumpScopesMap;</div>
+<div class="line"><a name="l00569"></a><span class="lineno">  569</span>     <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<IndirectGotoStmt*>::iterator</a></div>
+<div class="line"><a name="l00570"></a><span class="lineno">  570</span>            I = IndirectJumps.begin(), E = IndirectJumps.end(); I != E; ++I) {</div>
+<div class="line"><a name="l00571"></a><span class="lineno">  571</span>       <a class="code" href="classclang_1_1IndirectGotoStmt.html">IndirectGotoStmt</a> *IG = *I;</div>
+<div class="line"><a name="l00572"></a><span class="lineno">  572</span>       assert(LabelAndGotoScopes.count(IG) &&</div>
+<div class="line"><a name="l00573"></a><span class="lineno">  573</span>              <span class="stringliteral">"indirect jump didn't get added to scopes?"</span>);</div>
+<div class="line"><a name="l00574"></a><span class="lineno">  574</span>       <span class="keywordtype">unsigned</span> IGScope = LabelAndGotoScopes[IG];</div>
+<div class="line"><a name="l00575"></a><span class="lineno">  575</span>       <a class="code" href="classclang_1_1IndirectGotoStmt.html">IndirectGotoStmt</a> *&Entry = JumpScopesMap[IGScope];</div>
+<div class="line"><a name="l00576"></a><span class="lineno">  576</span>       <span class="keywordflow">if</span> (!Entry) Entry = IG;</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>     JumpScopes.reserve(JumpScopesMap.size());</div>
+<div class="line"><a name="l00579"></a><span class="lineno">  579</span>     <span class="keywordflow">for</span> (llvm::DenseMap<unsigned, IndirectGotoStmt*>::iterator</div>
+<div class="line"><a name="l00580"></a><span class="lineno">  580</span>            I = JumpScopesMap.begin(), E = JumpScopesMap.end(); I != E; ++I)</div>
+<div class="line"><a name="l00581"></a><span class="lineno">  581</span>       JumpScopes.push_back(*I);</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> </div>
+<div class="line"><a name="l00584"></a><span class="lineno">  584</span>   <span class="comment">// Collect a single representative of every scope containing a</span></div>
+<div class="line"><a name="l00585"></a><span class="lineno">  585</span>   <span class="comment">// label whose address was taken somewhere in the function.</span></div>
+<div class="line"><a name="l00586"></a><span class="lineno">  586</span>   <span class="comment">// For most code bases, there will be only one such scope.</span></div>
+<div class="line"><a name="l00587"></a><span class="lineno">  587</span>   llvm::DenseMap<unsigned, LabelDecl*> TargetScopes;</div>
+<div class="line"><a name="l00588"></a><span class="lineno">  588</span>   <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<LabelDecl*>::iterator</a></div>
+<div class="line"><a name="l00589"></a><span class="lineno">  589</span>          I = IndirectJumpTargets.begin(), E = IndirectJumpTargets.end();</div>
+<div class="line"><a name="l00590"></a><span class="lineno">  590</span>        I != E; ++I) {</div>
+<div class="line"><a name="l00591"></a><span class="lineno">  591</span>     <a class="code" href="classclang_1_1LabelDecl.html">LabelDecl</a> *TheLabel = *I;</div>
+<div class="line"><a name="l00592"></a><span class="lineno">  592</span>     assert(LabelAndGotoScopes.count(TheLabel-><a class="code" href="classclang_1_1LabelDecl.html#a13c54288572cc3bb5db92c857099fd27">getStmt</a>()) &&</div>
+<div class="line"><a name="l00593"></a><span class="lineno">  593</span>            <span class="stringliteral">"Referenced label didn't get added to scopes?"</span>);</div>
+<div class="line"><a name="l00594"></a><span class="lineno">  594</span>     <span class="keywordtype">unsigned</span> LabelScope = LabelAndGotoScopes[TheLabel-><a class="code" href="classclang_1_1LabelDecl.html#a13c54288572cc3bb5db92c857099fd27">getStmt</a>()];</div>
+<div class="line"><a name="l00595"></a><span class="lineno">  595</span>     <a class="code" href="classclang_1_1LabelDecl.html">LabelDecl</a> *&Target = TargetScopes[LabelScope];</div>
+<div class="line"><a name="l00596"></a><span class="lineno">  596</span>     <span class="keywordflow">if</span> (!Target) Target = TheLabel;</div>
+<div class="line"><a name="l00597"></a><span class="lineno">  597</span>   }</div>
+<div class="line"><a name="l00598"></a><span class="lineno">  598</span> </div>
+<div class="line"><a name="l00599"></a><span class="lineno">  599</span>   <span class="comment">// For each target scope, make sure it's trivially reachable from</span></div>
+<div class="line"><a name="l00600"></a><span class="lineno">  600</span>   <span class="comment">// every scope containing a jump site.</span></div>
+<div class="line"><a name="l00601"></a><span class="lineno">  601</span>   <span class="comment">//</span></div>
+<div class="line"><a name="l00602"></a><span class="lineno">  602</span>   <span class="comment">// A path between scopes always consists of exitting zero or more</span></div>
+<div class="line"><a name="l00603"></a><span class="lineno">  603</span>   <span class="comment">// scopes, then entering zero or more scopes.  We build a set of</span></div>
+<div class="line"><a name="l00604"></a><span class="lineno">  604</span>   <span class="comment">// of scopes S from which the target scope can be trivially</span></div>
+<div class="line"><a name="l00605"></a><span class="lineno">  605</span>   <span class="comment">// entered, then verify that every jump scope can be trivially</span></div>
+<div class="line"><a name="l00606"></a><span class="lineno">  606</span>   <span class="comment">// exitted to reach a scope in S.</span></div>
+<div class="line"><a name="l00607"></a><span class="lineno">  607</span>   llvm::BitVector Reachable(Scopes.size(), <span class="keyword">false</span>);</div>
+<div class="line"><a name="l00608"></a><span class="lineno">  608</span>   <span class="keywordflow">for</span> (llvm::DenseMap<unsigned,LabelDecl*>::iterator</div>
+<div class="line"><a name="l00609"></a><span class="lineno">  609</span>          TI = TargetScopes.begin(), TE = TargetScopes.end(); TI != TE; ++TI) {</div>
+<div class="line"><a name="l00610"></a><span class="lineno">  610</span>     <span class="keywordtype">unsigned</span> TargetScope = TI->first;</div>
+<div class="line"><a name="l00611"></a><span class="lineno">  611</span>     <a class="code" href="classclang_1_1LabelDecl.html">LabelDecl</a> *TargetLabel = TI->second;</div>
+<div class="line"><a name="l00612"></a><span class="lineno">  612</span> </div>
+<div class="line"><a name="l00613"></a><span class="lineno">  613</span>     Reachable.reset();</div>
+<div class="line"><a name="l00614"></a><span class="lineno">  614</span> </div>
+<div class="line"><a name="l00615"></a><span class="lineno">  615</span>     <span class="comment">// Mark all the enclosing scopes from which you can safely jump</span></div>
+<div class="line"><a name="l00616"></a><span class="lineno">  616</span>     <span class="comment">// into the target scope.  'Min' will end up being the index of</span></div>
+<div class="line"><a name="l00617"></a><span class="lineno">  617</span>     <span class="comment">// the shallowest such scope.</span></div>
+<div class="line"><a name="l00618"></a><span class="lineno">  618</span>     <span class="keywordtype">unsigned</span> Min = TargetScope;</div>
+<div class="line"><a name="l00619"></a><span class="lineno">  619</span>     <span class="keywordflow">while</span> (<span class="keyword">true</span>) {</div>
+<div class="line"><a name="l00620"></a><span class="lineno">  620</span>       Reachable.set(Min);</div>
+<div class="line"><a name="l00621"></a><span class="lineno">  621</span> </div>
+<div class="line"><a name="l00622"></a><span class="lineno">  622</span>       <span class="comment">// Don't go beyond the outermost scope.</span></div>
+<div class="line"><a name="l00623"></a><span class="lineno">  623</span>       <span class="keywordflow">if</span> (Min == 0) <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00624"></a><span class="lineno">  624</span> </div>
+<div class="line"><a name="l00625"></a><span class="lineno">  625</span>       <span class="comment">// Stop if we can't trivially enter the current scope.</span></div>
+<div class="line"><a name="l00626"></a><span class="lineno">  626</span>       <span class="keywordflow">if</span> (Scopes[Min].InDiag) <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00627"></a><span class="lineno">  627</span> </div>
+<div class="line"><a name="l00628"></a><span class="lineno">  628</span>       Min = Scopes[Min].ParentScope;</div>
+<div class="line"><a name="l00629"></a><span class="lineno">  629</span>     }</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>     <span class="comment">// Walk through all the jump sites, checking that they can trivially</span></div>
+<div class="line"><a name="l00632"></a><span class="lineno">  632</span>     <span class="comment">// reach this label scope.</span></div>
+<div class="line"><a name="l00633"></a><span class="lineno">  633</span>     <span class="keywordflow">for</span> (<a class="code" href="classllvm_1_1SmallVectorImpl.html">SmallVectorImpl<JumpScope>::iterator</a></div>
+<div class="line"><a name="l00634"></a><span class="lineno">  634</span>            I = JumpScopes.begin(), E = JumpScopes.end(); I != E; ++I) {</div>
+<div class="line"><a name="l00635"></a><span class="lineno">  635</span>       <span class="keywordtype">unsigned</span> <a class="code" href="classclang_1_1Scope.html">Scope</a> = I->first;</div>
+<div class="line"><a name="l00636"></a><span class="lineno">  636</span> </div>
+<div class="line"><a name="l00637"></a><span class="lineno">  637</span>       <span class="comment">// Walk out the "scope chain" for this scope, looking for a scope</span></div>
+<div class="line"><a name="l00638"></a><span class="lineno">  638</span>       <span class="comment">// we've marked reachable.  For well-formed code this amortizes</span></div>
+<div class="line"><a name="l00639"></a><span class="lineno">  639</span>       <span class="comment">// to O(JumpScopes.size() / Scopes.size()):  we only iterate</span></div>
+<div class="line"><a name="l00640"></a><span class="lineno">  640</span>       <span class="comment">// when we see something unmarked, and in well-formed code we</span></div>
+<div class="line"><a name="l00641"></a><span class="lineno">  641</span>       <span class="comment">// mark everything we iterate past.</span></div>
+<div class="line"><a name="l00642"></a><span class="lineno">  642</span>       <span class="keywordtype">bool</span> IsReachable = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00643"></a><span class="lineno">  643</span>       <span class="keywordflow">while</span> (<span class="keyword">true</span>) {</div>
+<div class="line"><a name="l00644"></a><span class="lineno">  644</span>         <span class="keywordflow">if</span> (Reachable.test(Scope)) {</div>
+<div class="line"><a name="l00645"></a><span class="lineno">  645</span>           <span class="comment">// If we find something reachable, mark all the scopes we just</span></div>
+<div class="line"><a name="l00646"></a><span class="lineno">  646</span>           <span class="comment">// walked through as reachable.</span></div>
+<div class="line"><a name="l00647"></a><span class="lineno">  647</span>           <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> S = I->first; S != Scope; S = Scopes[S].ParentScope)</div>
+<div class="line"><a name="l00648"></a><span class="lineno">  648</span>             Reachable.set(S);</div>
+<div class="line"><a name="l00649"></a><span class="lineno">  649</span>           IsReachable = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00650"></a><span class="lineno">  650</span>           <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00651"></a><span class="lineno">  651</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>         <span class="comment">// Don't walk out if we've reached the top-level scope or we've</span></div>
+<div class="line"><a name="l00654"></a><span class="lineno">  654</span>         <span class="comment">// gotten shallower than the shallowest reachable scope.</span></div>
+<div class="line"><a name="l00655"></a><span class="lineno">  655</span>         <span class="keywordflow">if</span> (Scope == 0 || Scope < Min) <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00656"></a><span class="lineno">  656</span> </div>
+<div class="line"><a name="l00657"></a><span class="lineno">  657</span>         <span class="comment">// Don't walk out through an out-diagnostic.</span></div>
+<div class="line"><a name="l00658"></a><span class="lineno">  658</span>         <span class="keywordflow">if</span> (Scopes[Scope].OutDiag) <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00659"></a><span class="lineno">  659</span> </div>
+<div class="line"><a name="l00660"></a><span class="lineno">  660</span>         Scope = Scopes[Scope].ParentScope;</div>
+<div class="line"><a name="l00661"></a><span class="lineno">  661</span>       }</div>
+<div class="line"><a name="l00662"></a><span class="lineno">  662</span> </div>
+<div class="line"><a name="l00663"></a><span class="lineno">  663</span>       <span class="comment">// Only diagnose if we didn't find something.</span></div>
+<div class="line"><a name="l00664"></a><span class="lineno">  664</span>       <span class="keywordflow">if</span> (IsReachable) <span class="keywordflow">continue</span>;</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>       DiagnoseIndirectJump(I->second, I->first, TargetLabel, TargetScope);</div>
+<div class="line"><a name="l00667"></a><span class="lineno">  667</span>     }</div>
+<div class="line"><a name="l00668"></a><span class="lineno">  668</span>   }</div>
+<div class="line"><a name="l00669"></a><span class="lineno">  669</span> }</div>
+<div class="line"><a name="l00670"></a><span class="lineno">  670</span> <span class="comment"></span></div>
+<div class="line"><a name="l00671"></a><span class="lineno">  671</span> <span class="comment">/// Return true if a particular error+note combination must be downgraded to a</span></div>
+<div class="line"><a name="l00672"></a><span class="lineno">  672</span> <span class="comment">/// warning in Microsoft mode.</span></div>
+<div class="line"><a name="l00673"></a><span class="lineno"><a class="code" href="JumpDiagnostics_8cpp.html#a44f43e9fa8715777dff408f92fa508be">  673</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="JumpDiagnostics_8cpp.html#a44f43e9fa8715777dff408f92fa508be">IsMicrosoftJumpWarning</a>(<span class="keywordtype">unsigned</span> JumpDiag, <span class="keywordtype">unsigned</span> InDiagNote) {</div>
+<div class="line"><a name="l00674"></a><span class="lineno">  674</span>   <span class="keywordflow">return</span> (JumpDiag == diag::err_goto_into_protected_scope &&</div>
+<div class="line"><a name="l00675"></a><span class="lineno">  675</span>          (InDiagNote == diag::note_protected_by_variable_init ||</div>
+<div class="line"><a name="l00676"></a><span class="lineno">  676</span>           InDiagNote == diag::note_protected_by_variable_nontriv_destructor));</div>
+<div class="line"><a name="l00677"></a><span class="lineno">  677</span> }</div>
+<div class="line"><a name="l00678"></a><span class="lineno">  678</span> <span class="comment"></span></div>
+<div class="line"><a name="l00679"></a><span class="lineno">  679</span> <span class="comment">/// Return true if a particular note should be downgraded to a compatibility</span></div>
+<div class="line"><a name="l00680"></a><span class="lineno">  680</span> <span class="comment">/// warning in C++11 mode.</span></div>
+<div class="line"><a name="l00681"></a><span class="lineno"><a class="code" href="JumpDiagnostics_8cpp.html#a265d6f20710670f092338374d7ac1d08">  681</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="JumpDiagnostics_8cpp.html#a265d6f20710670f092338374d7ac1d08">IsCXX98CompatWarning</a>(<a class="code" href="classclang_1_1Sema.html" title="Sema - This implements semantic analysis and AST building for C.">Sema</a> &S, <span class="keywordtype">unsigned</span> InDiagNote) {</div>
+<div class="line"><a name="l00682"></a><span class="lineno">  682</span>   <span class="keywordflow">return</span> S.<a class="code" href="classclang_1_1Sema.html#a5f632d714a520550786bde65d3771228">getLangOpts</a>().CPlusPlus11 &&</div>
+<div class="line"><a name="l00683"></a><span class="lineno">  683</span>          InDiagNote == diag::note_protected_by_variable_non_pod;</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="comment"></span></div>
+<div class="line"><a name="l00686"></a><span class="lineno">  686</span> <span class="comment">/// Produce primary diagnostic for an indirect jump statement.</span></div>
+<div class="line"><a name="l00687"></a><span class="lineno"><a class="code" href="JumpDiagnostics_8cpp.html#a4240d14d5028587dbe704bc73d551603">  687</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="JumpDiagnostics_8cpp.html#a4240d14d5028587dbe704bc73d551603" title="Produce primary diagnostic for an indirect jump statement.">DiagnoseIndirectJumpStmt</a>(<a class="code" href="classclang_1_1Sema.html" title="Sema - This implements semantic analysis and AST building for C.">Sema</a> &S, <a class="code" href="classclang_1_1IndirectGotoStmt.html">IndirectGotoStmt</a> *Jump,</div>
+<div class="line"><a name="l00688"></a><span class="lineno">  688</span>                                      <a class="code" href="classclang_1_1LabelDecl.html">LabelDecl</a> *Target, <span class="keywordtype">bool</span> &Diagnosed) {</div>
+<div class="line"><a name="l00689"></a><span class="lineno">  689</span>   <span class="keywordflow">if</span> (Diagnosed)</div>
+<div class="line"><a name="l00690"></a><span class="lineno">  690</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00691"></a><span class="lineno">  691</span>   S.<a class="code" href="classclang_1_1Sema.html#ad29dfd1f2677772bf6b1da186a7583c3" title="Emit a diagnostic.">Diag</a>(Jump-><a class="code" href="classclang_1_1IndirectGotoStmt.html#a961f5488ec5852d6f8c388e08e829c0d">getGotoLoc</a>(), diag::err_indirect_goto_in_protected_scope);</div>
+<div class="line"><a name="l00692"></a><span class="lineno">  692</span>   S.<a class="code" href="classclang_1_1Sema.html#ad29dfd1f2677772bf6b1da186a7583c3" title="Emit a diagnostic.">Diag</a>(Target-><a class="code" href="classclang_1_1LabelDecl.html#a13c54288572cc3bb5db92c857099fd27">getStmt</a>()-><a class="code" href="classclang_1_1LabelStmt.html#ad485ae408b3d51f2d8d97a13ff48c252">getIdentLoc</a>(), diag::note_indirect_goto_target);</div>
+<div class="line"><a name="l00693"></a><span class="lineno">  693</span>   Diagnosed = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00694"></a><span class="lineno">  694</span> }</div>
+<div class="line"><a name="l00695"></a><span class="lineno">  695</span> <span class="comment"></span></div>
+<div class="line"><a name="l00696"></a><span class="lineno">  696</span> <span class="comment">/// Produce note diagnostics for a jump into a protected scope.</span></div>
+<div class="line"><a name="l00697"></a><span class="lineno">  697</span> <span class="comment"></span><span class="keywordtype">void</span> JumpScopeChecker::NoteJumpIntoScopes(<a class="code" href="classllvm_1_1ArrayRef.html">ArrayRef<unsigned></a> ToScopes) {</div>
+<div class="line"><a name="l00698"></a><span class="lineno">  698</span>   assert(!ToScopes.empty());</div>
+<div class="line"><a name="l00699"></a><span class="lineno">  699</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = 0, E = ToScopes.size(); I != E; ++I)</div>
+<div class="line"><a name="l00700"></a><span class="lineno">  700</span>     <span class="keywordflow">if</span> (Scopes[ToScopes[I]].InDiag)</div>
+<div class="line"><a name="l00701"></a><span class="lineno">  701</span>       S.Diag(Scopes[ToScopes[I]].Loc, Scopes[ToScopes[I]].InDiag);</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="comment"></span></div>
+<div class="line"><a name="l00704"></a><span class="lineno">  704</span> <span class="comment">/// Diagnose an indirect jump which is known to cross scopes.</span></div>
+<div class="line"><a name="l00705"></a><span class="lineno">  705</span> <span class="comment"></span><span class="keywordtype">void</span> JumpScopeChecker::DiagnoseIndirectJump(<a class="code" href="classclang_1_1IndirectGotoStmt.html">IndirectGotoStmt</a> *Jump,</div>
+<div class="line"><a name="l00706"></a><span class="lineno">  706</span>                                             <span class="keywordtype">unsigned</span> JumpScope,</div>
+<div class="line"><a name="l00707"></a><span class="lineno">  707</span>                                             <a class="code" href="classclang_1_1LabelDecl.html">LabelDecl</a> *Target,</div>
+<div class="line"><a name="l00708"></a><span class="lineno">  708</span>                                             <span class="keywordtype">unsigned</span> TargetScope) {</div>
+<div class="line"><a name="l00709"></a><span class="lineno">  709</span>   assert(JumpScope != TargetScope);</div>
+<div class="line"><a name="l00710"></a><span class="lineno">  710</span> </div>
+<div class="line"><a name="l00711"></a><span class="lineno">  711</span>   <span class="keywordtype">unsigned</span> Common = GetDeepestCommonScope(JumpScope, TargetScope);</div>
+<div class="line"><a name="l00712"></a><span class="lineno">  712</span>   <span class="keywordtype">bool</span> Diagnosed = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00713"></a><span class="lineno">  713</span> </div>
+<div class="line"><a name="l00714"></a><span class="lineno">  714</span>   <span class="comment">// Walk out the scope chain until we reach the common ancestor.</span></div>
+<div class="line"><a name="l00715"></a><span class="lineno">  715</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = JumpScope; I != Common; I = Scopes[I].ParentScope)</div>
+<div class="line"><a name="l00716"></a><span class="lineno">  716</span>     <span class="keywordflow">if</span> (Scopes[I].OutDiag) {</div>
+<div class="line"><a name="l00717"></a><span class="lineno">  717</span>       <a class="code" href="JumpDiagnostics_8cpp.html#a4240d14d5028587dbe704bc73d551603" title="Produce primary diagnostic for an indirect jump statement.">DiagnoseIndirectJumpStmt</a>(S, Jump, Target, Diagnosed);</div>
+<div class="line"><a name="l00718"></a><span class="lineno">  718</span>       S.Diag(Scopes[I].Loc, Scopes[I].OutDiag);</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> </div>
+<div class="line"><a name="l00721"></a><span class="lineno">  721</span>   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<unsigned, 10></a> ToScopesCXX98Compat;</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">// Now walk into the scopes containing the label whose address was taken.</span></div>
+<div class="line"><a name="l00724"></a><span class="lineno">  724</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = TargetScope; I != Common; I = Scopes[I].ParentScope)</div>
+<div class="line"><a name="l00725"></a><span class="lineno">  725</span>     <span class="keywordflow">if</span> (<a class="code" href="JumpDiagnostics_8cpp.html#a265d6f20710670f092338374d7ac1d08">IsCXX98CompatWarning</a>(S, Scopes[I].InDiag))</div>
+<div class="line"><a name="l00726"></a><span class="lineno">  726</span>       ToScopesCXX98Compat.push_back(I);</div>
+<div class="line"><a name="l00727"></a><span class="lineno">  727</span>     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Scopes[I].InDiag) {</div>
+<div class="line"><a name="l00728"></a><span class="lineno">  728</span>       <a class="code" href="JumpDiagnostics_8cpp.html#a4240d14d5028587dbe704bc73d551603" title="Produce primary diagnostic for an indirect jump statement.">DiagnoseIndirectJumpStmt</a>(S, Jump, Target, Diagnosed);</div>
+<div class="line"><a name="l00729"></a><span class="lineno">  729</span>       S.Diag(Scopes[I].Loc, Scopes[I].InDiag);</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> </div>
+<div class="line"><a name="l00732"></a><span class="lineno">  732</span>   <span class="comment">// Diagnose this jump if it would be ill-formed in C++98.</span></div>
+<div class="line"><a name="l00733"></a><span class="lineno">  733</span>   <span class="keywordflow">if</span> (!Diagnosed && !ToScopesCXX98Compat.empty()) {</div>
+<div class="line"><a name="l00734"></a><span class="lineno">  734</span>     S.Diag(Jump-><a class="code" href="classclang_1_1IndirectGotoStmt.html#a961f5488ec5852d6f8c388e08e829c0d">getGotoLoc</a>(),</div>
+<div class="line"><a name="l00735"></a><span class="lineno">  735</span>            diag::warn_cxx98_compat_indirect_goto_in_protected_scope);</div>
+<div class="line"><a name="l00736"></a><span class="lineno">  736</span>     S.Diag(Target-><a class="code" href="classclang_1_1LabelDecl.html#a13c54288572cc3bb5db92c857099fd27">getStmt</a>()-><a class="code" href="classclang_1_1LabelStmt.html#ad485ae408b3d51f2d8d97a13ff48c252">getIdentLoc</a>(), diag::note_indirect_goto_target);</div>
+<div class="line"><a name="l00737"></a><span class="lineno">  737</span>     NoteJumpIntoScopes(ToScopesCXX98Compat);</div>
+<div class="line"><a name="l00738"></a><span class="lineno">  738</span>   }</div>
+<div class="line"><a name="l00739"></a><span class="lineno">  739</span> }</div>
+<div class="line"><a name="l00740"></a><span class="lineno">  740</span> <span class="comment"></span></div>
+<div class="line"><a name="l00741"></a><span class="lineno">  741</span> <span class="comment">/// CheckJump - Validate that the specified jump statement is valid: that it is</span></div>
+<div class="line"><a name="l00742"></a><span class="lineno">  742</span> <span class="comment">/// jumping within or out of its current scope, not into a deeper one.</span></div>
+<div class="line"><a name="l00743"></a><span class="lineno">  743</span> <span class="comment"></span><span class="keywordtype">void</span> JumpScopeChecker::CheckJump(<a class="code" href="classclang_1_1Stmt.html">Stmt</a> *From, <a class="code" href="classclang_1_1Stmt.html">Stmt</a> *To, <a class="code" href="classclang_1_1SourceLocation.html" title="Encodes a location in the source. The SourceManager can decode this to get at the full include stack...">SourceLocation</a> DiagLoc,</div>
+<div class="line"><a name="l00744"></a><span class="lineno">  744</span>                                <span class="keywordtype">unsigned</span> JumpDiagError, <span class="keywordtype">unsigned</span> JumpDiagWarning,</div>
+<div class="line"><a name="l00745"></a><span class="lineno">  745</span>                                  <span class="keywordtype">unsigned</span> JumpDiagCXX98Compat) {</div>
+<div class="line"><a name="l00746"></a><span class="lineno">  746</span>   assert(LabelAndGotoScopes.count(From) && <span class="stringliteral">"Jump didn't get added to scopes?"</span>);</div>
+<div class="line"><a name="l00747"></a><span class="lineno">  747</span>   <span class="keywordtype">unsigned</span> FromScope = LabelAndGotoScopes[From];</div>
+<div class="line"><a name="l00748"></a><span class="lineno">  748</span> </div>
+<div class="line"><a name="l00749"></a><span class="lineno">  749</span>   assert(LabelAndGotoScopes.count(To) && <span class="stringliteral">"Jump didn't get added to scopes?"</span>);</div>
+<div class="line"><a name="l00750"></a><span class="lineno">  750</span>   <span class="keywordtype">unsigned</span> ToScope = LabelAndGotoScopes[To];</div>
+<div class="line"><a name="l00751"></a><span class="lineno">  751</span> </div>
+<div class="line"><a name="l00752"></a><span class="lineno">  752</span>   <span class="comment">// Common case: exactly the same scope, which is fine.</span></div>
+<div class="line"><a name="l00753"></a><span class="lineno">  753</span>   <span class="keywordflow">if</span> (FromScope == ToScope) <span class="keywordflow">return</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="keywordtype">unsigned</span> CommonScope = GetDeepestCommonScope(FromScope, ToScope);</div>
+<div class="line"><a name="l00756"></a><span class="lineno">  756</span> </div>
+<div class="line"><a name="l00757"></a><span class="lineno">  757</span>   <span class="comment">// It's okay to jump out from a nested scope.</span></div>
+<div class="line"><a name="l00758"></a><span class="lineno">  758</span>   <span class="keywordflow">if</span> (CommonScope == ToScope) <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00759"></a><span class="lineno">  759</span> </div>
+<div class="line"><a name="l00760"></a><span class="lineno">  760</span>   <span class="comment">// Pull out (and reverse) any scopes we might need to diagnose skipping.</span></div>
+<div class="line"><a name="l00761"></a><span class="lineno">  761</span>   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<unsigned, 10></a> ToScopesCXX98Compat;</div>
+<div class="line"><a name="l00762"></a><span class="lineno">  762</span>   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<unsigned, 10></a> ToScopesError;</div>
+<div class="line"><a name="l00763"></a><span class="lineno">  763</span>   <a class="code" href="classllvm_1_1SmallVector.html">SmallVector<unsigned, 10></a> ToScopesWarning;</div>
+<div class="line"><a name="l00764"></a><span class="lineno">  764</span>   <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> I = ToScope; I != CommonScope; I = Scopes[I].ParentScope) {</div>
+<div class="line"><a name="l00765"></a><span class="lineno">  765</span>     <span class="keywordflow">if</span> (S.getLangOpts().MicrosoftMode && JumpDiagWarning != 0 &&</div>
+<div class="line"><a name="l00766"></a><span class="lineno">  766</span>         <a class="code" href="JumpDiagnostics_8cpp.html#a44f43e9fa8715777dff408f92fa508be">IsMicrosoftJumpWarning</a>(JumpDiagError, Scopes[I].InDiag))</div>
+<div class="line"><a name="l00767"></a><span class="lineno">  767</span>       ToScopesWarning.push_back(I);</div>
+<div class="line"><a name="l00768"></a><span class="lineno">  768</span>     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="JumpDiagnostics_8cpp.html#a265d6f20710670f092338374d7ac1d08">IsCXX98CompatWarning</a>(S, Scopes[I].InDiag))</div>
+<div class="line"><a name="l00769"></a><span class="lineno">  769</span>       ToScopesCXX98Compat.push_back(I);</div>
+<div class="line"><a name="l00770"></a><span class="lineno">  770</span>     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (Scopes[I].InDiag)</div>
+<div class="line"><a name="l00771"></a><span class="lineno">  771</span>       ToScopesError.push_back(I);</div>
+<div class="line"><a name="l00772"></a><span class="lineno">  772</span>   }</div>
+<div class="line"><a name="l00773"></a><span class="lineno">  773</span> </div>
+<div class="line"><a name="l00774"></a><span class="lineno">  774</span>   <span class="comment">// Handle warnings.</span></div>
+<div class="line"><a name="l00775"></a><span class="lineno">  775</span>   <span class="keywordflow">if</span> (!ToScopesWarning.empty()) {</div>
+<div class="line"><a name="l00776"></a><span class="lineno">  776</span>     S.Diag(DiagLoc, JumpDiagWarning);</div>
+<div class="line"><a name="l00777"></a><span class="lineno">  777</span>     NoteJumpIntoScopes(ToScopesWarning);</div>
+<div class="line"><a name="l00778"></a><span class="lineno">  778</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>   <span class="comment">// Handle errors.</span></div>
+<div class="line"><a name="l00781"></a><span class="lineno">  781</span>   <span class="keywordflow">if</span> (!ToScopesError.empty()) {</div>
+<div class="line"><a name="l00782"></a><span class="lineno">  782</span>     S.Diag(DiagLoc, JumpDiagError);</div>
+<div class="line"><a name="l00783"></a><span class="lineno">  783</span>     NoteJumpIntoScopes(ToScopesError);</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">// Handle -Wc++98-compat warnings if the jump is well-formed.</span></div>
+<div class="line"><a name="l00787"></a><span class="lineno">  787</span>   <span class="keywordflow">if</span> (ToScopesError.empty() && !ToScopesCXX98Compat.empty()) {</div>
+<div class="line"><a name="l00788"></a><span class="lineno">  788</span>     S.Diag(DiagLoc, JumpDiagCXX98Compat);</div>
+<div class="line"><a name="l00789"></a><span class="lineno">  789</span>     NoteJumpIntoScopes(ToScopesCXX98Compat);</div>
+<div class="line"><a name="l00790"></a><span class="lineno">  790</span>   }</div>
+<div class="line"><a name="l00791"></a><span class="lineno">  791</span> }</div>
+<div class="line"><a name="l00792"></a><span class="lineno">  792</span> </div>
+<div class="line"><a name="l00793"></a><span class="lineno"><a class="code" href="classclang_1_1Sema.html#a61b0a31a7051f35289d93c62721fe001">  793</a></span> <span class="keywordtype">void</span> <a class="code" href="classclang_1_1Sema.html#a61b0a31a7051f35289d93c62721fe001">Sema::DiagnoseInvalidJumps</a>(<a class="code" href="classclang_1_1Stmt.html">Stmt</a> *Body) {</div>
+<div class="line"><a name="l00794"></a><span class="lineno">  794</span>   (void)JumpScopeChecker(Body, *<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00795"></a><span class="lineno">  795</span> }</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:41 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/JumpDiagnostics_8d_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/JumpDiagnostics_8d_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/JumpDiagnostics_8d_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/JumpDiagnostics_8d_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,547 @@
+<!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: JumpDiagnostics.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_0c3cadfa2fbef89a3b8f57073e8a31f9.html">Sema</a></li><li class="navelem"><a class="el" href="dir_eb0099ce9b4bd055698282f76081f892.html">Release+Asserts</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">JumpDiagnostics.d</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="JumpDiagnostics_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/Sema/Release+Asserts/JumpDiagnostics.o \</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>  /home/tstellar/llvm/tools/clang/lib/Sema/Release+Asserts/JumpDiagnostics.d: \</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>  JumpDiagnostics.cpp \</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/SemaInternal.h \</div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ASTContext.h \</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ASTTypeTraits.h \</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ASTFwd.h \</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclNodes.inc \</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/StmtNodes.inc \</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/TypeNodes.def \</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/Decl.h \</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/APValue.h \</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../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/Sema/../../include/clang/AST/DeclBase.h \</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/AttrIterator.h \</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclarationName.h \</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/IdentifierTable.h \</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/OperatorKinds.h \</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/OperatorKinds.def \</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/TokenKinds.h \</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../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/Sema/../../include/clang/Basic/PartialDiagnostic.h \</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/Diagnostic.h \</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../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/Sema/../../include/clang/Basic/DiagnosticCommonKinds.inc \</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/DiagnosticOptions.h \</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/DiagnosticOptions.def \</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../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/Sema/../../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/Sema/../../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/Sema/../../include/clang/AST/ExternalASTSource.h \</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/CharUnits.h \</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/Redeclarable.h \</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/Type.h \</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../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/Sema/../../include/clang/AST/TemplateName.h \</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../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/Sema/../../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/Sema/../../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/Sema/../../include/clang/AST/Stmt.h \</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclGroup.h \</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/StmtIterator.h \</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/CapturedStmt.h \</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/TemplateBase.h \</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/TypeLoc.h \</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/TypeLocNodes.def \</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/CanonicalType.h \</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/CommentCommandTraits.h \</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/CommentOptions.h \</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/CommentCommandList.inc \</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/PrettyPrinter.h \</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/LangOptions.h \</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/ObjCRuntime.h \</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../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/Sema/../../include/clang/Basic/Sanitizers.def \</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/LangOptions.def \</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/OpenCLExtensions.def \</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/RawCommentList.h \</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/SourceManager.h \</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/FileManager.h \</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../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/Sema/../../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/Sema/../../include/clang/Sema/Sema.h \</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/Attr.h \</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/AttrKinds.h \</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/AttrList.inc \</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>  /home/tstellar/llvm/include/llvm/ADT/StringSwitch.h \</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/Attrs.inc \</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/Expr.h \</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ASTVector.h \</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclAccessPair.h \</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/OperationKinds.h \</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/CharInfo.h \</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/TypeTraits.h \</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/Builtins.def \</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ExprObjC.h \</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclObjC.h \</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../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="l00121"></a><span class="lineno">  121</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/MangleNumberingContext.h \</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/NSAPI.h \</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/ExpressionTraits.h \</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/OpenMPKinds.h \</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/OpenMPKinds.def \</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/TemplateKinds.h \</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleLoader.h \</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/Module.h \</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>  /home/tstellar/llvm/include/llvm/ADT/SetVector.h \</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>  /home/tstellar/llvm/include/llvm/ADT/SmallSet.h \</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/AnalysisBasedWarnings.h \</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/DeclSpec.h \</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/Lambda.h \</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/<a class="code" href="UnwrappedLineParser_8cpp.html#ac39165965ffcb0218343355d1f482d64">Token</a>.h \</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/AttributeList.h \</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/Ownership.h \</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/AttrParsedAttrList.inc \</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/ExternalSemaSource.h \</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/TypoCorrection.h \</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclCXX.h \</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ASTUnresolvedSet.h \</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/UnresolvedSet.h \</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ExprCXX.h \</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/Weak.h \</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>  /home/tstellar/llvm/include/llvm/ADT/MapVector.h \</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/IdentifierResolver.h \</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/LocInfoType.h \</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/ObjCMethodList.h \</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/ScopeInfo.h \</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>  /home/tstellar/llvm/include/llvm/MC/MCParser/MCAsmParser.h \</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>  /home/tstellar/llvm/include/llvm/MC/MCParser/AsmLexer.h \</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>  /home/tstellar/llvm/include/llvm/MC/MCParser/MCAsmLexer.h \</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>  /home/tstellar/llvm/include/llvm/Support/SMLoc.h \</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/SemaDiagnostic.h \</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/DiagnosticSemaKinds.inc \</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/StmtCXX.h \</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>  /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/StmtObjC.h \</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>  /home/tstellar/llvm/include/llvm/ADT/BitVector.h</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span> </div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Sema/SemaInternal.h:</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span> </div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ASTContext.h:</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span> </div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ASTTypeTraits.h:</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span> </div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ASTFwd.h:</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span> </div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclNodes.inc:</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span> </div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/StmtNodes.inc:</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span> </div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/TypeNodes.def:</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span> </div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/Decl.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/Sema/../../include/clang/AST/APValue.h:</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span> </div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/LLVM.h:</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span> </div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span> /home/tstellar/llvm/include/llvm/Support/Casting.h:</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span> </div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span> /home/tstellar/llvm/include/llvm/Support/type_traits.h:</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span> </div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span> /home/tstellar/llvm/include/llvm/Support/DataTypes.h:</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span> </div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span> /home/tstellar/llvm/include/llvm/ADT/None.h:</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span> </div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span> /home/tstellar/llvm/include/llvm/ADT/APFloat.h:</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span> </div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span> /home/tstellar/llvm/include/llvm/ADT/APInt.h:</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span> </div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span> /home/tstellar/llvm/include/llvm/ADT/ArrayRef.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/include/llvm/ADT/SmallVector.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/include/llvm/Support/AlignOf.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/Compiler.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/Config/llvm-config.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/MathExtras.h:</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span> </div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span> /home/tstellar/llvm/include/llvm/Support/SwapByteOrder.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/APSInt.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/PointerIntPair.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/Support/PointerLikeTypeTraits.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/PointerUnion.h:</div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span> </div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclBase.h:</div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span> </div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/AttrIterator.h:</div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span> </div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/DeclarationName.h:</div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span> </div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/IdentifierTable.h:</div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span> </div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/OperatorKinds.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/tools/clang/lib/Sema/../../include/clang/Basic/OperatorKinds.def:</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span> </div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/TokenKinds.h:</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span> </div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/TokenKinds.def:</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/SmallString.h:</div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span> </div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span> /home/tstellar/llvm/include/llvm/ADT/StringRef.h:</div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span> </div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span> /home/tstellar/llvm/include/llvm/ADT/StringMap.h:</div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span> </div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span> /home/tstellar/llvm/include/llvm/Support/<a class="code" href="Format_8cpp.html#a0805f884ee63233d49322f71926371de">Allocator</a>.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/Sema/../../include/clang/Basic/PartialDiagnostic.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/Sema/../../include/clang/Basic/Diagnostic.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/Sema/../../include/clang/Basic/DiagnosticIDs.h:</div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span> </div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span> /home/tstellar/llvm/include/llvm/ADT/IntrusiveRefCntPtr.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/Sema/../../include/clang/Basic/DiagnosticCommonKinds.inc:</div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span> </div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/DiagnosticOptions.h:</div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span> </div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/DiagnosticOptions.def:</div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span> </div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/SourceLocation.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/ADT/DenseMap.h:</div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span> </div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span> /home/tstellar/llvm/include/llvm/ADT/DenseMapInfo.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/include/llvm/ADT/STLExtras.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/Sema/../../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="l00261"></a><span class="lineno">  261</span> </div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/Specifiers.h:</div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span> </div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span> /home/tstellar/llvm/include/llvm/Support/PrettyStackTrace.h:</div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span> </div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ExternalASTSource.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/Sema/../../include/clang/AST/CharUnits.h:</div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span> </div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/Redeclarable.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/tools/clang/lib/Sema/../../include/clang/AST/Type.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/tools/clang/lib/Sema/../../include/clang/AST/NestedNameSpecifier.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/FoldingSet.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/Sema/../../include/clang/AST/TemplateName.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/Sema/../../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="l00281"></a><span class="lineno">  281</span> </div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../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="l00283"></a><span class="lineno">  283</span> </div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span> /home/tstellar/llvm/include/llvm/ADT/Optional.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/include/llvm/ADT/Twine.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/include/llvm/Support/ErrorHandling.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/Sema/../../include/clang/AST/BuiltinTypes.def:</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/include/llvm/Support/raw_ostream.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/Support/FileSystem.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/include/llvm/ADT/OwningPtr.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/include/llvm/Support/TimeValue.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/include/llvm/Support/system_error.h:</div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span> </div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/Stmt.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/tools/clang/lib/Sema/../../include/clang/AST/DeclGroup.h:</div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span> </div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/StmtIterator.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/Sema/../../include/clang/Basic/CapturedStmt.h:</div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span> </div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/TemplateBase.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/tools/clang/lib/Sema/../../include/clang/AST/TypeLoc.h:</div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span> </div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/TypeLocNodes.def:</div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span> </div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/CanonicalType.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/tools/clang/lib/Sema/../../include/clang/AST/CommentCommandTraits.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/Sema/../../include/clang/Basic/CommentOptions.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/Sema/../../include/clang/AST/CommentCommandList.inc:</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/Sema/../../include/clang/AST/PrettyPrinter.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/Sema/../../include/clang/Basic/LangOptions.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/Sema/../../include/clang/Basic/ObjCRuntime.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/Sema/../../include/clang/Basic/VersionTuple.h:</div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span> </div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span> /home/tstellar/llvm/include/llvm/ADT/Triple.h:</div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span> </div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/Sanitizers.def:</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/Sema/../../include/clang/Basic/LangOptions.def:</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/Sema/../../include/clang/Basic/OpenCLExtensions.def:</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/Sema/../../include/clang/AST/RawCommentList.h:</div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span> </div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/SourceManager.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/Sema/../../include/clang/Basic/FileManager.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/Sema/../../include/clang/Basic/FileSystemOptions.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/include/llvm/ADT/DenseSet.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/Support/MemoryBuffer.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/include/llvm/Support/CBindingWrapping.h:</div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span> </div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span> /home/tstellar/llvm/include/llvm-c/Core.h:</div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span> </div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/AddressSpaces.h:</div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span> </div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span> /home/tstellar/llvm/include/llvm/ADT/SmallPtrSet.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/include/llvm/ADT/TinyPtrVector.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/Sema/../../include/clang/Sema/Sema.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/Sema/../../include/clang/AST/Attr.h:</div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span> </div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/AttrKinds.h:</div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span> </div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/AttrList.inc:</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/ADT/StringSwitch.h:</div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span> </div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/Attrs.inc:</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/Sema/../../include/clang/AST/Expr.h:</div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span> </div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/AST/ASTVector.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/tools/clang/lib/Sema/../../include/clang/AST/DeclAccessPair.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/Sema/../../include/clang/AST/OperationKinds.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/Sema/../../include/clang/Basic/CharInfo.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/Sema/../../include/clang/Basic/TypeTraits.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/Sema/../../include/clang/Basic/Builtins.def:</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/Sema/../../include/clang/AST/ExprObjC.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/Sema/../../include/clang/AST/DeclObjC.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/Sema/../../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="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/Sema/../../include/clang/AST/MangleNumberingContext.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/Sema/../../include/clang/AST/NSAPI.h:</div>
+<div class="line"><a name="l00397"></a><span class="lineno">  397</span> </div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span> /home/tstellar/llvm/tools/clang/lib/Sema/../../include/clang/Basic/ExpressionTraits.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/Sema/../../include/clang/Basic/OpenMPKinds.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/Sema/../../include/clang/Basic/OpenMPKinds.def:</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/Sema/../../include/clang/Basic/TemplateKinds.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/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/ModuleLoader.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/Sema/../../include/clang/Basic/Module.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/include/llvm/ADT/SetVector.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/include/llvm/ADT/SmallSet.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/Sema/../../include/clang/Sema/AnalysisBasedWarnings.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/tools/clang/lib/Sema/../../include/clang/Sema/DeclSpec.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/Sema/../../include/clang/Basic/Lambda.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/Sema/../../include/clang/<a class="code" href="Format_8cpp.html#af225acf665df209626523284f00162d4">Lex</a>/<a class="code" href="UnwrappedLineParser_8cpp.html#ac39165965ffcb0218343355d1f482d64">Token</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/Sema/../../include/clang/Sema/AttributeList.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/Sema/../../include/clang/Sema/Ownership.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/Sema/../../include/clang/Sema/AttrParsedAttrList.inc:</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/Sema/../../include/clang/Sema/ExternalSemaSource.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/Sema/../../include/clang/Sema/TypoCorrection.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/tools/clang/lib/Sema/../../include/clang/AST/DeclCXX.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/Sema/../../include/clang/AST/ASTUnresolvedSet.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/Sema/../../include/clang/AST/UnresolvedSet.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/Sema/../../include/clang/AST/ExprCXX.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/Sema/../../include/clang/Sema/Weak.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/include/llvm/ADT/MapVector.h:</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/Sema/../../include/clang/Sema/IdentifierResolver.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/Sema/../../include/clang/Sema/LocInfoType.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/Sema/../../include/clang/Sema/ObjCMethodList.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/Sema/../../include/clang/Sema/ScopeInfo.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/include/llvm/MC/MCParser/MCAsmParser.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/include/llvm/MC/MCParser/AsmLexer.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/include/llvm/MC/MCParser/MCAsmLexer.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/include/llvm/Support/SMLoc.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/Sema/../../include/clang/Sema/SemaDiagnostic.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/tools/clang/lib/Sema/../../include/clang/Basic/DiagnosticSemaKinds.inc:</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/Sema/../../include/clang/AST/StmtCXX.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/Sema/../../include/clang/AST/StmtObjC.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/BitVector.h:</div>
+</div><!-- fragment --></div><!-- contents -->
+<hr>
+<p class="footer">
+Generated on Mon May 12 2014 12:13:41 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/LLVMConventionsChecker_8cpp_source.html
URL: http://llvm.org/viewvc/llvm-project/www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/LLVMConventionsChecker_8cpp_source.html?rev=225843&view=auto
==============================================================================
--- www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/LLVMConventionsChecker_8cpp_source.html (added)
+++ www-releases/trunk/3.5.1/tools/clang/docs/doxygen/html/LLVMConventionsChecker_8cpp_source.html Tue Jan 13 16:55:20 2015
@@ -0,0 +1,394 @@
+<!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: LLVMConventionsChecker.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">LLVMConventionsChecker.cpp</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="LLVMConventionsChecker_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">//=== LLVMConventionsChecker.cpp - Check LLVM codebase conventions ---*- 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 defines LLVMConventionsChecker, a bunch of small little checks</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span> <span class="comment">// for checking specific coding conventions in the LLVM/Clang codebase.</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span> <span class="comment">//</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span> </div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span> <span class="preprocessor">#include "<a class="code" href="ClangSACheckers_8h.html">ClangSACheckers.h</a>"</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span> <span class="preprocessor">#include "<a class="code" href="DeclTemplate_8h.html" title="Defines the C++ template declaration subclasses.">clang/AST/DeclTemplate.h</a>"</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span> <span class="preprocessor">#include "<a class="code" href="StmtVisitor_8h.html">clang/AST/StmtVisitor.h</a>"</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span> <span class="preprocessor">#include "<a class="code" href="BugReporter_8h.html">clang/StaticAnalyzer/Core/BugReporter/BugReporter.h</a>"</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span> <span class="preprocessor">#include "<a class="code" href="Checker_8h.html">clang/StaticAnalyzer/Core/Checker.h</a>"</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span> <span class="preprocessor">#include "llvm/ADT/SmallString.h"</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span> <span class="preprocessor">#include "llvm/Support/raw_ostream.h"</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span> </div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span> <span class="keyword">using namespace </span>clang;</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span> <span class="keyword">using namespace </span>ento;</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span> </div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span> <span class="comment">// Generic type checking routines.</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span> </div>
+<div class="line"><a name="l00030"></a><span class="lineno"><a class="code" href="LLVMConventionsChecker_8cpp.html#ae8bbf6b129238355bcac6a69adfefa2e">   30</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="LLVMConventionsChecker_8cpp.html#ae8bbf6b129238355bcac6a69adfefa2e">IsLLVMStringRef</a>(<a class="code" href="classclang_1_1QualType.html">QualType</a> T) {</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1RecordType.html">RecordType</a> *RT = T-><a class="code" href="classclang_1_1Type.html#a12103ea8bee9506930287bab68a08569">getAs</a><<a class="code" href="classclang_1_1RecordType.html">RecordType</a>>();</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>   <span class="keywordflow">if</span> (!RT)</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span> </div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>   <span class="keywordflow">return</span> StringRef(<a class="code" href="classclang_1_1QualType.html">QualType</a>(RT, 0).getAsString()) ==</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>           <span class="stringliteral">"class StringRef"</span>;</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span> }</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span> <span class="comment"></span></div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span> <span class="comment">/// Check whether the declaration is semantically inside the top-level</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span> <span class="comment">/// namespace named by ns.</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"><a class="code" href="LLVMConventionsChecker_8cpp.html#a43cdb13b9d55df47a13323eaa631f4ba">   41</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="LLVMConventionsChecker_8cpp.html#a43cdb13b9d55df47a13323eaa631f4ba">InNamespace</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Decl.html">Decl</a> *D, StringRef NS) {</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1NamespaceDecl.html" title="NamespaceDecl - Represent a C++ namespace.">NamespaceDecl</a> *ND = dyn_cast<<a class="code" href="classclang_1_1NamespaceDecl.html" title="NamespaceDecl - Represent a C++ namespace.">NamespaceDecl</a>>(D-><a class="code" href="classclang_1_1Decl.html#af67e1a1d24dcc51093b95dbcf68d4288">getDeclContext</a>());</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>   <span class="keywordflow">if</span> (!ND)</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1IdentifierInfo.html">IdentifierInfo</a> *II = ND-><a class="code" href="classclang_1_1NamedDecl.html#a554752f8f43eea0e6288da7205167fe2">getIdentifier</a>();</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>   <span class="keywordflow">if</span> (!II || !II-><a class="code" href="classclang_1_1IdentifierInfo.html#a94caec6a16e508e8ca39eacd278bd2c5" title="Return the actual identifier string.">getName</a>().equals(NS))</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>   <span class="keywordflow">return</span> isa<TranslationUnitDecl>(ND-><a class="code" href="classclang_1_1Decl.html#af67e1a1d24dcc51093b95dbcf68d4288">getDeclContext</a>());</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span> }</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span> </div>
+<div class="line"><a name="l00051"></a><span class="lineno"><a class="code" href="LLVMConventionsChecker_8cpp.html#a7bb11942efcedca7bda2bf4aa00206e8">   51</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="LLVMConventionsChecker_8cpp.html#a7bb11942efcedca7bda2bf4aa00206e8">IsStdString</a>(<a class="code" href="classclang_1_1QualType.html">QualType</a> T) {</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>   <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classclang_1_1ElaboratedType.html" title="Represents a type that was referred to using an elaborated type keyword, e.g., struct S...">ElaboratedType</a> *QT = T-><a class="code" href="classclang_1_1Type.html#a12103ea8bee9506930287bab68a08569">getAs</a><<a class="code" href="classclang_1_1ElaboratedType.html" title="Represents a type that was referred to using an elaborated type keyword, e.g., struct S...">ElaboratedType</a>>())</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>     T = QT->getNamedType();</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">const</span> <a class="code" href="classclang_1_1TypedefType.html">TypedefType</a> *TT = T-><a class="code" href="classclang_1_1Type.html#a12103ea8bee9506930287bab68a08569">getAs</a><<a class="code" href="classclang_1_1TypedefType.html">TypedefType</a>>();</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>   <span class="keywordflow">if</span> (!TT)</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span> </div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1TypedefNameDecl.html" title="Base class for declarations which introduce a typedef-name.">TypedefNameDecl</a> *TD = TT-><a class="code" href="classclang_1_1TypedefType.html#ad4e7a184d08d09e9abc74424f6769e9d">getDecl</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">   61</span>   <span class="keywordflow">if</span> (!<a class="code" href="LLVMConventionsChecker_8cpp.html#a43cdb13b9d55df47a13323eaa631f4ba">InNamespace</a>(TD, <span class="stringliteral">"std"</span>))</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span> </div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>   <span class="keywordflow">return</span> TD-><a class="code" href="classclang_1_1NamedDecl.html#aaf790590f634520a99e0b45699fc45c3">getName</a>() == <span class="stringliteral">"string"</span>;</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span> }</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span> </div>
+<div class="line"><a name="l00067"></a><span class="lineno"><a class="code" href="LLVMConventionsChecker_8cpp.html#a1aa4eddba0a72c0c60d0afafec9d2cae">   67</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="LLVMConventionsChecker_8cpp.html#a1aa4eddba0a72c0c60d0afafec9d2cae">IsClangType</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1RecordDecl.html">RecordDecl</a> *RD) {</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>   <span class="keywordflow">return</span> RD-><a class="code" href="classclang_1_1NamedDecl.html#aaf790590f634520a99e0b45699fc45c3">getName</a>() == <span class="stringliteral">"Type"</span> && <a class="code" href="LLVMConventionsChecker_8cpp.html#a43cdb13b9d55df47a13323eaa631f4ba">InNamespace</a>(RD, <span class="stringliteral">"clang"</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> </div>
+<div class="line"><a name="l00071"></a><span class="lineno"><a class="code" href="LLVMConventionsChecker_8cpp.html#a999e8b038687cddd559f112ab1623cf6">   71</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="LLVMConventionsChecker_8cpp.html#a999e8b038687cddd559f112ab1623cf6">IsClangDecl</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1RecordDecl.html">RecordDecl</a> *RD) {</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>   <span class="keywordflow">return</span> RD-><a class="code" href="classclang_1_1NamedDecl.html#aaf790590f634520a99e0b45699fc45c3">getName</a>() == <span class="stringliteral">"Decl"</span> && <a class="code" href="LLVMConventionsChecker_8cpp.html#a43cdb13b9d55df47a13323eaa631f4ba">InNamespace</a>(RD, <span class="stringliteral">"clang"</span>);</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span> }</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span> </div>
+<div class="line"><a name="l00075"></a><span class="lineno"><a class="code" href="LLVMConventionsChecker_8cpp.html#a40ccbc603117b07745e69d97b1eed311">   75</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="LLVMConventionsChecker_8cpp.html#a40ccbc603117b07745e69d97b1eed311">IsClangStmt</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1RecordDecl.html">RecordDecl</a> *RD) {</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>   <span class="keywordflow">return</span> RD-><a class="code" href="classclang_1_1NamedDecl.html#aaf790590f634520a99e0b45699fc45c3">getName</a>() == <span class="stringliteral">"Stmt"</span> && <a class="code" href="LLVMConventionsChecker_8cpp.html#a43cdb13b9d55df47a13323eaa631f4ba">InNamespace</a>(RD, <span class="stringliteral">"clang"</span>);</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span> }</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span> </div>
+<div class="line"><a name="l00079"></a><span class="lineno"><a class="code" href="LLVMConventionsChecker_8cpp.html#a4d2c41561cc802cc87e3decf02d8e17b">   79</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="LLVMConventionsChecker_8cpp.html#a4d2c41561cc802cc87e3decf02d8e17b">IsClangAttr</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1RecordDecl.html">RecordDecl</a> *RD) {</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>   <span class="keywordflow">return</span> RD-><a class="code" href="classclang_1_1NamedDecl.html#aaf790590f634520a99e0b45699fc45c3">getName</a>() == <span class="stringliteral">"Attr"</span> && <a class="code" href="LLVMConventionsChecker_8cpp.html#a43cdb13b9d55df47a13323eaa631f4ba">InNamespace</a>(RD, <span class="stringliteral">"clang"</span>);</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span> }</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span> </div>
+<div class="line"><a name="l00083"></a><span class="lineno"><a class="code" href="LLVMConventionsChecker_8cpp.html#a147007030f19e44e5e65e57f59ccb484">   83</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="LLVMConventionsChecker_8cpp.html#a147007030f19e44e5e65e57f59ccb484">IsStdVector</a>(<a class="code" href="classclang_1_1QualType.html">QualType</a> T) {</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1TemplateSpecializationType.html" title="Represents a type template specialization; the template must be a class template, a type alias templa...">TemplateSpecializationType</a> *TS = T-><a class="code" href="classclang_1_1Type.html#a12103ea8bee9506930287bab68a08569">getAs</a><<a class="code" href="classclang_1_1TemplateSpecializationType.html" title="Represents a type template specialization; the template must be a class template, a type alias templa...">TemplateSpecializationType</a>>();</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>   <span class="keywordflow">if</span> (!TS)</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>     <span class="keywordflow">return</span> <span class="keyword">false</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>   <a class="code" href="classclang_1_1TemplateName.html" title="Represents a C++ template name within the type system.">TemplateName</a> TM = TS-><a class="code" href="classclang_1_1TemplateSpecializationType.html#a2ddf2c895073c46976b80c87e640440b" title="Retrieve the name of the template that we are specializing.">getTemplateName</a>();</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>   <a class="code" href="classclang_1_1TemplateDecl.html" title="The base class of all kinds of template declarations (e.g., class, function, etc.).">TemplateDecl</a> *TD = TM.<a class="code" href="classclang_1_1TemplateName.html#a12167fecfe7a4ce6342e322246337519" title="Retrieve the underlying template declaration that this template name refers to, if known...">getAsTemplateDecl</a>();</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span> </div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>   <span class="keywordflow">if</span> (!TD || !<a class="code" href="LLVMConventionsChecker_8cpp.html#a43cdb13b9d55df47a13323eaa631f4ba">InNamespace</a>(TD, <span class="stringliteral">"std"</span>))</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span> </div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>   <span class="keywordflow">return</span> TD-><a class="code" href="classclang_1_1NamedDecl.html#aaf790590f634520a99e0b45699fc45c3">getName</a>() == <span class="stringliteral">"vector"</span>;</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span> }</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span> </div>
+<div class="line"><a name="l00097"></a><span class="lineno"><a class="code" href="LLVMConventionsChecker_8cpp.html#ac3565b675f91c1c79958895b893d83ca">   97</a></span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="LLVMConventionsChecker_8cpp.html#ac3565b675f91c1c79958895b893d83ca">IsSmallVector</a>(<a class="code" href="classclang_1_1QualType.html">QualType</a> T) {</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1TemplateSpecializationType.html" title="Represents a type template specialization; the template must be a class template, a type alias templa...">TemplateSpecializationType</a> *TS = T-><a class="code" href="classclang_1_1Type.html#a12103ea8bee9506930287bab68a08569">getAs</a><<a class="code" href="classclang_1_1TemplateSpecializationType.html" title="Represents a type template specialization; the template must be a class template, a type alias templa...">TemplateSpecializationType</a>>();</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>   <span class="keywordflow">if</span> (!TS)</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>     <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span> </div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>   <a class="code" href="classclang_1_1TemplateName.html" title="Represents a C++ template name within the type system.">TemplateName</a> TM = TS-><a class="code" href="classclang_1_1TemplateSpecializationType.html#a2ddf2c895073c46976b80c87e640440b" title="Retrieve the name of the template that we are specializing.">getTemplateName</a>();</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>   <a class="code" href="classclang_1_1TemplateDecl.html" title="The base class of all kinds of template declarations (e.g., class, function, etc.).">TemplateDecl</a> *TD = TM.<a class="code" href="classclang_1_1TemplateName.html#a12167fecfe7a4ce6342e322246337519" title="Retrieve the underlying template declaration that this template name refers to, if known...">getAsTemplateDecl</a>();</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span> </div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>   <span class="keywordflow">if</span> (!TD || !<a class="code" href="LLVMConventionsChecker_8cpp.html#a43cdb13b9d55df47a13323eaa631f4ba">InNamespace</a>(TD, <span class="stringliteral">"llvm"</span>))</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>     <span class="keywordflow">return</span> <span class="keyword">false</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="keywordflow">return</span> TD-><a class="code" href="classclang_1_1NamedDecl.html#aaf790590f634520a99e0b45699fc45c3">getName</a>() == <span class="stringliteral">"SmallVector"</span>;</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span> }</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span> </div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span> <span class="comment">// CHECK: a StringRef should not be bound to a temporary std::string whose</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span> <span class="comment">// lifetime is shorter than the StringRef's.</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span> </div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span> <span class="keyword">namespace </span>{</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span> <span class="keyword">class </span>StringRefCheckerVisitor : <span class="keyword">public</span> <a class="code" href="classclang_1_1StmtVisitor.html">StmtVisitor</a><StringRefCheckerVisitor> {</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>   <a class="code" href="classclang_1_1ento_1_1BugReporter.html">BugReporter</a> &BR;</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>   <span class="keyword">const</span> <a class="code" href="classclang_1_1Decl.html">Decl</a> *DeclWithIssue;</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>   StringRefCheckerVisitor(<span class="keyword">const</span> <a class="code" href="classclang_1_1Decl.html">Decl</a> *declWithIssue, <a class="code" href="classclang_1_1ento_1_1BugReporter.html">BugReporter</a> &br)</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>     : BR(br), DeclWithIssue(declWithIssue) {}</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>   <span class="keywordtype">void</span> VisitChildren(<a class="code" href="classclang_1_1Stmt.html">Stmt</a> *<a class="code" href="AnalysisBasedWarnings_8cpp.html#a33dc45a03958a0bf07b5da2dec4db648">S</a>) {</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>     <span class="keywordflow">for</span> (<a class="code" href="structclang_1_1StmtIterator.html">Stmt::child_iterator</a> I = S-><a class="code" href="classclang_1_1Stmt.html#a52a20468e7b2880de813ed91d75d2617">child_begin</a>(), E = S-><a class="code" href="classclang_1_1Stmt.html#a7a17d445eb6027180bbdc518e6cdb63a">child_end</a>() ;</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>       I != E; ++I)</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>       <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1Stmt.html">Stmt</a> *child = *I)</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>         Visit(child);</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="keywordtype">void</span> VisitStmt(<a class="code" href="classclang_1_1Stmt.html">Stmt</a> *S) { VisitChildren(S); }</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>   <span class="keywordtype">void</span> VisitDeclStmt(<a class="code" href="classclang_1_1DeclStmt.html">DeclStmt</a> *DS);</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>   <span class="keywordtype">void</span> VisitVarDecl(<a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *VD);</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span> };</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span> } <span class="comment">// end anonymous namespace</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="LLVMConventionsChecker_8cpp.html#a518487f8555fd870c1c5a0194db8ba47">  136</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="LLVMConventionsChecker_8cpp.html#a518487f8555fd870c1c5a0194db8ba47">CheckStringRefAssignedTemporary</a>(<span class="keyword">const</span> <a class="code" href="classclang_1_1Decl.html">Decl</a> *D, <a class="code" href="classclang_1_1ento_1_1BugReporter.html">BugReporter</a> &BR) {</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>   StringRefCheckerVisitor walker(D, BR);</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>   walker.Visit(D-><a class="code" href="classclang_1_1Decl.html#a128fd27b232c03226d9a34fcfa959e01">getBody</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">  141</span> <span class="keywordtype">void</span> StringRefCheckerVisitor::VisitDeclStmt(<a class="code" href="classclang_1_1DeclStmt.html">DeclStmt</a> *S) {</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>   VisitChildren(S);</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>   <span class="keywordflow">for</span> (<a class="code" href="classclang_1_1Decl.html">DeclStmt::decl_iterator</a> I = S-><a class="code" href="classclang_1_1DeclStmt.html#a768633348948e677e5cba8191d5507be">decl_begin</a>(), E = S-><a class="code" href="classclang_1_1DeclStmt.html#a30441673be0ce59ad1a5ee98481d33ab">decl_end</a>();I!=E; ++I)</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>     <span class="keywordflow">if</span> (<a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *VD = dyn_cast<VarDecl>(*I))</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>       VisitVarDecl(VD);</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">  149</span> <span class="keywordtype">void</span> StringRefCheckerVisitor::VisitVarDecl(<a class="code" href="classclang_1_1VarDecl.html">VarDecl</a> *VD) {</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>   <a class="code" href="classclang_1_1Expr.html">Expr</a> *Init = VD-><a class="code" href="classclang_1_1VarDecl.html#af6438debfc45cb2ad2d5cb5ce2711e0c">getInit</a>();</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>   <span class="keywordflow">if</span> (!Init)</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>     <span class="keywordflow">return</span>;</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">// Pattern match for:</span></div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>   <span class="comment">// StringRef x = call() (where call returns std::string)</span></div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>   <span class="keywordflow">if</span> (!<a class="code" href="LLVMConventionsChecker_8cpp.html#ae8bbf6b129238355bcac6a69adfefa2e">IsLLVMStringRef</a>(VD-><a class="code" href="classclang_1_1ValueDecl.html#aefa6d3327144aee23d2935f41d993484">getType</a>()))</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>   <a class="code" href="classclang_1_1ExprWithCleanups.html">ExprWithCleanups</a> *Ex1 = dyn_cast<<a class="code" href="classclang_1_1ExprWithCleanups.html">ExprWithCleanups</a>>(Init);</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>   <span class="keywordflow">if</span> (!Ex1)</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>   <a class="code" href="classclang_1_1CXXConstructExpr.html" title="Represents a call to a C++ constructor.">CXXConstructExpr</a> *Ex2 = dyn_cast<<a class="code" href="classclang_1_1CXXConstructExpr.html" title="Represents a call to a C++ constructor.">CXXConstructExpr</a>>(Ex1-><a class="code" href="classclang_1_1ExprWithCleanups.html#aea629f8b6da8f66df2207e7efe9a07a0">getSubExpr</a>());</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>   <span class="keywordflow">if</span> (!Ex2 || Ex2-><a class="code" href="classclang_1_1CXXConstructExpr.html#aedb07a3612a2df18b4adf0f93bf05c80">getNumArgs</a>() != 1)</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>   <a class="code" href="classclang_1_1ImplicitCastExpr.html">ImplicitCastExpr</a> *Ex3 = dyn_cast<<a class="code" href="classclang_1_1ImplicitCastExpr.html">ImplicitCastExpr</a>>(Ex2-><a class="code" href="classclang_1_1CXXConstructExpr.html#a9f460dadf776a2efd0177aafc06f6b50" title="Return the specified argument.">getArg</a>(0));</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>   <span class="keywordflow">if</span> (!Ex3)</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>   <a class="code" href="classclang_1_1CXXConstructExpr.html" title="Represents a call to a C++ constructor.">CXXConstructExpr</a> *Ex4 = dyn_cast<<a class="code" href="classclang_1_1CXXConstructExpr.html" title="Represents a call to a C++ constructor.">CXXConstructExpr</a>>(Ex3-><a class="code" href="classclang_1_1CastExpr.html#a37e3d80c4ca590eadbe49e400c50134b">getSubExpr</a>());</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>   <span class="keywordflow">if</span> (!Ex4 || Ex4-><a class="code" href="classclang_1_1CXXConstructExpr.html#aedb07a3612a2df18b4adf0f93bf05c80">getNumArgs</a>() != 1)</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>   <a class="code" href="classclang_1_1ImplicitCastExpr.html">ImplicitCastExpr</a> *Ex5 = dyn_cast<<a class="code" href="classclang_1_1ImplicitCastExpr.html">ImplicitCastExpr</a>>(Ex4-><a class="code" href="classclang_1_1CXXConstructExpr.html#a9f460dadf776a2efd0177aafc06f6b50" title="Return the specified argument.">getArg</a>(0));</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>   <span class="keywordflow">if</span> (!Ex5)</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>     <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>   <a class="code" href="classclang_1_1CXXBindTemporaryExpr.html" title="Represents binding an expression to a temporary.">CXXBindTemporaryExpr</a> *Ex6 = dyn_cast<<a class="code" href="classclang_1_1CXXBindTemporaryExpr.html" title="Represents binding an expression to a temporary.">CXXBindTemporaryExpr</a>>(Ex5-><a class="code" href="classclang_1_1CastExpr.html#a37e3d80c4ca590eadbe49e400c50134b">getSubExpr</a>());</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>   <span class="keywordflow">if</span> (!Ex6 || !<a class="code" href="LLVMConventionsChecker_8cpp.html#a7bb11942efcedca7bda2bf4aa00206e8">IsStdString</a>(Ex6-><a class="code" href="classclang_1_1Expr.html#a3dd8850a4ad8a5b5f595dd9e9446187b">getType</a>()))</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>     <span class="keywordflow">return</span>;</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>   <span class="comment">// Okay, badness!  Report an error.</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>   <span class="keyword">const</span> <span class="keywordtype">char</span> *desc = <span class="stringliteral">"StringRef should not be bound to temporary "</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>                      <span class="stringliteral">"std::string that it outlives"</span>;</div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>   <a class="code" href="classclang_1_1ento_1_1PathDiagnosticLocation.html">PathDiagnosticLocation</a> VDLoc =</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>     <a class="code" href="classclang_1_1ento_1_1PathDiagnosticLocation.html#aa4cb63cfb236b8703eb589ab405b461c" title="Create a location for the beginning of the declaration.">PathDiagnosticLocation::createBegin</a>(VD, BR.getSourceManager());</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>   BR.EmitBasicReport(DeclWithIssue, desc, <span class="stringliteral">"LLVM Conventions"</span>, desc,</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>                      VDLoc, Init-><a class="code" href="classclang_1_1Stmt.html#a6844392ee6148b5fe821f211b95e5d1b">getSourceRange</a>());</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span> }</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span> </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">// CHECK: Clang AST nodes should not have fields that can allocate</span></div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span> <span class="comment">//   memory.</span></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> </div>
+<div class="line"><a name="l00191"></a><span class="lineno"><a class="code" href="LLVMConventionsChecker_8cpp.html#a1d684c5b37784a3000b6450a8e12453b">  191<